[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2570)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bwa
ExclusiveArch: x86_64
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- containers
ExclusiveArch: %{ldc_arches}
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- embree2
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- glusterd2
ExclusiveArch: %{go_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hcc
ExclusiveArch: x86_64 aarch64
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- insect
ExclusiveArch: %{nodejs_arches} noarch
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- josm
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libmfx
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-historic-readline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-image-size
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loophole
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opal-runtime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- oshinko-cli
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- reactfx
ExclusiveArch: %{ix86} x86_64 noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm_cursor
ExclusiveArch: %{rust_arches}
- rust-crossterm_input
ExclusiveArch: %{rust_arches}
- rust-crossterm_screen
ExclusiveArch: %{rust_arches}
- rust-crossterm_style
ExclusiveArch: %{rust_arches}
- rust-crossterm_terminal
ExclusiveArch: %{rust_arches}
- rust-crossterm_utils
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures-async-runtime-preview
ExclusiveArch: %{rust_arches}
- rust-futures-channel-preview
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-core-preview
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor-preview
ExclusiveArch: %{rust_arches}
- rust-futures-io-preview
ExclusiveArch: %{rust_arches}
- rust-futures-preview
ExclusiveArch: %{rust_arches}
- rust-futures-sink-preview
ExclusiveArch: %{rust_arches}
- rust-futures-stable-preview
ExclusiveArch: %{rust_arches}
- rust-futures-util-preview
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-objekt
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.5
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slotmap0.2
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-async-await
ExclusiveArch: %{rust_arches}
- rust-tokio-buf
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-mockstream
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-service
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-trace-core
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-which1
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches}
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- termy-qt
ExclusiveArch: %{ix86} x86_64
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- toolbox
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: %{ix86} x86_64 noarch
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virtio-forwarder
ExclusiveArch: x86_64 aarch64 ppc64le %ix86
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zola
ExclusiveArch: %{rust_arches}
4 years, 6 months
Architecture specific change in rpms/ghc-pango.git
by githook-noreply@fedoraproject.org
The package rpms/ghc-pango.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ghc-pango.git/commit/?id=a040e9f0....
Change:
+ExcludeArch: ppc64le
Thanks.
Full change:
============
commit 80ff99d5a42288c32cd863ff8c022b74ecbcf0b2
Author: Jens Petersen <petersen(a)redhat.com>
Date: Tue Oct 8 13:22:51 2019 +0800
patch by peti for glib-2.61 __attribute__ error
https://github.com/gtk2hs/gtk2hs/pull/282
diff --git a/0a6016e89ce98415bb395ca0cfafeaacf3b3fce6.patch b/0a6016e89ce98415bb395ca0cfafeaacf3b3fce6.patch
new file mode 100644
index 0000000..6bf09d4
--- /dev/null
+++ b/0a6016e89ce98415bb395ca0cfafeaacf3b3fce6.patch
@@ -0,0 +1,26 @@
+From 0a6016e89ce98415bb395ca0cfafeaacf3b3fce6 Mon Sep 17 00:00:00 2001
+From: Peter Simons <simons(a)cryp.to>
+Date: Sun, 6 Oct 2019 12:34:25 +0200
+Subject: [PATCH] pango: ignore the __attribute__(A) annotation introduced in
+ glib-2.61.2
+
+---
+ pango/pango.cabal | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pango/pango.cabal b/pango/pango.cabal
+index 2eef515b..836e457f 100644
+--- a/pango/pango.cabal
++++ b/pango/pango.cabal
+@@ -78,9 +78,9 @@ Library
+ x-c2hs-Header: hspango.h
+ includes: hspango.h
+ include-dirs: .
+- cpp-options: -U__BLOCKS__
++ cpp-options: -U__BLOCKS__ -D__attribute__(A)=
+ if os(darwin) || os(freebsd)
+- cpp-options: -D__attribute__(A)= -D_Nullable= -D_Nonnull= -D_Noreturn=
++ cpp-options: -D_Nullable= -D_Nonnull= -D_Noreturn=
+ if os(windows)
+ cpp-options: -D__USE_MINGW_ANSI_STDIO=1
+ -- Pango 1.26 has a mysterious bug that makes it go into an infinite
diff --git a/ghc-pango.spec b/ghc-pango.spec
index 5ef100b..522e6d2 100644
--- a/ghc-pango.spec
+++ b/ghc-pango.spec
@@ -14,6 +14,7 @@ Url: https://hackage.haskell.org/package/%{pkg_name}
# Begin cabal-rpm sources:
Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
# End cabal-rpm sources
+Patch0: https://github.com/gtk2hs/gtk2hs/commit/0a6016e89ce98415bb395ca0cfafeaacf...
# Begin cabal-rpm deps:
BuildRequires: ghc-Cabal-devel
@@ -84,6 +85,7 @@ This package provides the Haskell %{pkg_name} profiling library.
# Begin cabal-rpm setup:
%setup -q -n %{pkgver}
# End cabal-rpm setup
+%patch0 -p2 -b .orig
%build
commit 85fbf17fb931e9b52d0eec3ad3a67d082b740e39
Author: Jens Petersen <petersen(a)redhat.com>
Date: Tue Oct 8 11:39:08 2019 +0800
move demo to new doc subpkg
diff --git a/ghc-pango.spec b/ghc-pango.spec
index ac49659..5ef100b 100644
--- a/ghc-pango.spec
+++ b/ghc-pango.spec
@@ -108,11 +108,11 @@ rm -r %{buildroot}%{_datadir}/%{pkgver}
%files devel -f %{name}-devel.files
-%doc demo
%if %{with haddock}
%files doc -f %{name}-doc.files
+%doc demo
%endif
@@ -125,6 +125,7 @@ rm -r %{buildroot}%{_datadir}/%{pkgver}
* Tue Oct 8 2019 Jens Petersen <petersen(a)redhat.com> - 0.13.6.0-1
- update to 0.13.6.0
- exclude ppc64le because of #1737587
+- move demo to doc subpkg
* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.13.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
commit a040e9f0c81aa823a914bb6bafeb01dcb6e16017
Author: Jens Petersen <petersen(a)redhat.com>
Date: Tue Oct 8 11:38:59 2019 +0800
exclude ppc64le because of #1737587
diff --git a/ghc-pango.spec b/ghc-pango.spec
index 28a16e6..ac49659 100644
--- a/ghc-pango.spec
+++ b/ghc-pango.spec
@@ -34,6 +34,7 @@ BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(pangocairo)
# End cabal-rpm deps
+ExcludeArch: ppc64le
%description
This package provides a wrapper around the Pango C library that allows
@@ -121,8 +122,9 @@ rm -r %{buildroot}%{_datadir}/%{pkgver}
%changelog
-* Thu Jul 25 2019 Jens Petersen <petersen(a)redhat.com> - 0.13.6.0-1
+* Tue Oct 8 2019 Jens Petersen <petersen(a)redhat.com> - 0.13.6.0-1
- update to 0.13.6.0
+- exclude ppc64le because of #1737587
* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.13.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
commit 3f258b3437df9c994c53fb220672467edc127e28
Author: Jens Petersen <petersen(a)redhat.com>
Date: Mon Aug 5 18:30:58 2019 +0800
BR prof for lib and static for executable
diff --git a/ghc-pango.spec b/ghc-pango.spec
index d0bf48d..28a16e6 100644
--- a/ghc-pango.spec
+++ b/ghc-pango.spec
@@ -1,4 +1,4 @@
-# generated by cabal-rpm-1.0.0
+# generated by cabal-rpm-1.0.1
# https://fedoraproject.org/wiki/Packaging:Haskell
%global pkg_name pango
@@ -16,27 +16,20 @@ Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
# End cabal-rpm sources
# Begin cabal-rpm deps:
-# Setup
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-filepath-devel
BuildRequires: ghc-gtk2hs-buildtools-devel
-%if %{with haddock}
-BuildRequires: ghc-doc
-%endif
-%if %{with ghc_prof}
-BuildRequires: ghc-prof
-%endif
BuildRequires: ghc-rpm-macros
-# Build
-BuildRequires: ghc-array-devel
-BuildRequires: ghc-cairo-devel
-BuildRequires: ghc-containers-devel
-BuildRequires: ghc-directory-devel
-BuildRequires: ghc-glib-devel
-BuildRequires: ghc-mtl-devel
-BuildRequires: ghc-pretty-devel
-BuildRequires: ghc-process-devel
-BuildRequires: ghc-text-devel
+BuildRequires: ghc-array-prof
+BuildRequires: ghc-base-prof
+BuildRequires: ghc-cairo-prof
+BuildRequires: ghc-containers-prof
+BuildRequires: ghc-directory-prof
+BuildRequires: ghc-glib-prof
+BuildRequires: ghc-mtl-prof
+BuildRequires: ghc-pretty-prof
+BuildRequires: ghc-process-prof
+BuildRequires: ghc-text-prof
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(pangocairo)
@@ -52,6 +45,7 @@ on-screen.
%package devel
Summary: Haskell %{pkg_name} library development files
Provides: %{name}-static = %{version}-%{release}
+Provides: %{name}-static%{?_isa} = %{version}-%{release}
%if %{defined ghc_version}
Requires: ghc-compiler = %{ghc_version}
%endif
@@ -103,7 +97,7 @@ This package provides the Haskell %{pkg_name} profiling library.
# End cabal-rpm install
# demo files
-rm -r %{buildroot}%{_datadir}/%{pkg_name}-%{version}
+rm -r %{buildroot}%{_datadir}/%{pkgver}
%files -f %{name}.files
commit fcd619e1ca8bf594b57d072920f373155f36a345
Author: Jens Petersen <petersen(a)redhat.com>
Date: Thu Jul 25 16:19:55 2019 +0000
update to 0.13.6.0
diff --git a/.gitignore b/.gitignore
index 62d1beb..4b26188 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,4 @@
/pango-0.13.3.1.tar.gz
/pango-0.13.4.0.tar.gz
/pango-0.13.5.0.tar.gz
+/pango-0.13.6.0.tar.gz
diff --git a/ghc-pango.spec b/ghc-pango.spec
index 871b0d8..d0bf48d 100644
--- a/ghc-pango.spec
+++ b/ghc-pango.spec
@@ -5,8 +5,8 @@
%global pkgver %{pkg_name}-%{version}
Name: ghc-%{pkg_name}
-Version: 0.13.5.0
-Release: 4%{?dist}
+Version: 0.13.6.0
+Release: 1%{?dist}
Summary: Binding to the Pango text rendering engine
License: LGPLv2+
@@ -127,6 +127,9 @@ rm -r %{buildroot}%{_datadir}/%{pkg_name}-%{version}
%changelog
+* Thu Jul 25 2019 Jens Petersen <petersen(a)redhat.com> - 0.13.6.0-1
+- update to 0.13.6.0
+
* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.13.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
diff --git a/sources b/sources
index b1a8455..a31c754 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (pango-0.13.5.0.tar.gz) = d1d6e61118f193d0849e44a2f589391e36f9e6bc80cbf45071d01384e12f600158cad11a49b194388baa1c8c8941a16f8b147a67982016bd9b95035a5f108827
+SHA512 (pango-0.13.6.0.tar.gz) = 03a3e133499d202e6d6b1471db287ef1f0f8933b6112e367ce20450d171e8713ffe0caea46ba60fc7ead6c47548cd8bcaf1fe39bb2423099f1c2980484864a8d
commit 8c76bc4b1e5fac4c49d8b9189e875c1a7f5efba8
Author: Jens Petersen <petersen(a)redhat.com>
Date: Thu Jul 25 04:25:02 2019 +0000
refresh to cabal-rpm-1.0.0: lib doc/prof subpkgs and bin static BRs
diff --git a/ghc-pango.spec b/ghc-pango.spec
index 52a3a15..871b0d8 100644
--- a/ghc-pango.spec
+++ b/ghc-pango.spec
@@ -1,4 +1,4 @@
-# generated by cabal-rpm-0.13
+# generated by cabal-rpm-1.0.0
# https://fedoraproject.org/wiki/Packaging:Haskell
%global pkg_name pango
@@ -16,15 +16,23 @@ Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
# End cabal-rpm sources
# Begin cabal-rpm deps:
+# Setup
BuildRequires: ghc-Cabal-devel
+BuildRequires: ghc-filepath-devel
+BuildRequires: ghc-gtk2hs-buildtools-devel
+%if %{with haddock}
+BuildRequires: ghc-doc
+%endif
+%if %{with ghc_prof}
+BuildRequires: ghc-prof
+%endif
BuildRequires: ghc-rpm-macros
+# Build
BuildRequires: ghc-array-devel
BuildRequires: ghc-cairo-devel
BuildRequires: ghc-containers-devel
BuildRequires: ghc-directory-devel
-BuildRequires: ghc-filepath-devel
BuildRequires: ghc-glib-devel
-BuildRequires: ghc-gtk2hs-buildtools-devel
BuildRequires: ghc-mtl-devel
BuildRequires: ghc-pretty-devel
BuildRequires: ghc-process-devel
@@ -44,11 +52,8 @@ on-screen.
%package devel
Summary: Haskell %{pkg_name} library development files
Provides: %{name}-static = %{version}-%{release}
-Provides: %{name}-doc = %{version}-%{release}
%if %{defined ghc_version}
Requires: ghc-compiler = %{ghc_version}
-Requires(post): ghc-compiler = %{ghc_version}
-Requires(postun): ghc-compiler = %{ghc_version}
%endif
Requires: %{name}%{?_isa} = %{version}-%{release}
# Begin cabal-rpm deps:
@@ -61,6 +66,25 @@ Requires: pkgconfig(pangocairo)
This package provides the Haskell %{pkg_name} library development files.
+%if %{with haddock}
+%package doc
+Summary: Haskell %{pkg_name} library documentation
+
+%description doc
+This package provides the Haskell %{pkg_name} library documentation.
+%endif
+
+
+%if %{with ghc_prof}
+%package prof
+Summary: Haskell %{pkg_name} profiling library
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+
+%description prof
+This package provides the Haskell %{pkg_name} profiling library.
+%endif
+
+
%prep
# Begin cabal-rpm setup:
%setup -q -n %{pkgver}
@@ -82,14 +106,6 @@ This package provides the Haskell %{pkg_name} library development files.
rm -r %{buildroot}%{_datadir}/%{pkg_name}-%{version}
-%post devel
-%ghc_pkg_recache
-
-
-%postun devel
-%ghc_pkg_recache
-
-
%files -f %{name}.files
# Begin cabal-rpm files:
%license COPYING
@@ -100,6 +116,16 @@ rm -r %{buildroot}%{_datadir}/%{pkg_name}-%{version}
%doc demo
+%if %{with haddock}
+%files doc -f %{name}-doc.files
+%endif
+
+
+%if %{with ghc_prof}
+%files prof -f %{name}-prof.files
+%endif
+
+
%changelog
* Thu Jul 25 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.13.5.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
4 years, 6 months
Architecture specific change in rpms/chromium.git
by githook-noreply@fedoraproject.org
The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=51e320816...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=3c9581069...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=35521ebaf...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=5e096a366...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=e9192241d...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=f7aa602c5...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=1ef42a21d...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=5a0168685....
Change:
-%ifarch x86_64
+%ifarch %{ix86}
+%ifarch %{ix86}
-%ifarch x86_64
-%ifarch x86_64
+%ifarch %{ix86}
-%ifarch x86_64
+%ifarch %{ix86}
Thanks.
Full change:
============
commit d0e087ec98e9c1b1c44cd67a1aa8abb3f823c640
Merge: 0e5b248 ff01f5a
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:04:50 2019 -0400
merge fix
commit ff01f5a7525845f12836c9a70bb9d1821a76b5ea
Merge: 286dfc8 77f7b18
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:02:13 2019 -0400
merge fix
commit 77f7b18d5f5f7fc1abe87f2704a3e1fc453a9f5d
Merge: e7f437f 5a0ab75
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:00:23 2019 -0400
merge fix
commit 5a0ab7571f0c7dd5eb02385589150ab3c958bfe3
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 08:57:05 2019 -0400
last bit of fixes
diff --git a/chromium-77-clang.patch b/chromium-77-clang.patch
new file mode 100644
index 0000000..a57b5a4
--- /dev/null
+++ b/chromium-77-clang.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-78-revert-noexcept-r1.patch b/chromium-78-revert-noexcept-r1.patch
new file mode 100644
index 0000000..408d618
--- /dev/null
+++ b/chromium-78-revert-noexcept-r1.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-78.0.3904.70-base-gcc-no-alignas.patch b/chromium-78.0.3904.70-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..4856c36
--- /dev/null
+++ b/chromium-78.0.3904.70-base-gcc-no-alignas.patch
@@ -0,0 +1,68 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
+--- a/third_party/protobuf/src/google/protobuf/arena.h
++++ b/third_party/protobuf/src/google/protobuf/arena.h
+@@ -245,7 +245,7 @@ struct ArenaOptions {
+ // well as protobuf container types like RepeatedPtrField and Map. The protocol
+ // is internal to protobuf and is not guaranteed to be stable. Non-proto types
+ // should not rely on this protocol.
+-class PROTOBUF_EXPORT alignas(8) Arena final {
++class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
+ public:
+ // Arena constructor taking custom options. See ArenaOptions below for
+ // descriptions of the options available.
+--- a/third_party/protobuf/src/google/protobuf/port_def.inc
++++ b/third_party/protobuf/src/google/protobuf/port_def.inc
+@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
+ #undef IN
+ #endif // _MSC_VER
+
++// Specify memory alignment for structs, classes, etc.
++// Use like:
++// class PROTOBUF_ALIGNAS(16) MyClass { ... }
++// PROTOBUF_ALIGNAS(16) int array[4];
++//
++// In most places you can use the C++11 keyword "alignas", which is preferred.
++//
++// But compilers have trouble mixing __attribute__((...)) syntax with
++// alignas(...) syntax.
++//
++// Doesn't work in clang or gcc:
++// struct alignas(16) __attribute__((packed)) S { char c; };
++// Works in clang but not gcc:
++// struct __attribute__((packed)) alignas(16) S2 { char c; };
++// Works in clang and gcc:
++// struct alignas(16) S3 { char c; } __attribute__((packed));
++//
++// There are also some attributes that must be specified *before* a class
++// definition: visibility (used for exporting functions/classes) is one of
++// these attributes. This means that it is not possible to use alignas() with a
++// class that is marked as exported.
++#if defined(_MSC_VER)
++#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
++#elif defined(__GNUC__)
++#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
++#else
++#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
++#endif
++
+ #if defined(__clang__)
+ #pragma clang diagnostic push
+ // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
+--- a/third_party/protobuf/src/google/protobuf/port_undef.inc
++++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
+@@ -80,6 +80,7 @@
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
++#undef PROTOBUF_ALIGNAS
diff --git a/chromium-78.0.3904.70-v8-tracedreference-fix.patch b/chromium-78.0.3904.70-v8-tracedreference-fix.patch
new file mode 100644
index 0000000..789bdd0
--- /dev/null
+++ b/chromium-78.0.3904.70-v8-tracedreference-fix.patch
@@ -0,0 +1,302 @@
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc.v8-tracedreference-fix 2019-10-21 15:06:42.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc 2019-10-23 14:30:25.679541652 -0400
+@@ -173,8 +173,9 @@ class GC_PLUGIN_IGNORE(
+ uint16_t class_id) override;
+
+ // v8::EmbedderHeapTracer::TracedGlobalHandleVisitor override.
+- void VisitTracedGlobalHandle(
+- const v8::TracedGlobal<v8::Value>& value) override;
++ void VisitTracedReference(
++ const v8::TracedReference<v8::Value>& value) override;
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) override;
+
+ // Visitor overrides.
+ void VisitRoot(void*, TraceDescriptor, const base::Location&) final;
+@@ -508,8 +509,8 @@ void V8EmbedderGraphBuilder::VisitPersis
+ }
+ }
+
+-void V8EmbedderGraphBuilder::VisitTracedGlobalHandle(
+- const v8::TracedGlobal<v8::Value>& value) {
++void V8EmbedderGraphBuilder::VisitTracedReference(
++ const v8::TracedReference<v8::Value>& value) {
+ const uint16_t class_id = value.WrapperClassId();
+ if (class_id != WrapperTypeInfo::kNodeClassId &&
+ class_id != WrapperTypeInfo::kObjectClassId)
+@@ -517,6 +518,11 @@ void V8EmbedderGraphBuilder::VisitTraced
+ VisitPersistentHandleInternal(value.As<v8::Object>().Get(isolate_), class_id);
+ }
+
++void V8EmbedderGraphBuilder::VisitTracedGlobalHandle(
++ const v8::TracedGlobal<v8::Value>&) {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++}
++
+ void V8EmbedderGraphBuilder::VisitPersistentHandle(
+ v8::Persistent<v8::Value>* value,
+ uint16_t class_id) {
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc.v8-tracedreference-fix 2019-10-21 15:06:42.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc 2019-10-23 14:30:25.683541568 -0400
+@@ -260,7 +260,11 @@ class DOMWrapperForwardingVisitor final
+ VisitHandle(value, class_id);
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ VisitHandle(&value, value.WrapperClassId());
+ }
+
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h 2019-10-23 14:30:25.685541526 -0400
+@@ -229,6 +229,11 @@ class DOMDataStore {
+ DOMWorldWrapperReference(v8::Isolate* isolate, v8::Local<v8::Object> handle)
+ : TraceWrapperV8Reference(isolate, handle) {}
+
++ ~DOMWorldWrapperReference() {
++ // Destruction of a reference should clear it immediately.
++ Clear();
++ }
++
+ // Move support without write barrier.
+ DOMWorldWrapperReference(DOMWorldWrapperReference&& other)
+ : TraceWrapperV8Reference() {
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h 2019-10-23 14:30:25.687541484 -0400
+@@ -161,6 +161,11 @@ class PLATFORM_EXPORT ScriptWrappable
+ return main_world_wrapper_.NewLocal(isolate);
+ }
+
++ static_assert(
++ std::is_trivially_destructible<
++ TraceWrapperV8Reference<v8::Object>>::value,
++ "TraceWrapperV8Reference<v8::Object> should be trivially destructible.");
++
+ TraceWrapperV8Reference<v8::Object> main_world_wrapper_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScriptWrappable);
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h 2019-10-23 14:30:25.688541463 -0400
+@@ -11,15 +11,6 @@
+ #include "third_party/blink/renderer/platform/heap/unified_heap_marking_visitor.h"
+ #include "v8/include/v8.h"
+
+-namespace v8 {
+-
+-template <typename T>
+-struct TracedGlobalTrait<v8::TracedGlobal<T>> {
+- static constexpr bool kRequiresExplicitDestruction = false;
+-};
+-
+-} // namespace v8
+-
+ namespace blink {
+
+ /**
+@@ -50,8 +41,8 @@ class TraceWrapperV8Reference {
+
+ bool IsEmpty() const { return handle_.IsEmpty(); }
+ void Clear() { handle_.Reset(); }
+- ALWAYS_INLINE const v8::TracedGlobal<T>& Get() const { return handle_; }
+- ALWAYS_INLINE v8::TracedGlobal<T>& Get() { return handle_; }
++ ALWAYS_INLINE const v8::TracedReference<T>& Get() const { return handle_; }
++ ALWAYS_INLINE v8::TracedReference<T>& Get() { return handle_; }
+
+ template <typename S>
+ const TraceWrapperV8Reference<S>& Cast() const {
+@@ -124,7 +115,7 @@ class TraceWrapperV8Reference {
+ UnifiedHeapMarkingVisitor::WriteBarrier(UnsafeCast<v8::Value>());
+ }
+
+- v8::TracedGlobal<T> handle_;
++ v8::TracedReference<T> handle_;
+ };
+
+ } // namespace blink
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h 2019-10-23 14:30:25.689541442 -0400
+@@ -122,7 +122,7 @@ struct WrapperTypeInfo {
+ wrapper->SetWrapperClassId(wrapper_class_id);
+ }
+
+- void ConfigureWrapper(v8::TracedGlobal<v8::Object>* wrapper) const {
++ void ConfigureWrapper(v8::TracedReference<v8::Object>* wrapper) const {
+ wrapper->SetWrapperClassId(wrapper_class_id);
+ }
+
+@@ -177,7 +177,7 @@ inline T* GetInternalField(const v8::Per
+ }
+
+ template <typename T, int offset>
+-inline T* GetInternalField(const v8::TracedGlobal<v8::Object>& global) {
++inline T* GetInternalField(const v8::TracedReference<v8::Object>& global) {
+ DCHECK_LT(offset, v8::Object::InternalFieldCount(global));
+ return reinterpret_cast<T*>(
+ v8::Object::GetAlignedPointerFromInternalField(global, offset));
+@@ -198,7 +198,7 @@ inline ScriptWrappable* ToScriptWrappabl
+ }
+
+ inline ScriptWrappable* ToScriptWrappable(
+- const v8::TracedGlobal<v8::Object>& wrapper) {
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<ScriptWrappable, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+@@ -219,7 +219,8 @@ inline void* ToUntypedWrappable(const v8
+ return GetInternalField<void, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+-inline void* ToUntypedWrappable(const v8::TracedGlobal<v8::Object>& wrapper) {
++inline void* ToUntypedWrappable(
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<void, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+@@ -233,7 +234,7 @@ inline const WrapperTypeInfo* ToWrapperT
+ }
+
+ inline const WrapperTypeInfo* ToWrapperTypeInfo(
+- const v8::TracedGlobal<v8::Object>& wrapper) {
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<WrapperTypeInfo, kV8DOMWrapperTypeIndex>(wrapper);
+ }
+
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc 2019-10-23 14:30:25.693541359 -0400
+@@ -1451,11 +1451,15 @@ class ClearReferencesInDeadObjectsVisito
+ value->Reset();
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ // TODO(mlippautz): Avoid const_cast after changing the API to allow
+- // modificaton of the TracedGlobal handle.
+- if (InDeadObject(&const_cast<v8::TracedGlobal<v8::Value>&>(value)))
+- const_cast<v8::TracedGlobal<v8::Value>&>(value).Reset();
++ // modificaton of the handle.
++ if (InDeadObject(&const_cast<v8::TracedReference<v8::Value>&>(value)))
++ const_cast<v8::TracedReference<v8::Value>&>(value).Reset();
+ }
+
+ private:
+@@ -1584,11 +1588,15 @@ class UnpoisonHandlesVisitor final
+ VisitSlot(value, sizeof(v8::Persistent<v8::Value>));
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ // TODO(mlippautz): Avoid const_cast after changing the API to allow
+- // modificaton of the TracedGlobal handle.
+- VisitSlot(&const_cast<v8::TracedGlobal<v8::Value>&>(value),
+- sizeof(v8::TracedGlobal<v8::Value>));
++ // modificaton of the handle.
++ VisitSlot(&const_cast<v8::TracedReference<v8::Value>&>(value),
++ sizeof(v8::TracedReference<v8::Value>));
+ }
+
+ private:
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc 2019-10-23 14:32:34.722840885 -0400
+@@ -147,16 +147,19 @@ bool UnifiedHeapController::IsTracingDon
+ return is_tracing_done_;
+ }
+
+-bool UnifiedHeapController::IsRootForNonTracingGCInternal(
+- const v8::TracedGlobal<v8::Value>& handle) {
++namespace {
++
++bool IsRootForNonTracingGCInternal(
++ const v8::TracedReference<v8::Value>& handle) {
+ const uint16_t class_id = handle.WrapperClassId();
+- // Stand-alone TracedGlobal reference or kCustomWrappableId. Keep as root as
++ // Stand-alone reference or kCustomWrappableId. Keep as root as
+ // we don't know better.
+ if (class_id != WrapperTypeInfo::kNodeClassId &&
+ class_id != WrapperTypeInfo::kObjectClassId)
+ return true;
+
+- const v8::TracedGlobal<v8::Object>& traced = handle.As<v8::Object>();
++ const v8::TracedReference<v8::Object>& traced =
++ handle.template As<v8::Object>();
+ if (ToWrapperTypeInfo(traced)->IsActiveScriptWrappable() &&
+ ToScriptWrappable(traced)->HasPendingActivity()) {
+ return true;
+@@ -169,8 +172,10 @@ bool UnifiedHeapController::IsRootForNon
+ return false;
+ }
+
++} // namespace
++
+ void UnifiedHeapController::ResetHandleInNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
++ const v8::TracedReference<v8::Value>& handle) {
+ const uint16_t class_id = handle.WrapperClassId();
+ // Only consider handles that have not been treated as roots, see
+ // IsRootForNonTracingGCInternal.
+@@ -178,15 +183,21 @@ void UnifiedHeapController::ResetHandleI
+ class_id != WrapperTypeInfo::kObjectClassId)
+ return;
+
+- const v8::TracedGlobal<v8::Object>& traced = handle.As<v8::Object>();
++ const v8::TracedReference<v8::Object>& traced = handle.As<v8::Object>();
+ ToScriptWrappable(traced)->UnsetWrapperIfAny();
+ }
+
+ bool UnifiedHeapController::IsRootForNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
++ const v8::TracedReference<v8::Value>& handle) {
+ return IsRootForNonTracingGCInternal(handle);
+ }
+
++bool UnifiedHeapController::IsRootForNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ return false;
++}
++
+ void UnifiedHeapController::ReportBufferedAllocatedSizeIfPossible() {
+ DCHECK(base::FeatureList::IsEnabled(
+ blink::features::kBlinkHeapUnifiedGCScheduling));
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h 2019-10-23 14:30:25.695541317 -0400
+@@ -45,8 +45,9 @@ class PLATFORM_EXPORT UnifiedHeapControl
+ void RegisterV8References(const std::vector<std::pair<void*, void*>>&) final;
+ bool AdvanceTracing(double) final;
+ bool IsTracingDone() final;
++ bool IsRootForNonTracingGC(const v8::TracedReference<v8::Value>&) final;
+ bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>&) final;
+- void ResetHandleInNonTracingGC(const v8::TracedGlobal<v8::Value>&) final;
++ void ResetHandleInNonTracingGC(const v8::TracedReference<v8::Value>&) final;
+
+ ThreadState* thread_state() const { return thread_state_; }
+
+@@ -59,9 +60,6 @@ class PLATFORM_EXPORT UnifiedHeapControl
+ void DecreaseAllocatedSpace(size_t) final {}
+
+ private:
+- static bool IsRootForNonTracingGCInternal(
+- const v8::TracedGlobal<v8::Value>& handle);
+-
+ void ReportBufferedAllocatedSizeIfPossible();
+
+ ThreadState* const thread_state_;
diff --git a/chromium.spec b/chromium.spec
index 764e85d..c03e832 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -55,15 +55,15 @@
# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
-# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
+# for i in `find . -name "*.so" | sort`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
# for RHEL7, append libfontconfig to the end
# make sure there is not a trailing | at the end of the list
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
+%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libEGL|libGLESv2|libvk_swiftshader|libfontconfig
%else
-%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
+%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libEGL|libGLESv2|libvk_swiftshader
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -209,7 +209,8 @@ Patch53: chromium-78.0.3904.70-unbundle-zlib.patch
# Needs to be submitted..
Patch54: chromium-77.0.3865.75-gcc-include-memory.patch
# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
-Patch55: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch55: chromium-78.0.3904.70-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
Patch56: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
@@ -230,6 +231,14 @@ Patch63: chromium-78-pm-crash.patch
Patch64: chromium-78-protobuf-export.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-78-include.patch
+# https://dev.gentoo.org/~floppym/dist/chromium-78-revert-noexcept-r1.patch.gz
+Patch66: chromium-78-revert-noexcept-r1.patch
+# https://chromium.googlesource.com/chromium/src/+/9d01bb7f93ba4837b4430417...
+Patch67: chromium-78.0.3904.70-v8-tracedreference-fix.patch
+# https://chromium.googlesource.com/v8/v8/+/3677468397fa7f9fad9bbd71e9fb312...
+Patch68: v8-implement-tracedreference.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch69: chromium-77-clang.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -759,6 +768,10 @@ udev.
%patch63 -p1 -b .pm-crash
%patch64 -p1 -b .protobuf-export
%patch65 -p1 -b .missing-includes
+%patch66 -p1 -b .gentoo-revert-noexcept
+%patch67 -p1 -b .implement-TraceWrapperV8Reference-without-destructor
+%patch68 -p1 -b .v8-implement-tracedreference
+%patch69 -p1 -b .clang-supports-location-builtins
# Fedora branded user agent
%if 0%{?fedora}
@@ -992,6 +1005,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/cros_system_api' \
'third_party/dav1d' \
'third_party/dawn' \
+ 'third_party/depot_tools' \
'third_party/devscripts' \
'third_party/dom_distiller_js' \
'third_party/emoji-segmenter' \
@@ -1076,6 +1090,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/pffft' \
'third_party/ply' \
'third_party/polymer' \
+ 'third_party/private-join-and-compute' \
'third_party/protobuf' \
'third_party/protobuf/third_party/six' \
'third_party/pyjson5' \
diff --git a/v8-implement-tracedreference.patch b/v8-implement-tracedreference.patch
new file mode 100644
index 0000000..7dc7487
--- /dev/null
+++ b/v8-implement-tracedreference.patch
@@ -0,0 +1,796 @@
+diff -up chromium-78.0.3904.70/v8/include/v8.h.implement-tracedreference chromium-78.0.3904.70/v8/include/v8.h
+--- chromium-78.0.3904.70/v8/include/v8.h.implement-tracedreference 2019-10-24 08:58:26.185640117 -0400
++++ chromium-78.0.3904.70/v8/include/v8.h 2019-10-24 09:18:33.719546481 -0400
+@@ -96,6 +96,10 @@ template <class T>
+ class Global;
+ template <class T>
+ class TracedGlobal;
++template <class T>
++class TracedReference;
++template <class T>
++class TracedReferenceBase;
+ template<class K, class V, class T> class PersistentValueMap;
+ template <class K, class V, class T>
+ class PersistentValueMapBase;
+@@ -281,7 +285,8 @@ class Local {
+ V8_INLINE static Local<T> New(Isolate* isolate, Local<T> that);
+ V8_INLINE static Local<T> New(Isolate* isolate,
+ const PersistentBase<T>& that);
+- V8_INLINE static Local<T> New(Isolate* isolate, const TracedGlobal<T>& that);
++ V8_INLINE static Local<T> New(Isolate* isolate,
++ const TracedReferenceBase<T>& that);
+
+ private:
+ friend class Utils;
+@@ -311,7 +316,13 @@ class Local {
+ template <class F>
+ friend class ReturnValue;
+ template <class F>
++ friend class Traced;
++ template <class F>
+ friend class TracedGlobal;
++ template <class F>
++ friend class TracedReferenceBase;
++ template <class F>
++ friend class TracedReference;
+
+ explicit V8_INLINE Local(T* that) : val_(that) {}
+ V8_INLINE static Local<T> New(Isolate* isolate, T* that);
+@@ -792,22 +803,10 @@ template <class T>
+ using UniquePersistent = Global<T>;
+
+ /**
+- * Trait specifying behavior of |TracedGlobal<T>|.
++ * Deprecated. Use |TracedReference<T>| instead.
+ */
+ template <typename T>
+-struct TracedGlobalTrait {
+- /**
+- * Specifies whether |TracedGlobal<T>| should clear its handle on destruction.
+- *
+- * V8 will *not* clear the embedder-side memory of the handle. The embedder is
+- * expected to report all |TracedGlobal<T>| handles through
+- * |EmbedderHeapTracer| upon garabge collection.
+- *
+- * See |EmbedderHeapTracer::IsRootForNonTracingGC| for handling with
+- * non-tracing GCs in V8.
+- */
+- static constexpr bool kRequiresExplicitDestruction = true;
+-};
++struct TracedGlobalTrait {};
+
+ /**
+ * A traced handle with copy and move semantics. The handle is to be used
+@@ -820,15 +819,131 @@ struct TracedGlobalTrait {
+ * |v8::EmbedderHeapTracer::IsRootForNonTracingGC()| whether the handle should
+ * be treated as root or not.
+ *
+- * For destruction semantics see |TracedGlobalTrait<T>|.
++ * Note that the base class cannot be instantiated itself. Choose from
++ * - TracedGlobal
++ * - TracedReference
+ */
+ template <typename T>
+-class TracedGlobal {
++class TracedReferenceBase {
+ public:
+ /**
++ * Returns true if this TracedReferenceBase is empty, i.e., has not been
++ * assigned an object.
++ */
++ bool IsEmpty() const { return val_ == nullptr; }
++
++ /**
++ * If non-empty, destroy the underlying storage cell. |IsEmpty| will return
++ * true after this call.
++ */
++ V8_INLINE void Reset();
++
++ /**
++ * Construct a Local<T> from this handle.
++ */
++ Local<T> Get(Isolate* isolate) const { return Local<T>::New(isolate, *this); }
++
++ template <class S>
++ V8_INLINE bool operator==(const TracedReferenceBase<S>& that) const {
++ internal::Address* a = reinterpret_cast<internal::Address*>(val_);
++ internal::Address* b = reinterpret_cast<internal::Address*>(that.val_);
++ if (a == nullptr) return b == nullptr;
++ if (b == nullptr) return false;
++ return *a == *b;
++ }
++
++ template <class S>
++ V8_INLINE bool operator==(const Local<S>& that) const {
++ internal::Address* a = reinterpret_cast<internal::Address*>(val_);
++ internal::Address* b = reinterpret_cast<internal::Address*>(that.val_);
++ if (a == nullptr) return b == nullptr;
++ if (b == nullptr) return false;
++ return *a == *b;
++ }
++
++ template <class S>
++ V8_INLINE bool operator!=(const TracedReferenceBase<S>& that) const {
++ return !operator==(that);
++ }
++
++ template <class S>
++ V8_INLINE bool operator!=(const Local<S>& that) const {
++ return !operator==(that);
++ }
++
++ /**
++ * Assigns a wrapper class ID to the handle.
++ */
++ V8_INLINE void SetWrapperClassId(uint16_t class_id);
++
++ /**
++ * Returns the class ID previously assigned to this handle or 0 if no class ID
++ * was previously assigned.
++ */
++ V8_INLINE uint16_t WrapperClassId() const;
++
++ /**
++ * Adds a finalization callback to the handle. The type of this callback is
++ * similar to WeakCallbackType::kInternalFields, i.e., it will pass the
++ * parameter and the first two internal fields of the object.
++ *
++ * The callback is then supposed to reset the handle in the callback. No
++ * further V8 API may be called in this callback. In case additional work
++ * involving V8 needs to be done, a second callback can be scheduled using
++ * WeakCallbackInfo<void>::SetSecondPassCallback.
++ */
++ V8_INLINE void SetFinalizationCallback(
++ void* parameter, WeakCallbackInfo<void>::Callback callback);
++
++ template <class S>
++ V8_INLINE TracedReferenceBase<S>& As() const {
++ return reinterpret_cast<TracedReferenceBase<S>&>(
++ const_cast<TracedReferenceBase<T>&>(*this));
++ }
++
++ private:
++ enum DestructionMode { kWithDestructor, kWithoutDestructor };
++
++ /**
++ * An empty TracedReferenceBase without storage cell.
++ */
++ TracedReferenceBase() = default;
++
++ V8_INLINE static T* New(Isolate* isolate, T* that, void* slot,
++ DestructionMode destruction_mode);
++
++ T* val_ = nullptr;
++
++ friend class EmbedderHeapTracer;
++ template <typename F>
++ friend class Local;
++ friend class Object;
++ template <typename F>
++ friend class TracedGlobal;
++ template <typename F>
++ friend class TracedReference;
++ template <typename F>
++ friend class ReturnValue;
++};
++
++/**
++ * A traced handle with destructor that clears the handle. For more details see
++ * TracedReferenceBase.
++ */
++template <typename T>
++class TracedGlobal : public TracedReferenceBase<T> {
++ public:
++ using TracedReferenceBase<T>::Reset;
++
++ /**
++ * Destructor resetting the handle.
++ */
++ ~TracedGlobal() { this->Reset(); }
++
++ /**
+ * An empty TracedGlobal without storage cell.
+ */
+- TracedGlobal() = default;
++ TracedGlobal() : TracedReferenceBase<T>() {}
+
+ /**
+ * Construct a TracedGlobal from a Local.
+@@ -837,8 +952,9 @@ class TracedGlobal {
+ * pointing to the same object.
+ */
+ template <class S>
+- TracedGlobal(Isolate* isolate, Local<S> that)
+- : val_(New(isolate, *that, &val_)) {
++ TracedGlobal(Isolate* isolate, Local<S> that) : TracedReferenceBase<T>() {
++ this->val_ = this->New(isolate, that.val_, &this->val_,
++ TracedReferenceBase<T>::kWithDestructor);
+ TYPE_CHECK(T, S);
+ }
+
+@@ -905,121 +1021,126 @@ class TracedGlobal {
+ V8_INLINE TracedGlobal& operator=(const TracedGlobal<S>& rhs);
+
+ /**
+- * Returns true if this TracedGlobal is empty, i.e., has not been assigned an
+- * object.
+- */
+- bool IsEmpty() const { return val_ == nullptr; }
+-
+- /**
+- * If non-empty, destroy the underlying storage cell. |IsEmpty| will return
+- * true after this call.
+- */
+- V8_INLINE void Reset();
+-
+- /**
+ * If non-empty, destroy the underlying storage cell and create a new one with
+ * the contents of other if other is non empty
+ */
+ template <class S>
+ V8_INLINE void Reset(Isolate* isolate, const Local<S>& other);
+
+- /**
+- * Construct a Local<T> from this handle.
+- */
+- Local<T> Get(Isolate* isolate) const { return Local<T>::New(isolate, *this); }
+-
+ template <class S>
+ V8_INLINE TracedGlobal<S>& As() const {
+ return reinterpret_cast<TracedGlobal<S>&>(
+ const_cast<TracedGlobal<T>&>(*this));
+ }
++};
+
+- template <class S>
+- V8_INLINE bool operator==(const TracedGlobal<S>& that) const {
+- internal::Address* a = reinterpret_cast<internal::Address*>(**this);
+- internal::Address* b = reinterpret_cast<internal::Address*>(*that);
+- if (a == nullptr) return b == nullptr;
+- if (b == nullptr) return false;
+- return *a == *b;
+- }
++/**
++ * A traced handle without destructor that clears the handle. The embedder needs
++ * to ensure that the handle is not accessed once the V8 object has been
++ * reclaimed. This can happen when the handle is not passed through the
++ * EmbedderHeapTracer. For more details see TracedReferenceBase.
++ */
++template <typename T>
++class TracedReference : public TracedReferenceBase<T> {
++ public:
++ using TracedReferenceBase<T>::Reset;
++
++ /**
++ * An empty TracedReference without storage cell.
++ */
++ TracedReference() : TracedReferenceBase<T>() {}
+
++ /**
++ * Construct a TracedReference from a Local.
++ *
++ * When the Local is non-empty, a new storage cell is created
++ * pointing to the same object.
++ */
+ template <class S>
+- V8_INLINE bool operator==(const Local<S>& that) const {
+- internal::Address* a = reinterpret_cast<internal::Address*>(**this);
+- internal::Address* b = reinterpret_cast<internal::Address*>(*that);
+- if (a == nullptr) return b == nullptr;
+- if (b == nullptr) return false;
+- return *a == *b;
++ TracedReference(Isolate* isolate, Local<S> that) : TracedReferenceBase<T>() {
++ this->val_ = this->New(isolate, that.val_, &this->val_,
++ TracedReferenceBase<T>::kWithoutDestructor);
++ TYPE_CHECK(T, S);
+ }
+
+- template <class S>
+- V8_INLINE bool operator!=(const TracedGlobal<S>& that) const {
+- return !operator==(that);
++ /**
++ * Move constructor initializing TracedReference from an
++ * existing one.
++ */
++ V8_INLINE TracedReference(TracedReference&& other) {
++ // Forward to operator=.
++ *this = std::move(other);
+ }
+
+- template <class S>
+- V8_INLINE bool operator!=(const Local<S>& that) const {
+- return !operator==(that);
++ /**
++ * Move constructor initializing TracedReference from an
++ * existing one.
++ */
++ template <typename S>
++ V8_INLINE TracedReference(TracedReference<S>&& other) {
++ // Forward to operator=.
++ *this = std::move(other);
+ }
+
+ /**
+- * Assigns a wrapper class ID to the handle.
++ * Copy constructor initializing TracedReference from an
++ * existing one.
+ */
+- V8_INLINE void SetWrapperClassId(uint16_t class_id);
++ V8_INLINE TracedReference(const TracedReference& other) {
++ // Forward to operator=;
++ *this = other;
++ }
+
+ /**
+- * Returns the class ID previously assigned to this handle or 0 if no class ID
+- * was previously assigned.
++ * Copy constructor initializing TracedReference from an
++ * existing one.
+ */
+- V8_INLINE uint16_t WrapperClassId() const;
++ template <typename S>
++ V8_INLINE TracedReference(const TracedReference<S>& other) {
++ // Forward to operator=;
++ *this = other;
++ }
+
+ /**
+- * Adds a finalization callback to the handle. The type of this callback is
+- * similar to WeakCallbackType::kInternalFields, i.e., it will pass the
+- * parameter and the first two internal fields of the object.
+- *
+- * The callback is then supposed to reset the handle in the callback. No
+- * further V8 API may be called in this callback. In case additional work
+- * involving V8 needs to be done, a second callback can be scheduled using
+- * WeakCallbackInfo<void>::SetSecondPassCallback.
++ * Move assignment operator initializing TracedGlobal from an existing one.
+ */
+- V8_INLINE void SetFinalizationCallback(
+- void* parameter, WeakCallbackInfo<void>::Callback callback);
++ V8_INLINE TracedReference& operator=(TracedReference&& rhs);
+
+- private:
+- // Wrapping type used when clearing on destruction is required.
+- struct WrappedForDestruction {
+- T* value;
+-
+- explicit WrappedForDestruction(T* val) : value(val) {}
+- ~WrappedForDestruction();
+- operator T*() const { return value; }
+- T* operator*() const { return value; }
+- T* operator->() const { return value; }
+- WrappedForDestruction& operator=(const WrappedForDestruction& other) {
+- value = other.value;
+- return *this;
+- }
+- WrappedForDestruction& operator=(T* val) {
+- value = val;
+- return *this;
+- }
+- };
++ /**
++ * Move assignment operator initializing TracedGlobal from an existing one.
++ */
++ template <class S>
++ V8_INLINE TracedReference& operator=(TracedReference<S>&& rhs);
+
+- V8_INLINE static T* New(Isolate* isolate, T* that, void* slot);
++ /**
++ * Copy assignment operator initializing TracedGlobal from an existing one.
++ *
++ * Note: Prohibited when |other| has a finalization callback set through
++ * |SetFinalizationCallback|.
++ */
++ V8_INLINE TracedReference& operator=(const TracedReference& rhs);
+
+- T* operator*() const { return this->val_; }
++ /**
++ * Copy assignment operator initializing TracedGlobal from an existing one.
++ *
++ * Note: Prohibited when |other| has a finalization callback set through
++ * |SetFinalizationCallback|.
++ */
++ template <class S>
++ V8_INLINE TracedReference& operator=(const TracedReference<S>& rhs);
+
+- typename std::conditional<
+- TracedGlobalTrait<TracedGlobal<T>>::kRequiresExplicitDestruction,
+- WrappedForDestruction, T*>::type val_{nullptr};
++ /**
++ * If non-empty, destroy the underlying storage cell and create a new one with
++ * the contents of other if other is non empty
++ */
++ template <class S>
++ V8_INLINE void Reset(Isolate* isolate, const Local<S>& other);
+
+- friend class EmbedderHeapTracer;
+- template <typename F>
+- friend class Local;
+- friend class Object;
+- template <typename F>
+- friend class ReturnValue;
++ template <class S>
++ V8_INLINE TracedReference<S>& As() const {
++ return reinterpret_cast<TracedReference<S>&>(
++ const_cast<TracedReference<T>&>(*this));
++ }
+ };
+
+ /**
+@@ -3640,8 +3761,9 @@ class V8_EXPORT Object : public Value {
+ return object.val_->InternalFieldCount();
+ }
+
+- /** Same as above, but works for TracedGlobal. */
+- V8_INLINE static int InternalFieldCount(const TracedGlobal<Object>& object) {
++ /** Same as above, but works for TracedReferenceBase. */
++ V8_INLINE static int InternalFieldCount(
++ const TracedReferenceBase<Object>& object) {
+ return object.val_->InternalFieldCount();
+ }
+
+@@ -3666,7 +3788,7 @@ class V8_EXPORT Object : public Value {
+
+ /** Same as above, but works for TracedGlobal. */
+ V8_INLINE static void* GetAlignedPointerFromInternalField(
+- const TracedGlobal<Object>& object, int index) {
++ const TracedReferenceBase<Object>& object, int index) {
+ return object.val_->GetAlignedPointerFromInternalField(index);
+ }
+
+@@ -3956,7 +4078,7 @@ class ReturnValue {
+ template <typename S>
+ V8_INLINE void Set(const Global<S>& handle);
+ template <typename S>
+- V8_INLINE void Set(const TracedGlobal<S>& handle);
++ V8_INLINE void Set(const TracedReferenceBase<S>& handle);
+ template <typename S>
+ V8_INLINE void Set(const Local<S> handle);
+ // Fast primitive setters
+@@ -7376,7 +7498,8 @@ class V8_EXPORT EmbedderHeapTracer {
+ class V8_EXPORT TracedGlobalHandleVisitor {
+ public:
+ virtual ~TracedGlobalHandleVisitor() = default;
+- virtual void VisitTracedGlobalHandle(const TracedGlobal<Value>& value) = 0;
++ virtual void VisitTracedGlobalHandle(const TracedGlobal<Value>& handle) {}
++ virtual void VisitTracedReference(const TracedReference<Value>& handle) {}
+ };
+
+ /**
+@@ -7414,7 +7537,7 @@ class V8_EXPORT EmbedderHeapTracer {
+ virtual void RegisterV8References(
+ const std::vector<std::pair<void*, void*> >& embedder_fields) = 0;
+
+- void RegisterEmbedderReference(const TracedGlobal<v8::Value>& ref);
++ void RegisterEmbedderReference(const TracedReferenceBase<v8::Value>& ref);
+
+ /**
+ * Called at the beginning of a GC cycle.
+@@ -7475,32 +7598,35 @@ class V8_EXPORT EmbedderHeapTracer {
+ *
+ * If this returns false, then V8 may decide that the object referred to by
+ * such a handle is reclaimed. In that case:
+- * - No action is required if handles are used with destructors.
+- * - When run without destructors (by specializing
+- * |TracedGlobalTrait::kRequiresExplicitDestruction|) V8 calls
+- * |ResetHandleInNonTracingGC|.
+- *
+- * Note that the |handle| is different from the |TracedGlobal<T>| handle that
+- * the embedder holds for retaining the object. The embedder may use
+- * |TracedGlobal<T>::WrapperClassId()| to distinguish cases where it wants
+- * handles to be treated as roots from not being treated as roots.
++ * - No action is required if handles are used with destructors, i.e., by just
++ * using |TracedGlobal|.
++ * - When run without destructors, i.e., by using
++ * |TracedReference|, V8 calls |ResetHandleInNonTracingGC|.
++ *
++ * Note that the |handle| is different from the handle that the embedder holds
++ * for retaining the object. The embedder may use |WrapperClassId()| to
++ * distinguish cases where it wants handles to be treated as roots from not
++ * being treated as roots.
+ */
+ virtual bool IsRootForNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
+- return true;
+- }
++ const v8::TracedReference<v8::Value>& handle);
++ virtual bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>& handle);
+
+ /**
+ * Used in combination with |IsRootForNonTracingGC|. Called by V8 when an
+ * object that is backed by a handle is reclaimed by a non-tracing garbage
+ * collection. It is up to the embedder to reset the original handle.
+ *
+- * Note that the |handle| is different from the |TracedGlobal<T>| handle that
+- * the embedder holds for retaining the object. It is up to the embedder to
+- * find the orignal |TracedGlobal<T>| handle via the object or class id.
++ * Note that the |handle| is different from the handle that the embedder holds
++ * for retaining the object. It is up to the embedder to find the original
++ * handle via the object or class id.
+ */
+ virtual void ResetHandleInNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {}
++ const v8::TracedReference<v8::Value>& handle);
++ V8_DEPRECATE_SOON(
++ "Use TracedReference version when not requiring destructors.",
++ virtual void ResetHandleInNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle));
+
+ /*
+ * Called by the embedder to immediately perform a full garbage collection.
+@@ -9103,8 +9229,12 @@ class V8_EXPORT V8 {
+ template <class T>
+ friend class Maybe;
+ template <class T>
++ friend class TracedReferenceBase;
++ template <class T>
+ friend class TracedGlobal;
+ template <class T>
++ friend class TracedReference;
++ template <class T>
+ friend class WeakCallbackInfo;
+ template <class T> friend class Eternal;
+ template <class T> friend class PersistentBase;
+@@ -9975,7 +10105,7 @@ Local<T> Local<T>::New(Isolate* isolate,
+ }
+
+ template <class T>
+-Local<T> Local<T>::New(Isolate* isolate, const TracedGlobal<T>& that) {
++Local<T> Local<T>::New(Isolate* isolate, const TracedReferenceBase<T>& that) {
+ return New(isolate, that.val_);
+ }
+
+@@ -10156,26 +10286,20 @@ Global<T>& Global<T>::operator=(Global<S
+ }
+
+ template <class T>
+-TracedGlobal<T>::WrappedForDestruction::~WrappedForDestruction() {
+- if (value == nullptr) return;
+- V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(value));
+- value = nullptr;
+-}
+-
+-template <class T>
+-T* TracedGlobal<T>::New(Isolate* isolate, T* that, void* slot) {
++T* TracedReferenceBase<T>::New(Isolate* isolate, T* that, void* slot,
++ DestructionMode destruction_mode) {
+ if (that == nullptr) return nullptr;
+ internal::Address* p = reinterpret_cast<internal::Address*>(that);
+ return reinterpret_cast<T*>(V8::GlobalizeTracedReference(
+ reinterpret_cast<internal::Isolate*>(isolate), p,
+ reinterpret_cast<internal::Address*>(slot),
+- TracedGlobalTrait<TracedGlobal<T>>::kRequiresExplicitDestruction));
++ destruction_mode == kWithDestructor));
+ }
+
+ template <class T>
+-void TracedGlobal<T>::Reset() {
++void TracedReferenceBase<T>::Reset() {
+ if (IsEmpty()) return;
+- V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(**this));
++ V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(val_));
+ val_ = nullptr;
+ }
+
+@@ -10185,7 +10309,8 @@ void TracedGlobal<T>::Reset(Isolate* iso
+ TYPE_CHECK(T, S);
+ Reset();
+ if (other.IsEmpty()) return;
+- this->val_ = New(isolate, other.val_, &val_);
++ this->val_ = this->New(isolate, other.val_, &this->val_,
++ TracedReferenceBase<T>::kWithDestructor);
+ }
+
+ template <class T>
+@@ -10233,28 +10358,83 @@ TracedGlobal<T>& TracedGlobal<T>::operat
+ }
+
+ template <class T>
+-void TracedGlobal<T>::SetWrapperClassId(uint16_t class_id) {
++template <class S>
++void TracedReference<T>::Reset(Isolate* isolate, const Local<S>& other) {
++ TYPE_CHECK(T, S);
++ Reset();
++ if (other.IsEmpty()) return;
++ this->val_ = this->New(isolate, other.val_, &this->val_,
++ TracedReferenceBase<T>::kWithoutDestructor);
++}
++
++template <class T>
++template <class S>
++TracedReference<T>& TracedReference<T>::operator=(TracedReference<S>&& rhs) {
++ TYPE_CHECK(T, S);
++ *this = std::move(rhs.template As<T>());
++ return *this;
++}
++
++template <class T>
++template <class S>
++TracedReference<T>& TracedReference<T>::operator=(
++ const TracedReference<S>& rhs) {
++ TYPE_CHECK(T, S);
++ *this = rhs.template As<T>();
++ return *this;
++}
++
++template <class T>
++TracedReference<T>& TracedReference<T>::operator=(TracedReference&& rhs) {
++ if (this != &rhs) {
++ this->Reset();
++ if (rhs.val_ != nullptr) {
++ this->val_ = rhs.val_;
++ V8::MoveTracedGlobalReference(
++ reinterpret_cast<internal::Address**>(&rhs.val_),
++ reinterpret_cast<internal::Address**>(&this->val_));
++ rhs.val_ = nullptr;
++ }
++ }
++ return *this;
++}
++
++template <class T>
++TracedReference<T>& TracedReference<T>::operator=(const TracedReference& rhs) {
++ if (this != &rhs) {
++ this->Reset();
++ if (rhs.val_ != nullptr) {
++ V8::CopyTracedGlobalReference(
++ reinterpret_cast<const internal::Address* const*>(&rhs.val_),
++ reinterpret_cast<internal::Address**>(&this->val_));
++ }
++ }
++ return *this;
++}
++
++template <class T>
++void TracedReferenceBase<T>::SetWrapperClassId(uint16_t class_id) {
+ typedef internal::Internals I;
+ if (IsEmpty()) return;
+- internal::Address* obj = reinterpret_cast<internal::Address*>(**this);
++ internal::Address* obj = reinterpret_cast<internal::Address*>(val_);
+ uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
+ *reinterpret_cast<uint16_t*>(addr) = class_id;
+ }
+
+ template <class T>
+-uint16_t TracedGlobal<T>::WrapperClassId() const {
++uint16_t TracedReferenceBase<T>::WrapperClassId() const {
+ typedef internal::Internals I;
+ if (IsEmpty()) return 0;
+- internal::Address* obj = reinterpret_cast<internal::Address*>(**this);
++ internal::Address* obj = reinterpret_cast<internal::Address*>(val_);
+ uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
+ return *reinterpret_cast<uint16_t*>(addr);
+ }
+
+ template <class T>
+-void TracedGlobal<T>::SetFinalizationCallback(
++void TracedReferenceBase<T>::SetFinalizationCallback(
+ void* parameter, typename WeakCallbackInfo<void>::Callback callback) {
+- V8::SetFinalizationCallbackTraced(
+- reinterpret_cast<internal::Address*>(**this), parameter, callback);
++ V8::SetFinalizationCallbackTraced(reinterpret_cast<internal::Address*>(val_),
++ parameter, callback);
+ }
+
+ template <typename T>
+@@ -10273,12 +10453,12 @@ void ReturnValue<T>::Set(const Global<S>
+
+ template <typename T>
+ template <typename S>
+-void ReturnValue<T>::Set(const TracedGlobal<S>& handle) {
++void ReturnValue<T>::Set(const TracedReferenceBase<S>& handle) {
+ TYPE_CHECK(T, S);
+ if (V8_UNLIKELY(handle.IsEmpty())) {
+ *value_ = GetDefaultValue();
+ } else {
+- *value_ = *reinterpret_cast<internal::Address*>(*handle);
++ *value_ = *reinterpret_cast<internal::Address*>(handle.val_);
+ }
+ }
+
+diff -up chromium-78.0.3904.70/v8/src/api/api.cc.implement-tracedreference chromium-78.0.3904.70/v8/src/api/api.cc
+--- chromium-78.0.3904.70/v8/src/api/api.cc.implement-tracedreference 2019-10-24 09:18:56.712105100 -0400
++++ chromium-78.0.3904.70/v8/src/api/api.cc 2019-10-24 09:20:17.428555637 -0400
+@@ -10346,11 +10346,12 @@ void EmbedderHeapTracer::DecreaseAllocat
+ }
+
+ void EmbedderHeapTracer::RegisterEmbedderReference(
+- const TracedGlobal<v8::Value>& ref) {
++ const TracedReferenceBase<v8::Value>& ref) {
+ if (ref.IsEmpty()) return;
+
+ i::Heap* const heap = reinterpret_cast<i::Isolate*>(isolate_)->heap();
+- heap->RegisterExternallyReferencedObject(reinterpret_cast<i::Address*>(*ref));
++ heap->RegisterExternallyReferencedObject(
++ reinterpret_cast<i::Address*>(ref.val_));
+ }
+
+ void EmbedderHeapTracer::IterateTracedGlobalHandles(
+@@ -10360,6 +10361,26 @@ void EmbedderHeapTracer::IterateTracedGl
+ isolate->global_handles()->IterateTracedNodes(visitor);
+ }
+
++bool EmbedderHeapTracer::IsRootForNonTracingGC(
++ const v8::TracedReference<v8::Value>& handle) {
++ return true;
++}
++
++bool EmbedderHeapTracer::IsRootForNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ return true;
++}
++
++void EmbedderHeapTracer::ResetHandleInNonTracingGC(
++ const v8::TracedReference<v8::Value>& handle) {
++ UNREACHABLE();
++}
++
++void EmbedderHeapTracer::ResetHandleInNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ UNREACHABLE();
++}
++
+ namespace internal {
+
+ const size_t HandleScopeImplementer::kEnteredContextsOffset =
+diff -up chromium-78.0.3904.70/v8/src/handles/global-handles.cc.implement-tracedreference chromium-78.0.3904.70/v8/src/handles/global-handles.cc
+--- chromium-78.0.3904.70/v8/src/handles/global-handles.cc.implement-tracedreference 2019-10-24 09:20:39.954123225 -0400
++++ chromium-78.0.3904.70/v8/src/handles/global-handles.cc 2019-10-24 09:21:45.911857072 -0400
+@@ -901,8 +901,13 @@ void GlobalHandles::IdentifyWeakUnmodifi
+ DCHECK(node->is_root());
+ if (is_unmodified(node->location())) {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+- node->set_root(tracer->IsRootForNonTracingGC(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value)));
++ if (node->has_destructor()) {
++ node->set_root(tracer->IsRootForNonTracingGC(
++ *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value)));
++ } else {
++ node->set_root(tracer->IsRootForNonTracingGC(
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value)));
++ }
+ }
+ }
+ }
+@@ -990,7 +995,7 @@ void GlobalHandles::IterateYoungWeakUnmo
+ } else {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+ tracer->ResetHandleInNonTracingGC(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value));
+ DCHECK(!node->IsInUse());
+ }
+
+@@ -1271,8 +1276,13 @@ void GlobalHandles::IterateTracedNodes(
+ for (TracedNode* node : *traced_nodes_) {
+ if (node->IsInUse()) {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+- visitor->VisitTracedGlobalHandle(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ if (node->has_destructor()) {
++ visitor->VisitTracedGlobalHandle(
++ *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ } else {
++ visitor->VisitTracedReference(
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value));
++ }
+ }
+ }
+ }
+diff -up chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h.implement-tracedreference chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h
+--- chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h.implement-tracedreference 2019-10-24 09:22:03.664519559 -0400
++++ chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h 2019-10-24 09:22:45.197729964 -0400
+@@ -57,7 +57,12 @@ class V8_EXPORT_PRIVATE LocalEmbedderHea
+ bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>& handle) {
+ return !InUse() || remote_tracer_->IsRootForNonTracingGC(handle);
+ }
+- void ResetHandleInNonTracingGC(const v8::TracedGlobal<v8::Value>& handle) {
++
++ bool IsRootForNonTracingGC(const v8::TracedReference<v8::Value>& handle) {
++ return !InUse() || remote_tracer_->IsRootForNonTracingGC(handle);
++ }
++
++ void ResetHandleInNonTracingGC(const v8::TracedReference<v8::Value>& handle) {
+ // Resetting is only called when IsRootForNonTracingGC returns false which
+ // can only happen the EmbedderHeapTracer is set on API level.
+ DCHECK(InUse());
commit 5d755bc2f71af8bed245840799ff57636a192074
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 13:09:01 2019 -0400
fix issue in my manual patch, apply other gentoo 78 fixes
diff --git a/chromium-78-gcc-noexcept.patch b/chromium-78-gcc-noexcept.patch
new file mode 100644
index 0000000..8ddb53f
--- /dev/null
+++ b/chromium-78-gcc-noexcept.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/chromium-78-include.patch b/chromium-78-include.patch
new file mode 100644
index 0000000..3db38ea
--- /dev/null
+++ b/chromium-78-include.patch
@@ -0,0 +1,40 @@
+From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001
+From: David Landell <landell(a)vewd.com>
+Date: Fri, 13 Sep 2019 12:24:13 +0000
+Subject: [PATCH] Add missing include for unique_ptr
+
+Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137
+Reviewed-by: Henrik Bostrm <hbos(a)chromium.org>
+Commit-Queue: Henrik Bostrm <hbos(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696355}
+---
+
+diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
+index 959440f..c3fd542 100644
+--- a/third_party/blink/public/platform/web_rtc_rtp_source.h
++++ b/third_party/blink/public/platform/web_rtc_rtp_source.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+
++#include <memory>
++
+ #include "base/optional.h"
+ #include "third_party/blink/public/platform/web_common.h"
+
+Missing include due to reverting ProfileManagerObserver
+---
+
+diff --git a/chrome/browser/web_applications/extensions/bookmark_app_util.cc b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
+index ee4b70a..b31e5f5 100644
+--- a/chrome/browser/web_applications/extensions/bookmark_app_util.cc
++++ b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
+@@ -7,6 +7,7 @@
+ #include "base/strings/string_piece.h"
+ #include "base/values.h"
+ #include "chrome/browser/extensions/extension_service.h"
++#include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/web_applications/components/app_registrar.h"
+ #include "chrome/browser/web_applications/components/web_app_provider_base.h"
+ #include "chrome/common/chrome_features.h"
diff --git a/chromium-78-pm-crash.patch b/chromium-78-pm-crash.patch
new file mode 100644
index 0000000..ada2661
--- /dev/null
+++ b/chromium-78-pm-crash.patch
@@ -0,0 +1,43 @@
+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}
+---
+
+diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
+index b60df76d..7d02af7 100644
+--- a/chrome/browser/profiles/profile_manager.h
++++ b/chrome/browser/profiles/profile_manager.h
+@@ -409,6 +409,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
+@@ -450,8 +454,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
diff --git a/chromium-78-protobuf-export.patch b/chromium-78-protobuf-export.patch
new file mode 100644
index 0000000..ddb9e80
--- /dev/null
+++ b/chromium-78-protobuf-export.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
+index b5b193c..4434854 100644
+--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
++++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
+@@ -804,7 +804,7 @@ class StringTypeHandler {
+ // RepeatedPtrField is like RepeatedField, but used for repeated strings or
+ // Messages.
+ template <typename Element>
+-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
++class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+ public:
+ RepeatedPtrField();
+ explicit RepeatedPtrField(Arena* arena);
diff --git a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
index 6ffe580..cb436ec 100644
--- a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
+++ b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
@@ -1,7 +1,7 @@
diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst chromium-78.0.3904.70/net/dns/dns_util.cc
---- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-23 11:21:55.805646136 -0400
-+++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 11:23:52.693140706 -0400
-@@ -139,11 +139,11 @@ struct DohUpgradeEntry {
+--- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-21 15:06:38.000000000 -0400
++++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 12:55:27.886546918 -0400
+@@ -139,12 +139,12 @@ struct DohUpgradeEntry {
const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
};
@@ -11,10 +11,12 @@ diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst
// DohProviderId histogram suffix list in
// tools/metrics/histograms/histograms.xml.
- static const base::NoDestructor<std::vector<const DohUpgradeEntry>>
+- upgradable_servers({
+ static const base::NoDestructor<std::vector<DohUpgradeEntry>>
- upgradable_servers({
++ upgradable_servers(std::initializer_list<DohUpgradeEntry>{
DohUpgradeEntry(
"CleanBrowsingAdult",
+ {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>
std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers(
const std::vector<IPEndPoint>& dns_servers,
diff --git a/chromium.spec b/chromium.spec
index bfa6fe8..764e85d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -222,6 +222,14 @@ Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
# https://chromium.googlesource.com/chromium/src/+/f4c3c329588b78af63aad8b4...
Patch61: chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch62: chromium-78-gcc-noexcept.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch63: chromium-78-pm-crash.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch64: chromium-78-protobuf-export.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-78-include.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -747,6 +755,10 @@ udev.
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
%patch60 -p1 -b .gcc-sizet
%patch61 -p1 -b .gcc-DohUpgradeEntry-nonconst
+%patch62 -p1 -b .gcc-v8-noexcept
+%patch63 -p1 -b .pm-crash
+%patch64 -p1 -b .protobuf-export
+%patch65 -p1 -b .missing-includes
# Fedora branded user agent
%if 0%{?fedora}
commit dd5dd20f917b27c6596de8344b9553ad545e71bb
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 12:02:13 2019 -0400
preserve third_party/catapult/tracing/third_party/jpeg-js, add another upstream gcc fix
diff --git a/chromium.spec b/chromium.spec
index 3f62331..bfa6fe8 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -220,6 +220,8 @@ Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
# https://chromium.googlesource.com/chromium/src/+/9662ec844017690d5fd56bf0...
Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/f4c3c329588b78af63aad8b4...
+Patch61: chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -744,6 +746,7 @@ udev.
%patch58 -p1 -b .gcc-invalid-pragma
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
%patch60 -p1 -b .gcc-sizet
+%patch61 -p1 -b .gcc-DohUpgradeEntry-nonconst
# Fedora branded user agent
%if 0%{?fedora}
@@ -962,6 +965,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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' \
commit e4b93e833781790c8f0a03f103354e7ee8b97245
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 11:26:02 2019 -0400
another gcc fix from upstream
diff --git a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
new file mode 100644
index 0000000..6ffe580
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
@@ -0,0 +1,47 @@
+diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst chromium-78.0.3904.70/net/dns/dns_util.cc
+--- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-23 11:21:55.805646136 -0400
++++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 11:23:52.693140706 -0400
+@@ -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>
+ 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::DnsOverHttpsServe
+ 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) {
commit d3e96e671b46f81f9fa7d5bd17631e7f06199b83
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 11:19:54 2019 -0400
more 78 fixes
diff --git a/chromium-78.0.3904.70-gcc-sizet-fix.patch b/chromium-78.0.3904.70-gcc-sizet-fix.patch
new file mode 100644
index 0000000..b95b0ed
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-sizet-fix.patch
@@ -0,0 +1,20 @@
+diff -up chromium-78.0.3904.70/base/containers/intrusive_heap.h.gcc-sizet chromium-78.0.3904.70/base/containers/intrusive_heap.h
+--- chromium-78.0.3904.70/base/containers/intrusive_heap.h.gcc-sizet 2019-10-23 11:02:56.767907986 -0400
++++ chromium-78.0.3904.70/base/containers/intrusive_heap.h 2019-10-23 11:04:58.317351636 -0400
+@@ -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;
diff --git a/chromium.spec b/chromium.spec
index 675a54b..3f62331 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -218,6 +218,8 @@ Patch57: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
# https://chromium.googlesource.com/chromium/src/+/2db67d40ef766c63a7389686...
Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
+# https://chromium.googlesource.com/chromium/src/+/9662ec844017690d5fd56bf0...
+Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -741,6 +743,7 @@ udev.
%patch57 -p1 -b .gcc-fix-zlib-symbol-visibility
%patch58 -p1 -b .gcc-invalid-pragma
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
+%patch60 -p1 -b .gcc-sizet
# Fedora branded user agent
%if 0%{?fedora}
@@ -903,7 +906,7 @@ ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
'base/third_party/cityhash' \
- 'base/third_party/dmg_fp' \
+ 'base/third_party/double_conversion' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
'base/third_party/libevent' \
commit 6944f231efaf722f2d99cae67145721be2eb8826
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 10:20:43 2019 -0400
initial v78 commit, note, NOT READY FOR BUILD YET
diff --git a/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch b/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
deleted file mode 100644
index d071e81..0000000
--- a/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h
---- chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 2019-01-08 13:27:25.193614727 -0500
-+++ chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h 2019-01-08 13:27:35.161392234 -0500
-@@ -1231,7 +1231,7 @@ typedef unsigned long int ulong;
- "d"(LSS_SYSCALL_ARG(parent_tidptr)),
- "r"(LSS_SYSCALL_ARG(newtls)),
- "r"(LSS_SYSCALL_ARG(child_tidptr))
-- : "rsp", "memory", "r8", "r10", "r11", "rcx");
-+ : "memory", "r8", "r10", "r11", "rcx");
- }
- LSS_RETURN(int, __res);
- }
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
deleted file mode 100644
index cc91d1e..0000000
--- a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
---- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
-+++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
-@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
- DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
- };
-
--class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
-- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
-+class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
-+ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
- : public CSSPropertyValueSet {
- public:
- ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
deleted file mode 100644
index 64532df..0000000
--- a/chromium-76.0.3809.100-vtable-symbol-undefined.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
---- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
-+++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
-@@ -18,6 +18,7 @@
- #include "net/quic/crypto/proof_verifier_chromium.h"
- #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
- #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
-+#include "net/quic/platform/impl/quic_flags_impl.cc"
-
- DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
- certificate_file,
diff --git a/chromium-77.0.3865.120-silence-outdated-build-noise.patch b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
index 22e1e78..f2d4735 100644
--- a/chromium-77.0.3865.120-silence-outdated-build-noise.patch
+++ b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
@@ -32,7 +32,7 @@ index 432e3789eced0..07850fdf80cd7 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/google/google_brand.h"
#include "chrome/common/chrome_switches.h"
-@@ -74,6 +75,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
+@@ -73,6 +74,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
// The number of days after which we identify a build/install as outdated.
constexpr base::TimeDelta kOutdatedBuildAge = base::TimeDelta::FromDays(12 * 7);
@@ -47,13 +47,14 @@ index 432e3789eced0..07850fdf80cd7 100644
// Return the string that was passed as a value for the
// kCheckForUpdateIntervalSec switch.
std::string CmdLineInterval() {
-@@ -403,6 +412,9 @@ bool UpgradeDetectorImpl::DetectOutdated
- if (base::IsMachineExternallyManaged())
+@@ -406,6 +415,10 @@ bool UpgradeDetectorImpl::DetectOutdated
return false;
+ }
#endif
+
+ if (!ShouldDetectOutdatedBuilds())
+ return false;
++
}
base::Time network_time;
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
deleted file mode 100644
index 82e2958..0000000
--- a/chromium-77.0.3865.75-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
-@@ -21,6 +21,7 @@
- #include "components/version_info/version_info.h"
- #include "content/public/common/content_switches.h"
- #include "content/public/common/user_agent.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerFreezeQUICUaBrowsertest,
- ::testing::Values(true, false));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -50,6 +52,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -79,6 +82,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
-@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
-@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
-@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
-@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
-+++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
---- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
-@@ -36,6 +36,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
---- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/remote.h"
- #include "mojo/public/cpp/bindings/self_owned_receiver.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -115,6 +118,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
- #include "net/ftp/ftp_auth_cache.h"
- #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
- true /* was_cached */, true /* is_navigation */);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
---- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
---- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
-@@ -239,15 +239,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -300,6 +291,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -311,6 +311,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
deleted file mode 100644
index 6d77299..0000000
--- a/chromium-77.0.3865.75-gcc-abstract-class.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 26 Jul 2019 16:48:06 +0000
-Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
-
-The method UploadForDeepScanning gets a Request as parameter. But Request is an
-abstract class, so GCC will not allow that declaration (polimorphycs should be
-passed by reference). Use std::unique_ptr so BinaryUploadService can assume
-ownership.
-
-Bug: 819294
-Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
-Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#681333}
----
-
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-index 6430c89..4e90487 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-@@ -10,7 +10,7 @@
- namespace safe_browsing {
-
- void BinaryUploadService::UploadForDeepScanning(
-- BinaryUploadService::Request request) {
-+ std::unique_ptr<BinaryUploadService::Request> request) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- NOTREACHED();
- }
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-index d2dfd83..9b6f395 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-@@ -5,6 +5,8 @@
- #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
- #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
-
-+#include <memory>
-+
- #include "base/callback.h"
- #include "components/safe_browsing/proto/webprotect.pb.h"
-
-@@ -40,6 +42,7 @@
- public:
- // |callback| will run on the UI thread.
- explicit Request(Callback callback);
-+ virtual ~Request() = default;
- Request(const Request&) = delete;
- Request& operator=(const Request&) = delete;
-
-@@ -67,7 +70,7 @@
- // Upload the given file contents for deep scanning. The results will be
- // returned asynchronously by calling |request|'s |callback|. This must be
- // called on the UI thread.
-- void UploadForDeepScanning(Request request);
-+ void UploadForDeepScanning(std::unique_ptr<Request> request);
- };
-
- } // namespace safe_browsing
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
deleted file mode 100644
index 55d78d1..0000000
--- a/chromium-77.0.3865.75-harfbuzz-subset.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Mon, 29 Jul 2019 10:54:28 +0000
-Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
-
-When building HarfBuzz as part of Chromium, there is a single source set
-with all the files we need in the build.
-
-Upstream HarfBuzz, on the other hand, produces a few different libraries:
-harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
-true, we were only looking for (and using) harfbuzz.pc with pkg-config even
-though we also use symbols from libharfbuzz-subset.so. This resulted in
-errors when linking:
-
- ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
- SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
-
-as reported in
-https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
-
-Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
-Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#681760}
----
-
-diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
-index 37d8e33..72013eb1d 100644
---- a/third_party/harfbuzz-ng/BUILD.gn
-+++ b/third_party/harfbuzz-ng/BUILD.gn
-@@ -16,7 +16,10 @@
- "//third_party:freetype_harfbuzz",
- "//third_party/freetype:freetype_source",
- ]
-- packages = [ "harfbuzz" ]
-+ packages = [
-+ "harfbuzz",
-+ "harfbuzz-subset",
-+ ]
- }
- } else {
- config("harfbuzz_config") {
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
deleted file mode 100644
index 3ac1770..0000000
--- a/chromium-77.0.3865.75-missing-limits.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
-From: Dave Tapuska <dtapuska(a)chromium.org>
-Date: Mon, 12 Aug 2019 22:30:13 +0000
-Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
-
-Some configurations fail to build, limits should have been included.
-
-BUG=992832
-
-Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
-Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
-Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
-Cr-Commit-Position: refs/heads/master@{#686214}
----
-
-diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
-index 384566a..68d83e1 100644
---- a/third_party/blink/renderer/platform/exported/web_time_range.cc
-+++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
-@@ -31,6 +31,7 @@
- #include "third_party/blink/public/platform/web_time_range.h"
-
- #include <cmath>
-+#include <limits>
-
- namespace blink {
-
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
deleted file mode 100644
index d6c45ad..0000000
--- a/chromium-77.0.3865.75-unbundle-zlib.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
-From: Your Name <you(a)example.com>
-Date: Fri, 28 Jun 2019 15:56:23 +0000
-Subject: [PATCH] update zlib
-
----
- third_party/perfetto/gn/BUILD.gn | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
-index c951f5f..297eee3 100644
---- a/third_party/perfetto/gn/BUILD.gn
-+++ b/third_party/perfetto/gn/BUILD.gn
-@@ -200,7 +200,7 @@ group("zlib") {
- "//buildtools:zlib",
- ]
- } else if (build_with_chromium) {
-- public_configs = [ "//third_party/zlib:zlib_config" ]
-+ public_configs = [ "//third_party/zlib:system_zlib" ]
- public_deps = [
- "//third_party/zlib",
- ]
---
-2.21.0
-
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
deleted file mode 100644
index f921f1a..0000000
--- a/chromium-77.0.3865.90-linked-hash-set.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
-From: Jeremy Roman <jbroman(a)chromium.org>
-Date: Wed, 07 Aug 2019 13:26:48 +0000
-Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
-
-Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
-
-Bug: 980025
-Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
-Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#684731}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-index 0efc8fb..90063cb 100644
---- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
-+++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-@@ -133,6 +133,10 @@
-
- struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
- STATIC_ONLY(FontCacheKeyTraits);
-+
-+ // std::string's empty state need not be zero in all implementations,
-+ // and it is held within FontFaceCreationParams.
-+ static const bool kEmptyValueIsZero = false;
- };
-
- } // namespace blink
-diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-index b35b6e9..77e524c 100644
---- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-+++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-@@ -146,6 +146,11 @@
- LinkedHashSetNodeBase* next)
- : LinkedHashSetNodeBase(prev, next), value_(value) {}
-
-+ LinkedHashSetNode(ValueArg&& value,
-+ LinkedHashSetNodeBase* prev,
-+ LinkedHashSetNodeBase* next)
-+ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
-+
- LinkedHashSetNode(LinkedHashSetNode&& other)
- : LinkedHashSetNodeBase(std::move(other)),
- value_(std::move(other.value_)) {}
-@@ -445,10 +450,13 @@
-
- // The slot is empty when the next_ field is zero so it's safe to zero
- // the backing.
-- static const bool kEmptyValueIsZero = true;
-+ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
-
- static const bool kHasIsEmptyValueFunction = true;
- static bool IsEmptyValue(const Node& node) { return !node.next_; }
-+ static Node EmptyValue() {
-+ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
-+ }
-
- static const int kDeletedValue = -1;
-
-diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-index 4c3f899..cd1be00 100644
---- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-+++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-@@ -487,6 +487,7 @@
- };
-
- struct Complicated {
-+ Complicated() : Complicated(0) {}
- Complicated(int value) : simple_(value) { objects_constructed_++; }
-
- Complicated(const Complicated& other) : simple_(other.simple_) {
-@@ -495,9 +496,6 @@
-
- Simple simple_;
- static int objects_constructed_;
--
-- private:
-- Complicated() = delete;
- };
-
- int Complicated::objects_constructed_ = 0;
-@@ -731,4 +729,45 @@
-
- } // anonymous namespace
-
-+// A unit type which objects to its state being initialized wrong.
-+struct InvalidZeroValue {
-+ InvalidZeroValue() = default;
-+ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
-+ ~InvalidZeroValue() { CHECK(ok_); }
-+ bool IsHashTableDeletedValue() const { return deleted_; }
-+
-+ bool ok_ = true;
-+ bool deleted_ = false;
-+};
-+
-+template <>
-+struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
-+ static const bool kEmptyValueIsZero = false;
-+};
-+
-+template <>
-+struct DefaultHash<InvalidZeroValue> {
-+ struct Hash {
-+ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
-+ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
-+ return true;
-+ }
-+ };
-+};
-+
-+template <typename Set>
-+class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
-+
-+using InvalidZeroValueSetTypes =
-+ testing::Types<ListHashSet<InvalidZeroValue>,
-+ ListHashSet<InvalidZeroValue, 1>,
-+ LinkedHashSet<InvalidZeroValue>>;
-+TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
-+
-+TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
-+ using Set = TypeParam;
-+ Set set;
-+ set.insert(InvalidZeroValue());
-+}
-+
- } // namespace WTF
diff --git a/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch b/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
new file mode 100644
index 0000000..eb0efbd
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
@@ -0,0 +1,16 @@
+diff -up chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc.invalid-pragma chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc
+--- chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc.invalid-pragma 2019-10-23 10:00:41.361932768 -0400
++++ chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc 2019-10-23 10:02:09.778100948 -0400
+@@ -7,9 +7,10 @@
+ // AFDO can mess with them. Better not to use AFDO there. This is a
+ // temporary hack. We will add a mechanism in the build system to
+ // avoid using -fauto-profile for tcmalloc files.
+-#if !defined(__clang__) && (defined(OS_CHROMEOS) || __GNUC__ > 5)
++#if !defined(__clang__) && \
++ (defined(OS_CHROMEOS) || (__GNUC__ > 5 && __GNUC__ < 7))
+ // Note that this option only seems to be available in the chromeos GCC 4.9
+-// toolchain, and stock GCC 5 and up.
++// toolchain, and stock GCC 5 upto 7.
+ #pragma GCC optimize ("no-auto-profile")
+ #endif
+
diff --git a/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch b/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
new file mode 100644
index 0000000..e5502cf
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
@@ -0,0 +1,12 @@
+diff -up chromium-78.0.3904.70/base/logging.h.constexpr chromium-78.0.3904.70/base/logging.h
+--- chromium-78.0.3904.70/base/logging.h.constexpr 2019-10-23 10:06:53.434313793 -0400
++++ chromium-78.0.3904.70/base/logging.h 2019-10-23 10:07:17.490853038 -0400
+@@ -530,7 +530,7 @@ BASE_EXPORT extern std::ostream* g_swall
+ class CheckOpResult {
+ public:
+ // |message| must be non-null if and only if the check failed.
+- CheckOpResult(std::string* message) : message_(message) {}
++ constexpr CheckOpResult(std::string* message) : message_(message) {}
+ // Returns true if the check succeeded.
+ operator bool() const { return !message_; }
+ // Returns the message.
diff --git a/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch b/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
new file mode 100644
index 0000000..6785b09
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
@@ -0,0 +1,24 @@
+diff -up chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+--- chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:16.153251961 -0400
++++ chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2019-10-23 08:58:36.896862347 -0400
+@@ -1486,7 +1486,7 @@ struct kernel_stat {
+ "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+ "r"(LSS_SYSCALL_ARG(newtls)),
+ "r"(LSS_SYSCALL_ARG(child_tidptr))
+- : "rsp", "memory", "r8", "r10", "r11", "rcx");
++ : "memory", "r8", "r10", "r11", "rcx");
+ }
+ LSS_RETURN(int, __res);
+ }
+diff -up chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h
+--- chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:59.623435488 -0400
++++ chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h 2019-10-23 08:59:16.113125772 -0400
+@@ -1485,7 +1485,7 @@ struct kernel_stat {
+ "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+ "r"(LSS_SYSCALL_ARG(newtls)),
+ "r"(LSS_SYSCALL_ARG(child_tidptr))
+- : "rsp", "memory", "r8", "r10", "r11", "rcx");
++ : "memory", "r8", "r10", "r11", "rcx");
+ }
+ LSS_RETURN(int, __res);
+ }
diff --git a/chromium-78.0.3904.70-unbundle-zlib.patch b/chromium-78.0.3904.70-unbundle-zlib.patch
new file mode 100644
index 0000000..155990e
--- /dev/null
+++ b/chromium-78.0.3904.70-unbundle-zlib.patch
@@ -0,0 +1,12 @@
+diff -up chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn
+--- chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib 2019-10-23 09:25:44.419884187 -0400
++++ chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn 2019-10-23 09:29:53.553442745 -0400
+@@ -276,7 +276,7 @@ if (enable_perfetto_trace_processor || e
+ "//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-78.0.3904.70-vtable-symbol-undefined.patch b/chromium-78.0.3904.70-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..13751a2
--- /dev/null
+++ b/chromium-78.0.3904.70-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-10-23 09:12:08.754351798 -0400
++++ chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-10-23 09:19:28.278431430 -0400
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(
+ bool,
diff --git a/chromium.spec b/chromium.spec
index 8994527..675a54b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -154,15 +154,15 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 77
+%global majorversion 78
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.120
-Release: 4%{?dist}
+Version: %{majorversion}.0.3904.70
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -191,7 +191,7 @@ Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
Patch11: chromium-widevine-other-locations.patch
# Try to fix version.py for Rawhide
@@ -200,34 +200,24 @@ Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# In GCC one can't use alignas() for exported classes
-# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch51: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
-# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch54: chromium-77.0.3865.75-certificate-transparency.patch
+Patch52: chromium-78.0.3904.70-vtable-symbol-undefined.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch53: chromium-78.0.3904.70-unbundle-zlib.patch
# Needs to be submitted..
-Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+Patch54: chromium-77.0.3865.75-gcc-include-memory.patch
# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
-Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
-# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
-# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
-# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch60: chromium-77.0.3865.75-missing-limits.patch
-# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
-Patch61: chromium-77.0.3865.90-linked-hash-set.patch
+Patch55: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
-Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
+Patch56: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
-Patch63: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
-
+Patch57: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
+# https://chromium.googlesource.com/chromium/src/+/7358ea985cb496fa7fd1a526...
+Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
+# https://chromium.googlesource.com/chromium/src/+/2db67d40ef766c63a7389686...
+Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -742,19 +732,15 @@ udev.
# Short term fixes (usually gcc and backports)
%patch50 -p1 -b .gettid-fix
-%patch51 -p1 -b .gcc-no-alignas-and-export
-%patch52 -p1 -b .gcc-remoting-constexpr
-%patch53 -p1 -b .vtable-symbol-undefined
-%patch54 -p1 -b .certificate-transparency
-%patch55 -p1 -b .unbundle-zlib
-%patch56 -p1 -b .gcc-include-memory
-%patch57 -p1 -b .base-gcc-no-alignas
-%patch58 -p1 -b .harfbuzz-subset
-%patch59 -p1 -b .gcc-abstract-class
-%patch60 -p1 -b .missing-limits
-%patch61 -p1 -b .linked-hash-set
-%patch62 -p1 -b .silence-outdated-build-noise
-%patch63 -p1 -b .gcc-fix-zlib-symbol-visibility
+%patch51 -p1 -b .gcc-remoting-constexpr
+%patch52 -p1 -b .vtable-symbol-undefined
+%patch53 -p1 -b .unbundle-zlib
+%patch54 -p1 -b .gcc-include-memory
+%patch55 -p1 -b .base-gcc-no-alignas
+%patch56 -p1 -b .silence-outdated-build-noise
+%patch57 -p1 -b .gcc-fix-zlib-symbol-visibility
+%patch58 -p1 -b .gcc-invalid-pragma
+%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
# Fedora branded user agent
%if 0%{?fedora}
@@ -1669,6 +1655,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 23 2019 Tom Callaway <spot(a)fedoraproject.org> - 78.0.3904.80-1
+- update to 78.0.3904.80
+
* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-4
- upstream fix for zlib symbol exports with gcc
diff --git a/sources b/sources
index 978a610..c18b1d0 100644
--- a/sources
+++ b/sources
@@ -18,3 +18,4 @@ SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb874
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
+SHA512 (chromium-78.0.3904.70-clean.tar.xz) = f702bc3c084a69adc81f47300d00f0b8cf46ee721dbb4986bfc5ba7fc95129172d021da0514350fe77591a209ec050307eead8e9bf309b70e46eb26d29d88509
commit 5cbc3dd135bf2caa310a6cfafd85a72f5b89f959
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 11:03:38 2019 -0400
upstream fix for zlib symbol exports with gcc
diff --git a/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
new file mode 100644
index 0000000..47fd97d
--- /dev/null
+++ b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
@@ -0,0 +1,36 @@
+From 9c3aed099b010a75594a0efd523774c4c9a5e3d2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=BCri=20Valdmann?= <juri.valdmann(a)qt.io>
+Date: Tue, 15 Oct 2019 12:10:55 +0000
+Subject: [PATCH] GCC: Fix zlib symbol visibility macro
+
+GCC parses the function __attribute__ syntax a bit differently from Clang,
+associating the attribute with the return type instead of the function if the
+return type is a pointer. This leads to certain zlib symbols, such as
+Cr_z_zError, to fail to be properly exported from the shared library. Fix by
+using ZEXTERN instead of ZEXPORT for the attribute which works the same for both
+GCC and Clang.
+
+Bug: 819294
+Change-Id: I5707d1b0627a503df08df9ac0bb65fda69453989
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1859788
+Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
+Reviewed-by: Nico Weber <thakis(a)chromium.org>
+Commit-Queue: Nico Weber <thakis(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#705917}
+---
+ third_party/zlib/chromeconf.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/zlib/chromeconf.h b/third_party/zlib/chromeconf.h
+index e9aa3867d8512..666093d696a58 100644
+--- a/third_party/zlib/chromeconf.h
++++ b/third_party/zlib/chromeconf.h
+@@ -13,7 +13,7 @@
+ #define ZEXTERN __declspec(dllimport)
+ #endif
+ #elif defined(ZLIB_IMPLEMENTATION)
+-#define ZEXPORT __attribute__((visibility("default")))
++#define ZEXTERN __attribute__((visibility("default")))
+ #endif
+ #endif
+
diff --git a/chromium.spec b/chromium.spec
index f6a5873..8994527 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -225,6 +225,9 @@ Patch60: chromium-77.0.3865.75-missing-limits.patch
Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
+# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
+Patch63: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
+
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -751,6 +754,7 @@ udev.
%patch60 -p1 -b .missing-limits
%patch61 -p1 -b .linked-hash-set
%patch62 -p1 -b .silence-outdated-build-noise
+%patch63 -p1 -b .gcc-fix-zlib-symbol-visibility
# Fedora branded user agent
%if 0%{?fedora}
@@ -1665,6 +1669,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-4
+- upstream fix for zlib symbol exports with gcc
+
* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-3
- silence outdated build noise (bz1745745)
commit 0854e9758c9420c45e377c98ee8193c6086dd4be
Merge: 527091e 35b2732
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 09:41:25 2019 -0400
merge fix
commit 35b2732605020b2627e971ef38a6cb1cd0a4adf6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 09:40:03 2019 -0400
silence outdated build noise (bz1745745)
diff --git a/chromium-77.0.3865.120-silence-outdated-build-noise.patch b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
new file mode 100644
index 0000000..22e1e78
--- /dev/null
+++ b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
@@ -0,0 +1,59 @@
+From e79d9d0e06b825d2e62b38db03248c0e6ceec7e4 Mon Sep 17 00:00:00 2001
+From: Greg Thompson <grt(a)chromium.org>
+Date: Sat, 5 Oct 2019 03:47:05 +0000
+Subject: [PATCH] Only detect outdated builds on Google Chrome.
+
+Prior to https://crrev.com/643864, they weren't detected for Chromium on
+account of the way google_brand worked. That CL changed behavior and
+accidentally started showing the outdated build bubble for Linux
+Chromium users.
+
+BUG=1010592
+
+Change-Id: I069ac36166e2ae720d58b1b9aa85605792be8684
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1841635
+Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
+Reviewed-by: Lei Zhang <thestig(a)chromium.org>
+Commit-Queue: Greg Thompson <grt(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#703131}
+---
+ .../upgrade_detector/upgrade_detector_impl.cc | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+index 432e3789eced0..07850fdf80cd7 100644
+--- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
++++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+@@ -31,6 +31,7 @@
+ #include "base/time/default_tick_clock.h"
+ #include "base/time/tick_clock.h"
+ #include "base/time/time.h"
++#include "build/branding_buildflags.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/google/google_brand.h"
+ #include "chrome/common/chrome_switches.h"
+@@ -74,6 +75,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
+ // The number of days after which we identify a build/install as outdated.
+ constexpr base::TimeDelta kOutdatedBuildAge = base::TimeDelta::FromDays(12 * 7);
+
++constexpr bool ShouldDetectOutdatedBuilds() {
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
++ return true;
++#else // BUILDFLAG(GOOGLE_CHROME_BRANDING)
++ return false;
++#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
++}
++
+ // Return the string that was passed as a value for the
+ // kCheckForUpdateIntervalSec switch.
+ std::string CmdLineInterval() {
+@@ -403,6 +412,9 @@ bool UpgradeDetectorImpl::DetectOutdated
+ if (base::IsMachineExternallyManaged())
+ return false;
+ #endif
++
++ if (!ShouldDetectOutdatedBuilds())
++ return false;
+ }
+
+ base::Time network_time;
diff --git a/chromium.spec b/chromium.spec
index a3aba32..f6a5873 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -223,6 +223,8 @@ Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
Patch60: chromium-77.0.3865.75-missing-limits.patch
# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
Patch61: chromium-77.0.3865.90-linked-hash-set.patch
+# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
+Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -748,6 +750,7 @@ udev.
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
%patch61 -p1 -b .linked-hash-set
+%patch62 -p1 -b .silence-outdated-build-noise
# Fedora branded user agent
%if 0%{?fedora}
@@ -1662,6 +1665,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-3
+- silence outdated build noise (bz1745745)
+
* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
- fix node handling for EPEL-8
commit 527091eafb9fc8e8a1a8ae1aac53d19a929156b5
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:18:40 2019 -0400
merge epel8 changes
diff --git a/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
new file mode 100644
index 0000000..ff6c523
--- /dev/null
+++ b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -0,0 +1,10 @@
+diff -up chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 chromium-76.0.3809.132/components/os_crypt/features.gni
+--- chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 2019-09-06 17:08:01.242314126 -0400
++++ chromium-76.0.3809.132/components/os_crypt/features.gni 2019-09-06 17:08:10.139134707 -0400
+@@ -7,5 +7,5 @@ import("//build/config/ui.gni")
+ declare_args() {
+ # Whether to use libgnome-keyring (deprecated by libsecret).
+ # See http://crbug.com/466975 and http://crbug.com/355223.
+- use_gnome_keyring = is_desktop_linux && use_glib
++ use_gnome_keyring = false
+ }
diff --git a/chromium.spec b/chromium.spec
index 6083fe2..a3aba32 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -198,7 +198,6 @@ Patch11: chromium-widevine-other-locations.patch
Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
# Add "Fedora" to the user agent string
Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
-
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
@@ -239,6 +238,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
+# Apply these patches to work around EPEL8 issues
+Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
# For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm
@@ -270,8 +272,8 @@ Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-
Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf
Source17: GardinerModBug.ttf
Source18: GardinerModCat.ttf
-# RHEL needs newer nodejs
-%if 0%{?rhel}
+# RHEL 7 needs newer nodejs
+%if 0%{?rhel} == 7
Source19: node-v8.9.1-linux-x64.tar.gz
%endif
@@ -289,9 +291,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
@@ -319,7 +318,9 @@ BuildRequires: minizip-compat-devel
BuildRequires: minizip-devel
%endif
# RHEL 7's nodejs is too old
-%if 0%{?fedora}
+%if 0%{?rhel} == 7
+# Use bundled.
+%else
BuildRequires: nodejs
%endif
BuildRequires: nss-devel >= 3.26
@@ -434,7 +435,9 @@ BuildRequires: re2-devel >= 20160401
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
+%if 0%{?rhel} < 8
BuildRequires: pkgconfig(gnome-keyring-1)
+%endif
# remote desktop needs this
BuildRequires: pam-devel
BuildRequires: systemd
@@ -442,7 +445,7 @@ BuildRequires: systemd
%if %{freeworld}
# dont need fonts for this
%else
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf
Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic...
Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf
@@ -455,12 +458,15 @@ Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.t
Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic...
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
-Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
-Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
%else
BuildRequires: google-croscore-arimo-fonts
BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
+BuildRequires: google-croscore-tinos-fonts
+%endif
+%if 0%{?rhel} == 7
+Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
+Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
+%else
BuildRequires: google-noto-sans-cjk-jp-fonts
BuildRequires: lohit-gurmukhi-fonts
%endif
@@ -516,7 +522,7 @@ Provides: chromium-libs = %{version}-%{release}
Obsoletes: chromium-libs <= %{version}-%{release}
%endif
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
ExclusiveArch: x86_64 i686
%else
ExclusiveArch: x86_64 i686 aarch64
@@ -767,6 +773,10 @@ udev.
%patch205 -p1 -b .pulseaudioapichange
%endif
+%if 0%{?rhel} == 8
+%patch300 -p1 -b .disblegnomekeyring
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
@@ -797,7 +807,7 @@ rm -rf MuktiNarrow0.94
cp %{SOURCE16} .
cp %{SOURCE17} .
cp %{SOURCE18} .
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
cp %{SOURCE100} .
cp %{SOURCE101} .
cp %{SOURCE102} .
@@ -810,14 +820,17 @@ cp %{SOURCE108} .
cp %{SOURCE109} .
cp %{SOURCE110} .
cp %{SOURCE111} .
+%else
+cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
+%endif
+%if 0%{?rhel} == 7
tar xf %{SOURCE112}
mv lohit-gurmukhi-ttf-2.91.2/Lohit-Gurmukhi.ttf .
rm -rf lohit-gurmukhi-ttf-2.91.2
unzip %{SOURCE113}
%else
-cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf .
cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf .
%endif
@@ -849,6 +862,9 @@ CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"'
%if %{?use_jumbo}
CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8'
%endif
+%if 0%{?rhel} == 8
+CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
@@ -880,7 +896,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_
CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
export CHROMIUM_HEADLESS_GN_DEFINES
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
pushd third_party/node/linux
tar xf %{SOURCE19}
mv node-v8.9.1-linux-x64 node-linux-x64
@@ -1646,9 +1662,18 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
+- fix node handling for EPEL-8
+
* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
- Update to 77.0.3865.120
+* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
+- enable aarch64 for EPEL-8
+
+* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
+- spec cleanups and changes to make EPEL8 try to build
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
commit e4f20afdcc3e2ad605003c6cdc2ce7b0aaabc6af
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:14:29 2019 -0400
fix node handling for EPEL-8, merge changes from 120
diff --git a/chromium.spec b/chromium.spec
index 4f78c67..a3aba32 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -161,8 +161,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 4%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1662,6 +1662,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
+- fix node handling for EPEL-8
+
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
- enable aarch64 for EPEL-8
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit a5557a189a12aa8c2654787bd6dbb367211ccdfe
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:09:08 2019 -0400
fix node handling
diff --git a/chromium.spec b/chromium.spec
index a5cf1bf..4f78c67 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -272,8 +272,8 @@ Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-
Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf
Source17: GardinerModBug.ttf
Source18: GardinerModCat.ttf
-# RHEL needs newer nodejs
-%if 0%{?rhel}
+# RHEL 7 needs newer nodejs
+%if 0%{?rhel} == 7
Source19: node-v8.9.1-linux-x64.tar.gz
%endif
@@ -318,7 +318,9 @@ BuildRequires: minizip-compat-devel
BuildRequires: minizip-devel
%endif
# RHEL 7's nodejs is too old
-%if 0%{?fedora}
+%if 0%{?rhel} == 7
+# Use bundled.
+%else
BuildRequires: nodejs
%endif
BuildRequires: nss-devel >= 3.26
@@ -894,7 +896,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_
CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
export CHROMIUM_HEADLESS_GN_DEFINES
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
pushd third_party/node/linux
tar xf %{SOURCE19}
mv node-v8.9.1-linux-x64 node-linux-x64
commit 286dfc8bb4be903f78be26124338c895fb3062be
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index f962e02..163731f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,8 +157,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1635,6 +1635,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit 3ffc8fd208d5e52f3d83f51404ba7f6905fc32b7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit e7f437fd182ccfa4ac99976f5bb810b93a0cd998
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index ff76b24..0b74407 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,8 +157,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1635,6 +1635,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit c4d9ecbb70f00e1510c3b752a8443ea974b41e67
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit e67a39d749de4beb65ff66eb76d899da5e1de4b2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index 1542845..6083fe2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -161,8 +161,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1646,6 +1646,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit 78eda85f26a14e5dceb6c667850cd6b930bf26bf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit e29905e4b9a9c57e4dad84e2572912d2cf1a1e4b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Oct 10 08:42:35 2019 -0400
enable aarch64 for EPEL-8
diff --git a/chromium.spec b/chromium.spec
index 5d75c4c..a5cf1bf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -520,7 +520,7 @@ Provides: chromium-libs = %{version}-%{release}
Obsoletes: chromium-libs <= %{version}-%{release}
%endif
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
ExclusiveArch: x86_64 i686
%else
ExclusiveArch: x86_64 i686 aarch64
@@ -1660,6 +1660,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
+- enable aarch64 for EPEL-8
+
* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
commit 9f278441f32523a894c98970d5fe0b8da3fa3572
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 14:15:13 2019 -0400
drop explicit BR: gnome-keyring-devel
diff --git a/chromium.spec b/chromium.spec
index 96c8f36..5d75c4c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,9 +291,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
commit f7aa602c50e32afa459f34444a03f40bb7e111a2
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 12:48:48 2019 -0400
here we go again
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..366c139
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,165 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 81982e2..96c8f36 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -45,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -54,17 +61,15 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
@@ -118,9 +123,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
@@ -133,13 +138,6 @@ BuildRequires: libicu-devel >= 5.4
%global pulseaudioapichange 0
%endif
-# RHEL 8 doesn't have minizip
-%if 0%{?rhel} == 8
-%global bundleminizip 1
-%else
-%global bundleminizip 0
-%endif
-
### 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.
@@ -156,156 +154,80 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
-Name: chromium%{chromium_channel}%{?freeworld:-libs-media-freeworld}
-Summary: Chromium media libraries built with all possible codecs
+Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
-Summary: A WebKit (Blink) powered web browser
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.90
Release: 3%{?dist}
+Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
@@ -318,7 +240,6 @@ Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
-Patch301: chromium-76.0.3809.132-chromedriver-zlib-fix.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -370,12 +291,15 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
+%if 0%{?fedora} <= 27
+BuildRequires: gnome-keyring-devel
+%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -391,15 +315,11 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel
-%if %{bundleminizip}
-# We're using the bundle, baby.
-%else
%if 0%{?fedora} >= 30
BuildRequires: minizip-compat-devel
%else
BuildRequires: minizip-devel
%endif
-%endif
# RHEL 7's nodejs is too old
%if 0%{?fedora}
BuildRequires: nodejs
@@ -540,9 +460,9 @@ Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldIt
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
%else
-BuildRequires: google-croscore-arimo-fonts
-BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
+BuildRequires: google-croscore-arimo-fonts
+BuildRequires: google-croscore-cousine-fonts
+BuildRequires: google-croscore-tinos-fonts
%endif
%if 0%{?rhel} == 7
Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
@@ -633,7 +553,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -703,36 +623,18 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
-%if %{freeworld}
-Provides: chromium-libs-media = %{version}-%{release}
-Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}
-Requires(post): %{_sbindir}/update-alternatives
-Requires(preun): %{_sbindir}/update-alternatives
-
-%description
-Chromium media libraries built with all possible codecs. Chromium is an
-open-source web browser, powered by WebKit (Blink). This package replaces
-the default chromium-libs-media package, which is limited in what it
-can include.
-%else
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
-%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
# Chromium needs an explicit Requires: minizip-compat
# We put it here to cover headless too.
-%if %{bundleminizip}
-# Using the bundle. No Requires needed.
-%else
%if 0%{?fedora} >= 30
Requires: minizip-compat%{_isa}
%else
Requires: minizip%{_isa}
%endif
-%endif
%description common
%{summary}.
@@ -749,6 +651,19 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld}
+%package -n chromium-libs-media-freeworld
+Summary: Chromium media libraries built with all possible codecs
+Provides: chromium-libs-media = %{version}-%{release}
+Provides: chromium-libs-media%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/update-alternatives
+
+%description -n chromium-libs-media-freeworld
+Chromium media libraries built with all possible codecs. Chromium is an
+open-source web browser, powered by WebKit (Blink). This package replaces
+the default chromium-libs-media package, which is limited in what it
+can include.
%else
%package libs-media
Summary: Shared libraries used by the chromium media subsystem
@@ -807,80 +722,46 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%if %{bundleminizip}
-# Leave zlib mangling in place
-%else
-%patch18 -p1 -b .nozmangle
-%endif
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
-%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
+# Feature specific patches
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -897,10 +778,6 @@ udev.
%patch300 -p1 -b .disblegnomekeyring
%endif
-%if %{bundleminizip}
-%patch301 -p1 -b .chromedriver-zlib
-%endif
-
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
@@ -1162,9 +1039,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/mesa' \
'third_party/metrics_proto' \
-%if %{bundleminizip}
- 'third_party/minizip' \
-%endif
'third_party/modp_b64' \
'third_party/nasm' \
'third_party/node' \
@@ -1173,7 +1047,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
@@ -1218,6 +1094,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
@@ -1311,12 +1188,8 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else
re2 \
%endif
-%if %{bundleminizip}
- yasm
-%else
yasm \
zlib
-%endif
# fix arm gcc
sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn
@@ -1341,18 +1214,18 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1372,33 +1245,31 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
-%if 0%{?build_remoting_app}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%endif
-popd
-
-%endif
-
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
%install
rm -rf %{buildroot}
@@ -1406,7 +1277,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1435,9 +1306,12 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
+%if 0
+cp -a protoc pyproto %{buildroot}%{chromium_path}
+%endif
%ifarch x86_64 i686 aarch64
cp -a swiftshader %{buildroot}%{chromium_path}
%endif
@@ -1479,7 +1353,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1515,12 +1389,8 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
@@ -1549,8 +1419,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
@@ -1588,7 +1456,7 @@ if st and st.type == "link" then
end
%if %{freeworld}
-%posttrans
+%posttrans -n chromium-libs-media-freeworld
%{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
@@ -1599,7 +1467,7 @@ end
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
-%preun
+%preun -n chromium-libs-media-freeworld
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld
@@ -1660,6 +1528,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/swiftshader/
%endif
%dir %{chromium_path}/PepperFlash/
+%if 0
+%{chromium_path}/protoc
+%endif
# %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/
@@ -1769,9 +1640,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
%files -n chromedriver
%doc AUTHORS
@@ -1783,7 +1651,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared}
%if %{freeworld}
-%files
+%files -n chromium-libs-media-freeworld
%else
%files libs-media
%endif
@@ -1795,9 +1663,23 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
-* Fri Sep 6 2019 Tom Callaway <spot(a)fedoraproject.org> - 76.0.3809.132-3
+* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
-- freeworld changes from Nicolas Chauvet
+
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
diff --git a/sources b/sources
index 2d38a7c..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit 3d796422d5a4839b4a085c5ff26b57e3d2fc531d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index d9399c5..f962e02 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -158,7 +158,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -218,6 +218,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -730,6 +732,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1632,6 +1635,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 6bae3df5bc0ae8a223b79879956160aebf252b8b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e32ff17..d9399c5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1388,8 +1388,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 35521ebaf47120dd5860f1810946ed48cbe28bab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index f0af194..e32ff17 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,114 +164,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -757,60 +704,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1287,6 +1214,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit 1fb9b47fde081c17a41b77000d2b13167a6ef630
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 41a43d1..f0af194 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1256,7 +1256,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 5e096a366bc3f459996bda46f118e8fa681496a0
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index 838e4b8..41a43d1 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -298,16 +277,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -415,24 +384,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -865,11 +816,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -898,101 +844,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1063,9 +914,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1227,9 +1076,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0
@@ -1460,20 +1306,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1511,10 +1345,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1596,12 +1426,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1742,12 +1566,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1861,11 +1679,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit 18d61f508bd415e9adebb31e5c76f67049d6e5dc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 883277c..838e4b8 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -862,8 +862,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 58128e168f2cad680db52f8be0d98a2bbd85b556
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 930b750..ff76b24 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -158,7 +158,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -218,6 +218,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -730,6 +732,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1632,6 +1635,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 67e04f35f09abe468100109658f02b424c59286c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e6a6f88..930b750 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1388,8 +1388,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 3c95810693ba39059f8b50d3d59b713c0df0fd87
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index c41439f..e6a6f88 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,114 +164,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -757,60 +704,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1287,6 +1214,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit 3eaa3be79d851bec300e909dcb9093bd045f3964
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 7fe074d..c41439f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1256,7 +1256,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 51e320816fc4959c841fc78bb7ef205c79024064
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index 38d8c20..7fe074d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -298,16 +277,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -415,24 +384,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -865,11 +816,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -898,101 +844,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1063,9 +914,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1227,9 +1076,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0
@@ -1460,20 +1306,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1511,10 +1345,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1596,12 +1426,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1742,12 +1566,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1861,11 +1679,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit 47afdc42ed500067d2e4cc5b3df8295c0e08eac6
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 6b2691a..38d8c20 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -862,8 +862,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 0f0792f310ed8f54ca8bf6b73f6c020253dc5f54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index a37d653..1542845 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -222,6 +222,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -739,6 +741,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1643,6 +1646,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 6aa7bda96ed4de25260acb5a9e907d5ff1fa1368
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e426495..a37d653 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1399,8 +1399,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 5a0168685de2184cd3ce9b36a80febe22a738e54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index 4fa3d44..e426495 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -168,114 +168,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -766,60 +713,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1298,6 +1225,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit d8b8fc10a9d2bc16fbdc802ba975b68bc5f4d97b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 25eb383..4fa3d44 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1267,7 +1267,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 1ef42a21dcf51442af1b6830c71b060258844ef5
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index a2538f0..25eb383 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -302,16 +281,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -419,24 +388,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -874,11 +825,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -907,101 +853,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1072,9 +923,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1236,9 +1085,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0%{?bundlepylibs}
@@ -1471,20 +1317,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1522,10 +1356,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1607,12 +1437,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1753,12 +1577,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1872,11 +1690,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit a2942aa1bba73adf0d336548aea65e3830f172ef
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 7a0d711..a2538f0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -871,8 +871,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit d30cc0e5c57bc0e11e6af60e0d278ab72f83f6eb
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 1c05a5b..883277c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -178,8 +178,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit 8564a8c0249dfd591b07c9414454f817c61af1ab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 65bf37589cce82019ca9f09951e2dcc54da36b6a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 8df9fa0..1c05a5b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -296,7 +296,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit 2a431ec174c08be608abec360a4fb191aa9464e4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 2b39cea..6b2691a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -178,8 +178,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit c8786bde9b73d933dab3ea7f6c581461882d9c45
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 10a2ce3a34eeaa2c0a4286cd682bd448e0f0c727
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 38911e2..2b39cea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -296,7 +296,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit 06cf3b0691efe622951e72292af48063622b40c7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 5491e4c..7a0d711 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -182,8 +182,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1902,6 +1902,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit c510174e57208c85a6fe9add725046fa4233abf4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 1a179e7d6a6aa7376e3b286bffa6901c66716294
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 87d6b6c..5491e4c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -300,7 +300,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit d8c8b864697a920d705fe5ff2336dd234582b1fc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 29a98c0..8df9fa0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -179,7 +179,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit 7b0eb5189f249fbbbbdb3898b9b2d6f82193597a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 07dc939..29a98c0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit de3e9b33bbe4855083c5bb26f7e779b7fda87d8b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 496b922..38911e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -179,7 +179,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit ce1cd8e39484eefc8575db11fcc6c4b3ebceef43
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 6967dc4..87d6b6c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -183,7 +183,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1902,6 +1902,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit dd3c28c89ec41f3999f065bab972221f5316b87a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index d2436e2..496b922 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit fa69419940e71be5ae2632b759bd664c1a3e8def
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 843f1a0..6967dc4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit 4dcf0591dcdec5b3da92ea722776011dced3b408
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index 0155f8b..07dc939 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1634,8 +1634,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 91378b7314afaa749fac68da0f10742ce6339b3b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 247c3e6..0155f8b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -288,6 +288,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -853,6 +855,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit e0d06a0fbf5063d875762e3c2cec32e15082c8b3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index 854c788..247c3e6 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1403,17 +1410,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1433,34 +1440,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1470,7 +1479,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1499,7 +1508,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1550,7 +1559,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1593,7 +1602,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit b30c77e75cc415b2a854f26288ad4e2f071dd1c1
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 44e7cf4..854c788 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -843,6 +845,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit 13aab678f5a9b833d2d451491793d823121540b6
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index acd3c83..44e7cf4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1234,6 +1234,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit 176f9b5d933c05a0599ab75ec609cc7f58bf8e9d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index 0698efa..acd3c83 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -277,6 +277,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -362,7 +364,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -624,7 +626,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -840,6 +842,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit f468793c28b6e08c98d91d167a0682371fd0132a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index 1102cc7..0698efa 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1872,6 +1872,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit 2af2caea12b584c709b99b1807387bfab22f11f3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index f6f1614..1102cc7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1277,6 +1277,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit e05d0e1ae8e54ea44dd0eee63a9ca3424ef71f23
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index 2bd1b2f..f6f1614 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -275,6 +275,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -837,6 +839,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit 09209e74278ef53332bc05582bd24314fdbfb4d2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 0a6434d..2bd1b2f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -262,9 +262,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -834,7 +831,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 0c379302f50ae654e3872cb517a8929d62dfbe22
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index 5b769cb..0a6434d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,9 +133,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit f36acf4bdbf61a81f2b142c4d0db230ce56e58e2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index fb7886c..5b769cb 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -276,6 +276,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -838,6 +840,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit 1302df6eb572e7aac300962907eac7cc6ad9efe5
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit e77d556bade31e19ca7415d6289203b1e604787c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 382929d255c8becf3ff2123e95657adaa8345c84
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index 71a6cfa..fb7886c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1230,6 +1230,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 16423a6aaf33016cb0eeb0c20725d6434ca411c3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index 100b665..71a6cfa 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -274,6 +274,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -835,6 +837,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 2873f12bb33c082c677cf6764c958a16c21b4d1e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 4239a65..100b665 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,14 +164,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -211,20 +211,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -232,7 +232,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -260,43 +260,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -305,7 +273,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,7 +814,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -861,23 +829,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1466,6 +1419,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit be307c8f4d884cb12958bb7bc62eb591fcaea35b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index 799b55b..d2436e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1634,8 +1634,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit f68b7de9c099cd6540f657e6df3d7bccf7ff914b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 760805e..799b55b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -288,6 +288,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -853,6 +855,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit d544c78407eac8efb67088cde61ccd4eba574658
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index 625d74d..760805e 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1403,17 +1410,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1433,34 +1440,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1470,7 +1479,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1499,7 +1508,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1550,7 +1559,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1593,7 +1602,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit d0e5893874a5394bcf62cbb090dd7245a080c245
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 4a74346..625d74d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -843,6 +845,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit a159083f2bffc5638c2bc82df2b5187c6b2b6408
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index 277fcfe..4a74346 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1234,6 +1234,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit 5316414f65248b78db5678e60a797f2cea4dc493
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index b959409..277fcfe 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -277,6 +277,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -362,7 +364,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -624,7 +626,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -840,6 +842,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit 4287667b770213af574b8adb5d22f919a5c63fca
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index dca072c..b959409 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1872,6 +1872,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit a9b565084b2825a476563c1d40597038e8d18971
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index 328b149..dca072c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1277,6 +1277,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit b10ed01ae7f394478f8abea46a1227b93933c576
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index a6daffc..328b149 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -275,6 +275,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -837,6 +839,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit ce1cdf147b4faa3545fb1f783fed82712f601144
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 129f8b9..a6daffc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -262,9 +262,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -834,7 +831,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 670a5ef5afc89028d89ec7486261805cefbd1626
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index 980a57d..129f8b9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,9 +133,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit 1dabe8d36679bcd36e5488c42a5f148a6100f872
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index 92e6b78..980a57d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -276,6 +276,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -838,6 +840,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit aa41a1de67e23ce345062d1753d1f6b3c3d7fad8
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit 3534908954173e8207dd19ecc36b19eb5666ecb7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 62d330423a8d7a7ba17fdbee6966abbc76707a4a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index 440ec40..92e6b78 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1230,6 +1230,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 6e6dfd56f09be0eb1bd8c1e180b5db4b517958af
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index a943ad5..440ec40 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -274,6 +274,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -835,6 +837,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 782a626758b49d8cedf4c7d485190c817455e136
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 877f8f7..a943ad5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,14 +164,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -211,20 +211,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -232,7 +232,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -260,43 +260,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -305,7 +273,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,7 +814,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -861,23 +829,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1466,6 +1419,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit 7fc281321af19c13b81aeaa367d93b7681482b00
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index a198ddf..843f1a0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1645,8 +1645,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 4d35c8a98356aedecd1f0fe80534a454f93ecf6d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 5dec1f7..a198ddf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -292,6 +292,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -862,6 +864,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit 578228ae99ca125111d573ee5ff5c7cca67264ee
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index d874dd5..5dec1f7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1414,17 +1421,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1444,34 +1451,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1481,7 +1490,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1510,7 +1519,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1561,7 +1570,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1604,7 +1613,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit 63ccbdcf58d947939423cf78126866370e0f78ba
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 522df10..d874dd5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -283,6 +283,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -852,6 +854,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit 057d9fcd01bff959156616a47f0c13409dc6ecaf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index 8039cd0..522df10 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1243,6 +1243,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit dc2f301520eb0151967763d129a425fa0a509ada
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index dd3fbaf..8039cd0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -281,6 +281,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -366,7 +368,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -633,7 +635,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -849,6 +851,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit ecb75dee3259ac4e802881ab69b036fa7019d553
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index bfbc930..dd3fbaf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -176,7 +176,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1883,6 +1883,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit fb22c7a5e910b0d702d8c8cace78936eff63eccc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index 636aaab..bfbc930 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1286,6 +1286,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit 8ed36c4625d4090e87a85bf5368f82289664d77f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index 008873e..636aaab 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,6 +848,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit 63945f4efd038b18f3556b766e01ce17012d8ece
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 102f14d..008873e 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -266,9 +266,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -843,7 +840,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 1a11ef1abaf843579269cb7f1a60aceb6b50b023
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index f8a9800..102f14d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -137,9 +137,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit d08e680fa760fa174b8940428aafbf62cef21c50
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index 4b20549..f8a9800 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -280,6 +280,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -847,6 +849,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit 5e3b7f3e899c48fbabcf95b19bc275a629a0e871
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit 2cfc18c994143ce77664104024315e6056e4371e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 1b0a93bc239d9ee125a0356f974176ef82bafeb3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index cc79386..4b20549 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1239,6 +1239,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 8458f58818dc3548cdaec285bd680ff9c84f9f46
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index a2d54e4..cc79386 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -278,6 +278,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -844,6 +846,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 892e596886b085085ee7b974404746d408db7cda
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 1471b94..a2d54e4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -168,14 +168,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -215,20 +215,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -236,7 +236,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -264,43 +264,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -309,7 +277,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -855,7 +823,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -870,23 +838,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1477,6 +1430,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit a0c0e33b0a2dc8f2eeba8711bd86c7c6eacfa943
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 16:58:00 2019 -0400
take two
diff --git a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
index 7ab46d8..f8b44d0 100644
--- a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
+++ b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
@@ -1,11 +1,11 @@
diff -up chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn
--- chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme 2019-09-10 15:53:02.871463568 -0400
-+++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 15:53:33.057824836 -0400
-@@ -197,6 +197,7 @@ source_set("automation_client_lib") {
- "//services/network/public/cpp",
++++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 16:57:32.281112323 -0400
+@@ -319,6 +319,7 @@ executable("chromedriver") {
+ "//net/server:http_server",
+ "//net/traffic_annotation:test_support",
"//services/network/public/mojom",
- "//third_party/blink/public:buildflags",
+ "//third_party/zlib",
- "//third_party/zlib:minizip",
- "//third_party/zlib/google:zip",
- "//ui/accessibility:ax_enums_mojo",
+ ]
+ }
+
commit 7f0ec73cb7f97bea9a276d1e9d33c40557338c1a
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 15:55:16 2019 -0400
trying this
diff --git a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
new file mode 100644
index 0000000..7ab46d8
--- /dev/null
+++ b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn
+--- chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme 2019-09-10 15:53:02.871463568 -0400
++++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 15:53:33.057824836 -0400
+@@ -197,6 +197,7 @@ source_set("automation_client_lib") {
+ "//services/network/public/cpp",
+ "//services/network/public/mojom",
+ "//third_party/blink/public:buildflags",
++ "//third_party/zlib",
+ "//third_party/zlib:minizip",
+ "//third_party/zlib/google:zip",
+ "//ui/accessibility:ax_enums_mojo",
diff --git a/chromium.spec b/chromium.spec
index fd6a3ea..81982e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -316,8 +316,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
-# Apply this patches to work around EPEL8 issues
+# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+Patch301: chromium-76.0.3809.132-chromedriver-zlib-fix.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -896,6 +897,10 @@ udev.
%patch300 -p1 -b .disblegnomekeyring
%endif
+%if %{bundleminizip}
+%patch301 -p1 -b .chromedriver-zlib
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
commit f53529c22595c5f8492df88b4f8b39875a168321
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 13:28:28 2019 -0400
re-enable zlib mangling in bundleminizip conditional case
diff --git a/chromium.spec b/chromium.spec
index 5b07016..fd6a3ea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -823,7 +823,11 @@ udev.
%patch15 -p1 -b .system-clang
%patch16 -p1 -b .noprefix
%patch17 -p1 -b .nomangle
+%if %{bundleminizip}
+# Leave zlib mangling in place
+%else
%patch18 -p1 -b .nozmangle
+%endif
%patch19 -p1 -b .pathfix
%patch20 -p1 -b .nogccoptmath
%patch21 -p1 -b .gcc5-r3
commit 71ab9fa61df4d55acdef90769e8f9238c38cbce7
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Sep 9 07:54:13 2019 -0400
use bundled zlib here (ugh)
diff --git a/chromium.spec b/chromium.spec
index 9c12951..5b07016 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1302,8 +1302,12 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else
re2 \
%endif
+%if %{bundleminizip}
+ yasm
+%else
yasm \
zlib
+%endif
# fix arm gcc
sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn
commit 1964554c88c8e379f9ceb934337f0fff260cbfba
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 17:10:21 2019 -0400
force disable use_gnome_keyring
diff --git a/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
new file mode 100644
index 0000000..ff6c523
--- /dev/null
+++ b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -0,0 +1,10 @@
+diff -up chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 chromium-76.0.3809.132/components/os_crypt/features.gni
+--- chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 2019-09-06 17:08:01.242314126 -0400
++++ chromium-76.0.3809.132/components/os_crypt/features.gni 2019-09-06 17:08:10.139134707 -0400
+@@ -7,5 +7,5 @@ import("//build/config/ui.gni")
+ declare_args() {
+ # Whether to use libgnome-keyring (deprecated by libsecret).
+ # See http://crbug.com/466975 and http://crbug.com/355223.
+- use_gnome_keyring = is_desktop_linux && use_glib
++ use_gnome_keyring = false
+ }
diff --git a/chromium.spec b/chromium.spec
index 9bdec57..9c12951 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -316,6 +316,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
+# Apply this patches to work around EPEL8 issues
+Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
# For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm
@@ -885,6 +888,10 @@ udev.
%patch205 -p1 -b .pulseaudioapichange
%endif
+%if 0%{?rhel} == 8
+%patch300 -p1 -b .disblegnomekeyring
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
commit c76cbbc3b06ce1008fca84278d3653896474b7b2
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 16:40:41 2019 -0400
conditionalize minizip bundling since rhel 8 does not have it
diff --git a/chromium.spec b/chromium.spec
index d2a573a..9bdec57 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,6 +133,13 @@ BuildRequires: libicu-devel >= 5.4
%global pulseaudioapichange 0
%endif
+# RHEL 8 doesn't have minizip
+%if 0%{?rhel} == 8
+%global bundleminizip 1
+%else
+%global bundleminizip 0
+%endif
+
### 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.
@@ -380,11 +387,15 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel
+%if %{bundleminizip}
+# We're using the bundle, baby.
+%else
%if 0%{?fedora} >= 30
BuildRequires: minizip-compat-devel
%else
BuildRequires: minizip-devel
%endif
+%endif
# RHEL 7's nodejs is too old
%if 0%{?fedora}
BuildRequires: nodejs
@@ -709,11 +720,15 @@ Chromium is an open-source web browser, powered by WebKit (Blink).
Summary: Files needed for both the headless_shell and full Chromium
# Chromium needs an explicit Requires: minizip-compat
# We put it here to cover headless too.
+%if %{bundleminizip}
+# Using the bundle. No Requires needed.
+%else
%if 0%{?fedora} >= 30
Requires: minizip-compat%{_isa}
%else
Requires: minizip%{_isa}
%endif
+%endif
%description common
%{summary}.
@@ -1131,6 +1146,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/mesa' \
'third_party/metrics_proto' \
+%if %{bundleminizip}
+ 'third_party/minizip' \
+%endif
'third_party/modp_b64' \
'third_party/nasm' \
'third_party/node' \
commit 911f7b2ea074e200c79a66dc07f57c3b39df4fbd
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 16:10:38 2019 -0400
disable gnome-keyring
diff --git a/chromium.spec b/chromium.spec
index b870100..d2a573a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -955,6 +955,9 @@ CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"'
%if %{?use_jumbo}
CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8'
%endif
+%if 0%{?rhel} == 8
+CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
commit e9192241d8d4cd7fc33052dcb2d9a1ebf95cdaa6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 10:44:11 2019 -0400
lots of spec cleanups, support for epel8, remove nacl for good, apply freeworld fixes
diff --git a/chromium.spec b/chromium.spec
index 1471b94..b870100 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,25 +70,6 @@
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -171,13 +152,14 @@ BuildRequires: libicu-devel >= 5.4
%global majorversion 76
%if %{freeworld}
-Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
+Name: chromium%{chromium_channel}%{?freeworld:-libs-media-freeworld}
+Summary: Chromium media libraries built with all possible codecs
%else
Name: chromium%{chromium_channel}
+Summary: A WebKit (Blink) powered web browser
%endif
Version: %{majorversion}.0.3809.132
-Release: 2%{?dist}
-Summary: A WebKit (Blink) powered web browser
+Release: 3%{?dist}
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -318,16 +300,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-76.0.3809.100-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -387,9 +359,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
@@ -435,24 +404,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -550,7 +501,9 @@ BuildRequires: re2-devel >= 20160401
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
+%if 0%{?rhel} < 8
BuildRequires: pkgconfig(gnome-keyring-1)
+%endif
# remote desktop needs this
BuildRequires: pam-devel
BuildRequires: systemd
@@ -558,7 +511,7 @@ BuildRequires: systemd
%if %{freeworld}
# dont need fonts for this
%else
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf
Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic...
Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf
@@ -571,12 +524,15 @@ Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.t
Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic...
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
+%else
+BuildRequires: google-croscore-arimo-fonts
+BuildRequires: google-croscore-cousine-fonts
+BuildRequires: google-croscore-tinos-fonts
+%endif
+%if 0%{?rhel} == 7
Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
%else
-BuildRequires: google-croscore-arimo-fonts
-BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
BuildRequires: google-noto-sans-cjk-jp-fonts
BuildRequires: lohit-gurmukhi-fonts
%endif
@@ -732,8 +688,22 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
+%if %{freeworld}
+Provides: chromium-libs-media = %{version}-%{release}
+Provides: chromium-libs-media%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/update-alternatives
+
+%description
+Chromium media libraries built with all possible codecs. Chromium is an
+open-source web browser, powered by WebKit (Blink). This package replaces
+the default chromium-libs-media package, which is limited in what it
+can include.
+%else
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
+%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
@@ -760,19 +730,6 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld}
-%package -n chromium-libs-media-freeworld
-Summary: Chromium media libraries built with all possible codecs
-Provides: chromium-libs-media = %{version}-%{release}
-Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}
-Requires(post): %{_sbindir}/update-alternatives
-Requires(preun): %{_sbindir}/update-alternatives
-
-%description -n chromium-libs-media-freeworld
-Chromium media libraries built with all possible codecs. Chromium is an
-open-source web browser, powered by WebKit (Blink). This package replaces
-the default chromium-libs-media package, which is limited in what it
-can include.
%else
%package libs-media
Summary: Shared libraries used by the chromium media subsystem
@@ -901,12 +858,6 @@ udev.
%patch58 -R -p1
%endif
-# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -935,101 +886,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1044,7 +900,7 @@ rm -rf MuktiNarrow0.94
cp %{SOURCE16} .
cp %{SOURCE17} .
cp %{SOURCE18} .
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
cp %{SOURCE100} .
cp %{SOURCE101} .
cp %{SOURCE102} .
@@ -1057,14 +913,17 @@ cp %{SOURCE108} .
cp %{SOURCE109} .
cp %{SOURCE110} .
cp %{SOURCE111} .
+%else
+cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
+%endif
+%if 0%{?rhel} == 7
tar xf %{SOURCE112}
mv lohit-gurmukhi-ttf-2.91.2/Lohit-Gurmukhi.ttf .
rm -rf lohit-gurmukhi-ttf-2.91.2
unzip %{SOURCE113}
%else
-cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf .
cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf .
%endif
@@ -1100,9 +959,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1264,9 +1121,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0%{?bundlepylibs}
@@ -1494,10 +1348,8 @@ pushd remoting
# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
%endif
-%endif
popd
%endif
@@ -1544,14 +1396,7 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{target}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
-%if 0
-cp -a protoc pyproto %{buildroot}%{chromium_path}
-%endif
%ifarch x86_64 i686 aarch64
cp -a swiftshader %{buildroot}%{chromium_path}
%endif
@@ -1630,10 +1475,8 @@ ln -s system-auth chrome-remote-desktop
popd
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
-%endif
%if %{build_headless}
pushd %{headlesstarget}
@@ -1704,7 +1547,7 @@ if st and st.type == "link" then
end
%if %{freeworld}
-%posttrans -n chromium-libs-media-freeworld
+%posttrans
%{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
@@ -1715,7 +1558,7 @@ end
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
-%preun -n chromium-libs-media-freeworld
+%preun
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld
@@ -1775,16 +1618,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
-%if 0
-%{chromium_path}/protoc
-%endif
# %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/
@@ -1895,10 +1729,8 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
%{chromium_path}/remoting_client_plugin_newlib.*
%endif
-%endif
%files -n chromedriver
%doc AUTHORS
@@ -1910,7 +1742,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared}
%if %{freeworld}
-%files -n chromium-libs-media-freeworld
+%files
%else
%files libs-media
%endif
@@ -1922,6 +1754,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 6 2019 Tom Callaway <spot(a)fedoraproject.org> - 76.0.3809.132-3
+- spec cleanups and changes to make EPEL8 try to build
+- freeworld changes from Nicolas Chauvet
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit 67061b489484edb1d5e87b3551ed72695fbaafce
Merge: 2c4faae f341b67
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Sep 5 16:58:58 2019 -0400
Merge branch 'master' into epel8
commit 2c4faaedb3611d1d5cbf09d7e277a7586b1e9084
Author: Gwyn Ciesla <gwync(a)protonmail.com>
Date: Thu Sep 5 15:46:11 2019 -0500
"Adding package.cfg file"
diff --git a/package.cfg b/package.cfg
new file mode 100644
index 0000000..66ea79d
--- /dev/null
+++ b/package.cfg
@@ -0,0 +1,2 @@
+[koji]
+targets = epel8 epel8-playground
\ No newline at end of file
commit 6140e1104effb04aa4f3c65110ec71eca3efb66d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit 82c3fb0c11b8125b95e298f467ccc77d9f3bafa4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit f341b670a040a236cc836e45e0de0e9e3361cb50
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit be81360432cb7ef6251b4f39a0b164e04b33c044
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit da8d872e924923bdd1d8c7eae0ace87bba8c0309
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit b974e5ab1a621f965dba65d413d46ee4a964fbdf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit fb0db49d82bdd82577da78dea191d39bf02f0051
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index aec9f9f..4239a65 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -304,6 +304,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -879,6 +881,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1908,6 +1911,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit bc006359dd8cff1a6890d7791885e572914f8642
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index cbc4fa4..877f8f7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -304,6 +304,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -879,6 +881,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1908,6 +1911,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit 41c22993b3320f535a33080157da4f49f69bf69e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index 8e251b9..1471b94 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -176,7 +176,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -308,6 +308,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -888,6 +890,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1919,6 +1922,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit 9bb933dc67b7e0b2051c0f48ef3783365b86fc8b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Aug 29 16:22:39 2019 -0400
update chromium-latest.py to Python3
diff --git a/chromium-latest.py b/chromium-latest.py
index 87889ad..5af8628 100755
--- a/chromium-latest.py
+++ b/chromium-latest.py
@@ -1,5 +1,5 @@
-#!/usr/bin/python
-# Copyright 2010,2015-2016 Tom Callaway <tcallawa(a)redhat.com>
+#!/usr/bin/python3
+# Copyright 2010,2015-2019 Tom Callaway <tcallawa(a)redhat.com>
# Copyright 2013-2016 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -32,9 +32,9 @@ import hashlib
import locale
import os
import shutil
-import StringIO
+import io
import sys
-import urllib
+import urllib.request, urllib.parse, urllib.error
chromium_url = "http://commondatastorage.googleapis.com/chromium-browser-official/"
@@ -59,22 +59,22 @@ def dlProgress(count, blockSize, totalSize):
def delete_chromium_dir(ch_dir):
full_dir = "%s/%s" % (latest_dir, ch_dir)
- print 'Deleting %s ' % full_dir
+ print('Deleting %s ' % full_dir)
if os.path.isdir(full_dir):
shutil.rmtree(full_dir)
- print '[DONE]'
+ print('[DONE]')
else:
- print '[NOT FOUND]'
+ print('[NOT FOUND]')
def delete_chromium_files(files):
full_path = "%s/%s" % (latest_dir, files)
- print 'Deleting ' + full_path + ' ',
+ print('Deleting ' + full_path + ' ', end=' ')
for filename in glob.glob(full_path):
- print 'Deleting ' + filename + ' ',
+ print('Deleting ' + filename + ' ', end=' ')
os.remove(filename)
- print '[DONE]'
+ print('[DONE]')
def check_omahaproxy(channel="stable"):
@@ -82,20 +82,20 @@ def check_omahaproxy(channel="stable"):
version = 0
status_url = "http://omahaproxy.appspot.com/all?os=linux&channel=" + channel
- usock = urllib.urlopen(status_url)
- status_dump = usock.read()
+ usock = urllib.request.urlopen(status_url)
+ status_dump = usock.read().decode('utf-8')
usock.close()
- status_list = StringIO.StringIO(status_dump)
+ status_list = io.StringIO(status_dump)
status_reader = list(csv.reader(status_list, delimiter=','))
linux_channels = [s for s in status_reader if "linux" in s]
linux_channel = [s for s in linux_channels if channel in s]
version = linux_channel[0][2]
if version == 0:
- print 'I could not find the latest %s build. Bailing out.' % channel
+ print('I could not find the latest %s build. Bailing out.' % channel)
sys.exit(1)
else:
- print 'Latest Chromium Version on %s at %s is %s' % (channel, status_url, version)
+ print('Latest Chromium Version on %s at %s is %s' % (channel, status_url, version))
return version
@@ -119,27 +119,27 @@ def download_file_and_compare_hashes(file_to_download):
# Let's make sure we haven't already downloaded it.
tarball_local_file = "./%s" % file_to_download
if os.path.isfile(tarball_local_file):
- print "%s already exists!" % file_to_download
+ print("%s already exists!" % file_to_download)
else:
path = '%s%s' % (chromium_url, file_to_download)
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, file_to_download, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, file_to_download, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if (info["Content-Type"] != "application/x-tar"):
- print 'Chromium tarballs for %s are not on servers.' % file_to_download
+ print('Chromium tarballs for %s are not on servers.' % file_to_download)
remove_file_if_exists (file_to_download)
sys.exit(1)
hashes_local_file = "./%s" % hashes_file
if not os.path.isfile(hashes_local_file):
path = '%s%s' % (chromium_url, hashes_file)
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, hashes_file, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, hashes_file, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if os.path.isfile(hashes_local_file):
with open(hashes_local_file, "r") as input_file:
@@ -149,12 +149,12 @@ def download_file_and_compare_hashes(file_to_download):
for block in iter(lambda: f.read(65536), b""):
md5.update(block)
if (md5sum == md5.hexdigest()):
- print "MD5 matches for %s!" % file_to_download
+ print("MD5 matches for %s!" % file_to_download)
else:
- print "MD5 mismatch for %s!" % file_to_download
+ print("MD5 mismatch for %s!" % file_to_download)
sys.exit(1)
else:
- print "Cannot compare hashes for %s!" % file_to_download
+ print("Cannot compare hashes for %s!" % file_to_download)
def download_version(version):
@@ -175,16 +175,16 @@ def nacl_versions(version):
for line in myfile:
name, var = line.partition("=")[::2]
myvars[name] = var
- print "nacl-binutils commit: %s" % myvars["NACL_BINUTILS_COMMIT"]
- print "nacl-gcc commit: %s" % myvars["NACL_GCC_COMMIT"]
- print "nacl-newlib commit: %s" % myvars["NACL_NEWLIB_COMMIT"]
+ print("nacl-binutils commit: %s" % myvars["NACL_BINUTILS_COMMIT"])
+ print("nacl-gcc commit: %s" % myvars["NACL_GCC_COMMIT"])
+ print("nacl-newlib commit: %s" % myvars["NACL_NEWLIB_COMMIT"])
# Parse GIT_REVISIONS dict from toolchain_build.py
sys.path.append(os.path.abspath(chrome_dir + "/native_client/toolchain_build"))
from toolchain_build import GIT_REVISIONS
- print "nacl-arm-binutils commit: %s" % GIT_REVISIONS['binutils']['rev']
- print "nacl-arm-gcc commit: %s" % GIT_REVISIONS['gcc']['rev']
+ print("nacl-arm-binutils commit: %s" % GIT_REVISIONS['binutils']['rev'])
+ print("nacl-arm-gcc commit: %s" % GIT_REVISIONS['gcc']['rev'])
def download_chrome_latest_rpm(arch):
@@ -197,15 +197,15 @@ def download_chrome_latest_rpm(arch):
# Let's make sure we haven't already downloaded it.
if os.path.isfile("./%s" % chrome_rpm):
- print "%s already exists!" % chrome_rpm
+ print("%s already exists!" % chrome_rpm)
else:
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, chrome_rpm, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, chrome_rpm, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if (info["Content-Type"] != "binary/octet-stream" and info["Content-Type"] != "application/x-redhat-package-manager"):
- print 'Chrome %s rpms are not on servers.' % version_string
+ print('Chrome %s rpms are not on servers.' % version_string)
remove_file_if_exists (chrome_rpm)
sys.exit(1)
@@ -274,7 +274,7 @@ if __name__ == '__main__':
version_string = "dev"
elif (not (args.stable or args.beta or args.dev)):
if (not args.version):
- print 'No version specified, downloading STABLE'
+ print('No version specified, downloading STABLE')
args.stable = True
chromium_version = args.version if args.version else check_omahaproxy(version_string)
@@ -284,7 +284,7 @@ if __name__ == '__main__':
if args.chrome:
if args.version:
- print 'You cannot specify a Chrome RPM version!'
+ print('You cannot specify a Chrome RPM version!')
sys.exit(1)
latest = 'google-chrome-%s_current_i386' % version_string
download_chrome_latest_rpm("i386")
@@ -303,11 +303,11 @@ if __name__ == '__main__':
shutil.rmtree(latest_dir)
if os.path.isdir(latest_dir):
- print "%s already exists, perhaps %s has already been unpacked?" % (latest_dir, latest)
+ print("%s already exists, perhaps %s has already been unpacked?" % (latest_dir, latest))
else:
- print "Unpacking %s into %s, please wait." % (latest, latest_dir)
+ print("Unpacking %s into %s, please wait." % (latest, latest_dir))
if (os.system("tar -xJf %s" % latest) != 0):
- print "%s is possibly corrupted, exiting." % (latest)
+ print("%s is possibly corrupted, exiting." % (latest))
sys.exit(1)
if (args.naclvers):
@@ -334,11 +334,11 @@ if __name__ == '__main__':
if (args.ffmpegclean):
print("Cleaning ffmpeg from proprietary things...")
os.system("./clean_ffmpeg.sh %s %d" % (latest_dir, 0 if args.ffmpegarm else 1))
- print "Done!"
+ print("Done!")
if (not args.prep):
- print "Compressing cleaned tree, please wait..."
+ print("Compressing cleaned tree, please wait...")
os.chdir(chromium_root_dir)
os.system("tar --exclude=\.svn -cf - chromium-%s | xz -9 -T 0 -f > %s" % (chromium_version, chromium_clean_xz_file))
- print "Finished!"
+ print("Finished!")
commit 5bc875d20d07ffbc4beede7dcb32efe0f5533bdb
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:56:12 2019 +0200
Add an updated patch that was missed
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..73db4d4
--- /dev/null
+++ b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
@@ -0,0 +1,21 @@
+diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
+--- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
+@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
+ "application/x-protobuf",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
commit 503e7f07db727ed866a0b344937089c38a6bca75
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:13:54 2019 +0200
Update to 76.0.3809.132
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 587abf3..0000000
--- a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 19:46:55 +0000
-Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
-
-Use brace-list notation to wrap the already existing brace-list for
-initializing the flat-set. This resolves an ambiguous instantiation
-in GCC.
-
-Bug: 819294
-Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
-Reviewed-by: Matt Menke <mmenke(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666401}
----
-
-diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
-index 30999c0..60a03f6 100644
---- a/services/network/cross_origin_read_blocking.cc
-+++ b/services/network/cross_origin_read_blocking.cc
-@@ -211,7 +211,7 @@
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -224,7 +224,7 @@
- "application/x-www-form-urlencoded",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium.spec b/chromium.spec
index 980cf6b..aec9f9f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -171,7 +171,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.100
+Version: %{majorversion}.0.3809.132
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -280,7 +280,7 @@ Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
@@ -1908,6 +1908,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
+- Update to 76.0.3809.132
+
* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
- Update to 76.0.3809.100
diff --git a/sources b/sources
index b7a420d..2d38a7c 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
+SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
commit 22d44ca53a19cbe79f6355ddefb3304796bb3336
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 26 14:40:26 2019 +0200
Another noexec fix for EL7
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 99593f7..407f8de 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -18,7 +18,7 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
switch (icon_type_) {
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
Swap(&other);
}
@@ -28,9 +28,18 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc
Swap(&other);
return *this;
}
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
@@ -143,7 +143,7 @@ class QueryResults {
~QueryResults();
@@ -40,6 +49,15 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.
void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
commit e79629f80cbd2f675d4076bf19e451106de4edeb
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 13:48:03 2019 +0200
Another el7 noexcept change
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 054d42e..99593f7 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -1,6 +1,6 @@
diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
provider_id_(provider_id) {}
@@ -16,11 +16,33 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
bool MediaSink::IsMaybeCloudSink() const {
switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
PolicyMap::Entry::~Entry() = default;
@@ -31,8 +53,8 @@ diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-
PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
Entry copy;
diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
default;
@@ -52,8 +74,8 @@ diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.e
bool AccountInfo::IsEmpty() const {
return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
@@ -64,8 +86,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
@@ -19,7 +19,7 @@ struct CoreAccountId {
~CoreAccountId();
@@ -76,8 +98,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept
// Those implicit constructor and conversion operator allow to
// progressively migrate the code to use this struct. Removing
diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
const GPUInfo::GPUDevice& other) = default;
commit 32cbc6922abb2d6107ff13fd072c874202bcabb8
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 11:01:37 2019 +0200
More el7 fixes
Merge the previously committed change in to the el7-noexcept patch and
revert another change that is needed on Fedora, but breaking the build
on EL7.
diff --git a/chromium-75.0.3770.100-el7-fix-noexcept.patch b/chromium-75.0.3770.100-el7-fix-noexcept.patch
deleted file mode 100644
index eaba072..0000000
--- a/chromium-75.0.3770.100-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc
---- chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-06-18 11:47:55.000000000 -0400
-+++ chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc 2019-06-20 10:17:27.440446569 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-75.0.3770.100/components/policy/core/common/policy_map.cc
---- chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-06-18 11:48:01.000000000 -0400
-+++ chromium-75.0.3770.100/components/policy/core/common/policy_map.cc 2019-06-20 10:17:27.444446463 -0400
-@@ -31,7 +31,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-75.0.3770.100/components/signin/core/browser/account_info.cc
---- chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-06-20 10:17:27.444446463 -0400
-+++ chromium-75.0.3770.100/components/signin/core/browser/account_info.cc 2019-06-20 10:19:17.959532865 -0400
-@@ -51,7 +51,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-diff -up chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept chromium-75.0.3770.100/gpu/config/gpu_info.cc
---- chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept 2019-06-18 11:48:10.000000000 -0400
-+++ chromium-75.0.3770.100/gpu/config/gpu_info.cc 2019-06-20 10:17:27.445446437 -0400
-@@ -181,7 +181,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 09fccf6..0000000
--- a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
-@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
--
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
-@@ -19,7 +19,6 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
new file mode 100644
index 0000000..054d42e
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -0,0 +1,89 @@
+diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+@@ -19,7 +19,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
diff --git a/chromium.spec b/chromium.spec
index 6d9a760..980cf6b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -310,9 +310,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
-# el7 only patch as it doesn't like on of the operator= change in patch59
-Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+Patch102: chromium-76.0.3809.100-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -887,7 +885,8 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
+# Revert patch58 because it's breaking the build on el7
+%patch58 -R -p1
%endif
# Feature specific patches
commit ed655503ee49db321bfbf84dca4364a8c5979f72
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 07:54:57 2019 +0200
Fix the EL7 build as it doesn't like part of the upstream GCC patch
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..09fccf6
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,23 @@
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
+@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
+-
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
+@@ -19,7 +19,6 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
diff --git a/chromium.spec b/chromium.spec
index 59883f4..6d9a760 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -311,6 +311,8 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+# el7 only patch as it doesn't like on of the operator= change in patch59
+Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -885,6 +887,7 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
+%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
%endif
# Feature specific patches
commit 8b5c622431489da2ed177d880f7fddd66e8967d2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:56:12 2019 +0200
Add an updated patch that was missed
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..73db4d4
--- /dev/null
+++ b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
@@ -0,0 +1,21 @@
+diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
+--- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
+@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
+ "application/x-protobuf",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
commit b82b0a31dd6fca01269e15e1262ee63551753142
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:13:54 2019 +0200
Update to 76.0.3809.132
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 587abf3..0000000
--- a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 19:46:55 +0000
-Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
-
-Use brace-list notation to wrap the already existing brace-list for
-initializing the flat-set. This resolves an ambiguous instantiation
-in GCC.
-
-Bug: 819294
-Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
-Reviewed-by: Matt Menke <mmenke(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666401}
----
-
-diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
-index 30999c0..60a03f6 100644
---- a/services/network/cross_origin_read_blocking.cc
-+++ b/services/network/cross_origin_read_blocking.cc
-@@ -211,7 +211,7 @@
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -224,7 +224,7 @@
- "application/x-www-form-urlencoded",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium.spec b/chromium.spec
index c961abc..cbc4fa4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -171,7 +171,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.100
+Version: %{majorversion}.0.3809.132
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -280,7 +280,7 @@ Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
@@ -1908,6 +1908,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
+- Update to 76.0.3809.132
+
* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
- Update to 76.0.3809.100
diff --git a/sources b/sources
index b7a420d..2d38a7c 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
+SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
commit fc327721ea71add7014b3a415a52b0c58f1606de
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 26 14:40:26 2019 +0200
Another noexec fix for EL7
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 99593f7..407f8de 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -18,7 +18,7 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
switch (icon_type_) {
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
Swap(&other);
}
@@ -28,9 +28,18 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc
Swap(&other);
return *this;
}
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
@@ -143,7 +143,7 @@ class QueryResults {
~QueryResults();
@@ -40,6 +49,15 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.
void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
commit e39b8894d22437395e67a474b9b4addd5ef616e2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 13:48:03 2019 +0200
Another el7 noexcept change
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 054d42e..99593f7 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -1,6 +1,6 @@
diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
provider_id_(provider_id) {}
@@ -16,11 +16,33 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
bool MediaSink::IsMaybeCloudSink() const {
switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
PolicyMap::Entry::~Entry() = default;
@@ -31,8 +53,8 @@ diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-
PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
Entry copy;
diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
default;
@@ -52,8 +74,8 @@ diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.e
bool AccountInfo::IsEmpty() const {
return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
@@ -64,8 +86,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
@@ -19,7 +19,7 @@ struct CoreAccountId {
~CoreAccountId();
@@ -76,8 +98,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept
// Those implicit constructor and conversion operator allow to
// progressively migrate the code to use this struct. Removing
diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
const GPUInfo::GPUDevice& other) = default;
commit aaab3d4ed48f25ec94e1169d61281ab3ceef5d31
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 11:01:37 2019 +0200
More el7 fixes
Merge the previously committed change in to the el7-noexcept patch and
revert another change that is needed on Fedora, but breaking the build
on EL7.
diff --git a/chromium-75.0.3770.100-el7-fix-noexcept.patch b/chromium-75.0.3770.100-el7-fix-noexcept.patch
deleted file mode 100644
index eaba072..0000000
--- a/chromium-75.0.3770.100-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc
---- chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-06-18 11:47:55.000000000 -0400
-+++ chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc 2019-06-20 10:17:27.440446569 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-75.0.3770.100/components/policy/core/common/policy_map.cc
---- chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-06-18 11:48:01.000000000 -0400
-+++ chromium-75.0.3770.100/components/policy/core/common/policy_map.cc 2019-06-20 10:17:27.444446463 -0400
-@@ -31,7 +31,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-75.0.3770.100/components/signin/core/browser/account_info.cc
---- chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-06-20 10:17:27.444446463 -0400
-+++ chromium-75.0.3770.100/components/signin/core/browser/account_info.cc 2019-06-20 10:19:17.959532865 -0400
-@@ -51,7 +51,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-diff -up chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept chromium-75.0.3770.100/gpu/config/gpu_info.cc
---- chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept 2019-06-18 11:48:10.000000000 -0400
-+++ chromium-75.0.3770.100/gpu/config/gpu_info.cc 2019-06-20 10:17:27.445446437 -0400
-@@ -181,7 +181,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 09fccf6..0000000
--- a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
-@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
--
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
-@@ -19,7 +19,6 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
new file mode 100644
index 0000000..054d42e
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -0,0 +1,89 @@
+diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+@@ -19,7 +19,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
diff --git a/chromium.spec b/chromium.spec
index e09a0ac..c961abc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -310,9 +310,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
-# el7 only patch as it doesn't like on of the operator= change in patch59
-Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+Patch102: chromium-76.0.3809.100-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -887,7 +885,8 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
+# Revert patch58 because it's breaking the build on el7
+%patch58 -R -p1
%endif
# Feature specific patches
commit af4746e6db6857279053ac789cb8fe0fe8af4b88
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 07:54:57 2019 +0200
Fix the EL7 build as it doesn't like part of the upstream GCC patch
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..09fccf6
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,23 @@
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
+@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
+-
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
+@@ -19,7 +19,6 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
diff --git a/chromium.spec b/chromium.spec
index 8a246b7..e09a0ac 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -311,6 +311,8 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+# el7 only patch as it doesn't like on of the operator= change in patch59
+Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -885,6 +887,7 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
+%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
%endif
# Feature specific patches
commit ec9d075ebbacdd8fa116137d33f073fa37713b54
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 26 19:17:48 2019 +0200
Use bundled Python 2 libraries during build
This removes the dependency on a small stack of Python 2 libraries.
There is a %global flag to control this, however only markupsafe is handled
differently when %bundlepylibs is set, other libraries seem to have been bundled
already.
diff --git a/chromium.spec b/chromium.spec
index cbc4fa4..8e251b9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -105,6 +105,10 @@ BuildRequires: libicu-devel >= 5.4
# 2017-06-08.
%global bundlelibxml 1
+# 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
+
# Chromium used to break on wayland, hidpi, and colors with gtk3 enabled.
# Hopefully it does not anymore.
%global gtk3 1
@@ -515,8 +519,11 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: python2-devel
-%if 0%{?fedora} > 27
+BuildRequires: /usr/bin/python2
+%if 0%{?bundlepylibs}
+# Using bundled bits, do nothing.
+%else
+%if 0%{?fedora}
BuildRequires: python2-beautifulsoup4
BuildRequires: python2-beautifulsoup
BuildRequires: python2-html5lib
@@ -530,6 +537,8 @@ BuildRequires: python-markupsafe
BuildRequires: python-ply
%endif
BuildRequires: python2-simplejson
+BuildRequires: python2-devel
+%endif
%if 0%{?bundlere2}
# Using bundled bits, do nothing.
%else
@@ -1257,7 +1266,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/lss' \
'third_party/lzma_sdk' \
-%if 0
+%if 0%{?bundlepylibs}
'third_party/markupsafe' \
%endif
'third_party/mesa' \
@@ -1345,10 +1354,12 @@ build/linux/unbundle/remove_bundled_libraries.py \
'v8/third_party/inspector_protocol' \
--do-remove
+%if ! 0%{?bundlepylibs}
# Look, I don't know. This package is spit and chewing gum. Sorry.
rm -rf third_party/markupsafe
ln -s %{python2_sitearch}/markupsafe third_party/markupsafe
# We should look on removing other python2 packages as well i.e. ply
+%endif
# Fix hardcoded path in remoting code
sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/daemon_controller_delegate_linux.cc
commit 5039438024ac562fb0db46dc2c07c76ead8daa0c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:56:12 2019 +0200
Add an updated patch that was missed
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..73db4d4
--- /dev/null
+++ b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
@@ -0,0 +1,21 @@
+diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
+--- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
+@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
+ "application/x-protobuf",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
commit 937790beb5adc1bcd8c978d0e60d064afc9ad318
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:13:54 2019 +0200
Update to 76.0.3809.132
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 587abf3..0000000
--- a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 19:46:55 +0000
-Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
-
-Use brace-list notation to wrap the already existing brace-list for
-initializing the flat-set. This resolves an ambiguous instantiation
-in GCC.
-
-Bug: 819294
-Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
-Reviewed-by: Matt Menke <mmenke(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666401}
----
-
-diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
-index 30999c0..60a03f6 100644
---- a/services/network/cross_origin_read_blocking.cc
-+++ b/services/network/cross_origin_read_blocking.cc
-@@ -211,7 +211,7 @@
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -224,7 +224,7 @@
- "application/x-www-form-urlencoded",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium.spec b/chromium.spec
index c961abc..cbc4fa4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -171,7 +171,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.100
+Version: %{majorversion}.0.3809.132
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -280,7 +280,7 @@ Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
@@ -1908,6 +1908,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
+- Update to 76.0.3809.132
+
* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
- Update to 76.0.3809.100
diff --git a/sources b/sources
index b7a420d..2d38a7c 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
+SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
commit 77fd050dd942221c6dd0e8b09183bf3319e1fdfd
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 26 14:40:26 2019 +0200
Another noexec fix for EL7
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 99593f7..407f8de 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -18,7 +18,7 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
switch (icon_type_) {
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
Swap(&other);
}
@@ -28,9 +28,18 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc
Swap(&other);
return *this;
}
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
@@ -143,7 +143,7 @@ class QueryResults {
~QueryResults();
@@ -40,6 +49,15 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.
void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
commit 2f9ffec1c569135a8630d144cb0c4e833e55aabf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 13:48:03 2019 +0200
Another el7 noexcept change
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 054d42e..99593f7 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -1,6 +1,6 @@
diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
provider_id_(provider_id) {}
@@ -16,11 +16,33 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
bool MediaSink::IsMaybeCloudSink() const {
switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
PolicyMap::Entry::~Entry() = default;
@@ -31,8 +53,8 @@ diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-
PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
Entry copy;
diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
default;
@@ -52,8 +74,8 @@ diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.e
bool AccountInfo::IsEmpty() const {
return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
@@ -64,8 +86,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
@@ -19,7 +19,7 @@ struct CoreAccountId {
~CoreAccountId();
@@ -76,8 +98,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept
// Those implicit constructor and conversion operator allow to
// progressively migrate the code to use this struct. Removing
diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
const GPUInfo::GPUDevice& other) = default;
commit 250b15f9a2ed573472abda7e6cc642f2c3372167
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 11:01:37 2019 +0200
More el7 fixes
Merge the previously committed change in to the el7-noexcept patch and
revert another change that is needed on Fedora, but breaking the build
on EL7.
diff --git a/chromium-75.0.3770.100-el7-fix-noexcept.patch b/chromium-75.0.3770.100-el7-fix-noexcept.patch
deleted file mode 100644
index eaba072..0000000
--- a/chromium-75.0.3770.100-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc
---- chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-06-18 11:47:55.000000000 -0400
-+++ chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc 2019-06-20 10:17:27.440446569 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-75.0.3770.100/components/policy/core/common/policy_map.cc
---- chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-06-18 11:48:01.000000000 -0400
-+++ chromium-75.0.3770.100/components/policy/core/common/policy_map.cc 2019-06-20 10:17:27.444446463 -0400
-@@ -31,7 +31,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-75.0.3770.100/components/signin/core/browser/account_info.cc
---- chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-06-20 10:17:27.444446463 -0400
-+++ chromium-75.0.3770.100/components/signin/core/browser/account_info.cc 2019-06-20 10:19:17.959532865 -0400
-@@ -51,7 +51,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-diff -up chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept chromium-75.0.3770.100/gpu/config/gpu_info.cc
---- chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept 2019-06-18 11:48:10.000000000 -0400
-+++ chromium-75.0.3770.100/gpu/config/gpu_info.cc 2019-06-20 10:17:27.445446437 -0400
-@@ -181,7 +181,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 09fccf6..0000000
--- a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
-@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
--
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
-@@ -19,7 +19,6 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
new file mode 100644
index 0000000..054d42e
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -0,0 +1,89 @@
+diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+@@ -19,7 +19,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
diff --git a/chromium.spec b/chromium.spec
index e09a0ac..c961abc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -310,9 +310,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
-# el7 only patch as it doesn't like on of the operator= change in patch59
-Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+Patch102: chromium-76.0.3809.100-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -887,7 +885,8 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
+# Revert patch58 because it's breaking the build on el7
+%patch58 -R -p1
%endif
# Feature specific patches
commit fcd18a8550ce791c6826f2ccbabb31ffef32a923
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 07:54:57 2019 +0200
Fix the EL7 build as it doesn't like part of the upstream GCC patch
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..09fccf6
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,23 @@
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
+@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
+-
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
+@@ -19,7 +19,6 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
diff --git a/chromium.spec b/chromium.spec
index 8a246b7..e09a0ac 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -311,6 +311,8 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+# el7 only patch as it doesn't like on of the operator= change in patch59
+Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -885,6 +887,7 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
+%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
%endif
# Feature specific patches
commit 32351d81ff14bde0babcab29de22c9c28d8a53d7
Author: Nicolas Chauvet <kwizart(a)gmail.com>
Date: Fri Aug 23 18:15:28 2019 +0200
Clean-up gitignore using wildcard
diff --git a/.gitignore b/.gitignore
index 2bfdc54..06de94b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,51 +1,7 @@
/chromium-52.0.2743.75-clean.tar.xz
/depot_tools.git-master.tar.gz
/policy_templates.zip
-/chromium-52.0.2743.82-clean.tar.xz
-/chromium-52.0.2743.116-clean.tar.xz
-/chromium-53.0.2785.92-clean.tar.xz
-/chromium-53.0.2785.101-clean.tar.xz
-/chromium-53.0.2785.113-clean.tar.xz
-/chromium-53.0.2785.116-clean.tar.xz
-/chromium-53.0.2785.143-clean.tar.xz
-/chromium-54.0.2840.59-clean.tar.xz
-/chromium-54.0.2840.71-clean.tar.xz
-/chromium-54.0.2840.90-clean.tar.xz
-/chromium-54.0.2840.100.tar.xz
-/chromium-54.0.2840.100-clean.tar.xz
-/chromium-55.0.2883.75-clean.tar.xz
-/chromium-55.0.2883.87-clean.tar.xz
-/chromium-56.0.2924.87-clean.tar.xz
-/chromium-57.0.2987.110-clean.tar.xz
-/chromium-57.0.2987.133-clean.tar.xz
-/chromium-58.0.3029.81-clean.tar.xz
-/chromium-58.0.3029.110-clean.tar.xz
-/chromium-59.0.3071.86-clean.tar.xz
-/chromium-59.0.3071.104-clean.tar.xz
-/chromium-59.0.3071.109-clean.tar.xz
-/chromium-59.0.3071.115-clean.tar.xz
-/chromium-59.0.3071.109-freetype.tar.bz2
-/chromium-60.0.3112.90-clean.tar.xz
-/chromium-60.0.3112.101-clean.tar.xz
-/chromium-60.0.3112.113-clean.tar.xz
-/chromium-60.0.3112.113.tar.xz
-/chromium-61.0.3163.79-clean.tar.xz
-/chromium-61.0.3163.100-clean.tar.xz
-/chromium-62.0.3202.75-clean.tar.xz
-/chromium-62.0.3202.89-clean.tar.xz
-/chromium-63.0.3239.84-clean.tar.xz
-/chromium-63.0.3239.108-clean.tar.xz
-/chromium-64.0.3282.119-clean.tar.xz
-/chromium-64.0.3282.140-clean.tar.xz
-/chromium-64.0.3282.167-clean.tar.xz
-/chromium-64.0.3282.186-clean.tar.xz
-/chromium-65.0.3325.146-clean.tar.xz
-/chromium-65.0.3325.162-clean.tar.xz
-/chromium-65.0.3325.181-clean.tar.xz
-/chromium-66.0.3359.139-clean.tar.xz
-/chromium-66.0.3359.170-clean.tar.xz
-/chromium-66.0.3359.181-clean.tar.xz
-/chromium-67.0.3396.62-clean.tar.xz
+/chromium-*.tar.xz
/gelasio.zip
/MuktiNarrow-0.94.tar.bz2
/NotoSansCJKjp-hinted.zip
@@ -62,23 +18,5 @@
/Tinos-Bold.ttf
/Tinos-Italic.ttf
/Tinos-Regular.ttf
-/chromium-67.0.3396.79-clean.tar.xz
-/chromium-67.0.3396.87-clean.tar.xz
-/chromium-67.0.3396.99-clean.tar.xz
-/chromium-68.0.3440.106-clean.tar.xz
/Ahem.ttf
-/chromium-69.0.3497.92-clean.tar.xz
-/chromium-69.0.3497.100-clean.tar.xz
-/chromium-70.0.3538.77-clean.tar.xz
-/chromium-70.0.3538.110-clean.tar.xz
-/chromium-71.0.3578.98-clean.tar.xz
/node-v8.9.1-linux-x64.tar.gz
-/chromium-72.0.3626.121-clean.tar.xz
-/chromium-73.0.3683.75-clean.tar.xz
-/chromium-73.0.3683.86-clean.tar.xz
-/chromium-73.0.3683.103-clean.tar.xz
-/chromium-74.0.3729.169-clean.tar.xz
-/chromium-75.0.3770.80-clean.tar.xz
-/chromium-75.0.3770.90-clean.tar.xz
-/chromium-75.0.3770.100-clean.tar.xz
-/chromium-76.0.3809.100-clean.tar.xz
commit 2b21300e3f50fcb426d0f1f1ba0c688e8f87362f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 21 13:51:11 2019 +0200
Update the list of private libraries and remove a pak file that was removed
diff --git a/chromium.spec b/chromium.spec
index 1d3141c..59883f4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -54,9 +54,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
%else
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -1753,7 +1753,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chrome_*.pak
%{chromium_path}/resources.pak
%{chromium_path}/icudtl.dat
-%{chromium_path}/views_mus_resources.pak
%{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh
%{chromium_path}/MEIPreload/
commit 6799d9e0eab28883f324e5034786b92d68b91854
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 22:07:44 2019 +0200
Fix the previously uploaded patch
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
index c59702f..aec3107 100644
--- a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -12,13 +12,13 @@ diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-conste
MessageTracker::MessageTracker() = default;
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
---- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
@@ -36,7 +36,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
-- static constexpr base::TimeDelta kCleanupInterval;
+- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::TimeDelta::FromMinutes(2);
commit 766aab49a12a06a966125c33fd9d0cd979194ed7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 21:36:06 2019 +0200
Fix the build of remoting_all target
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
new file mode 100644
index 0000000..c59702f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -0,0 +1,27 @@
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
+@@ -9,8 +9,7 @@
+ namespace remoting {
+
+ // static
+-const base::TimeDelta MessageTracker::kCleanupInterval =
+- base::TimeDelta::FromMinutes(2);
++constexpr base::TimeDelta MessageTracker::kCleanupInterval;
+
+ MessageTracker::MessageTracker() = default;
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
+@@ -36,7 +36,8 @@ class MessageTracker final {
+
+ // All IDs older than now - kCleanupInterval will be eventually removed, but
+ // they are not guaranteed to be immediately removed after the interval.
+- static constexpr base::TimeDelta kCleanupInterval;
++ static constexpr base::TimeDelta kCleanupInterval =
++ base::TimeDelta::FromMinutes(2);
+
+ void RemoveExpiredIds();
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..64532df
--- /dev/null
+++ b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
++++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
+ certificate_file,
diff --git a/chromium.spec b/chromium.spec
index e264a9d..1d3141c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -297,10 +297,13 @@ Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
-# TBD - need to submit it
-# In GCC one can't use alignas() for exported classes (as described in
-# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+# In GCC one can't use alignas() for exported classes
+# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+# Needs to be submitted..
+Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
+Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -874,6 +877,8 @@ udev.
%patch59 -p1 -b .gcc-accountinfo-move-noexcept
%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
+%patch62 -p1 -b .gcc-remoting-constexpr
+%patch63 -p1 -b .vtable-symbol-undefined
# EPEL specific patches
%if 0%{?rhel} == 7
commit 1ad065436b19d4abed6692b84f1a51aed2ce2c9f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 16 13:58:53 2019 +0200
//third_party dependency missing for remoting
diff --git a/chromium.spec b/chromium.spec
index e068d83..e264a9d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1207,6 +1207,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/google_trust_services' \
'third_party/googletest' \
'third_party/glslang' \
'third_party/grpc' \
commit 73516eb866ec7916d876e276c45b0ee739244e2f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 21:14:35 2019 +0200
Backport and create more of the GCC fixes
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..5f45a8f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,53 @@
+From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 18:38:12 +0200
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
+
+AccountInfo declares them as noexcept and uses default implementation,
+so all its members (including AccountId) should be noexcept. But AccountId
+is not noexcept. To fix it we just need to make CoreAccountId move
+operator/assign operator noexcept.
+
+Bug: 819294
+Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
+---
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d808082..12eefe3 100644
+--- a/google_apis/gaia/core_account_id.cc
++++ b/google_apis/gaia/core_account_id.cc
+@@ -6,8 +6,16 @@
+
+ CoreAccountId::CoreAccountId() = default;
+
++CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
++
++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::~CoreAccountId() = default;
+
++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
++
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
+index 5ea602a..c2d1911 100644
+--- a/google_apis/gaia/core_account_id.h
++++ b/google_apis/gaia/core_account_id.h
+@@ -14,8 +14,13 @@
+ // for design and tracking).
+ struct CoreAccountId {
+ CoreAccountId();
++ CoreAccountId(const CoreAccountId&);
++ CoreAccountId(CoreAccountId&&) noexcept;
+ ~CoreAccountId();
+
++ CoreAccountId& operator=(const CoreAccountId&);
++ CoreAccountId& operator=(CoreAccountId&&) noexcept;
++
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+ // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
new file mode 100644
index 0000000..2876de4
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
@@ -0,0 +1,42 @@
+From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 10:27:19 +0200
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+
+In GCC, build is failing because history::QueryURLResult declares its move
+assignment operator as noexcept using default implementation. That requires
+its members to provide a move assignment operator that is noexcept too.
+
+But URLRow was missing noexcept declaration in move assignment operator (even
+though it was providing noexcept to its move constructor).
+
+Bug: 819294
+Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
+---
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd..aec0101 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) = default;
++URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
+index 8f6f9cf..31a1ef8 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@
+
+ virtual ~URLRow();
+ URLRow& operator=(const URLRow& other);
+- URLRow& operator=(URLRow&& other);
++ URLRow& operator=(URLRow&& other) noexcept;
+
+ URLID id() const { return id_; }
+
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
new file mode 100644
index 0000000..cc91d1e
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -0,0 +1,14 @@
+diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
+--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
++++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
+@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
+ DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
+ };
+
+-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
+- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
++class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
++ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
+ : public CSSPropertyValueSet {
+ public:
+ ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
new file mode 100644
index 0000000..ad40bb9
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
@@ -0,0 +1,36 @@
+From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 22:01:03 +0200
+Subject: [PATCH] IWYU: ThemeService requires NativeTheme
+
+As ThemeService referes to NativeTheme through a ScopedObserver,
+the full declaration is required.
+
+Bug: 819294
+Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
+---
+
+diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
+index d65388e2..23dc86d 100644
+--- a/chrome/browser/themes/theme_service.cc
++++ b/chrome/browser/themes/theme_service.cc
+@@ -54,7 +54,6 @@
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/native_theme/common_theme.h"
+-#include "ui/native_theme/native_theme.h"
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+ #include "base/scoped_observer.h"
+diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
+index 6c79c72..f93dc0d 100644
+--- a/chrome/browser/themes/theme_service.h
++++ b/chrome/browser/themes/theme_service.h
+@@ -25,6 +25,7 @@
+ #include "extensions/buildflags/buildflags.h"
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
++#include "ui/native_theme/native_theme.h"
+ #include "ui/native_theme/native_theme_observer.h"
+
+ class BrowserThemePack;
diff --git a/chromium.spec b/chromium.spec
index 7da707a..e068d83 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,6 +291,16 @@ Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
+# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
+Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
+Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
+Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+# TBD - need to submit it
+# In GCC one can't use alignas() for exported classes (as described in
+# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -860,6 +870,10 @@ udev.
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
%patch57 -p1 -b .gcc-initialization-order
+%patch58 -p1 -b .gcc-history-move-noexcept
+%patch59 -p1 -b .gcc-accountinfo-move-noexcept
+%patch60 -p1 -b .gcc-themeservice-includes
+%patch61 -p1 -b .gcc-no-alignas-and-export
# EPEL specific patches
%if 0%{?rhel} == 7
commit b93cafeb92d195e0a8dd4b7f40760527bc9b2d3e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:10:04 2019 +0200
Upload the new cleaned tarball with aarch64 sources
Previously I forgot to pass the --ffmpegarm while generating the
tarball.
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index e190296..2f27435 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,7 +216,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
- libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index d6d53e4..b7a420d 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
commit fd12ce20b254a75130a2c56ef8453150ef6e3e53
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:03:49 2019 +0200
Backport another upstream build fix
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
new file mode 100644
index 0000000..3bf394f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-initialization-order.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
+
+XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
+same order of the declaration. GCC fails because of that.
+
+Bug: 819294
+Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
+Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd4..0aa6892 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@
+
+ XSetWindowAttributes swa = {
+ .background_pixmap = 0,
+- .bit_gravity = NorthWestGravity,
+- .colormap = g_colormap,
+ .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
+ .border_pixel = 0,
++ .bit_gravity = NorthWestGravity,
++ .colormap = g_colormap,
+ };
+ auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
+ if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium.spec b/chromium.spec
index efce624..7da707a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -289,6 +289,8 @@ Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
+Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -857,6 +859,7 @@ udev.
%patch54 -p1 -b .gcc-feature-policy-parser
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
+%patch57 -p1 -b .gcc-initialization-order
# EPEL specific patches
%if 0%{?rhel} == 7
commit 6548a82813c753103c059bbd64aa83851b9f2f0b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:22:37 2019 +0200
Update the Pulseaudio's pa_operation_get_state() signature
Missed it while updating the Pulseaudio signatures.
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
index 37d3dfa..d4e2b46 100644
--- a/chromium-76.0.3809.100-pulse-api-change.patch
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -1,7 +1,7 @@
-diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
---- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
-+++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
-@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200
+@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info
pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
@@ -10,6 +10,11 @@ diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change ch
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+-pa_operation_state_t pa_operation_get_state(pa_operation* o);
++pa_operation_state_t pa_operation_get_state(const pa_operation* o);
+ void pa_context_unref(pa_context* c);
+ void pa_operation_unref(pa_operation* o);
+ int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
int pa_stream_disconnect(pa_stream* s);
int pa_stream_drop(pa_stream *p);
commit c84fdddcb15e83ab4116a7137c437323bd4f822e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:17:42 2019 +0200
Add missing ffmpeg file on aarch64
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..e190296 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,6 +216,7 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
+ libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index 4e53fd1..d6d53e4 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
commit e95a7043a9ce73cb54aa380a672d26cc21818477
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 16:52:41 2019 +0200
Pulseaudio changed the API in 12.99 and we need to adapt the signatures
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
new file mode 100644
index 0000000..37d3dfa
--- /dev/null
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -0,0 +1,42 @@
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
+@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+ pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
+ pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
+ pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
+-pa_context_state_t pa_context_get_state(pa_context* c);
++pa_context_state_t pa_context_get_state(const pa_context* c);
+ pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
+ pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
+ void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
+ int pa_stream_disconnect(pa_stream* s);
+ int pa_stream_drop(pa_stream *p);
+ pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
+-uint32_t pa_stream_get_device_index(pa_stream* s);
++uint32_t pa_stream_get_device_index(const pa_stream* s);
+ int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
+-pa_stream_state_t pa_stream_get_state(pa_stream* p);
++pa_stream_state_t pa_stream_get_state(const pa_stream* p);
+ pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
+ pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
+ pa_proplist* pa_proplist_new(void);
+-int pa_proplist_contains(pa_proplist* p, const char* key);
++int pa_proplist_contains(const pa_proplist* p, const char* key);
+ void pa_proplist_free(pa_proplist* p);
+-const char* pa_proplist_gets(pa_proplist* p, const char* key);
++const char* pa_proplist_gets(const pa_proplist* p, const char* key);
+ int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
+-size_t pa_stream_readable_size(pa_stream *p);
++size_t pa_stream_readable_size(const pa_stream *p);
+ int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
+ void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
+ void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
+ int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
+ void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
+ void pa_stream_unref(pa_stream* s);
+-int pa_context_errno(pa_context *c);
++int pa_context_errno(const pa_context *c);
+ const char* pa_strerror(int error);
+ pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
diff --git a/chromium.spec b/chromium.spec
index 98d92e0..efce624 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -141,6 +141,13 @@ BuildRequires: libicu-devel >= 5.4
%global bundleharfbuzz 0
%endif
+# Pulseaudio changed the API a little in 12.99.1
+%if 0%{?fedora} > 30
+%global pulseaudioapichange 1
+%else
+%global pulseaudioapichange 0
+%endif
+
### 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.
@@ -306,6 +313,8 @@ Patch202: enable-vaapi.patch
Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+# Pulseaudio changed the API a little in 12.99.1
+Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -491,7 +500,6 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: pulseaudio-libs-devel
BuildRequires: python2-devel
%if 0%{?fedora} > 27
BuildRequires: python2-beautifulsoup4
@@ -871,6 +879,9 @@ udev.
%endif
%endif
+%if 0%{?pulseaudioapichange}
+%patch205 -p1 -b .pulseaudioapichange
+%endif
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
commit a67d161f16e22a2192cdeefeadb1e7936d2982ce
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Aug 14 09:52:16 2019 -0400
loosen dependency on chromium-libs in freeworld build
diff --git a/chromium.spec b/chromium.spec
index 337c708..98d92e0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -730,7 +730,7 @@ Shared libraries used by chromium (and chrome-remote-desktop).
Summary: Chromium media libraries built with all possible codecs
Provides: chromium-libs-media = %{version}-%{release}
Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives
commit e0d11a7855c311fd1fa4eb849f3eb63281fdc1ba
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:41:23 2019 +0200
third_party/boringssl/linux-x86_64/crypto/third_party/sike needs to be preserved
diff --git a/chromium.spec b/chromium.spec
index 511cef0..337c708 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1137,7 +1137,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/boringssl/src/third_party/sike' \
- 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike' \
+ 'third_party/boringssl/linux-aarch64/crypto/third_party/sike' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
commit 4f64c0f273cb6f601efc1b9b2869460db1b052cb
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:38:35 2019 +0200
third_party/openscreen need to be preserved
diff --git a/chromium.spec b/chromium.spec
index bac2263..511cef0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1232,6 +1232,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
+ 'third_party/openscreen' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
commit 8e2b9c82f9a63754c927dd73d65564b46cb0bb23
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 14:38:51 2019 +0200
Backport more build fixes from upstream
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..587abf3
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
+
+Use brace-list notation to wrap the already existing brace-list for
+initializing the flat-set. This resolves an ambiguous instantiation
+in GCC.
+
+Bug: 819294
+Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
+Reviewed-by: Matt Menke <mmenke(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c0..60a03f6 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -224,7 +224,7 @@
+ "application/x-www-form-urlencoded",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
new file mode 100644
index 0000000..0dbffd5
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
@@ -0,0 +1,76 @@
+From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 19:44:58 +0200
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
+
+Compilation fails because we are declaring ParseValueForFuzzer as friend method,
+but we are declaring it is in anonymous namespace. Moving to global namespace
+still fails (in this case in Clang).
+
+So final solution is making it a public static method of FeaturePolicyParser.
+
+Bug: 819294
+Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
+---
+
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+index 3b7f4a9..eaee409 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+@@ -317,6 +317,13 @@
+ return value;
+ }
+
++void FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType feature_type,
++ const WTF::String& value_string) {
++ bool ok;
++ ParseValueForType(feature_type, value_string, &ok);
++}
++
+ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
+ const ParsedFeaturePolicy& policy) {
+ return std::any_of(policy.begin(), policy.end(),
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+index fd25d90..36af405 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+@@ -16,9 +16,6 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+
+-// Forward declare for friendship.
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
+-
+ namespace blink {
+
+ class Document;
+@@ -79,8 +76,9 @@
+ const FeatureNameMap& feature_names,
+ ExecutionContext* execution_context = nullptr);
+
++ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
++
+ private:
+- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
+ static PolicyValue GetFallbackValueForFeature(
+ mojom::FeaturePolicyFeature feature);
+ static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+index 7f8e6aa..53350e43 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+@@ -23,9 +23,9 @@
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ static blink::BlinkFuzzerTestSupport test_support =
+ blink::BlinkFuzzerTestSupport();
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
+- WTF::String(data, size));
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
+- WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
+ return 0;
+ }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
new file mode 100644
index 0000000..26bba05
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+
+Other HasFraction methods as in PhysicalUnit are declared already
+constexpr and using it. It breaks GCC build.
+
+Bug: 819294.
+Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
+Reviewed-by: vmpstr <vmpstr(a)chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986..b6dbc76 100644
+--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
+@@ -202,7 +202,9 @@
+ return value_ > 0 ? LayoutUnit() : *this;
+ }
+
+- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
++ constexpr bool HasFraction() const {
++ return RawValue() % kFixedPointDenominator;
++ }
+
+ LayoutUnit Fraction() const {
+ // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
new file mode 100644
index 0000000..1d4b90f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+
+Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
+build because of that. Move the template specializations out of RunInfo declaration
+in shape_result_inline_headeres.h to fix the GCC build issue.
+
+Bug: 819294
+Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+index 76ee6091..c14d3a0 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+@@ -251,37 +251,6 @@
+ template <bool has_non_zero_glyph_offsets>
+ struct iterator final {};
+
+- // For non-zero glyph offset array
+- template <>
+- struct iterator<true> final {
+- // The constructor for ShapeResult
+- explicit iterator(const GlyphOffsetArray& array)
+- : pointer(array.storage_.get()) {
+- DCHECK(pointer);
+- }
+-
+- // The constructor for ShapeResultView
+- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
+- DCHECK(pointer);
+- }
+-
+- GlyphOffset operator*() const { return *pointer; }
+- void operator++() { ++pointer; }
+-
+- const GlyphOffset* pointer;
+- };
+-
+- // For zero glyph offset array
+- template <>
+- struct iterator<false> final {
+- explicit iterator(const GlyphOffsetArray& array) {
+- DCHECK(!array.HasStorage());
+- }
+- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
+- GlyphOffset operator*() const { return GlyphOffset(); }
+- void operator++() {}
+- };
+-
+ template <bool has_non_zero_glyph_offsets>
+ iterator<has_non_zero_glyph_offsets> GetIterator() const {
+ return iterator<has_non_zero_glyph_offsets>(*this);
+@@ -495,6 +464,37 @@
+ float width_;
+ };
+
++// For non-zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
++ // The constructor for ShapeResult
++ explicit iterator(const GlyphOffsetArray& array)
++ : pointer(array.storage_.get()) {
++ DCHECK(pointer);
++ }
++
++ // The constructor for ShapeResultView
++ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
++ DCHECK(pointer);
++ }
++
++ GlyphOffset operator*() const { return *pointer; }
++ void operator++() { ++pointer; }
++
++ const GlyphOffset* pointer;
++};
++
++// For zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
++ explicit iterator(const GlyphOffsetArray& array) {
++ DCHECK(!array.HasStorage());
++ }
++ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
++ GlyphOffset operator*() const { return GlyphOffset(); }
++ void operator++() {}
++};
++
+ // Find the range of HarfBuzzRunGlyphData for the specified character index
+ // range. This function uses binary search twice, hence O(2 log n).
+ inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
new file mode 100644
index 0000000..98789d9
--- /dev/null
+++ b/chromium-76.0.3809.100-quiche-compile-fix.patch
@@ -0,0 +1,225 @@
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
+@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
+ std::string TransportParameterIdToString(
+ TransportParameters::TransportParameterId param_id) {
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ return "original_connection_id";
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ return "idle_timeout";
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ return "stateless_reset_token";
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ return "max_packet_size";
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ return "initial_max_data";
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ return "initial_max_stream_data_bidi_local";
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ return "initial_max_stream_data_bidi_remote";
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ return "initial_max_stream_data_uni";
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ return "initial_max_streams_bidi";
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ return "initial_max_streams_uni";
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ return "ack_delay_exponent";
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ return "max_ack_delay";
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ return "disable_migration";
+- case kPreferredAddress:
++ case TransportParameters::kPreferredAddress:
+ return "preferred_address";
+- case kGoogleQuicParam:
++ case TransportParameters::kGoogleQuicParam:
+ return "google";
+- case kGoogleQuicVersion:
++ case TransportParameters::kGoogleQuicVersion:
+ return "google-version";
+ }
+ return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
+@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
+ CBB original_connection_id_param;
+ if (!in.original_connection_id.IsEmpty()) {
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
+ !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
+ !CBB_add_bytes(
+ &original_connection_id_param,
+@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
+ if (!in.stateless_reset_token.empty()) {
+ DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
+ !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
+ !CBB_add_bytes(&stateless_reset_token_param,
+ in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
+
+ // disable_migration
+ if (in.disable_migration) {
+- if (!CBB_add_u16(¶ms, kDisableMigration) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
+ !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
+ QUIC_BUG << "Failed to write disable_migration for " << in;
+ return false;
+@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
+ QUIC_BUG << "Bad lengths " << *in.preferred_address;
+ return false;
+ }
+- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
+ !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
+ !CBB_add_bytes(
+ &preferred_address_params,
+@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
+ if (in.google_quic_params) {
+ const QuicData& serialized_google_quic_params =
+ in.google_quic_params->GetSerialized();
+- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
+ !CBB_add_bytes(&google_quic_params,
+ reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
+
+ // Google-specific version extension.
+ CBB google_version_params;
+- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
+ !CBB_add_u32(&google_version_params, in.version)) {
+ QUIC_BUG << "Failed to write Google version extension for " << in;
+@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
+ }
+ bool parse_success = true;
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ if (!out->original_connection_id.IsEmpty()) {
+ QUIC_DLOG(ERROR) << "Received a second original connection ID";
+ return false;
+@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
+ CBS_len(&value));
+ }
+ break;
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
+ break;
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ if (!out->stateless_reset_token.empty()) {
+ QUIC_DLOG(ERROR) << "Received a second stateless reset token";
+ return false;
+@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
+ out->stateless_reset_token.assign(CBS_data(&value),
+ CBS_data(&value) + CBS_len(&value));
+ break;
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ parse_success = out->max_packet_size.ReadFromCbs(&value);
+ break;
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ parse_success = out->initial_max_data.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ parse_success =
+ out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ parse_success =
+ out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
+ break;
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
+ break;
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ parse_success = out->max_ack_delay.ReadFromCbs(&value);
+ break;
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ if (out->disable_migration) {
+ QUIC_DLOG(ERROR) << "Received a second disable migration";
+ return false;
+@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
+ }
+ out->disable_migration = true;
+ break;
+- case kPreferredAddress: {
++ case TransportParameters::kPreferredAddress: {
+ uint16_t ipv4_port, ipv6_port;
+ in_addr ipv4_address;
+ in6_addr ipv6_address;
+@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
+ QuicMakeUnique<TransportParameters::PreferredAddress>(
+ preferred_address);
+ } break;
+- case kGoogleQuicParam: {
++ case TransportParameters::kGoogleQuicParam: {
+ if (out->google_quic_params) {
+ QUIC_DLOG(ERROR) << "Received a second Google parameter";
+ return false;
+@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
+ reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
+ out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
+ } break;
+- case kGoogleQuicVersion: {
++ case TransportParameters::kGoogleQuicVersion: {
+ if (!CBS_get_u32(&value, &out->version)) {
+ QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
+ return false;
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-#include <string>
+-
+ #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
+
++#include <cstring>
++#include <string>
++#include <vector>
++
+ namespace quic {
+
+ namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
new file mode 100644
index 0000000..5e392e6
--- /dev/null
+++ b/chromium-76.0.3809.100-throttling-dead-beef.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 06 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+
+We are setting kAlive and kDead values assigning values that
+are bigger than the maximum signed int32. It is better to use
+uint32_t in this case.
+
+Bug: 819294
+Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4..3c6f87b 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@
+
+ // TODO(https://crbug.com/960874): Debugging code to try and shed some light
+ // on why the owned maps are invalid.
+- enum class Liveness : int32_t {
++ enum class Liveness : uint32_t {
+ kAlive = 0xCA11AB13,
+ kDead = 0xDEADBEEF,
+ };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
new file mode 100644
index 0000000..a392971
--- /dev/null
+++ b/chromium-76.0.3809.100-weak-ptr-no-except.patch
@@ -0,0 +1,66 @@
+From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 18 Jul 2019 14:26:11 +0200
+Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
+
+A GCC build regression has happened on DisjointRangeLockManager, as its move
+operator and constructor were declared noexcept. This was failing because the
+default implementation depended on base::WeakPtr, that did not provide
+noexcept declaration for them.
+
+So make base::WeakPtr noexcept.
+
+Bug: 819294
+Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
+---
+
+diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
+index 64fd499..0efcc44 100644
+--- a/base/memory/weak_ptr.cc
++++ b/base/memory/weak_ptr.cc
+@@ -46,7 +46,7 @@
+
+ WeakReference::~WeakReference() = default;
+
+-WeakReference::WeakReference(WeakReference&& other) = default;
++WeakReference::WeakReference(WeakReference&& other) noexcept = default;
+
+ WeakReference::WeakReference(const WeakReference& other) = default;
+
+diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
+index 72b5f1f..ccd22fd13 100644
+--- a/base/memory/weak_ptr.h
++++ b/base/memory/weak_ptr.h
+@@ -116,9 +116,9 @@
+ explicit WeakReference(const scoped_refptr<Flag>& flag);
+ ~WeakReference();
+
+- WeakReference(WeakReference&& other);
++ WeakReference(WeakReference&& other) noexcept;
+ WeakReference(const WeakReference& other);
+- WeakReference& operator=(WeakReference&& other) = default;
++ WeakReference& operator=(WeakReference&& other) noexcept = default;
+ WeakReference& operator=(const WeakReference& other) = default;
+
+ bool IsValid() const;
+@@ -153,9 +153,9 @@
+ ~WeakPtrBase();
+
+ WeakPtrBase(const WeakPtrBase& other) = default;
+- WeakPtrBase(WeakPtrBase&& other) = default;
++ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
+ WeakPtrBase& operator=(const WeakPtrBase& other) = default;
+- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
++ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
+
+ void reset() {
+ ref_ = internal::WeakReference();
+@@ -236,7 +236,7 @@
+ ptr_ = reinterpret_cast<uintptr_t>(t);
+ }
+ template <typename U>
+- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
++ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
+ // Need to cast from U* to T* to do pointer adjustment in case of multiple
+ // inheritance. This also enforces the "U is a T" rule.
+ T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium.spec b/chromium.spec
index 00c07ea..bac2263 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -268,6 +268,20 @@ Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
+# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
+Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
+Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
+# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
+Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
+Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
+Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
+Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
+Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -828,6 +842,13 @@ udev.
%patch47 -p1 -b .gcc-vulkan
%patch48 -p1 -b .gcc-cc-no-except
%patch49 -p1 -b .gcc-net-fetcher
+%patch50 -p1 -b .quiche-compile-fix
+%patch51 -p1 -b .throttling-dead-beef
+%patch52 -p1 -b .gcc-ambigous-instantiation
+%patch53 -p1 -b .weak-ptr-no-except
+%patch54 -p1 -b .gcc-feature-policy-parser
+%patch55 -p1 -b .gcc-hasfraction-constexpr
+%patch56 -p1 -b .gcc-move-explicit-initialization
# EPEL specific patches
%if 0%{?rhel} == 7
commit a44f11deb4e03471eabd35c11058e682a182e1e0
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 13 15:39:15 2019 +0200
Add more fixes
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
new file mode 100644
index 0000000..e4d754a
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-cc-no-except.patch
@@ -0,0 +1,105 @@
+From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 07 Jun 2019 09:50:11 +0000
+Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
+
+As LayerTreeHostImpl::UIResourceData move constructor is declared
+noexcept with default implementation, the move constructor of its
+members should also be noexcept. GCC will fail to build otherwise
+for mismatching noexcept declaration.
+
+We also set the move assignment operator.
+
+Bug: 819294
+Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667064}
+---
+
+diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
+index 2be2570..8426fa8 100644
+--- a/base/memory/shared_memory_mapping.cc
++++ b/base/memory/shared_memory_mapping.cc
+@@ -33,7 +33,7 @@
+
+ SharedMemoryMapping::SharedMemoryMapping() = default;
+
+-SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
++SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
+ : memory_(mapping.memory_),
+ size_(mapping.size_),
+ mapped_size_(mapping.mapped_size_),
+@@ -42,7 +42,7 @@
+ }
+
+ SharedMemoryMapping& SharedMemoryMapping::operator=(
+- SharedMemoryMapping&& mapping) {
++ SharedMemoryMapping&& mapping) noexcept {
+ Unmap();
+ memory_ = mapping.memory_;
+ size_ = mapping.size_;
+@@ -90,9 +90,9 @@
+
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+- ReadOnlySharedMemoryMapping&&) = default;
++ ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
+- ReadOnlySharedMemoryMapping&&) = default;
++ ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+ void* address,
+ size_t size,
+@@ -102,9 +102,9 @@
+
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+- WritableSharedMemoryMapping&&) = default;
++ WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
+- WritableSharedMemoryMapping&&) = default;
++ WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+ void* address,
+ size_t size,
+diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
+index d9569af..2b8858e 100644
+--- a/base/memory/shared_memory_mapping.h
++++ b/base/memory/shared_memory_mapping.h
+@@ -32,8 +32,8 @@
+ SharedMemoryMapping();
+
+ // Move operations are allowed.
+- SharedMemoryMapping(SharedMemoryMapping&& mapping);
+- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
++ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
++ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
+
+ // Unmaps the region if the mapping is valid.
+ virtual ~SharedMemoryMapping();
+@@ -93,8 +93,9 @@
+ ReadOnlySharedMemoryMapping();
+
+ // Move operations are allowed.
+- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
+- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
++ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
++ ReadOnlySharedMemoryMapping& operator=(
++ ReadOnlySharedMemoryMapping&&) noexcept;
+
+ // Returns the base address of the mapping. This is read-only memory. This is
+ // page-aligned. This is nullptr for invalid instances.
+@@ -171,8 +172,9 @@
+ WritableSharedMemoryMapping();
+
+ // Move operations are allowed.
+- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
+- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
++ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
++ WritableSharedMemoryMapping& operator=(
++ WritableSharedMemoryMapping&&) noexcept;
+
+ // Returns the base address of the mapping. This is writable memory. This is
+ // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
new file mode 100644
index 0000000..bc0ed98
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-net-fetcher.patch
@@ -0,0 +1,63 @@
+From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 16:56:27 +0000
+Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
+
+GCC does not allow friendship declaration to anonymous namespace as done with Job
+object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
+makes RemoveJob method public, that was the only reason to make Job a friend.
+
+Error was:
+./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
+../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
+ delete_this = parent_->RemoveJob(this);
+ ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+ std::unique_ptr<Job> RemoveJob(Job* job);
+ ^~~~~~~~~
+../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
+../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
+ std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
+ ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+ std::unique_ptr<Job> RemoveJob(Job* job);
+ ^~~~~~~~~
+
+Bug: 819294
+Change-Id: I3609f4558e570741395366de6a4cd40577d91450
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
+Commit-Queue: Eric Roman <eroman(a)chromium.org>
+Reviewed-by: Eric Roman <eroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668015}
+---
+
+diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
+index 11a1166..349c656 100644
+--- a/net/cert_net/cert_net_fetcher_impl.cc
++++ b/net/cert_net/cert_net_fetcher_impl.cc
+@@ -135,21 +135,19 @@
+ void Fetch(std::unique_ptr<RequestParams> request_params,
+ scoped_refptr<RequestCore> request);
+
++ // Removes |job| from the in progress jobs and transfers ownership to the
++ // caller.
++ std::unique_ptr<Job> RemoveJob(Job* job);
++
+ // Cancels outstanding jobs, which stops network requests and signals the
+ // corresponding RequestCores that the requests have completed.
+ void Shutdown();
+
+ private:
+- friend class Job;
+-
+ // Finds a job with a matching RequestPararms or returns nullptr if there was
+ // no match.
+ Job* FindJob(const RequestParams& params);
+
+- // Removes |job| from the in progress jobs and transfers ownership to the
+- // caller.
+- std::unique_ptr<Job> RemoveJob(Job* job);
+-
+ // The in-progress jobs. This set does not contain the job which is actively
+ // invoking callbacks (OnJobCompleted).
+ JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
new file mode 100644
index 0000000..cf93bce
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-vulkan.patch
@@ -0,0 +1,115 @@
+From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 17:39:38 +0000
+Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
+
+The notation for initialization of structs referring to its properties
+is invalid in C++. This is not accepted in GCC. It was making build
+fail in VulkanCommandBuffer.
+
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
+ .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
+ .subresourceRange.baseMipLevel = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
+ .subresourceRange.levelCount = 1,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
+ .subresourceRange.baseArrayLayer = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
+ .subresourceRange.layerCount = 1,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
+ .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
+ .imageSubresource.mipLevel = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
+ .imageSubresource.baseArrayLayer = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
+ .imageSubresource.layerCount = 1,
+ ^
+Bug: 819294
+
+Change-Id: I999abece0c727e77964789183642ba62009c2c22
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Reviewed-by: Antoine Labour <piman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668033}
+---
+
+diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
+index ba776e4..4f14c85 100644
+--- a/gpu/vulkan/vulkan_command_buffer.cc
++++ b/gpu/vulkan/vulkan_command_buffer.cc
+@@ -207,21 +207,20 @@
+ void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
+ VkImageLayout old_layout,
+ VkImageLayout new_layout) {
+- VkImageMemoryBarrier barrier = {
+- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
+- .srcAccessMask = GetAccessMask(old_layout),
+- .dstAccessMask = GetAccessMask(new_layout),
+- .oldLayout = old_layout,
+- .newLayout = new_layout,
+- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+- .image = image,
+- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+- .subresourceRange.baseMipLevel = 0,
+- .subresourceRange.levelCount = 1,
+- .subresourceRange.baseArrayLayer = 0,
+- .subresourceRange.layerCount = 1,
+- };
++ VkImageMemoryBarrier barrier = {};
++ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
++ barrier.srcAccessMask = GetAccessMask(old_layout);
++ barrier.dstAccessMask = GetAccessMask(new_layout);
++ barrier.oldLayout = old_layout;
++ barrier.newLayout = new_layout;
++ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++ barrier.image = image;
++ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++ barrier.subresourceRange.baseMipLevel = 0;
++ barrier.subresourceRange.levelCount = 1;
++ barrier.subresourceRange.baseArrayLayer = 0;
++ barrier.subresourceRange.layerCount = 1;
+ vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
+ GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
+ nullptr, 1, &barrier);
+@@ -233,17 +232,16 @@
+ uint32_t buffer_height,
+ uint32_t width,
+ uint32_t height) {
+- VkBufferImageCopy region = {
+- .bufferOffset = 0,
+- .bufferRowLength = buffer_width,
+- .bufferImageHeight = buffer_height,
+- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+- .imageSubresource.mipLevel = 0,
+- .imageSubresource.baseArrayLayer = 0,
+- .imageSubresource.layerCount = 1,
+- .imageOffset = {0, 0, 0},
+- .imageExtent = {width, height, 1},
+- };
++ VkBufferImageCopy region = {};
++ region.bufferOffset = 0;
++ region.bufferRowLength = buffer_width;
++ region.bufferImageHeight = buffer_height;
++ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++ region.imageSubresource.mipLevel = 0;
++ region.imageSubresource.baseArrayLayer = 0;
++ region.imageSubresource.layerCount = 1;
++ region.imageOffset = {0, 0, 0};
++ region.imageExtent = {width, height, 1};
+ vkCmdCopyBufferToImage(command_buffer_, buffer, image,
+ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
+ }
diff --git a/chromium.spec b/chromium.spec
index 88d3818..00c07ea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -261,6 +261,13 @@ Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
+# Fix Vulkan compilation with gcc
+# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
+Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
+# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
+Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
+Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -818,6 +825,9 @@ udev.
%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
+%patch47 -p1 -b .gcc-vulkan
+%patch48 -p1 -b .gcc-cc-no-except
+%patch49 -p1 -b .gcc-net-fetcher
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1064,6 +1074,7 @@ ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
# Remove most of the bundled libraries. Libraries specified below (taken from
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
+ 'base/third_party/cityhash' \
'base/third_party/dmg_fp' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
@@ -1104,6 +1115,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/blink' \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
+ 'third_party/boringssl/src/third_party/sike' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
@@ -1229,6 +1242,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sinonjs' \
'third_party/skia' \
'third_party/skia/include/third_party/vulkan' \
+ 'third_party/skia/include/third_party/skcms' \
'third_party/skia/third_party/gif' \
'third_party/skia/third_party/skcms' \
'third_party/skia/third_party/vulkan' \
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index 76c73ae..f2225ea 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -41,9 +41,9 @@ def parse_sources(input_sources, output_sources, arch_not_arm):
append_sources (block[1], output_sources)
-def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
+def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
- with open(gyni_path, "r") as input_file:
+ with open(gni_path, "r") as input_file:
content = input_file.read().replace('\n', '')
output_sources = []
@@ -62,7 +62,7 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
limitations = ['ffmpeg_branding == "Chrome"', 'ffmpeg_branding == "ChromeOS"']
if ('use_linux_config' in condition) and not any(limitation in condition for limitation in limitations):
if (arch_not_arm):
- if ('x64' in condition) or ('x86' in condition):
+ if ('x64' in condition) or ('x86' in condition) or ('use_linux_config' in condition):
parse_sources (block[1], output_sources, arch_not_arm)
inserted = True
else:
@@ -79,4 +79,4 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
if __name__ == "__main__":
path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1]
- parse_ffmpeg_gyni_file (path, False if sys.argv[2] == "0" else True)
+ parse_ffmpeg_gni_file (path, False if sys.argv[2] == "0" else True)
diff --git a/sources b/sources
index 778c103..4e53fd1 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ad250b8cd0a01297fdff85c12a4dca85477cf027a68c0a9f7a3bc93b825772d17ddd062a89020ae954def781f19fe44beedb33ec8a86f3c12af290edb43d6ee9
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
commit 83f2dc294a42d11a4d7c38e5137a018a670f1cad
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 13 07:05:33 2019 +0200
Update to 76.0.3809.100
diff --git a/.gitignore b/.gitignore
index 61d44ef..2bfdc54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,3 +81,4 @@
/chromium-75.0.3770.80-clean.tar.xz
/chromium-75.0.3770.90-clean.tar.xz
/chromium-75.0.3770.100-clean.tar.xz
+/chromium-76.0.3809.100-clean.tar.xz
diff --git a/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch b/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
deleted file mode 100644
index d0b2484..0000000
--- a/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx chromium-48.0.2564.116/device/usb/usb_context.cc
---- chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx 2016-02-24 10:21:10.534996028 -0500
-+++ chromium-48.0.2564.116/device/usb/usb_context.cc 2016-02-24 10:22:28.270499864 -0500
-@@ -57,7 +57,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-55.0.2883.75-cups22.patch b/chromium-55.0.2883.75-cups22.patch
deleted file mode 100644
index d1a2bf8..0000000
--- a/chromium-55.0.2883.75-cups22.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 chromium-52.0.2743.82/printing/backend/print_backend_cups.cc
---- chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 2016-07-22 09:20:15.794340886 -0400
-+++ chromium-52.0.2743.82/printing/backend/print_backend_cups.cc 2016-07-22 09:20:26.338261197 -0400
-@@ -16,6 +16,7 @@
- #include "base/synchronization/lock.h"
- #include "base/values.h"
- #include "printing/backend/cups_helper.h"
-+#include <cups/ppd.h>
- #include "printing/backend/print_backend_consts.h"
- #include "url/gurl.h"
-
-diff -up chromium-52.0.2743.82/printing/BUILD.gn.cups22 chromium-52.0.2743.82/printing/BUILD.gn
---- chromium-52.0.2743.82/printing/BUILD.gn.cups22 2016-07-21 11:27:05.597507544 -0400
-+++ chromium-52.0.2743.82/printing/BUILD.gn 2016-07-21 14:36:45.574137758 -0400
-@@ -147,12 +147,13 @@ component("printing") {
- ],
- "trim string")
-
-- if (cups_version == "1.6" || cups_version == "1.7") {
-+ if (cups_version == "1.6" || cups_version == "1.7" || cups_version == "2.2") {
- cflags += [
- # CUPS 1.6 deprecated the PPD APIs, but we will stay with this
- # API for now as supported Linux and Mac OS'es are still using
- # older versions of CUPS. More info: crbug.com/226176
- "-Wno-deprecated-declarations",
-+ "-D_PPD_DEPRECATED=",
- # CUPS 1.7 deprecates httpConnectEncrypt(), see the mac section
- # below.
- ]
diff --git a/chromium-66.0.3359.117-missing-files.patch b/chromium-66.0.3359.117-missing-files.patch
deleted file mode 100644
index 746d56e..0000000
--- a/chromium-66.0.3359.117-missing-files.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing 2018-04-19 09:51:46.165723235 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py 2018-04-19 09:51:46.171723115 -0400
-@@ -0,0 +1,3 @@
-+# Copyright 2017 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.
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing 2018-04-19 09:51:46.171723115 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py 2018-04-19 09:51:46.172723095 -0400
-@@ -0,0 +1,110 @@
-+# Copyright 2017 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.
-+# pylint: disable=import-error,print-statement,relative-import
-+import re
-+SPECIAL_TOKENS = [
-+ # This list should be sorted by length.
-+ 'CString',
-+ 'Float32',
-+ 'Float64',
-+ 'Base64',
-+ 'IFrame',
-+ 'Latin1',
-+ 'PlugIn',
-+ 'SQLite',
-+ 'Uint16',
-+ 'Uint32',
-+ 'WebGL2',
-+ 'ASCII',
-+ 'CType',
-+ 'DList',
-+ 'Int16',
-+ 'Int32',
-+ 'MPath',
-+ 'OList',
-+ 'TSpan',
-+ 'UList',
-+ 'UTF16',
-+ 'Uint8',
-+ 'WebGL',
-+ 'XPath',
-+ 'ETC1',
-+ 'HTML',
-+ 'Int8',
-+ 'S3TC',
-+ 'SPv2',
-+ 'UTF8',
-+ 'API',
-+ 'CSS',
-+ 'DOM',
-+ 'EXT',
-+ 'RTC',
-+ 'SVG',
-+ '2D',
-+ 'AX',
-+ 'V0',
-+ 'V8',
-+]
-+MATCHING_EXPRESSION = '((?:[A-Z][a-z]+)|[0-9]D?$)'
-+class SmartTokenizer(object):
-+ """Detects special cases that are not easily discernible without additional
-+ knowledge, such as recognizing that in SVGSVGElement, the first two SVGs
-+ are separate tokens, but WebGL is one token."""
-+ def __init__(self, name):
-+ self.remaining = name
-+ def tokenize(self):
-+ name = self.remaining
-+ tokens = []
-+ while len(name) > 0:
-+ matched_token = None
-+ for token in SPECIAL_TOKENS:
-+ if name.startswith(token):
-+ matched_token = token
-+ break
-+ if not matched_token:
-+ match = re.search(MATCHING_EXPRESSION, name)
-+ if not match:
-+ matched_token = name
-+ elif match.start(0) != 0:
-+ matched_token = name[:match.start(0)]
-+ else:
-+ matched_token = match.group(0)
-+ tokens.append(name[:len(matched_token)])
-+ name = name[len(matched_token):]
-+ return tokens
-+class NameStyleConverter(object):
-+ """Converts names from camelCase to various other styles.
-+ """
-+ def __init__(self, name):
-+ self.tokens = self.tokenize(name)
-+ def tokenize(self, name):
-+ tokenizer = SmartTokenizer(name)
-+ return tokenizer.tokenize()
-+ def to_snake_case(self):
-+ """Snake case is the file and variable name style per Google C++ Style
-+ Guide:
-+ https://google.github.io/styleguide/cppguide.html#Variable_Names
-+ Also known as the hacker case.
-+ https://en.wikipedia.org/wiki/Snake_case
-+ """
-+ return '_'.join([token.lower() for token in self.tokens])
-+ def to_upper_camel_case(self):
-+ """Upper-camel case is the class and function name style per
-+ Google C++ Style Guide:
-+ https://google.github.io/styleguide/cppguide.html#Function_Names
-+ Also known as the PascalCase.
-+ https://en.wikipedia.org/wiki/Camel_case.
-+ """
-+ return ''.join([token[0].upper() + token[1:] for token in self.tokens])
-+ def to_macro_case(self):
-+ """Macro case is the macro name style per Google C++ Style Guide:
-+ https://google.github.io/styleguide/cppguide.html#Macro_Names
-+ """
-+ return '_'.join([token.upper() for token in self.tokens])
-+ def to_all_cases(self):
-+ return {
-+ 'snake_case': self.to_snake_case(),
-+ 'upper_camel_case': self.to_upper_camel_case(),
-+ 'macro_case': self.to_macro_case(),
-+ }
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing 2018-04-19 09:51:46.172723095 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py 2018-04-19 09:51:46.173723075 -0400
-@@ -0,0 +1,140 @@
-+# Copyright 2017 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.
-+# pylint: disable=import-error,print-statement,relative-import,protected-access
-+"""Unit tests for name_style_converter.py."""
-+import unittest
-+from name_style_converter import NameStyleConverter
-+from name_style_converter import SmartTokenizer
-+class SmartTokenizerTest(unittest.TestCase):
-+ def test_simple_cases(self):
-+ tokenizer = SmartTokenizer('foo')
-+ self.assertEqual(tokenizer.tokenize(), ['foo'])
-+ tokenizer = SmartTokenizer('fooBar')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar'])
-+ tokenizer = SmartTokenizer('fooBarBaz')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar', 'Baz'])
-+ tokenizer = SmartTokenizer('Baz')
-+ self.assertEqual(tokenizer.tokenize(), ['Baz'])
-+ tokenizer = SmartTokenizer('')
-+ self.assertEqual(tokenizer.tokenize(), [])
-+ tokenizer = SmartTokenizer('FOO')
-+ self.assertEqual(tokenizer.tokenize(), ['FOO'])
-+ tokenizer = SmartTokenizer('foo2')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', '2'])
-+ def test_tricky_cases(self):
-+ tokenizer = SmartTokenizer('XMLHttpRequest')
-+ self.assertEqual(tokenizer.tokenize(), ['XML', 'Http', 'Request'])
-+ tokenizer = SmartTokenizer('HTMLElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Element'])
-+ tokenizer = SmartTokenizer('WebGLRenderingContext')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['WebGL', 'Rendering', 'Context'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['Canvas', 'Rendering', 'Context', '2D'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2DAPITest')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['Canvas', 'Rendering', 'Context', '2D', 'API', 'Test'])
-+ tokenizer = SmartTokenizer('SVGSVGElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'SVG', 'Element'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D'])
-+ tokenizer = SmartTokenizer('CSSURLImageValue')
-+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'URL', 'Image', 'Value'])
-+ tokenizer = SmartTokenizer('CSSPropertyAPID')
-+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'Property', 'API', 'D'])
-+ tokenizer = SmartTokenizer('AXARIAGridCell')
-+ self.assertEqual(tokenizer.tokenize(), ['AX', 'ARIA', 'Grid', 'Cell'])
-+ tokenizer = SmartTokenizer('CDATASection')
-+ self.assertEqual(tokenizer.tokenize(), ['CDATA', 'Section'])
-+ tokenizer = SmartTokenizer('ASCIICType')
-+ self.assertEqual(tokenizer.tokenize(), ['ASCII', 'CType'])
-+ tokenizer = SmartTokenizer('CString')
-+ self.assertEqual(tokenizer.tokenize(), ['CString'])
-+ tokenizer = SmartTokenizer('HTMLDListElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'DList', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLOListElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'OList', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLIFrameElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'IFrame', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLPlugInElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'PlugIn', 'Element'])
-+ # No special handling for OptGroup, FieldSet, and TextArea.
-+ tokenizer = SmartTokenizer('HTMLOptGroupElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Opt', 'Group', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLFieldSetElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Field', 'Set', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLTextAreaElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Text', 'Area', 'Element'])
-+ tokenizer = SmartTokenizer('Path2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Path', '2D'])
-+ tokenizer = SmartTokenizer('Point2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Point', '2D'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2DState')
-+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D', 'State'])
-+ tokenizer = SmartTokenizer('RTCDTMFSender')
-+ self.assertEqual(tokenizer.tokenize(), ['RTC', 'DTMF', 'Sender'])
-+ tokenizer = SmartTokenizer('WebGLCompressedTextureS3TCsRGB')
-+ self.assertEqual(tokenizer.tokenize(), ['WebGL', 'Compressed', 'Texture', 'S3TC', 'sRGB'])
-+ tokenizer = SmartTokenizer('WebGL2CompressedTextureETC1')
-+ self.assertEqual(tokenizer.tokenize(), ['WebGL2', 'Compressed', 'Texture', 'ETC1'])
-+ tokenizer = SmartTokenizer('EXTsRGB')
-+ self.assertEqual(tokenizer.tokenize(), ['EXT', 'sRGB'])
-+ tokenizer = SmartTokenizer('SVGFEBlendElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'FE', 'Blend', 'Element'])
-+ tokenizer = SmartTokenizer('SVGMPathElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'MPath', 'Element'])
-+ tokenizer = SmartTokenizer('SVGTSpanElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'TSpan', 'Element'])
-+ tokenizer = SmartTokenizer('SVGURIReference')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'URI', 'Reference'])
-+ tokenizer = SmartTokenizer('UTF16TextIterator')
-+ self.assertEqual(tokenizer.tokenize(), ['UTF16', 'Text', 'Iterator'])
-+ tokenizer = SmartTokenizer('UTF8Decoder')
-+ self.assertEqual(tokenizer.tokenize(), ['UTF8', 'Decoder'])
-+ tokenizer = SmartTokenizer('Uint8Array')
-+ self.assertEqual(tokenizer.tokenize(), ['Uint8', 'Array'])
-+ tokenizer = SmartTokenizer('DOMWindowBase64')
-+ self.assertEqual(tokenizer.tokenize(), ['DOM', 'Window', 'Base64'])
-+ tokenizer = SmartTokenizer('TextCodecLatin1')
-+ self.assertEqual(tokenizer.tokenize(), ['Text', 'Codec', 'Latin1'])
-+ tokenizer = SmartTokenizer('V8BindingForCore')
-+ self.assertEqual(tokenizer.tokenize(), ['V8', 'Binding', 'For', 'Core'])
-+ tokenizer = SmartTokenizer('V8DOMRect')
-+ self.assertEqual(tokenizer.tokenize(), ['V8', 'DOM', 'Rect'])
-+ tokenizer = SmartTokenizer('V0InsertionPoint')
-+ self.assertEqual(tokenizer.tokenize(), ['V0', 'Insertion', 'Point'])
-+ tokenizer = SmartTokenizer('ShadowDOMV0Test')
-+ self.assertEqual(tokenizer.tokenize(), ['Shadow', 'DOM', 'V0', 'Test'])
-+ tokenizer = SmartTokenizer('ElementShadowV0')
-+ self.assertEqual(tokenizer.tokenize(), ['Element', 'Shadow', 'V0'])
-+ tokenizer = SmartTokenizer('StubChromeClientForSPv2')
-+ self.assertEqual(tokenizer.tokenize(), ['Stub', 'Chrome', 'Client', 'For', 'SPv2'])
-+ tokenizer = SmartTokenizer('SQLiteAuthorizer')
-+ self.assertEqual(tokenizer.tokenize(), ['SQLite', 'Authorizer'])
-+ tokenizer = SmartTokenizer('XPathEvaluator')
-+ self.assertEqual(tokenizer.tokenize(), ['XPath', 'Evaluator'])
-+ tokenizer = SmartTokenizer('IsXHTMLDocument')
-+ self.assertEqual(tokenizer.tokenize(), ['Is', 'XHTML', 'Document'])
-+ tokenizer = SmartTokenizer('Animation.idl')
-+ self.assertEqual(tokenizer.tokenize(), ['Animation', '.idl'])
-+class NameStyleConverterTest(unittest.TestCase):
-+ def test_snake_case(self):
-+ converter = NameStyleConverter('HTMLElement')
-+ self.assertEqual(converter.to_snake_case(), 'html_element')
-+ def test_upper_camel_case(self):
-+ converter = NameStyleConverter('someSuperThing')
-+ self.assertEqual(converter.to_upper_camel_case(), 'SomeSuperThing')
-+ converter = NameStyleConverter('SVGElement')
-+ self.assertEqual(converter.to_upper_camel_case(), 'SVGElement')
-+ def test_macro_case(self):
-+ converter = NameStyleConverter('WebGLBaz2D')
-+ self.assertEqual(converter.to_macro_case(), 'WEBGL_BAZ_2D')
-+ def test_all_cases(self):
-+ converter = NameStyleConverter('SVGScriptElement')
-+ self.assertEqual(converter.to_all_cases(), {
-+ 'snake_case': 'svg_script_element',
-+ 'upper_camel_case': 'SVGScriptElement',
-+ 'macro_case': 'SVG_SCRIPT_ELEMENT',
-+ })
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing 2018-04-19 11:34:40.621293007 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py 2018-04-19 11:34:34.440413163 -0400
-@@ -0,0 +1,3 @@
-+# Copyright 2017 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.
diff --git a/chromium-73.0.3683.75-pipewire-cstring-fix.patch b/chromium-73.0.3683.75-pipewire-cstring-fix.patch
deleted file mode 100644
index ce8b70b..0000000
--- a/chromium-73.0.3683.75-pipewire-cstring-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-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-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
new file mode 100644
index 0000000..690f0f9
--- /dev/null
+++ b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
@@ -0,0 +1,15 @@
+diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
+--- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
++++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
+@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
+
+ void UsbContext::UsbEventHandler::Stop() {
+ base::subtle::Release_Store(&running_, 0);
++#ifdef LIBUSB_API_VERSION >= 0x01000105
++ libusb_interrupt_event_handler(context_);
++#else
+ libusb_interrupt_handle_event(context_);
++#endif
+ }
+
+ UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium.spec b/chromium.spec
index 0f9d7f8..88d3818 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,15 +157,15 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 75
+%global majorversion 76
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3770.100
-Release: 3%{?dist}
+Version: %{majorversion}.0.3809.100
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -176,10 +176,7 @@ Patch1: chromium-45.0.2454.101-linux-path-max.patch
Patch2: chromium-55.0.2883.75-addrfix.patch
Patch3: chromium-72.0.3626.121-notest.patch
# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
-# Ignore deprecations in cups 2.2
-# https://bugs.chromium.org/p/chromium/issues/detail?id=622493
-Patch5: chromium-55.0.2883.75-cups22.patch
+Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
Patch6: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
@@ -223,8 +220,6 @@ Patch23: chromium-65.0.3325.146-memcpy-fix.patch
Patch24: chromium-68.0.3440.106-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
-# Missing files in tarball
-Patch26: chromium-66.0.3359.117-missing-files.patch
# Do not use unrar code, it is non-free
Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
@@ -253,14 +248,8 @@ Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
Patch37: chromium-widevine-other-locations.patch
# Disable -fno-delete-null-pointer-checks
Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Add #include <cstring> to get pipewire code to build
-Patch39: chromium-73.0.3683.75-pipewire-cstring-fix.patch
-# gcc does not have __assume
-Patch40: chromium-75.0.3770.80-gcc-no-assume.patch
# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# https://chromium.googlesource.com/chromium/src/+/aeed4d1f15ce84a17ea0bc21...
-Patch42: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
@@ -272,8 +261,6 @@ Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# https://chromium.googlesource.com/chromium/src/+/00281713519dbd84b90d2996...
-Patch47: chromium-75.0.3770.100-git00281713.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -794,7 +781,6 @@ udev.
%patch2 -p1 -b .addrfix
%patch3 -p1 -b .notest
%patch4 -p1 -b .modern-libusbx
-%patch5 -p1 -b .cups22
%patch6 -p1 -b .sandboxpie
%patch7 -p1 -b .etc
%patch8 -p1 -b .gnsystem
@@ -815,7 +801,6 @@ udev.
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
%patch25 -p1 -b .aarch64fix
-%patch26 -p1 -b .missing-files
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -828,15 +813,11 @@ udev.
%patch36 -p1 -b .gcc9
%patch37 -p1 -b .widevine-other-locations
%patch38 -p1 -b .disable-ndnpc
-%patch39 -p1 -b .cstring-fix
-%patch40 -p1 -b .gcc-assume
%patch41 -p1 -b .SIOCGSTAMP
-%patch42 -p1 -b .gcc-dcheck_ne-fix
%patch43 -p1 -b .revert-daff6b
%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .git00281713
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1217,7 +1198,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
- 'third_party/openmax_dl' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
@@ -1260,7 +1240,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sqlite' \
'third_party/swiftshader' \
'third_party/swiftshader/third_party/subzero' \
- 'third_party/swiftshader/third_party/LLVM' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
'third_party/tcmalloc' \
@@ -1857,6 +1836,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
+- Update to 76.0.3809.100
+
* Tue Jul 2 2019 Tom Callaway <spot(a)fedoraproject.org> - 75.0.3770.100-3
- apply upstream fix to resolve issue where it is dangerous to post a
task with a RenderProcessHost pointer because the RenderProcessHost
diff --git a/sources b/sources
index 5ba7f4f..778c103 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-75.0.3770.100-clean.tar.xz) = ee2fad215cf39edc572b4ecd040f1130e857e19a34e64fffb14a995ca325adc0b01d6e8bfae4f91c2fecd13ed018049e64fe2c2cc755502b8e3291698698512e
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ad250b8cd0a01297fdff85c12a4dca85477cf027a68c0a9f7a3bc93b825772d17ddd062a89020ae954def781f19fe44beedb33ec8a86f3c12af290edb43d6ee9
commit b32ea8ff86ec513e9b3676232ff837e0ccd393ec
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 12 17:09:21 2019 +0200
Cleanup the patches
diff --git a/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch b/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch
deleted file mode 100644
index f73ded3..0000000
--- a/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Submitted
-
-GCC aarch64 build fix [this is actually a libvpx patch, not a Chromium one]
-
-Sent to: https://chromium-review.googlesource.com/c/webm/libvpx/+/1136449
-
-Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
----
-From c20bd394f18c47bf133b51d6a40399273c3f24e0 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 13 Jul 2018 14:29:09 +0200
-Subject: [PATCH] vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.
-
-This fixes the build with at least GCC 7.3, where it was previously failing
-with:
-
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon':
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:5: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
- s2 = vpaddl_u32(s1);
- ^~
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
- s2 = vpaddl_u32(s1);
- ^
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:81:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
- s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1));
- ^
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:84:24: error: incompatible type for argument 1 of 'vget_lane_u64'
- return vget_lane_u64(s2, 0);
- ^~
-
-The generated assembly was verified to remain identical with both GCC and
-LLVM.
-
-Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac
----
- vpx_dsp/arm/sum_squares_neon.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/vpx_dsp/arm/sum_squares_neon.c b/vpx_dsp/arm/sum_squares_neon.c
-index 8942ba83b..cfefad993 100644
---- a/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
-+++ b/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
-@@ -14,7 +14,7 @@
- #include "./vpx_dsp_rtcd.h"
-
- uint64_t vpx_sum_squares_2d_i16_neon(const int16_t *src, int stride, int size) {
-- int64x1_t s2;
-+ uint64x1_t s2;
-
- if (size == 4) {
- int16x4_t s[4];
---
-2.14.4
-
diff --git a/chromium-46.0.2490.71-notest.patch b/chromium-46.0.2490.71-notest.patch
deleted file mode 100644
index e4e3448..0000000
--- a/chromium-46.0.2490.71-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd
---- chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest 2015-10-16 02:01:56.644149741 -0400
-+++ chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd 2015-10-16 02:02:36.217285227 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- </includes>
- </release>
- </grit>
diff --git a/chromium-52.0.2743.116-unset-madv_free.patch b/chromium-52.0.2743.116-unset-madv_free.patch
deleted file mode 100644
index 2867c79..0000000
--- a/chromium-52.0.2743.116-unset-madv_free.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
---- chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free 2016-08-15 13:07:29.279655676 -0400
-+++ chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-15 13:08:38.447317416 -0400
-@@ -41,6 +41,11 @@
- #include <errno.h>
- #include <sys/mman.h>
-
-+#if OS(LINUX) && defined(MADV_FREE)
-+// Added in Linux 4.5, but it breaks the sandbox.
-+#undef MADV_FREE
-+#endif
-+
- #ifndef MADV_FREE
- #define MADV_FREE MADV_DONTNEED
- #endif
diff --git a/chromium-52.0.2743.82-arm-webrtc.patch b/chromium-52.0.2743.82-arm-webrtc.patch
deleted file mode 100644
index f1a6629..0000000
--- a/chromium-52.0.2743.82-arm-webrtc.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -up chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc
---- chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc 2016-08-03 09:30:53.922861020 +0200
-+++ chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc 2016-08-03 09:32:00.337498174 +0200
-@@ -18,6 +18,47 @@
-
- #include "webrtc/typedefs.h"
-
-+#include <elf.h>
-+#ifdef __arm__
-+#include <fcntl.h>
-+#include <unistd.h>
-+#include <linux/auxvec.h>
-+#include <asm/hwcap.h>
-+#endif
-+
-+#ifdef __arm__
-+uint64_t WebRtc_GetCPUFeaturesARM() {
-+ static bool detected = false;
-+ static uint64_t have_neon = 0;
-+
-+ int fd;
-+ Elf32_auxv_t auxv;
-+ unsigned int hwcaps;
-+
-+ if (!detected) {
-+ int fd;
-+ Elf32_auxv_t auxv;
-+ unsigned int hwcaps;
-+
-+ fd = open("/proc/self/auxv", O_RDONLY);
-+ if (fd >= 0) {
-+ while (read(fd, &auxv, sizeof(Elf32_auxv_t)) == sizeof(Elf32_auxv_t)) {
-+ if (auxv.a_type == AT_HWCAP) {
-+ have_neon = (auxv.a_un.a_val & HWCAP_NEON) ? kCPUFeatureNEON : 0;
-+ break;
-+ }
-+ }
-+ close (fd);
-+ } else {
-+ have_neon = 0;
-+ }
-+ detected = true;
-+ }
-+
-+ return 0 | have_neon; // others here as we need them
-+}
-+#endif
-+
- // No CPU feature is available => straight C path.
- int GetCPUInfoNoASM(CPUFeature feature) {
- (void)feature;
diff --git a/chromium-52.0.2743.82-master-prefs-path.patch b/chromium-52.0.2743.82-master-prefs-path.patch
deleted file mode 100644
index 6ddd26f..0000000
--- a/chromium-52.0.2743.82-master-prefs-path.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc
---- chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc 2016-08-03 10:15:57.980692109 +0200
-+++ chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc 2016-08-03 10:16:44.553325229 +0200
-@@ -19,9 +19,9 @@ bool IsOrganicFirstRun() {
-
- base::FilePath MasterPrefsPath() {
- // The standard location of the master prefs is next to the chrome binary.
-+ // ...but we patch it to use /etc/chromium
- base::FilePath master_prefs;
-- if (!PathService::Get(base::DIR_EXE, &master_prefs))
-- return base::FilePath();
-+ master_prefs = base::FilePath("/etc/chromium");
- return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
- }
-
diff --git a/chromium-55.0.2883.75-sandbox-pie.patch b/chromium-55.0.2883.75-sandbox-pie.patch
deleted file mode 100644
index 6aae0b0..0000000
--- a/chromium-55.0.2883.75-sandbox-pie.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie chromium-55.0.2883.75/sandbox/linux/BUILD.gn
---- chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie 2016-12-01 18:02:17.000000000 -0500
-+++ chromium-55.0.2883.75/sandbox/linux/BUILD.gn 2016-12-12 16:26:06.863426221 -0500
-@@ -279,11 +279,17 @@ if (is_linux) {
- # For ULLONG_MAX
- "-std=gnu99",
-
-+ "-fPIE",
-+
- # These files have a suspicious comparison.
- # TODO fix this and re-enable this warning.
- "-Wno-sign-compare",
- ]
-
-+ ldflags = [
-+ "-pie",
-+ ]
-+
- import("//build/config/compiler/compiler.gni")
- import("//build/config/sanitizers/sanitizers.gni")
- if (is_component_build || using_sanitizer) {
-@@ -293,7 +299,7 @@ if (is_linux) {
- # other flags that executable_config might have.
- configs -= [ "//build/config:executable_config" ]
- if (!use_gold) {
-- ldflags = [ "-Wl,--disable-new-dtags" ]
-+ ldflags += [ "-Wl,--disable-new-dtags" ]
- }
- }
-
diff --git a/chromium-56.0.2924.87-fpermissive.patch b/chromium-56.0.2924.87-fpermissive.patch
deleted file mode 100644
index be68cf9..0000000
--- a/chromium-56.0.2924.87-fpermissive.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn
---- chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive 2017-02-13 12:32:23.419665971 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn 2017-02-13 12:33:16.146629190 -0500
-@@ -54,6 +54,9 @@ config("config") {
- cflags = []
- defines = []
-
-+ # error: there are no arguments to 'swapAnchor' that depend on a template parameter, so a declaration of 'swapAnchor' must be available [-fpermissive]
-+ cflags += [ "-fpermissive" ]
-+
- if (is_win) {
- cflags += [
- "/wd4305", # Truncation from 'type1' to 'type2'.
diff --git a/chromium-56.0.2924.87-gcc5.patch b/chromium-56.0.2924.87-gcc5.patch
deleted file mode 100644
index 902f92b..0000000
--- a/chromium-56.0.2924.87-gcc5.patch
+++ /dev/null
@@ -1,354 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc
---- chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 2017-02-01 21:03:47.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc 2017-02-09 10:38:38.319790897 -0500
-@@ -165,8 +165,8 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- // state[16 + 2] 0x000000 Byte 2 of 3 (relative offsets)
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-
- // state[17 + 2] 0x0031c0 Byte 3 of 3 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -259,10 +259,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229, 3,208, 0,229, 5, 233, 0,229,229,229,208,229,229,
-
- // state[32 + 2] 0x002000 Byte 2 of 3 (relative offsets)
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-
- // state[33 + 2] 0x003780 Byte 3 of 3 (property)
- 229,208,229,229,208,229,229,229, 208,208,208,208,208, 4, 6,208,
-@@ -355,10 +355,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 228,229,229,229,229,233,233, 6, 208,229, 3,229,233, 6, 6, 0,
-
- // state[48 + 2] 0x001000 Byte 2 of 3 (relative offsets)
---46,-46,-46,-46,-42,-41,-40,-39, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-
- // state[49 + 2] 0x003b40 Byte 3 of 3 (property)
- 6,227,208,233,208, 3, 3,208, 208,229, 0,229,233,219, 0, 6,
-@@ -451,10 +451,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,208,208,217,208,229,229, 229,229,208,217,208,229,229,229,
-
- // state[64 + 2] 0x003000 Byte 2 of 3 (relative offsets)
---54,-53,-52,-51,-50,-58,-49,-47, -62,-62,-62,-62,-62,-62,-62,-62,
---46,-45,-44,-43,-42,-41,-40,-39, -38,-37,-36,-35,-34,-33,-31,-30,
---29,-28,-27,-26,-25,-24,-23,-22, -21,-20,-19,-18,-17,-15,-14,-13,
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-54,(uint8)-53,(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-58,(uint8)-49,(uint8)-47, (uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,
-+(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-38,(uint8)-37,(uint8)-36,(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,
-+(uint8)-29,(uint8)-28,(uint8)-27,(uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22, (uint8)-21,(uint8)-20,(uint8)-19,(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
-
- // state[65 + 2] 0x003f00 Byte 3 of 3 (property)
- 217,217,208, 3,208,217,208,208, 6,229,208,228,229,229,208,229,
-@@ -547,10 +547,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,229,229,208,229,233, 0, 208,208,229,208,227,229,229,229,
-
- // state[80 + 2] 0x004000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-- 38, 39, 40, 41, 42, 43, 44,-78, 45, 46, 47, 48, 49, 50, 51, 52,
-+ 38, 39, 40, 41, 42, 43, 44,(uint8)-78, 45, 46, 47, 48, 49, 50, 51, 52,
-
- // state[81 + 2] 0x0042c0 Byte 3 of 3 (property)
- 229, 0,229,229,229, 3, 4, 4, 229,229,229,229,208,229, 0,208,
-@@ -931,7 +931,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,142, 98, 28,117,206,212,212, 220, 15, 0,231,199,231,111, 28,
-
- // state[144 + 2] 0x005000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -1315,7 +1315,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 16, 15,211,118, 0,231, 68,231, 0, 99,161, 0,115,221,144,140,
-
- // state[208 + 2] 0x006000 Byte 2 of 3 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -1699,7 +1699,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 119, 16, 51, 0, 0, 68,136, 72, 144,118, 87,201,191,136, 78,233,
-
- // state[272 + 2] 0x007000 Byte 2 of 3 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -2083,7 +2083,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 212,212, 0,126,140,220,220, 0, 0, 0,127,118,106, 0,199, 0,
-
- // state[336 + 2] 0x008000 Byte 2 of 3 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -2467,7 +2467,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,122, 0,231,100,232, 0, 0, 117, 0,206,231, 0, 0,231, 0,
-
- // state[400 + 2] 0x009000 Byte 2 of 3 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-@@ -2851,10 +2851,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- // state[464 + 2] 0x00a000 Byte 2 of 3 (relative offsets)
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5,
-
- // state[465 + 2] 0x000080 Byte 2 of 2 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -2947,10 +2947,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208, 5, 6,208, 2, 0, 6, 6, 5,208,208,208, 6,
-
- // state[480 + 2] 0x00b000 Byte 2 of 3 (relative offsets)
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-
- // state[481 + 2] 0x020100 Byte 4 of 4 (property)
- 2, 6, 5, 6, 5,229, 5,208, 208,208,208,208,208,208,208,229,
-@@ -3043,10 +3043,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5,208,208, 2, 229, 5, 5, 5, 5, 5, 6,208,
-
- // state[496 + 2] 0x00d000 Byte 2 of 3 (relative offsets)
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-35,-35,
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-34,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-34,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-
- // state[497 + 2] 0x0204c0 Byte 4 of 4 (property)
- 2, 2, 5, 5, 5, 2,208, 2, 5, 5, 6,208,208, 5, 5, 5,
-@@ -3139,10 +3139,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5, 5, 6, 6, 208,208, 2,208,208,208,208,208,
-
- // state[512 + 2] 0x00f000 Byte 2 of 3 (relative offsets)
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-46,-45,-44,-43, -42,-41,-44,-40,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-39,-38,-37,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43, (uint8)-42,(uint8)-41,(uint8)-44,(uint8)-40,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-39,(uint8)-38,(uint8)-37,
-
- // state[513 + 2] 0x020880 Byte 4 of 4 (property)
- 5, 5, 5, 6,208,208,208,208, 208,208, 5, 5, 6, 6,208,208,
-@@ -3235,10 +3235,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 6,208,218,208,208,208,218, 208, 6,227,229, 6, 6, 6,208,
-
- // state[528 + 2] 0x020000 Byte 3 of 4 (relative offsets)
---52,-51,-50,-49,-47,-46,-45,-44, -43,-42,-41,-40,-39,-38,-37,-36,
---35,-34,-33,-31,-30,-29,-28,-27, -26,-25,-24,-23,-22,-21,-20,-19,
---18,-17,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2,
-- -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-+(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-49,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44, (uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39,(uint8)-38,(uint8)-37,(uint8)-36,
-+(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,(uint8)-29,(uint8)-28,(uint8)-27, (uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22,(uint8)-21,(uint8)-20,(uint8)-19,
-+(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2,
-+ (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-
- // state[529 + 2] 0x020c40 Byte 4 of 4 (property)
- 227, 5, 5, 5, 2, 2, 2, 2, 213, 2, 2, 2, 2, 2,208, 6,
-@@ -3427,7 +3427,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208,208,208,208,208, 208, 6, 6, 6, 6, 2, 5, 5,
-
- // state[560 + 2] 0x021000 Byte 3 of 4 (relative offsets)
---16,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
-+(uint8)-16,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-@@ -3811,7 +3811,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6, 6, 6, 5,208, 208,229,208,208, 5, 5, 5, 5,
-
- // state[624 + 2] 0x022000 Byte 3 of 4 (relative offsets)
---15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1,
-+(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-@@ -4195,7 +4195,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 4, 5,208,208,208,208, 208,208,229, 6, 5, 6, 6, 6,
-
- // state[688 + 2] 0x023000 Byte 3 of 4 (relative offsets)
---14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2,
-+(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-@@ -4579,7 +4579,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 6, 208,208,208,208,208,208, 6, 6,
-
- // state[752 + 2] 0x024000 Byte 3 of 4 (relative offsets)
---13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3,
-+(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-@@ -4963,7 +4963,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 6,229,
-
- // state[816 + 2] 0x025000 Byte 3 of 4 (relative offsets)
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-@@ -5347,7 +5347,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 3, 6,229,208,208,229,
-
- // state[880 + 2] 0x026000 Byte 3 of 4 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -5731,7 +5731,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208, 6, 6,208,208,208,208,208, 6, 6, 6,216, 5, 5, 5, 5,
-
- // state[944 + 2] 0x027000 Byte 3 of 4 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -6115,7 +6115,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6,208,208, 6, 6, 208,229,208,208,208, 5, 5, 5,
-
- // state[1008 + 2] 0x028000 Byte 3 of 4 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -6499,7 +6499,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 6,208,208, 5, 208,208,208, 6,208, 6,208,208,
-
- // state[1072 + 2] 0x029000 Byte 3 of 4 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -6883,7 +6883,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229,229,208,208,208,229, 208,208,208,229, 0,229,208,208,
-
- // state[1136 + 2] 0x02a000 Byte 3 of 4 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
-@@ -7075,10 +7075,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-
- // state[1168 + 2] 0x02f000 Byte 3 of 4 (relative offsets)
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-
- // state[1169 + 2] 0x02fa00 Byte 4 of 4 (property)
- 217, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,217, 5, 5,
-diff -up chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2017-02-01 21:03:57.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2017-02-09 10:38:38.380789675 -0500
-@@ -265,7 +265,7 @@ interface WebGL2RenderingContextBase
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h 2017-02-09 10:38:38.387789535 -0500
-@@ -49,7 +49,7 @@ class NodeFilter final : public GarbageC
- * to the value of NodeType for the equivalent node type.
- */
- enum {
-- kShowAll = 0xFFFFFFFF,
-+ kShowAll = 256 /* 0xFFFFFFFF */,
- kShowElement = 0x00000001,
- kShowAttribute = 0x00000002,
- kShowText = 0x00000004,
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl 2017-02-09 10:38:38.394789395 -0500
-@@ -30,7 +30,7 @@
- const unsigned short FILTER_SKIP = 3;
-
- // Constants for whatToShow
-- const unsigned long SHOW_ALL = 0xFFFFFFFF;
-+ const unsigned long SHOW_ALL = 256; // 0xFFFFFFFF
- const unsigned long SHOW_ELEMENT = 0x1;
- const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
- const unsigned long SHOW_TEXT = 0x4;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl 2017-02-09 11:07:32.828682863 -0500
-@@ -239,7 +239,7 @@ typedef unsigned long long GLuint64;
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-@@ -269,7 +269,7 @@ typedef unsigned long long GLuint64;
- const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;
- const GLenum MAX_ELEMENT_INDEX = 0x8D6B;
- const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
-- const GLint TIMEOUT_IGNORED = -1;
-+ const GLint TIMEOUT_IGNORED = 256;
-
- /* WebGL-specific enums */
- const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
diff --git a/chromium-59.0.3071.115-ucontext-fix.patch b/chromium-59.0.3071.115-ucontext-fix.patch
deleted file mode 100644
index 96bfadb..0000000
--- a/chromium-59.0.3071.115-ucontext-fix.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.ucontextfix 2017-07-12 15:23:33.019591380 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc 2017-07-12 15:32:52.069197546 -0400
-@@ -36,19 +36,19 @@ namespace google_breakpad {
-
- // Minidump defines register structures which are different from the raw
- // structures which we get from the kernel. These are platform specific
--// functions to juggle the ucontext and user structures into minidump format.
-+// functions to juggle the ucontext_t and user structures into minidump format.
-
- #if defined(__i386__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_ESP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_EIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__x86_64)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RSP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__ARM_EABI__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- out->context_flags = MD_CONTEXT_ARM_FULL;
-
- out->iregs[0] = uc->uc_mcontext.arm_r0;
-@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__aarch64__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs) {
- out->context_flags = MD_CONTEXT_ARM64_FULL;
-
-@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__mips__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- #if _MIPS_SIM == _ABI64
- out->context_flags = MD_CONTEXT_MIPS64_FULL;
- #elif _MIPS_SIM == _ABIO32
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
---- chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.ucontextfix 2017-07-12 15:33:08.486806743 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h 2017-07-12 15:33:57.299644808 -0400
-@@ -39,23 +39,23 @@
-
- namespace google_breakpad {
-
--// Wraps platform-dependent implementations of accessors to ucontext structs.
-+// Wraps platform-dependent implementations of accessors to ucontext_t structs.
- struct UContextReader {
-- static uintptr_t GetStackPointer(const struct ucontext* uc);
-+ static uintptr_t GetStackPointer(const ucontext_t* uc);
-
-- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
-+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
-
-- // Juggle a arch-specific ucontext into a minidump format
-+ // Juggle a arch-specific ucontext_t into a minidump format
- // out: the minidump structure
- // info: the collection of register structures.
- #if defined(__i386__) || defined(__x86_64)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
- #elif defined(__aarch64__)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs);
- #else
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
- #endif
- };
-
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc.ucontextfix 2017-07-12 15:34:09.094364048 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc 2017-07-12 15:35:36.483283853 -0400
-@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int
- // Fill in all the holes in the struct to make Valgrind happy.
- memset(&g_crash_context_, 0, sizeof(g_crash_context_));
- memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
-- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
-+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
- #if defined(__aarch64__)
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
-@@ -450,9 +450,9 @@ bool ExceptionHandler::HandleSignal(int
- }
- #elif !defined(__ARM_EABI__) && !defined(__mips__)
- // FP state is not part of user ABI on ARM Linux.
-- // In case of MIPS Linux FP state is already part of struct ucontext
-+ // In case of MIPS Linux FP state is already part of ucontext_t
- // and 'float_state' is not a member of CrashContext.
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- if (uc_ptr->uc_mcontext.fpregs) {
- memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
- sizeof(g_crash_context_.float_state));
-@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDel
- // ExceptionHandler::HandleSignal().
- siginfo.si_code = SI_USER;
- siginfo.si_pid = getpid();
-- struct ucontext context;
-+ ucontext_t context;
- getcontext(&context);
- return HandleSignal(sig, &siginfo, &context);
- }
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h
---- chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h.ucontextfix 2017-07-12 15:35:48.559996380 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h 2017-07-12 15:36:32.615948562 -0400
-@@ -191,11 +191,11 @@ class ExceptionHandler {
- struct CrashContext {
- siginfo_t siginfo;
- pid_t tid; // the crashing thread.
-- struct ucontext context;
-+ ucontext_t context;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- // #ifdef this out because FP state is not part of user ABI for Linux ARM.
- // In case of MIPS Linux FP state is already part of struct
-- // ucontext so 'float_state' is not required.
-+ // ucontext_t so 'float_state' is not required.
- fpstate_t float_state;
- #endif
- };
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.ucontextfix 2017-07-12 15:37:26.232674196 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc 2017-07-12 15:37:39.032369973 -0400
-@@ -579,7 +579,7 @@ class MicrodumpWriter {
-
- void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
-
-- const struct ucontext* const ucontext_;
-+ const ucontext_t* const ucontext_;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_;
- #endif
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.ucontextfix 2017-07-12 15:37:54.041013246 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc 2017-07-12 15:38:19.600405748 -0400
-@@ -1323,7 +1323,7 @@ class MinidumpWriter {
- const int fd_; // File descriptor where the minidum should be written.
- const char* path_; // Path to the file where the minidum should be written.
-
-- const struct ucontext* const ucontext_; // also from the signal handler
-+ const ucontext_t* const ucontext_; // also from the signal handler
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_; // ditto
- #endif
diff --git a/chromium-59.0.3071.86-ffmpeg-stdatomic.patch b/chromium-59.0.3071.86-ffmpeg-stdatomic.patch
deleted file mode 100644
index a512513..0000000
--- a/chromium-59.0.3071.86-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c
---- chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2017-06-07 17:15:24.993945430 -0400
-+++ chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c 2017-06-07 17:18:41.625997601 -0400
-@@ -17,7 +17,13 @@
- */
-
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "cpu.h"
- #include "cpu_internal.h"
diff --git a/chromium-59.0.3071.86-nullfix.patch b/chromium-59.0.3071.86-nullfix.patch
deleted file mode 100644
index 20e9d18..0000000
--- a/chromium-59.0.3071.86-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.nullfix chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.nullfix 2017-06-05 15:03:01.000000000 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:32:43.531911624 -0400
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -91,6 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -136,6 +139,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -161,6 +165,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "mipsel-linux-gnu-readelf"
- nm = "mipsel-linux-gnu-nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-59.0.3071.86-system-clang.patch b/chromium-59.0.3071.86-system-clang.patch
deleted file mode 100644
index 458834b..0000000
--- a/chromium-59.0.3071.86-system-clang.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff -up chromium-59.0.3071.86/build/config/clang/clang.gni.system-clang chromium-59.0.3071.86/build/config/clang/clang.gni
---- chromium-59.0.3071.86/build/config/clang/clang.gni.system-clang 2017-06-11 20:57:07.327949687 -0400
-+++ chromium-59.0.3071.86/build/config/clang/clang.gni 2017-06-11 20:57:24.085620826 -0400
-@@ -9,5 +9,5 @@ declare_args() {
- # coding guidelines, etc. Only used when compiling with Clang.
- clang_use_chrome_plugins = is_clang && !is_nacl && !use_xcode_clang
-
-- clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+ clang_base_path = "/usr"
- }
diff --git a/chromium-60.0.3112.78-gn-system.patch b/chromium-60.0.3112.78-gn-system.patch
deleted file mode 100644
index 60489bb..0000000
--- a/chromium-60.0.3112.78-gn-system.patch
+++ /dev/null
@@ -1,221 +0,0 @@
-diff -up chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn
---- chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn 2017-07-31 10:38:25.879951641 -0400
-@@ -16,6 +16,10 @@ source_set("libjpeg") {
- libs = [ "jpeg" ]
- }
-
-+config("system_libjpeg") {
-+ defines = [ "USE_SYSTEM_LIBJPEG=1" ]
-+}
-+
- source_set("simd") {
- }
-
-diff -up chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libusb.gn
---- chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem 2017-07-31 10:38:25.880951622 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/libusb.gn 2017-07-31 10:38:25.879951641 -0400
-@@ -0,0 +1,24 @@
-+# Copyright 2016 The Chromium Authors. All rights reserved.
-+# Use of this source code is governed by a BSD-style license that can be
-+# found in the LICENSE file.
-+
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+
-+pkg_config("system_libusb") {
-+ packages = [ "libusb-1.0" ]
-+}
-+
-+shim_headers("libusb_shim") {
-+ root_path = "src/libusb"
-+ headers = [
-+ "libusb.h",
-+ ]
-+}
-+
-+source_set("libusb") {
-+ deps = [
-+ ":libusb_shim",
-+ ]
-+ public_configs = [ ":system_libusb" ]
-+}
-diff -up chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/opus.gn
---- chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/opus.gn 2017-07-31 10:38:25.880951622 -0400
-@@ -1,3 +1,164 @@
-+# Copyright 2016 The Chromium Authors. All rights reserved.
-+# Use of this source code is governed by a BSD-style license that can be
-+# found in the LICENSE file.
-+
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+import("//testing/test.gni")
-+
-+pkg_config("system_opus") {
-+ packages = [ "opus" ]
-+}
-+
-+shim_headers("opus_shim") {
-+ root_path = "src/include"
-+ headers = [
-+ "opus_custom.h",
-+ "opus_defines.h",
-+ "opus_multistream.h",
-+ "opus_types.h",
-+ "opus.h",
-+ ]
-+}
-+
-+source_set("opus") {
-+ deps = [
-+ ":opus_shim",
-+ ]
-+ public_configs = [ ":system_opus" ]
-+}
-+
-+config("opus_test_config") {
-+ include_dirs = [
-+ "src/celt",
-+ "src/silk",
-+ ]
-+
-+ if (is_win) {
-+ defines = [ "inline=__inline" ]
-+ }
-+ if (is_android) {
-+ libs = [ "log" ]
-+ }
-+ if (is_clang) {
-+ cflags = [ "-Wno-absolute-value" ]
-+ }
-+}
-+
-+executable("opus_compare") {
-+ sources = [
-+ "src/src/opus_compare.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ "//build/config/sanitizers:deps",
-+ "//build/win:default_exe_manifest",
-+ ]
-+}
-+
-+executable("opus_demo") {
-+ sources = [
-+ "src/src/opus_demo.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ "//build/config/sanitizers:deps",
-+ "//build/win:default_exe_manifest",
-+ ]
-+}
-+
-+test("test_opus_api") {
-+ sources = [
-+ "src/tests/test_opus_api.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+test("test_opus_encode") {
-+ sources = [
-+ "src/tests/test_opus_encode.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+# GN orders flags on a target before flags from configs. The default config
-+# adds -Wall, and this flag have to be after -Wall -- so they need to
-+# come from a config and can't be on the target directly.
-+config("test_opus_decode_config") {
-+ # test_opus_decode passes a null pointer to opus_decode() for an argument
-+ # marked as requiring a non-null value by the nonnull function attribute,
-+ # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
-+ # a compilation error if -Werror is specified.
-+ if (is_posix) {
-+ cflags = [ "-Wno-nonnull" ]
-+ }
-+}
-+
-+test("test_opus_decode") {
-+ sources = [
-+ "src/tests/test_opus_decode.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ":test_opus_decode_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+test("test_opus_padding") {
-+ sources = [
-+ "src/tests/test_opus_padding.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
- # Copyright 2017 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.
-diff -up chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py
---- chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem 2017-07-31 10:38:25.880951622 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py 2017-07-31 10:39:58.067159914 -0400
-@@ -26,6 +26,7 @@ REPLACEMENTS = {
- 'libevent': 'base/third_party/libevent/BUILD.gn',
- 'libjpeg': 'build/secondary/third_party/libjpeg_turbo/BUILD.gn',
- 'libpng': 'third_party/libpng/BUILD.gn',
-+ 'libusb': 'third_party/libusb/BUILD.gn',
- 'libvpx': 'third_party/libvpx/BUILD.gn',
- 'libwebp': 'third_party/libwebp/BUILD.gn',
- 'libxml': 'third_party/libxml/BUILD.gn',
diff --git a/chromium-60.0.3112.78-last-commit-position.patch b/chromium-60.0.3112.78-last-commit-position.patch
deleted file mode 100644
index 7c26d9f..0000000
--- a/chromium-60.0.3112.78-last-commit-position.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit chromium-60.0.3112.78/tools/gn/BUILD.gn
---- chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit 2017-07-31 10:42:38.568041044 -0400
-+++ chromium-60.0.3112.78/tools/gn/BUILD.gn 2017-07-31 10:47:50.760974587 -0400
-@@ -268,7 +268,6 @@ executable("gn") {
-
- deps = [
- ":gn_lib",
-- ":last_commit_position",
- "//base",
- "//build/config:exe_and_shlib_deps",
- "//build/win:default_exe_manifest",
-diff -up chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit chromium-60.0.3112.78/tools/gn/gn_main.cc
---- chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit 2017-07-25 15:05:19.000000000 -0400
-+++ chromium-60.0.3112.78/tools/gn/gn_main.cc 2017-07-31 10:42:38.568041044 -0400
-@@ -12,13 +12,7 @@
- #include "tools/gn/standard_out.h"
- #include "tools/gn/switches.h"
-
--// Only the GN-generated build makes this header for now.
--// TODO(brettw) consider adding this if we need it in GYP.
--#if defined(GN_BUILD)
--#include "tools/gn/last_commit_position.h"
--#else
- #define LAST_COMMIT_POSITION "UNKNOWN"
--#endif
-
- namespace {
-
diff --git a/chromium-60.0.3112.78-no-zlib-mangle.patch b/chromium-60.0.3112.78-no-zlib-mangle.patch
deleted file mode 100644
index 4b90360..0000000
--- a/chromium-60.0.3112.78-no-zlib-mangle.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle chromium-60.0.3112.78/third_party/zlib/zconf.h
---- chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle 2017-08-04 10:45:17.509152089 -0400
-+++ chromium-60.0.3112.78/third_party/zlib/zconf.h 2017-08-04 10:45:30.451902380 -0400
-@@ -8,9 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names */
--#include "names.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-60.0.3112.90-vulkan-force-c99.patch b/chromium-60.0.3112.90-vulkan-force-c99.patch
deleted file mode 100644
index 881aa91..0000000
--- a/chromium-60.0.3112.90-vulkan-force-c99.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn.c99 chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn
---- chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn.c99 2017-08-14 10:40:48.028799820 -0400
-+++ chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn 2017-08-14 10:41:43.054734910 -0400
-@@ -180,6 +180,7 @@ config("vulkan_internal_config") {
- cflags += [ "-Wno-ignored-attributes" ]
- }
- if (is_linux) {
-+ cflags += [ "-std=c99" ]
- defines += [
- "SYSCONFDIR=\"/etc\"",
- "FALLBACK_CONFIG_DIRS=\"/etc/xdg\"",
diff --git a/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch b/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch
deleted file mode 100644
index 12e88d2..0000000
--- a/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc 2017-09-12 10:12:25.375736650 -0400
-+++ chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc 2017-09-12 10:14:42.339638321 -0400
-@@ -461,7 +461,7 @@ bool ExceptionHandler::HandleSignal(int
- #if defined(__aarch64__)
- ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
-- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
-+ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__glibc_reserved1;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
- memcpy(&g_crash_context_.float_state, fp_ptr,
- sizeof(g_crash_context_.float_state));
diff --git a/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch b/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch
deleted file mode 100644
index a8c7260..0000000
--- a/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 2017-09-06 14:34:36.247232957 -0400
-+++ chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni 2017-09-06 14:36:37.632892363 -0400
-@@ -537,7 +537,7 @@ if (use_linux_config && current_cpu == "
- ]
- }
-
--if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
-+if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chromium")) {
- ffmpeg_c_sources += [
- "libavcodec/aarch64/mpegaudiodsp_init.c",
- ]
diff --git a/chromium-61.0.3163.79-setopaque.patch b/chromium-61.0.3163.79-setopaque.patch
deleted file mode 100644
index b797d10..0000000
--- a/chromium-61.0.3163.79-setopaque.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/cc/blink/web_layer_impl.h.setopaque chromium-61.0.3163.79/cc/blink/web_layer_impl.h
---- chromium-61.0.3163.79/cc/blink/web_layer_impl.h.setopaque 2017-09-06 13:55:45.454175023 -0400
-+++ chromium-61.0.3163.79/cc/blink/web_layer_impl.h 2017-09-06 13:58:02.395533936 -0400
-@@ -71,7 +71,7 @@ class CC_BLINK_EXPORT WebLayerImpl : pub
- bool IsRootForIsolatedGroup() override;
- void SetShouldHitTest(bool should_hit_test) override;
- bool ShouldHitTest() override;
-- void SetOpaque(bool opaque) override;
-+ CC_BLINK_EXPORT void SetOpaque(bool opaque) override;
- bool Opaque() const override;
- void SetPosition(const blink::WebFloatPoint& position) override;
- blink::WebFloatPoint GetPosition() const override;
diff --git a/chromium-62.0.3202.62-correct-cplusplus-check.patch b/chromium-62.0.3202.62-correct-cplusplus-check.patch
deleted file mode 100644
index 39f8580..0000000
--- a/chromium-62.0.3202.62-correct-cplusplus-check.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h.fix-cplusplus-conditional chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h
---- chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h.fix-cplusplus-conditional 2017-10-17 15:12:35.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h 2017-10-19 11:41:45.860279576 -0400
-@@ -38,6 +38,8 @@ inline uint32_t Crc32c(const std::string
- // Visual Studio provides a <string_view> header even in C++11 mode. When
- // included, the header issues an #error. (C1189)
- #if !defined(_MSC_VER) || __cplusplus >= 201703L
-+// GCC issues an #error if __cplusplus <= 201402L
-+#if defined(__GNUC__) && __cplusplus > 201402L
- #include <string_view>
-
- // Comptues the CRC32C of the bytes in the string_view.
-@@ -46,6 +48,7 @@ inline uint32_t Crc32c(const std::string
- string_view.size());
- }
-
-+#endif // defined(__GNUC__) && __cplusplus > 201402L
- #endif // !defined(_MSC_VER) || __cplusplus >= 201703L
- #endif // __has_include(<string_view>)
- #endif // defined(__has_include)
diff --git a/chromium-62.0.3202.62-dde535-gcc-fix.patch b/chromium-62.0.3202.62-dde535-gcc-fix.patch
deleted file mode 100644
index 378403a..0000000
--- a/chromium-62.0.3202.62-dde535-gcc-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc.dde535 chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc
---- chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc.dde535 2017-10-18 10:04:33.237966223 -0400
-+++ chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc 2017-10-18 10:05:00.442438694 -0400
-@@ -18,7 +18,8 @@ std::unique_ptr<service_manager::Service
- auto resource_coordinator_service =
- base::MakeUnique<ResourceCoordinatorService>();
-
-- return resource_coordinator_service;
-+ return std::unique_ptr<service_manager::Service>(
-+ resource_coordinator_service.release());
- }
-
- ResourceCoordinatorService::ResourceCoordinatorService()
diff --git a/chromium-62.0.3202.62-enable-mp3.patch b/chromium-62.0.3202.62-enable-mp3.patch
deleted file mode 100644
index 3ed9dbf..0000000
--- a/chromium-62.0.3202.62-enable-mp3.patch
+++ /dev/null
@@ -1,484 +0,0 @@
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/button-press.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/button-press
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/hit.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/hit
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/score-reached.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/score-reached
-diff -up chromium-62.0.3202.62/media/base/mime_util_internal.cc.mp3 chromium-62.0.3202.62/media/base/mime_util_internal.cc
---- chromium-62.0.3202.62/media/base/mime_util_internal.cc.mp3 2017-10-17 15:10:44.000000000 -0400
-+++ chromium-62.0.3202.62/media/base/mime_util_internal.cc 2017-10-18 09:32:16.957562156 -0400
-@@ -266,15 +266,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -311,10 +315,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -920,7 +924,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -928,6 +931,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
-diff -up chromium-62.0.3202.62/media/formats/BUILD.gn.mp3 chromium-62.0.3202.62/media/formats/BUILD.gn
---- chromium-62.0.3202.62/media/formats/BUILD.gn.mp3 2017-10-17 15:10:45.000000000 -0400
-+++ chromium-62.0.3202.62/media/formats/BUILD.gn 2017-10-18 09:25:18.353676481 -0400
-@@ -17,6 +17,14 @@ source_set("formats") {
- "ac3/ac3_util.h",
- "common/offset_byte_queue.cc",
- "common/offset_byte_queue.h",
-+ "mpeg/adts_constants.cc",
-+ "mpeg/adts_constants.h",
-+ "mpeg/adts_stream_parser.cc",
-+ "mpeg/adts_stream_parser.h",
-+ "mpeg/mpeg1_audio_stream_parser.cc",
-+ "mpeg/mpeg1_audio_stream_parser.h",
-+ "mpeg/mpeg_audio_stream_parser_base.cc",
-+ "mpeg/mpeg_audio_stream_parser_base.h",
- "webm/webm_audio_client.cc",
- "webm/webm_audio_client.h",
- "webm/webm_cluster_parser.cc",
-@@ -78,14 +86,6 @@ source_set("formats") {
- "mp4/sample_to_group_iterator.h",
- "mp4/track_run_iterator.cc",
- "mp4/track_run_iterator.h",
-- "mpeg/adts_constants.cc",
-- "mpeg/adts_constants.h",
-- "mpeg/adts_stream_parser.cc",
-- "mpeg/adts_stream_parser.h",
-- "mpeg/mpeg1_audio_stream_parser.cc",
-- "mpeg/mpeg1_audio_stream_parser.h",
-- "mpeg/mpeg_audio_stream_parser_base.cc",
-- "mpeg/mpeg_audio_stream_parser_base.h",
- ]
- }
-
-diff -up chromium-62.0.3202.62/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test.mp3 chromium-62.0.3202.62/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h 2017-10-18 09:25:18.354676462 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h 2017-10-18 09:25:18.355676443 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h 2017-10-18 09:25:18.360676348 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h 2017-10-18 09:25:18.360676348 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h 2017-10-18 09:25:18.361676329 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-10-18 09:05:28.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni 2017-10-18 09:25:18.362676310 -0400
-@@ -182,17 +182,9 @@ if ((is_mac) || (is_win) || (use_linux_c
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_win) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm64") || (use_linux_config && current_cpu == "mipsel") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
-- "libavcodec/aac_ac3_parser.c",
-- "libavcodec/aac_parser.c",
-- "libavcodec/aacadtsdec.c",
-- "libavcodec/aacps_float.c",
-- "libavcodec/aacpsdsp_float.c",
-- "libavcodec/aacsbr.c",
-- "libavcodec/aactab.c",
- "libavcodec/ac3tab.c",
-- "libavcodec/autorename_libavcodec_aacdec.c",
- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
- "libavcodec/autorename_libavcodec_sbrdsp.c",
- "libavcodec/cbrt_data.c",
-@@ -210,7 +202,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
- "libavcodec/mpegaudiodsp_float.c",
- "libavcodec/sinewin.c",
- "libavcodec/sinewin_fixed.c",
-- "libavformat/aacdec.c",
- "libavformat/apetag.c",
- "libavformat/img2.c",
- "libavformat/mov.c",
-@@ -219,6 +210,20 @@ if ((current_cpu == "x64" && ffmpeg_bran
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+ ffmpeg_c_sources += [
-+ "libavcodec/aac_ac3_parser.c",
-+ "libavcodec/aac_parser.c",
-+ "libavcodec/aacadtsdec.c",
-+ "libavcodec/aacps_float.c",
-+ "libavcodec/aacpsdsp_float.c",
-+ "libavcodec/aacsbr.c",
-+ "libavcodec/aactab.c",
-+ "libavcodec/autorename_libavcodec_aacdec.c",
-+ "libavformat/aacdec.c",
-+ ]
-+}
-+
- if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
-@@ -322,15 +327,19 @@ if ((is_mac) || (is_win) || (use_linux_c
- if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/aacpsdsp_init.c",
-+ ]
-+ ffmpeg_yasm_sources += [
-+ "libavcodec/x86/aacpsdsp.asm",
-+ ]
-+}
-+
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86") || (is_win)) {
-+ ffmpeg_c_sources += [
- "libavcodec/x86/dct_init.c",
- "libavcodec/x86/mpegaudiodsp.c",
- "libavcodec/x86/sbrdsp_init.c",
- ]
--}
--
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_yasm_sources += [
-- "libavcodec/x86/aacpsdsp.asm",
- "libavcodec/x86/dct32.asm",
- "libavcodec/x86/imdct36.asm",
- "libavcodec/x86/sbrdsp.asm",
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c
---- chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-10-18 09:05:30.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-10-18 09:25:18.362676310 -0400
-@@ -23,6 +23,7 @@
- #define USE_FIXED 0
-
- #include "aac.h"
-+#include "aacsbrdata.h"
- #include "config.h"
- #include "libavutil/attributes.h"
- #include "libavutil/intfloat.h"
-diff -up chromium-62.0.3202.62/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 chromium-62.0.3202.62/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart
-diff -up chromium-62.0.3202.62/tools/android/audio_focus_grabber/java/res/raw/ping.mp3 chromium-62.0.3202.62/tools/android/audio_focus_grabber/java/res/raw/ping
diff --git a/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch b/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch
deleted file mode 100644
index 7af702a..0000000
--- a/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp.nonullptr chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp
---- chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp.nonullptr 2017-10-18 10:10:14.216353575 -0400
-+++ chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp 2017-10-18 10:10:23.657170980 -0400
-@@ -295,7 +295,7 @@ BlobDataHandle::BlobDataHandle(std::uniq
-
- size_t current_memory_population = 0;
- Vector<DataElementPtr> elements;
-- const DataElementPtr null_element = nullptr;
-+ const DataElementPtr null_element;
- BlobBytesProvider* last_bytes_provider = nullptr;
- RefPtr<WebTaskRunner> file_runner = Platform::Current()->FileTaskRunner();
-
diff --git a/chromium-62.0.3202.62-gcc-nc.patch b/chromium-62.0.3202.62-gcc-nc.patch
deleted file mode 100644
index 0a74d25..0000000
--- a/chromium-62.0.3202.62-gcc-nc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-62.0.3202.62/content/network/network_service_impl.cc.gcc-nc chromium-62.0.3202.62/content/network/network_service_impl.cc
---- chromium-62.0.3202.62/content/network/network_service_impl.cc.gcc-nc 2017-10-18 10:07:04.045041261 -0400
-+++ chromium-62.0.3202.62/content/network/network_service_impl.cc 2017-10-18 10:07:53.175088528 -0400
-@@ -90,6 +90,7 @@ NetworkServiceImpl::CreateNetworkContext
- base::MakeUnique<NetworkContext>(this, std::move(request),
- std::move(params), std::move(builder));
- *url_request_context = network_context->url_request_context();
-+ return std::unique_ptr<content::NetworkContext>(network_context.release());
- return network_context;
- }
-
diff --git a/chromium-62.0.3202.62-gcc7.patch b/chromium-62.0.3202.62-gcc7.patch
deleted file mode 100644
index 90d177d..0000000
--- a/chromium-62.0.3202.62-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2017-10-18 09:20:04.072765163 -0400
-+++ chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-10-18 09:21:40.156905187 -0400
-@@ -9,6 +9,7 @@
- #include "platform/graphics/WebGraphicsContext3DProviderWrapper.h"
- #include "platform/wtf/ThreadSpecific.h"
-
-+#include <functional>
- #include <memory>
-
- namespace blink {
diff --git a/chromium-62.0.3202.62-rvalue-fix.patch b/chromium-62.0.3202.62-rvalue-fix.patch
deleted file mode 100644
index 89197cd..0000000
--- a/chromium-62.0.3202.62-rvalue-fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -up chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc.another-rvalue-fix chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc
---- chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc.another-rvalue-fix 2017-10-18 10:15:58.855675480 -0400
-+++ chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc 2017-10-18 10:16:28.925093301 -0400
-@@ -77,7 +77,7 @@ std::unique_ptr<base::Value> OnStartupHa
- !extensions::ExtensionSystem::Get(profile_)
- ->management_policy()
- ->MustRemainEnabled(ntp_extension, nullptr));
-- return dict;
-+ return std::move(dict);
- }
-
- void OnStartupHandler::HandleGetNtpExtension(const base::ListValue* args) {
-diff -up chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc.another-rvalue-fix chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc
---- chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc.another-rvalue-fix 2017-10-18 10:15:16.408497853 -0400
-+++ chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc 2017-10-18 10:15:43.793967075 -0400
-@@ -305,7 +305,7 @@ std::unique_ptr<InkDropImpl> InkDropHost
- base::MakeUnique<InkDropImpl>(this, size());
- ink_drop->SetAutoHighlightMode(
- views::InkDropImpl::AutoHighlightMode::HIDE_ON_RIPPLE);
-- return ink_drop;
-+ return std:move(ink_drop);
- }
-
- std::unique_ptr<InkDropImpl>
-@@ -314,7 +314,7 @@ InkDropHostView::CreateDefaultFloodFillI
- InkDropHostView::CreateDefaultInkDropImpl();
- ink_drop->SetAutoHighlightMode(
- views::InkDropImpl::AutoHighlightMode::SHOW_ON_RIPPLE);
-- return ink_drop;
-+ return std:move(ink_drop);
- }
-
- } // namespace views
-diff -up chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc.another-rvalue-fix chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc
---- chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc.another-rvalue-fix 2017-10-18 10:14:18.054627919 -0400
-+++ chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc 2017-10-18 10:14:42.265159378 -0400
-@@ -198,7 +198,7 @@ std::unique_ptr<InkDrop> Checkbox::Creat
- std::unique_ptr<InkDropImpl> ink_drop = CreateDefaultInkDropImpl();
- ink_drop->SetShowHighlightOnHover(false);
- ink_drop->SetAutoHighlightMode(InkDropImpl::AutoHighlightMode::NONE);
-- return ink_drop;
-+ return std::move(ink_drop);
- }
-
- std::unique_ptr<InkDropRipple> Checkbox::CreateInkDropRipple() const {
diff --git a/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch b/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
deleted file mode 100644
index 469d680..0000000
--- a/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc 2017-12-12 09:56:24.469343868 -0500
-+++ chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2017-12-12 09:56:38.468071095 -0500
-@@ -461,7 +461,7 @@ bool ExceptionHandler::HandleSignal(int
- #if defined(__aarch64__)
- ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
-- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
-+ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__glibc_reserved1;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
- memcpy(&g_crash_context_.float_state, fp_ptr,
- sizeof(g_crash_context_.float_state));
diff --git a/chromium-63.0.3289.84-enable-mp3.patch b/chromium-63.0.3289.84-enable-mp3.patch
deleted file mode 100644
index 91a331a..0000000
--- a/chromium-63.0.3289.84-enable-mp3.patch
+++ /dev/null
@@ -1,485 +0,0 @@
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/button-press.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/button-press
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/hit.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/hit
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/score-reached.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/score-reached
-diff -up chromium-63.0.3239.84/media/base/mime_util_internal.cc.mp3 chromium-63.0.3239.84/media/base/mime_util_internal.cc
---- chromium-63.0.3239.84/media/base/mime_util_internal.cc.mp3 2017-12-06 15:05:29.000000000 -0500
-+++ chromium-63.0.3239.84/media/base/mime_util_internal.cc 2017-12-07 10:52:02.472510232 -0500
-@@ -266,15 +266,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -311,10 +315,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -935,7 +939,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -943,6 +946,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
-diff -up chromium-63.0.3239.84/media/formats/BUILD.gn.mp3 chromium-63.0.3239.84/media/formats/BUILD.gn
---- chromium-63.0.3239.84/media/formats/BUILD.gn.mp3 2017-12-06 15:05:29.000000000 -0500
-+++ chromium-63.0.3239.84/media/formats/BUILD.gn 2017-12-07 10:52:02.473510212 -0500
-@@ -20,6 +20,14 @@ source_set("formats") {
- "ac3/ac3_util.h",
- "common/offset_byte_queue.cc",
- "common/offset_byte_queue.h",
-+ "mpeg/adts_constants.cc",
-+ "mpeg/adts_constants.h",
-+ "mpeg/adts_stream_parser.cc",
-+ "mpeg/adts_stream_parser.h",
-+ "mpeg/mpeg1_audio_stream_parser.cc",
-+ "mpeg/mpeg1_audio_stream_parser.h",
-+ "mpeg/mpeg_audio_stream_parser_base.cc",
-+ "mpeg/mpeg_audio_stream_parser_base.h",
- "webm/webm_audio_client.cc",
- "webm/webm_audio_client.h",
- "webm/webm_cluster_parser.cc",
-@@ -81,14 +89,6 @@ source_set("formats") {
- "mp4/sample_to_group_iterator.h",
- "mp4/track_run_iterator.cc",
- "mp4/track_run_iterator.h",
-- "mpeg/adts_constants.cc",
-- "mpeg/adts_constants.h",
-- "mpeg/adts_stream_parser.cc",
-- "mpeg/adts_stream_parser.h",
-- "mpeg/mpeg1_audio_stream_parser.cc",
-- "mpeg/mpeg1_audio_stream_parser.h",
-- "mpeg/mpeg_audio_stream_parser_base.cc",
-- "mpeg/mpeg_audio_stream_parser_base.h",
- ]
- }
-
-diff -up chromium-63.0.3239.84/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test.mp3 chromium-63.0.3239.84/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h 2017-12-07 11:08:41.116117073 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h 2017-12-07 11:09:23.602291820 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h 2017-12-07 11:09:49.945779754 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h 2017-12-07 11:10:25.513089579 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h 2017-12-07 11:10:50.721599547 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-12-07 09:51:36.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni 2017-12-07 11:16:58.728447124 -0500
-@@ -183,17 +183,9 @@ if ((is_mac) || (is_win) || (use_linux_c
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_win) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm64") || (use_linux_config && current_cpu == "mipsel") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
-- "libavcodec/aac_ac3_parser.c",
-- "libavcodec/aac_parser.c",
-- "libavcodec/aacadtsdec.c",
-- "libavcodec/aacps_float.c",
-- "libavcodec/aacpsdsp_float.c",
-- "libavcodec/aacsbr.c",
-- "libavcodec/aactab.c",
- "libavcodec/ac3tab.c",
-- "libavcodec/autorename_libavcodec_aacdec.c",
- "libavcodec/autorename_libavcodec_mdct15.c",
- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
- "libavcodec/autorename_libavcodec_sbrdsp.c",
-@@ -211,7 +203,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
- "libavcodec/mpegaudiodsp_float.c",
- "libavcodec/sinewin.c",
- "libavcodec/sinewin_fixed.c",
-- "libavformat/aacdec.c",
- "libavformat/apetag.c",
- "libavformat/img2.c",
- "libavformat/mov.c",
-@@ -220,6 +211,20 @@ if ((current_cpu == "x64" && ffmpeg_bran
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+ ffmpeg_c_sources += [
-+ "libavcodec/aac_ac3_parser.c",
-+ "libavcodec/aac_parser.c",
-+ "libavcodec/aacadtsdec.c",
-+ "libavcodec/aacps_float.c",
-+ "libavcodec/aacpsdsp_float.c",
-+ "libavcodec/aacsbr.c",
-+ "libavcodec/aactab.c",
-+ "libavcodec/autorename_libavcodec_aacdec.c",
-+ "libavformat/aacdec.c",
-+ ]
-+}
-+
- if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
-@@ -323,16 +328,20 @@ if ((is_mac) || (is_win) || (use_linux_c
- if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/aacpsdsp_init.c",
-+ ]
-+ ffmpeg_yasm_sources += [
-+ "libavcodec/x86/aacpsdsp.asm",
-+ ]
-+}
-+
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86") || (is_win)) {
-+ ffmpeg_c_sources += [
- "libavcodec/x86/dct_init.c",
- "libavcodec/x86/mdct15_init.c",
- "libavcodec/x86/mpegaudiodsp.c",
- "libavcodec/x86/sbrdsp_init.c",
- ]
--}
--
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_yasm_sources += [
-- "libavcodec/x86/aacpsdsp.asm",
- "libavcodec/x86/dct32.asm",
- "libavcodec/x86/imdct36.asm",
- "libavcodec/x86/mdct15.asm",
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c
---- chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-12-07 10:52:02.484509992 -0500
-@@ -23,6 +23,7 @@
- #define USE_FIXED 0
-
- #include "aac.h"
-+#include "aacsbrdata.h"
- #include "config.h"
- #include "libavutil/attributes.h"
- #include "libavutil/intfloat.h"
-diff -up chromium-63.0.3239.84/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 chromium-63.0.3239.84/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart
-diff -up chromium-63.0.3239.84/tools/android/audio_focus_grabber/java/res/raw/ping.mp3 chromium-63.0.3239.84/tools/android/audio_focus_grabber/java/res/raw/ping
diff --git a/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch b/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch
deleted file mode 100644
index 8df206b..0000000
--- a/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 2017-12-07 11:23:07.077290535 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni 2017-12-07 11:27:30.354175021 -0500
-@@ -541,7 +541,7 @@ if (use_linux_config && current_cpu == "
- ]
- }
-
--if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
-+if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64")) {
- ffmpeg_c_sources += [
- "libavcodec/aarch64/aacpsdsp_init_aarch64.c",
- "libavcodec/aarch64/mpegaudiodsp_init.c",
diff --git a/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch b/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch
deleted file mode 100644
index 9ca87ad..0000000
--- a/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-63.0.3239.84/build/linux/unbundle/freetype.gn.fixunbundle chromium-63.0.3239.84/build/linux/unbundle/freetype.gn
---- chromium-63.0.3239.84/build/linux/unbundle/freetype.gn.fixunbundle 2017-12-07 12:07:48.652161826 -0500
-+++ chromium-63.0.3239.84/build/linux/unbundle/freetype.gn 2017-12-07 12:08:52.514919585 -0500
-@@ -117,6 +117,14 @@ source_set("freetype") {
- public_configs = [ ":freetype_config" ]
- }
-
-+source_set("freetype_source") {
-+ visibility = [ "//third_party:freetype_harfbuzz" ]
-+ deps = [
-+ ":freetype_shim",
-+ ]
-+ public_configs = [ ":freetype_config" ]
-+}
-+
- source_set("bootstrap_freetype_for_harfbuzz") {
- deps = [
- ":freetype_shim",
-diff -up chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn.fixunbundle chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn
---- chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn.fixunbundle 2017-12-07 12:09:57.057661738 -0500
-+++ chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn 2017-12-07 12:10:03.225541404 -0500
-@@ -24,6 +24,14 @@ group("harfbuzz-ng") {
- ]
- }
-
-+source_set("harfbuzz_source") {
-+ visibility = [ "//third_party:freetype_harfbuzz" ]
-+ deps = [
-+ ":harfbuzz_shim",
-+ ]
-+ public_configs = [ ":system_harfbuzz" ]
-+}
-+
- source_set("harfbuzz-ng-ft") {
- deps = [
- ":harfbuzz_shim",
diff --git a/chromium-63.0.3289.84-gcc-round-fix.patch b/chromium-63.0.3289.84-gcc-round-fix.patch
deleted file mode 100644
index 86d0a7e..0000000
--- a/chromium-63.0.3289.84-gcc-round-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc
---- chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2017-12-07 16:20:01.521717091 -0500
-+++ chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc 2017-12-07 16:20:13.025491739 -0500
-@@ -11,6 +11,7 @@
- #include "p2p/base/port.h"
-
- #include <algorithm>
-+#include <cmath>
- #include <vector>
-
- #include "p2p/base/common.h"
diff --git a/chromium-63.0.3289.84-gcc5-r3.patch b/chromium-63.0.3289.84-gcc5-r3.patch
deleted file mode 100644
index 83c6911..0000000
--- a/chromium-63.0.3289.84-gcc5-r3.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-diff -up chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2017-12-06 15:05:28.000000000 -0500
-+++ chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h 2017-12-07 11:32:15.416636125 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2017-12-06 15:05:31.000000000 -0500
-+++ chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2017-12-07 11:32:15.422636011 -0500
-@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2017-12-07 11:32:15.429635877 -0500
-+++ chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h 2017-12-07 11:34:00.081601880 -0500
-@@ -309,7 +309,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp
---- chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 2017-12-06 15:05:46.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp 2017-12-07 11:32:15.430635859 -0500
-@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -512,7 +512,7 @@ WebString PreflightErrorString(const Pre
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -533,7 +533,7 @@ WebString RedirectErrorString(const Redi
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-diff -up chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2017-12-06 15:05:46.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2017-12-07 11:32:15.408636277 -0500
-@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2017-12-07 11:32:15.409636258 -0500
-+++ chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-12-07 11:33:10.714561105 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <numeric>
- #include <vector>
-
diff --git a/chromium-63.0.3289.84-nolibc++.patch b/chromium-63.0.3289.84-nolibc++.patch
deleted file mode 100644
index 0d999c8..0000000
--- a/chromium-63.0.3289.84-nolibc++.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-63.0.3239.84/remoting/host/linux/BUILD.gn.nolibc++ chromium-63.0.3239.84/remoting/host/linux/BUILD.gn
---- chromium-63.0.3239.84/remoting/host/linux/BUILD.gn.nolibc++ 2017-12-07 11:55:43.173273434 -0500
-+++ chromium-63.0.3239.84/remoting/host/linux/BUILD.gn 2017-12-07 11:55:53.244077772 -0500
-@@ -62,11 +62,9 @@ if (enable_me2me_host) {
- if (is_component_build) {
- sources += [
- "$root_build_dir/libbase.so",
-- "$root_build_dir/libc++.so",
- ]
- deps += [
- "//base:base",
-- "//buildtools/third_party/libc++:libc++",
- ]
- }
- }
diff --git a/chromium-63.0.3289.84-setopaque.patch b/chromium-63.0.3289.84-setopaque.patch
deleted file mode 100644
index 8fb585a..0000000
--- a/chromium-63.0.3289.84-setopaque.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/cc/blink/web_layer_impl.h.setopaque chromium-63.0.3239.84/cc/blink/web_layer_impl.h
---- chromium-63.0.3239.84/cc/blink/web_layer_impl.h.setopaque 2017-12-07 10:47:48.262446682 -0500
-+++ chromium-63.0.3239.84/cc/blink/web_layer_impl.h 2017-12-07 10:48:47.437298948 -0500
-@@ -67,7 +67,7 @@ class CC_BLINK_EXPORT WebLayerImpl : pub
- void SetIsRootForIsolatedGroup(bool root) override;
- bool IsRootForIsolatedGroup() override;
- void SetHitTestableWithoutDrawsContent(bool should_hit_test) override;
-- void SetOpaque(bool opaque) override;
-+ CC_BLINK_EXPORT void SetOpaque(bool opaque) override;
- bool Opaque() const override;
- void SetPosition(const blink::WebFloatPoint& position) override;
- blink::WebFloatPoint GetPosition() const override;
diff --git a/chromium-64.0.3282.119-enable-mp3.patch b/chromium-64.0.3282.119-enable-mp3.patch
deleted file mode 100644
index 849b5ee..0000000
--- a/chromium-64.0.3282.119-enable-mp3.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-64.0.3282.119/media/base/mime_util_internal.cc.mp3 chromium-64.0.3282.119/media/base/mime_util_internal.cc
---- chromium-64.0.3282.119/media/base/mime_util_internal.cc.mp3 2018-01-24 15:05:48.000000000 -0500
-+++ chromium-64.0.3282.119/media/base/mime_util_internal.cc 2018-01-25 11:18:12.354147726 -0500
-@@ -279,15 +279,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -329,10 +333,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -970,7 +974,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -978,6 +981,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
diff --git a/chromium-64.0.3282.119-gcc-constexpr-fix.patch b/chromium-64.0.3282.119-gcc-constexpr-fix.patch
deleted file mode 100644
index 57b63cd..0000000
--- a/chromium-64.0.3282.119-gcc-constexpr-fix.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h.gcc-constexpr 2018-01-25 15:50:16.971171007 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h 2018-01-25 15:51:14.158053914 -0500
-@@ -160,7 +160,7 @@ template <TBasicType basicType,
- TPrecision precision,
- TQualifier qualifier,
- unsigned char secondarySize>
--const TType *GetForVecMatHelper(unsigned char primarySize)
-+constexpr const TType *GetForVecMatHelper(unsigned char primarySize)
- {
- static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
- basicType == EbtBool,
-@@ -186,7 +186,7 @@ const TType *GetForVecMatHelper(unsigned
- template <TBasicType basicType,
- TPrecision precision = EbpUndefined,
- TQualifier qualifier = EvqGlobal>
--const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
-+constexpr const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
- {
- static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
- basicType == EbtBool,
-@@ -208,7 +208,7 @@ const TType *GetForVecMat(unsigned char
- }
-
- template <TBasicType basicType, TPrecision precision = EbpUndefined>
--const TType *GetForVec(TQualifier qualifier, unsigned char size)
-+constexpr const TType *GetForVec(TQualifier qualifier, unsigned char size)
- {
- switch (qualifier)
- {
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp.gcc-constexpr 2018-01-25 15:51:27.670790008 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp 2018-01-25 15:52:04.117077652 -0500
-@@ -189,7 +189,7 @@ TSymbolTable::~TSymbolTable()
- pop();
- }
-
--bool IsGenType(const TType *type)
-+constexpr bool IsGenType(const TType *type)
- {
- if (type)
- {
-@@ -201,7 +201,7 @@ bool IsGenType(const TType *type)
- return false;
- }
-
--bool IsVecType(const TType *type)
-+constexpr bool IsVecType(const TType *type)
- {
- if (type)
- {
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h.gcc-constexpr 2018-01-25 15:52:15.042864767 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h 2018-01-25 15:52:56.763049389 -0500
-@@ -236,13 +236,13 @@ class TType
- {
- }
-
-- TBasicType getBasicType() const { return type; }
-+ constexpr TBasicType getBasicType() const { return type; }
- void setBasicType(TBasicType t);
-
- TPrecision getPrecision() const { return precision; }
- void setPrecision(TPrecision p) { precision = p; }
-
-- TQualifier getQualifier() const { return qualifier; }
-+ constexpr TQualifier getQualifier() const { return qualifier; }
- void setQualifier(TQualifier q) { qualifier = q; }
-
- bool isInvariant() const { return invariant; }
diff --git a/chromium-64.0.3282.119-gcc-round-fix.patch b/chromium-64.0.3282.119-gcc-round-fix.patch
deleted file mode 100644
index 465808c..0000000
--- a/chromium-64.0.3282.119-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc
---- chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-01-25 12:03:14.696443814 -0500
-+++ chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc 2018-01-25 12:20:26.446448618 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <vector>
diff --git a/chromium-64.0.3282.119-gcc5-r3.patch b/chromium-64.0.3282.119-gcc5-r3.patch
deleted file mode 100644
index 3679ecf..0000000
--- a/chromium-64.0.3282.119-gcc5-r3.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -up chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-01-24 15:05:47.000000000 -0500
-+++ chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h 2018-01-25 11:58:48.251623423 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2018-01-24 15:05:51.000000000 -0500
-+++ chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2018-01-25 11:58:48.252623400 -0500
-@@ -137,7 +137,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-01-24 15:05:51.000000000 -0500
-+++ chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-01-25 11:58:48.252623400 -0500
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 chromium-64.0.3282.119/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2018-01-24 15:06:11.000000000 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2018-01-25 11:58:48.253623376 -0500
-@@ -62,7 +62,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -93,11 +93,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-01-25 11:58:48.253623376 -0500
-+++ chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-01-25 12:01:28.769900550 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-64.0.3282.119-gcc5.patch b/chromium-64.0.3282.119-gcc5.patch
deleted file mode 100644
index 0fdc39f..0000000
--- a/chromium-64.0.3282.119-gcc5.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-01-25 11:07:27.179175007 -0500
-+++ chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-01-25 11:07:38.037925336 -0500
-@@ -263,7 +263,7 @@ interface WebGL2RenderingContextBase
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 2018-01-25 11:11:08.581962228 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h 2018-01-25 11:11:24.062593478 -0500
-@@ -49,7 +49,7 @@ class NodeFilter final {
- * to the value of NodeType for the equivalent node type.
- */
- enum {
-- kShowAll = 0xFFFFFFFF,
-+ kShowAll = 256 /* 0xFFFFFFFF */,
- kShowElement = 0x00000001,
- kShowAttribute = 0x00000002,
- kShowText = 0x00000004,
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl
---- chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 2018-01-25 11:11:34.816335412 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl 2018-01-25 11:12:23.380171262 -0500
-@@ -27,7 +27,7 @@ callback interface NodeFilter {
- const unsigned short FILTER_SKIP = 3;
-
- // Constants for whatToShow
-- const unsigned long SHOW_ALL = 0xFFFFFFFF;
-+ const unsigned long SHOW_ALL = 256; // 0xFFFFFFFF
- const unsigned long SHOW_ELEMENT = 0x1;
- const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
- const unsigned long SHOW_TEXT = 0x4;
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
---- chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 2018-01-25 11:12:57.367363214 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl 2018-01-25 11:13:29.883590960 -0500
-@@ -241,7 +241,7 @@ typedef unsigned long long GLuint64;
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-@@ -271,7 +271,7 @@ typedef unsigned long long GLuint64;
- const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;
- const GLenum MAX_ELEMENT_INDEX = 0x8D6B;
- const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
-- const GLint TIMEOUT_IGNORED = -1;
-+ const GLint TIMEOUT_IGNORED = 256;
-
- /* WebGL-specific enums */
- const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
diff --git a/chromium-64.0.3282.119-gcc7.patch b/chromium-64.0.3282.119-gcc7.patch
deleted file mode 100644
index 7fe383e..0000000
--- a/chromium-64.0.3282.119-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2018-01-25 11:15:00.291466617 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2018-01-25 11:16:36.159320291 -0500
-@@ -10,6 +10,7 @@
- #include "platform/wtf/Functional.h"
- #include "platform/wtf/ThreadSpecific.h"
-
-+#include <functional>
- #include <memory>
-
- namespace blink {
diff --git a/chromium-64.0.3282.119-memcpy-fix.patch b/chromium-64.0.3282.119-memcpy-fix.patch
deleted file mode 100644
index 39c3c25..0000000
--- a/chromium-64.0.3282.119-memcpy-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-01-26 15:04:44.708100850 -0500
-+++ chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc 2018-01-26 15:04:54.234915081 -0500
-@@ -3,6 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
-+#include <memory.h>
-
- namespace cc {
-
diff --git a/chromium-64.0.3282.167-gcc8-fabi11.patch b/chromium-64.0.3282.167-gcc8-fabi11.patch
deleted file mode 100644
index 5f0c527..0000000
--- a/chromium-64.0.3282.167-gcc8-fabi11.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py.fabi11 chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py
---- chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py.fabi11 2018-02-19 11:39:15.807713662 -0500
-+++ chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py 2018-02-19 11:39:47.038070341 -0500
-@@ -336,6 +336,11 @@ def write_gn_ninja(path, root_gen_dir, o
- cflags = os.environ.get('CFLAGS', '').split()
- cflags_cc = os.environ.get('CXXFLAGS', '').split()
- ldflags = os.environ.get('LDFLAGS', '').split()
-+
-+ # Work around GCC8 bug gcc#84286
-+ cflags.extend(['-fabi-version=11'])
-+ cflags_cc.extend(['-fabi-version=11'])
-+
- include_dirs = [root_gen_dir, SRC_ROOT]
- libs = []
-
diff --git a/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch b/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch
deleted file mode 100644
index 6cf8ca8..0000000
--- a/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.noncopyable chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.noncopyable 2018-03-13 16:52:15.953729689 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 16:53:55.365792522 -0400
-@@ -45,6 +45,15 @@ struct OptionalStorageBase {
-
- // When T is not trivially destructible we must call its
- // destructor before deallocating its memory.
-+ // Note that this hides the (implicitly declared) move constructor, which
-+ // would be used for constexpr move constructor in OptionalStorage<T>.
-+ // It is needed iff T is trivially move constructible. However, the current
-+ // is_trivially_{copy,move}_constructible implementation requires
-+ // is_trivially_destructible (which looks a bug, cf:
-+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51452 and
-+ // http://cplusplus.github.io/LWG/lwg-active.html#2116), so it is not
-+ // necessary for this case at the moment. Please see also the destructor
-+ // comment in "is_trivially_destructible = true" specialization below.
- ~OptionalStorageBase() {
- if (!is_null_)
- value_.~T();
-@@ -78,9 +87,18 @@ struct OptionalStorageBase<T, true /* tr
- : is_null_(false), value_(std::forward<Args>(args)...) {}
-
- // When T is trivially destructible (i.e. its destructor does nothing) there
-- // is no need to call it. Explicitly defaulting the destructor means it's not
-- // user-provided. Those two together make this destructor trivial.
-- ~OptionalStorageBase() = default;
-+ // is no need to call it. Implicitly defined destructor is trivial, because
-+ // both members (bool and union containing only variants which are trivially
-+ // destructible) are trivially destructible.
-+ // Explicitly-defaulted destructor is also trivial, but do not use it here,
-+ // because it hides the implicit move constructor. It is needed to implement
-+ // constexpr move constructor in OptionalStorage iff T is trivially move
-+ // constructible. Note that, if T is trivially move constructible, the move
-+ // constructor of OptionalStorageBase<T> is also implicitly defined and it is
-+ // trivially move constructor. If T is not trivially move constructible,
-+ // "not declaring move constructor without destructor declaration" here means
-+ // "delete move constructor", which works because any move constructor of
-+ // OptionalStorage will not refer to it in that case.
-
- template <class... Args>
- void Init(Args&&... args) {
diff --git a/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch b/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
deleted file mode 100644
index dbdf68f..0000000
--- a/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp.GetString 2018-03-13 22:54:27.262671113 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp 2018-03-13 22:55:47.722113713 -0400
-@@ -68,7 +68,7 @@ v8::Local<v8::Value> ToV8(const IDBKeyPa
- case IDBKeyPath::kNullType:
- return v8::Null(isolate);
- case IDBKeyPath::kStringType:
-- return V8String(isolate, value.String());
-+ return V8String(isolate, value.GetString());
- case IDBKeyPath::kArrayType:
- return ToV8(value.Array(), creation_context, isolate);
- }
-@@ -97,7 +97,7 @@ v8::Local<v8::Value> ToV8(const IDBKey*
- case IDBKey::kNumberType:
- return v8::Number::New(isolate, key->Number());
- case IDBKey::kStringType:
-- return V8String(isolate, key->String());
-+ return V8String(isolate, key->GetString());
- case IDBKey::kBinaryType:
- // https://w3c.github.io/IndexedDB/#convert-a-value-to-a-key
- return ToV8(DOMArrayBuffer::Create(key->Binary()), creation_context,
-@@ -379,7 +379,7 @@ static std::unique_ptr<IDBKey> CreateIDB
- }
-
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.String(),
-+ return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.GetString(),
- exception_state);
- }
-
-@@ -483,7 +483,7 @@ bool InjectV8KeyIntoV8Value(v8::Isolate*
- DCHECK(isolate->InContext());
-
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
-+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
-
- // The conbination of a key generator and an empty key path is forbidden by
- // spec.
-@@ -569,7 +569,7 @@ bool CanInjectIDBKeyIntoScriptValue(v8::
- const IDBKeyPath& key_path) {
- IDB_TRACE("canInjectIDBKeyIntoScriptValue");
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
-+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
-
- if (!key_path_elements.size())
- return false;
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp.GetString 2018-03-13 22:56:04.041798217 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp 2018-03-13 22:56:22.481440993 -0400
-@@ -56,7 +56,7 @@ WebData WebIDBKeyView::Binary() const {
- }
-
- WebString WebIDBKeyView::String() const {
-- return private_->String();
-+ return private_->GetString();
- }
-
- double WebIDBKeyView::Date() const {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp.GetString 2018-03-13 22:56:36.028178758 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp 2018-03-13 22:56:58.846736831 -0400
-@@ -297,7 +297,7 @@ IDBObjectStore* IDBDatabase::createObjec
- }
-
- if (auto_increment && ((key_path.GetType() == IDBKeyPath::kStringType &&
-- key_path.String().IsEmpty()) ||
-+ key_path.GetString().IsEmpty()) ||
- key_path.GetType() == IDBKeyPath::kArrayType)) {
- exception_state.ThrowDOMException(
- kInvalidAccessError,
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h.GetString 2018-03-13 22:57:13.229458842 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h 2018-03-13 22:57:38.633966776 -0400
-@@ -106,7 +106,7 @@ class MODULES_EXPORT IDBKey {
- return binary_;
- }
-
-- const String& String() const {
-+ const String& GetString() const {
- DCHECK_EQ(type_, kStringType);
- return string_;
- }
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h.GetString 2018-03-13 22:57:51.104725428 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h 2018-03-13 22:58:09.459369906 -0400
-@@ -65,7 +65,7 @@ class MODULES_EXPORT IDBKeyPath {
- return array_;
- }
-
-- const String& String() const {
-+ const String& GetString() const {
- DCHECK_EQ(type_, kStringType);
- return string_;
- }
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp.GetString 2018-03-13 22:58:28.778995834 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp 2018-03-13 22:58:45.044681364 -0400
-@@ -399,7 +399,7 @@ static std::unique_ptr<KeyPath> KeyPathF
- case IDBKeyPath::kStringType:
- key_path = KeyPath::create()
- .setType(KeyPath::TypeEnum::String)
-- .setString(idb_key_path.String())
-+ .setString(idb_key_path.GetString())
- .build();
- break;
- case IDBKeyPath::kArrayType: {
diff --git a/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch b/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch
deleted file mode 100644
index 8edc424..0000000
--- a/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/raster/playback_image_provider.cc.pipcc chromium-65.0.3325.146/cc/raster/playback_image_provider.cc
---- chromium-65.0.3325.146/cc/raster/playback_image_provider.cc.pipcc 2018-03-13 22:47:00.271322726 -0400
-+++ chromium-65.0.3325.146/cc/raster/playback_image_provider.cc 2018-03-13 22:47:53.127300060 -0400
-@@ -92,7 +92,6 @@ PlaybackImageProvider::GetDecodedDrawIma
- }
-
- PlaybackImageProvider::Settings::Settings() = default;
--PlaybackImageProvider::Settings::Settings(const Settings& other) = default;
- PlaybackImageProvider::Settings::~Settings() = default;
-
- } // namespace cc
-diff -up chromium-65.0.3325.146/cc/raster/playback_image_provider.h.pipcc chromium-65.0.3325.146/cc/raster/playback_image_provider.h
---- chromium-65.0.3325.146/cc/raster/playback_image_provider.h.pipcc 2018-03-13 22:48:00.673153629 -0400
-+++ chromium-65.0.3325.146/cc/raster/playback_image_provider.h 2018-03-13 22:48:12.726920597 -0400
-@@ -20,7 +20,6 @@ class CC_EXPORT PlaybackImageProvider :
- public:
- struct CC_EXPORT Settings {
- Settings();
-- Settings(const Settings& other);
- ~Settings();
-
- // The set of image ids to skip during raster.
diff --git a/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch b/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
deleted file mode 100644
index 62124be..0000000
--- a/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h.fulldecl chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h
---- chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h.fulldecl 2018-03-13 16:38:38.870652491 -0400
-+++ chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h 2018-03-13 16:39:02.691186647 -0400
-@@ -21,9 +21,9 @@
- #include "services/preferences/public/interfaces/preferences.mojom.h"
- #include "services/preferences/tracked/hash_store_contents.h"
- #include "services/preferences/tracked/interceptable_pref_filter.h"
-+#include "services/preferences/tracked/pref_hash_store.h"
- #include "services/preferences/tracked/tracked_preference.h"
-
--class PrefHashStore;
- class PrefService;
-
- namespace base {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.fulldecl chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.fulldecl 2018-03-13 16:39:13.787970233 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h 2018-03-13 16:39:42.614407235 -0400
-@@ -30,6 +30,7 @@
-
- #include <memory>
- #include "modules/webdatabase/DatabaseBasicTypes.h"
-+#include "modules/webdatabase/SQLError.h"
- #include "modules/webdatabase/SQLStatement.h"
- #include "modules/webdatabase/SQLStatementBackend.h"
- #include "modules/webdatabase/SQLTransactionStateMachine.h"
-@@ -41,7 +42,6 @@
- namespace blink {
-
- class Database;
--class SQLErrorData;
- class SQLiteTransaction;
- class SQLTransaction;
- class SQLTransactionBackend;
diff --git a/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch b/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
deleted file mode 100644
index 9c6f315..0000000
--- a/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc.explicit-std-move chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc
---- chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc.explicit-std-move 2018-03-13 22:50:41.346043716 -0400
-+++ chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc 2018-03-13 22:51:21.428267583 -0400
-@@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubre
-
- SubresourceLoaderParams params;
- params.loader_factory_info = factory_ptr.PassInterface();
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void AppCacheRequestHandler::MaybeCreateSubresourceLoader(
-diff -up chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc.explicit-std-move chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc
---- chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc.explicit-std-move 2018-03-13 22:51:38.133943776 -0400
-+++ chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc 2018-03-13 22:51:57.658566347 -0400
-@@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::M
- controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle(
- provider_host_->controller());
- params.controller_service_worker_info = std::move(controller_info);
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
diff --git a/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index 809a321..0000000
--- a/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h.fully-declare chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h.fully-declare 2018-03-13 23:02:13.989635567 -0400
-+++ chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h 2018-03-13 23:02:44.318048625 -0400
-@@ -12,13 +12,13 @@
- #include "base/macros.h"
- #include "base/optional.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch b/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch
deleted file mode 100644
index 9b4befe..0000000
--- a/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.conditional chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.conditional 2018-03-13 22:11:02.328058249 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:12:43.622098296 -0400
-@@ -266,6 +266,58 @@ class OptionalBase {
- OptionalStorage<T> storage_;
- };
-
-+// The following {Copy,Move}{Constructible,Assignable} structs are helpers to
-+// implement constructor/assign-operator overloading. Specifically, if T is
-+// is not movable but copyable, Optional<T>'s move constructor should not
-+// participate in overload resolution. This inheritance trick implements that.
-+template <bool is_copy_constructible>
-+struct CopyConstructible {};
-+
-+template <>
-+struct CopyConstructible<false> {
-+ constexpr CopyConstructible() = default;
-+ constexpr CopyConstructible(const CopyConstructible&) = delete;
-+ constexpr CopyConstructible(CopyConstructible&&) = default;
-+ CopyConstructible& operator=(const CopyConstructible&) = default;
-+ CopyConstructible& operator=(CopyConstructible&&) = default;
-+};
-+
-+template <bool is_move_constructible>
-+struct MoveConstructible {};
-+
-+template <>
-+struct MoveConstructible<false> {
-+ constexpr MoveConstructible() = default;
-+ constexpr MoveConstructible(const MoveConstructible&) = default;
-+ constexpr MoveConstructible(MoveConstructible&&) = delete;
-+ MoveConstructible& operator=(const MoveConstructible&) = default;
-+ MoveConstructible& operator=(MoveConstructible&&) = default;
-+};
-+
-+template <bool is_copy_assignable>
-+struct CopyAssignable {};
-+
-+template <>
-+struct CopyAssignable<false> {
-+ constexpr CopyAssignable() = default;
-+ constexpr CopyAssignable(const CopyAssignable&) = default;
-+ constexpr CopyAssignable(CopyAssignable&&) = default;
-+ CopyAssignable& operator=(const CopyAssignable&) = delete;
-+ CopyAssignable& operator=(CopyAssignable&&) = default;
-+};
-+
-+template <bool is_move_assignable>
-+struct MoveAssignable {};
-+
-+template <>
-+struct MoveAssignable<false> {
-+ constexpr MoveAssignable() = default;
-+ constexpr MoveAssignable(const MoveAssignable&) = default;
-+ constexpr MoveAssignable(MoveAssignable&&) = default;
-+ MoveAssignable& operator=(const MoveAssignable&) = default;
-+ MoveAssignable& operator=(MoveAssignable&&) = delete;
-+};
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -280,12 +332,18 @@ class OptionalBase {
- // - No exceptions are thrown, because they are banned from Chromium.
- // - All the non-members are in the 'base' namespace instead of 'std'.
- template <typename T>
--class Optional : public internal::OptionalBase<T> {
-+class Optional
-+ : public internal::OptionalBase<T>,
-+ public internal::CopyConstructible<std::is_copy_constructible<T>::value>,
-+ public internal::MoveConstructible<std::is_move_constructible<T>::value>,
-+ public internal::CopyAssignable<std::is_copy_constructible<T>::value &&
-+ std::is_copy_assignable<T>::value>,
-+ public internal::MoveAssignable<std::is_move_constructible<T>::value &&
-+ std::is_move_assignable<T>::value> {
- public:
- using value_type = T;
-
- // Defer default/copy/move constructor implementation to OptionalBase.
-- // TODO(hidehiko): Implement conditional enabling.
- constexpr Optional() = default;
- constexpr Optional(const Optional& other) = default;
- constexpr Optional(Optional&& other) = default;
-@@ -316,7 +374,6 @@ class Optional : public internal::Option
- ~Optional() = default;
-
- // Defer copy-/move- assign operator implementation to OptionalBase.
-- // TOOD(hidehiko): Implement conditional enabling.
- Optional& operator=(const Optional& other) = default;
- Optional& operator=(Optional&& other) = default;
-
diff --git a/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch b/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch
deleted file mode 100644
index 3214104..0000000
--- a/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.converting chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.converting 2018-03-13 22:31:05.248797490 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:33:10.826368771 -0400
-@@ -31,6 +31,10 @@ constexpr in_place_t in_place = {};
- // http://en.cppreference.com/w/cpp/utility/optional/nullopt
- constexpr nullopt_t nullopt(0);
-
-+// Forward declaration, which is refered by following helpers.
-+template <typename T>
-+class Optional;
-+
- namespace internal {
-
- template <typename T, bool = std::is_trivially_destructible<T>::value>
-@@ -220,6 +224,19 @@ class OptionalBase {
- constexpr explicit OptionalBase(in_place_t, Args&&... args)
- : storage_(in_place, std::forward<Args>(args)...) {}
-
-+ // Implementation of converting constructors.
-+ template <typename U>
-+ explicit OptionalBase(const OptionalBase<U>& other) {
-+ if (other.storage_.is_populated_)
-+ storage_.Init(other.storage_.value_);
-+ }
-+
-+ template <typename U>
-+ explicit OptionalBase(OptionalBase<U>&& other) {
-+ if (other.storage_.is_populated_)
-+ storage_.Init(std::move(other.storage_.value_));
-+ }
-+
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-@@ -263,6 +280,11 @@ class OptionalBase {
- storage_.is_populated_ = false;
- }
-
-+ // For implementing conversion, allow access to other typed OptionalBase
-+ // class.
-+ template <typename U>
-+ friend class OptionalBase;
-+
- OptionalStorage<T> storage_;
- };
-
-@@ -318,6 +340,20 @@ struct MoveAssignable<false> {
- MoveAssignable& operator=(MoveAssignable&&) = delete;
- };
-
-+// Helper to conditionally enable converting constructors.
-+template <typename T, typename U>
-+struct IsConvertibleFromOptional
-+ : std::integral_constant<
-+ bool,
-+ std::is_constructible<T, Optional<U>&>::value ||
-+ std::is_constructible<T, const Optional<U>&>::value ||
-+ std::is_constructible<T, Optional<U>&&>::value ||
-+ std::is_constructible<T, const Optional<U>&&>::value ||
-+ std::is_convertible<Optional<U>&, T>::value ||
-+ std::is_convertible<const Optional<U>&, T>::value ||
-+ std::is_convertible<Optional<U>&&, T>::value ||
-+ std::is_convertible<const Optional<U>&&, T>::value> {};
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -348,7 +384,47 @@ class Optional
- constexpr Optional(const Optional& other) = default;
- constexpr Optional(Optional&& other) = default;
-
-- constexpr Optional(nullopt_t) {}
-+ constexpr Optional(nullopt_t) {} // NOLINT(runtime/explicit)
-+
-+ // Converting copy constructor. "explicit" only if
-+ // std::is_convertible<const U&, T>::value is false. It is implemented by
-+ // declaring two almost same constructors, but that condition in enable_if_t
-+ // is different, so that either one is chosen, thanks to SFINAE.
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, const U&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ std::is_convertible<const U&, T>::value,
-+ bool> = false>
-+ Optional(const Optional<U>& other) : internal::OptionalBase<T>(other) {}
-+
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, const U&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ !std::is_convertible<const U&, T>::value,
-+ bool> = false>
-+ explicit Optional(const Optional<U>& other)
-+ : internal::OptionalBase<T>(other) {}
-+
-+ // Converting move constructor. Similar to converting copy constructor,
-+ // declaring two (explicit and non-explicit) constructors.
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, U&&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ Optional(Optional<U>&& other) : internal::OptionalBase<T>(std::move(other)) {}
-+
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, U&&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ !std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ explicit Optional(Optional<U>&& other)
-+ : internal::OptionalBase<T>(std::move(other)) {}
-
- constexpr Optional(const T& value)
- : internal::OptionalBase<T>(in_place, value) {}
diff --git a/chromium-65.0.3325.146-Implement-value-forward-constructor.patch b/chromium-65.0.3325.146-Implement-value-forward-constructor.patch
deleted file mode 100644
index db727d8..0000000
--- a/chromium-65.0.3325.146-Implement-value-forward-constructor.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.vforward chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.vforward 2018-03-13 22:35:46.383359966 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:37:48.724992995 -0400
-@@ -354,6 +354,10 @@ struct IsConvertibleFromOptional
- std::is_convertible<Optional<U>&&, T>::value ||
- std::is_convertible<const Optional<U>&&, T>::value> {};
-
-+// Forward compatibility for C++20.
-+template <typename T>
-+using RemoveCvRefT = std::remove_cv_t<std::remove_reference_t<T>>;
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -367,6 +371,13 @@ struct IsConvertibleFromOptional
- // - 'constexpr' might be missing in some places for reasons specified locally.
- // - No exceptions are thrown, because they are banned from Chromium.
- // - All the non-members are in the 'base' namespace instead of 'std'.
-+//
-+// Note that T cannot have a constructor T(Optional<T>) etc. Optional<T> checks
-+// T's constructor (specifically via IsConvertibleFromOptional), and in the
-+// check whether T can be constructible from Optional<T>, which is recursive
-+// so it does not work. As of Feb 2018, std::optional C++17 implementation in
-+// both clang and gcc has same limitation. MSVC SFINAE looks to have different
-+// behavior, but anyway it reports an error, too.
- template <typename T>
- class Optional
- : public internal::OptionalBase<T>,
-@@ -426,12 +437,6 @@ class Optional
- explicit Optional(Optional<U>&& other)
- : internal::OptionalBase<T>(std::move(other)) {}
-
-- constexpr Optional(const T& value)
-- : internal::OptionalBase<T>(in_place, value) {}
--
-- constexpr Optional(T&& value)
-- : internal::OptionalBase<T>(in_place, std::move(value)) {}
--
- template <class... Args>
- constexpr explicit Optional(in_place_t, Args&&... args)
- : internal::OptionalBase<T>(in_place, std::forward<Args>(args)...) {}
-@@ -447,6 +452,30 @@ class Optional
- Args&&... args)
- : internal::OptionalBase<T>(in_place, il, std::forward<Args>(args)...) {}
-
-+ // Forward value constructor. Similar to converting constructors,
-+ // conditionally explicit.
-+ template <
-+ typename U = value_type,
-+ std::enable_if_t<
-+ std::is_constructible<T, U&&>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, in_place_t>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ constexpr Optional(U&& value)
-+ : internal::OptionalBase<T>(in_place, std::forward<U>(value)) {}
-+
-+ template <
-+ typename U = value_type,
-+ std::enable_if_t<
-+ std::is_constructible<T, U&&>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, in_place_t>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ !std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ constexpr explicit Optional(U&& value)
-+ : internal::OptionalBase<T>(in_place, std::forward<U>(value)) {}
-+
- ~Optional() = default;
-
- // Defer copy-/move- assign operator implementation to OptionalBase.
diff --git a/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch b/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch
deleted file mode 100644
index f9c4503..0000000
--- a/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.ncnm chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.ncnm 2018-03-13 22:40:11.743226276 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:44:30.948211358 -0400
-@@ -240,37 +240,37 @@ class OptionalBase {
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-- if (!other.storage_.is_populated_) {
-- FreeIfNeeded();
-- return *this;
-- }
--
-- InitOrAssign(other.storage_.value_);
-+ CopyAssign(other);
- return *this;
- }
-
- OptionalBase& operator=(OptionalBase&& other) {
-- if (!other.storage_.is_populated_) {
-- FreeIfNeeded();
-- return *this;
-- }
--
-- InitOrAssign(std::move(other.storage_.value_));
-+ MoveAssign(std::move(other));
- return *this;
- }
-
-- void InitOrAssign(const T& value) {
-- if (!storage_.is_populated_)
-- storage_.Init(value);
-+ template <typename U>
-+ void CopyAssign(const OptionalBase<U>& other) {
-+ if (other.storage_.is_populated_)
-+ InitOrAssign(other.storage_.value_);
- else
-- storage_.value_ = value;
-+ FreeIfNeeded();
- }
-
-- void InitOrAssign(T&& value) {
-- if (!storage_.is_populated_)
-- storage_.Init(std::move(value));
-+ template <typename U>
-+ void MoveAssign(OptionalBase<U>&& other) {
-+ if (other.storage_.is_populated_)
-+ InitOrAssign(std::move(other.storage_.value_));
-+ else
-+ FreeIfNeeded();
-+ }
-+
-+ template <typename U>
-+ void InitOrAssign(U&& value) {
-+ if (storage_.is_populated_)
-+ storage_.value_ = std::forward<U>(value);
- else
-- storage_.value_ = std::move(value);
-+ storage_.Init(std::forward<U>(value));
- }
-
- void FreeIfNeeded() {
-@@ -340,7 +340,7 @@ struct MoveAssignable<false> {
- MoveAssignable& operator=(MoveAssignable&&) = delete;
- };
-
--// Helper to conditionally enable converting constructors.
-+// Helper to conditionally enable converting constructors and assign operators.
- template <typename T, typename U>
- struct IsConvertibleFromOptional
- : std::integral_constant<
-@@ -354,6 +354,16 @@ struct IsConvertibleFromOptional
- std::is_convertible<Optional<U>&&, T>::value ||
- std::is_convertible<const Optional<U>&&, T>::value> {};
-
-+template <typename T, typename U>
-+struct IsAssignableFromOptional
-+ : std::integral_constant<
-+ bool,
-+ IsConvertibleFromOptional<T, U>::value ||
-+ std::is_assignable<T&, Optional<U>&>::value ||
-+ std::is_assignable<T&, const Optional<U>&>::value ||
-+ std::is_assignable<T&, Optional<U>&&>::value ||
-+ std::is_assignable<T&, const Optional<U>&&>::value> {};
-+
- // Forward compatibility for C++20.
- template <typename T>
- using RemoveCvRefT = std::remove_cv_t<std::remove_reference_t<T>>;
-@@ -487,14 +497,42 @@ class Optional
- return *this;
- }
-
-- template <class U>
-- typename std::enable_if<std::is_same<std::decay_t<U>, T>::value,
-- Optional&>::type
-+ // Perfect-forwarded assignment.
-+ template <typename U>
-+ std::enable_if_t<
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ std::is_constructible<T, U>::value &&
-+ std::is_assignable<T&, U>::value &&
-+ (!std::is_scalar<T>::value ||
-+ !std::is_same<std::decay_t<U>, T>::value),
-+ Optional&>
- operator=(U&& value) {
- InitOrAssign(std::forward<U>(value));
- return *this;
- }
-
-+// Copy assign the state of other.
-+ template <typename U>
-+ std::enable_if_t<!internal::IsAssignableFromOptional<T, U>::value &&
-+ std::is_constructible<T, const U&>::value &&
-+ std::is_assignable<T&, const U&>::value,
-+ Optional&>
-+ operator=(const Optional<U>& other) {
-+ CopyAssign(other);
-+ return *this;
-+ }
-+
-+ // Move assign the state of other.
-+ template <typename U>
-+ std::enable_if_t<!internal::IsAssignableFromOptional<T, U>::value &&
-+ std::is_constructible<T, U>::value &&
-+ std::is_assignable<T&, U>::value,
-+ Optional&>
-+ operator=(Optional<U>&& other) {
-+ MoveAssign(std::move(other));
-+ return *this;
-+ }
-+
- constexpr const T* operator->() const {
- DCHECK(storage_.is_populated_);
- return &value();
-@@ -606,8 +644,10 @@ class Optional
- private:
- // Accessing template base class's protected member needs explicit
- // declaration to do so.
-+ using internal::OptionalBase<T>::CopyAssign;
- using internal::OptionalBase<T>::FreeIfNeeded;
- using internal::OptionalBase<T>::InitOrAssign;
-+ using internal::OptionalBase<T>::MoveAssign;
- using internal::OptionalBase<T>::storage_;
- };
-
diff --git a/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch b/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch
deleted file mode 100644
index 8aaea85..0000000
--- a/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.affirmative chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.affirmative 2018-03-13 22:27:29.451969704 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:27:57.031436045 -0400
-@@ -41,7 +41,7 @@ struct OptionalStorageBase {
-
- template <class... Args>
- constexpr explicit OptionalStorageBase(in_place_t, Args&&... args)
-- : is_null_(false), value_(std::forward<Args>(args)...) {}
-+ : is_populated_(true), value_(std::forward<Args>(args)...) {}
-
- // When T is not trivially destructible we must call its
- // destructor before deallocating its memory.
-@@ -55,18 +55,18 @@ struct OptionalStorageBase {
- // necessary for this case at the moment. Please see also the destructor
- // comment in "is_trivially_destructible = true" specialization below.
- ~OptionalStorageBase() {
-- if (!is_null_)
-+ if (is_populated_)
- value_.~T();
- }
-
- template <class... Args>
- void Init(Args&&... args) {
-- DCHECK(is_null_);
-+ DCHECK(!is_populated_);
- ::new (&value_) T(std::forward<Args>(args)...);
-- is_null_ = false;
-+ is_populated_ = true;
- }
-
-- bool is_null_ = true;
-+ bool is_populated_ = false;
- union {
- // |empty_| exists so that the union will always be initialized, even when
- // it doesn't contain a value. Union members must be initialized for the
-@@ -84,7 +84,7 @@ struct OptionalStorageBase<T, true /* tr
-
- template <class... Args>
- constexpr explicit OptionalStorageBase(in_place_t, Args&&... args)
-- : is_null_(false), value_(std::forward<Args>(args)...) {}
-+ : is_populated_(true), value_(std::forward<Args>(args)...) {}
-
- // When T is trivially destructible (i.e. its destructor does nothing) there
- // is no need to call it. Implicitly defined destructor is trivial, because
-@@ -102,12 +102,12 @@ struct OptionalStorageBase<T, true /* tr
-
- template <class... Args>
- void Init(Args&&... args) {
-- DCHECK(is_null_);
-+ DCHECK(!is_populated_);
- ::new (&value_) T(std::forward<Args>(args)...);
-- is_null_ = false;
-+ is_populated_ = true;
- }
-
-- bool is_null_ = true;
-+ bool is_populated_ = false;
- union {
- // |empty_| exists so that the union will always be initialized, even when
- // it doesn't contain a value. Union members must be initialized for the
-@@ -133,7 +133,7 @@ struct OptionalStorage : OptionalStorage
-
- // Accessing the members of template base class requires explicit
- // declaration.
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
-
-@@ -145,12 +145,12 @@ struct OptionalStorage : OptionalStorage
- OptionalStorage() = default;
-
- OptionalStorage(const OptionalStorage& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(other.value_);
- }
-
- OptionalStorage(OptionalStorage&& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(std::move(other.value_));
- }
- };
-@@ -160,7 +160,7 @@ struct OptionalStorage<T,
- true /* trivially copy constructible */,
- false /* trivially move constructible */>
- : OptionalStorageBase<T> {
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
- using OptionalStorageBase<T>::OptionalStorageBase;
-@@ -169,7 +169,7 @@ struct OptionalStorage<T,
- OptionalStorage(const OptionalStorage& other) = default;
-
- OptionalStorage(OptionalStorage&& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(std::move(other.value_));
- }
- };
-@@ -179,7 +179,7 @@ struct OptionalStorage<T,
- false /* trivially copy constructible */,
- true /* trivially move constructible */>
- : OptionalStorageBase<T> {
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
- using OptionalStorageBase<T>::OptionalStorageBase;
-@@ -188,7 +188,7 @@ struct OptionalStorage<T,
- OptionalStorage(OptionalStorage&& other) = default;
-
- OptionalStorage(const OptionalStorage& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(other.value_);
- }
- };
-@@ -223,7 +223,7 @@ class OptionalBase {
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-- if (other.storage_.is_null_) {
-+ if (!other.storage_.is_populated_) {
- FreeIfNeeded();
- return *this;
- }
-@@ -233,7 +233,7 @@ class OptionalBase {
- }
-
- OptionalBase& operator=(OptionalBase&& other) {
-- if (other.storage_.is_null_) {
-+ if (!other.storage_.is_populated_) {
- FreeIfNeeded();
- return *this;
- }
-@@ -243,24 +243,24 @@ class OptionalBase {
- }
-
- void InitOrAssign(const T& value) {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- storage_.Init(value);
- else
- storage_.value_ = value;
- }
-
- void InitOrAssign(T&& value) {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- storage_.Init(std::move(value));
- else
- storage_.value_ = std::move(value);
- }
-
- void FreeIfNeeded() {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- return;
- storage_.value_.~T();
-- storage_.is_null_ = true;
-+ storage_.is_populated_ = false;
- }
-
- OptionalStorage<T> storage_;
-@@ -334,12 +334,12 @@ class Optional : public internal::Option
- }
-
- constexpr const T* operator->() const {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return &value();
- }
-
- constexpr T* operator->() {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return &value();
- }
-
-@@ -351,27 +351,27 @@ class Optional : public internal::Option
-
- constexpr T&& operator*() && { return std::move(value()); }
-
-- constexpr explicit operator bool() const { return !storage_.is_null_; }
-+ constexpr explicit operator bool() const { return storage_.is_populated_; }
-
-- constexpr bool has_value() const { return !storage_.is_null_; }
-+ constexpr bool has_value() const { return storage_.is_populated_; }
-
- constexpr T& value() & {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return storage_.value_;
- }
-
- constexpr const T& value() const & {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return storage_.value_;
- }
-
- constexpr T&& value() && {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return std::move(storage_.value_);
- }
-
- constexpr const T&& value() const && {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return std::move(storage_.value_);
- }
-
-@@ -382,8 +382,9 @@ class Optional : public internal::Option
- // "T must be copy constructible");
- static_assert(std::is_convertible<U, T>::value,
- "U must be convertible to T");
-- return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
-- : value();
-+ return storage_.is_populated_
-+ ? value()
-+ : static_cast<T>(std::forward<U>(default_value));
- }
-
- template <class U>
-@@ -393,26 +394,27 @@ class Optional : public internal::Option
- // "T must be move constructible");
- static_assert(std::is_convertible<U, T>::value,
- "U must be convertible to T");
-- return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
-- : std::move(value());
-+ return storage_.is_populated_
-+ ? std::move(value())
-+ : static_cast<T>(std::forward<U>(default_value));
- }
-
- void swap(Optional& other) {
-- if (storage_.is_null_ && other.storage_.is_null_)
-+ if (!storage_.is_populated_ && !other.storage_.is_populated_)
- return;
-
-- if (storage_.is_null_ != other.storage_.is_null_) {
-- if (storage_.is_null_) {
-- storage_.Init(std::move(other.storage_.value_));
-- other.FreeIfNeeded();
-- } else {
-+ if (storage_.is_populated_ != other.storage_.is_populated_) {
-+ if (storage_.is_populated_) {
- other.storage_.Init(std::move(storage_.value_));
- FreeIfNeeded();
-+ } else {
-+ storage_.Init(std::move(other.storage_.value_));
-+ other.FreeIfNeeded();
- }
- return;
- }
-
-- DCHECK(!storage_.is_null_ && !other.storage_.is_null_);
-+ DCHECK(storage_.is_populated_ && other.storage_.is_populated_);
- using std::swap;
- swap(**this, *other);
- }
diff --git a/chromium-65.0.3325.146-gcc5-r3.patch b/chromium-65.0.3325.146-gcc5-r3.patch
deleted file mode 100644
index ab74a35..0000000
--- a/chromium-65.0.3325.146-gcc5-r3.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -up chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-03-06 18:04:32.000000000 -0500
-+++ chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2018-03-06 18:04:37.000000000 -0500
-+++ chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -138,7 +138,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-03-06 18:04:37.000000000 -0500
-+++ chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2018-03-06 18:05:06.000000000 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2018-03-07 10:48:53.996093882 -0500
-@@ -62,7 +62,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(length),
- data_(data),
- data_length_(length),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -93,11 +93,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-03-06 18:06:09.000000000 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-03-07 10:42:07.199179616 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-65.0.3325.146-gcc7.patch b/chromium-65.0.3325.146-gcc7.patch
deleted file mode 100644
index 4f2b46c..0000000
--- a/chromium-65.0.3325.146-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2018-03-07 10:34:48.783900894 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2018-03-07 10:35:44.885638503 -0500
-@@ -5,6 +5,7 @@
- #ifndef SharedGpuContext_h
- #define SharedGpuContext_h
-
-+#include <functional>
- #include <memory>
- #include "base/callback.h"
- #include "base/memory/weak_ptr.h"
diff --git a/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch b/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch
deleted file mode 100644
index 241dfb5..0000000
--- a/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.784732 chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.784732 2018-03-07 13:40:00.103579631 -0500
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-07 13:41:08.950323996 -0500
-@@ -9,6 +9,7 @@
- #include <utility>
-
- #include "base/logging.h"
-+#include "base/template_util.h"
-
- namespace base {
-
-@@ -106,7 +107,7 @@ struct OptionalStorageBase<T, true /* tr
- // compiler generated constexpr {copy,move} constructors). Note that
- // placement-new is prohibited in constexpr.
- template <typename T,
-- bool = std::is_trivially_copy_constructible<T>::value,
-+ bool = is_trivially_copy_constructible<T>::value,
- bool = std::is_trivially_move_constructible<T>::value>
- struct OptionalStorage : OptionalStorageBase<T> {
- // This is no trivially {copy,move} constructible case. Other cases are
-diff -up chromium-65.0.3325.146/base/template_util.h.784732 chromium-65.0.3325.146/base/template_util.h
---- chromium-65.0.3325.146/base/template_util.h.784732 2018-03-07 13:41:19.479131969 -0500
-+++ chromium-65.0.3325.146/base/template_util.h 2018-03-07 13:42:41.308639551 -0500
-@@ -10,6 +10,7 @@
- #include <iterator>
- #include <type_traits>
- #include <utility>
-+#include <vector>
-
- #include "build/build_config.h"
-
-@@ -127,6 +128,23 @@ template <class T>
- using is_trivially_copyable = std::is_trivially_copyable<T>;
- #endif
-
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<std::vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+template <typename T>
-+struct is_trivially_copy_constructible
-+ : std::is_trivially_copy_constructible<T> {};
-+
-+template <typename... T>
-+struct is_trivially_copy_constructible<std::vector<T...>> : std::false_type {};
-+#else
-+// Otherwise use std::is_trivially_copy_constructible as is.
-+template <typename T>
-+using is_trivially_copy_constructible = std::is_trivially_copy_constructible<T>;
-+#endif
-+
- } // namespace base
-
- #undef CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX
diff --git a/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch b/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch
deleted file mode 100644
index 8b5ff7f..0000000
--- a/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h.oilpan chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h.oilpan 2018-03-13 16:45:40.613426445 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h 2018-03-13 16:45:49.946244905 -0400
-@@ -18,6 +18,7 @@
- #include "platform/wtf/HashTable.h"
- #include "platform/wtf/LinkedHashSet.h"
- #include "platform/wtf/ListHashSet.h"
-+#include "platform/wtf/Optional.h"
- #include "platform/wtf/TypeTraits.h"
-
- namespace blink {
-@@ -325,6 +326,23 @@ class TraceTrait<std::pair<T, U>> {
- }
- };
-
-+// While using Optional<T> with garbage-collected types is generally disallowed
-+// by the OptionalGarbageCollected check in blink_gc_plugin, garbage-collected
-+// containers such as HeapVector are allowed and need to be traced.
-+template <typename T>
-+class TraceTrait<WTF::Optional<T>> {
-+ STATIC_ONLY(TraceTrait);
-+
-+ public:
-+ template <typename VisitorDispatcher>
-+ static void Trace(VisitorDispatcher visitor, WTF::Optional<T>* optional) {
-+ if (*optional != WTF::nullopt) {
-+ TraceIfEnabled<T, WTF::IsTraceable<T>::value>::Trace(visitor,
-+ optional->value());
-+ }
-+ }
-+};
-+
- // If eager tracing leads to excessively deep |trace()| call chains (and
- // the system stack usage that this brings), the marker implementation will
- // switch to using an explicit mark stack. Recursive and deep object graphs
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.oilpan chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.oilpan 2018-03-13 16:46:01.683015951 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h 2018-03-13 16:46:51.632043375 -0400
-@@ -7,20 +7,15 @@
-
- #include "base/optional.h"
- #include "platform/wtf/TemplateUtil.h"
--#include "platform/wtf/TypeTraits.h"
-
- namespace WTF {
-
- // WTF::Optional is base::Optional. See base/optional.h for documentation.
- //
- // A clang plugin enforces that garbage collected types are not allocated
--// outside of the heap, similarly we enforce that one doesn't create garbage
--// collected types nested inside an Optional.
-+// outside of the heap. GC containers such as HeapVector are allowed though.
- template <typename T>
--using Optional =
-- typename std::enable_if<!IsGarbageCollectedType<T>::value ||
-- IsPersistentReferenceType<T>::value,
-- base::Optional<T>>::type;
-+using Optional = base::Optional<T>;
-
- constexpr base::nullopt_t nullopt = base::nullopt;
- constexpr base::in_place_t in_place = base::in_place;
diff --git a/chromium-65.0.3325.146-wtf-vector-fix.patch b/chromium-65.0.3325.146-wtf-vector-fix.patch
deleted file mode 100644
index e4bfeba..0000000
--- a/chromium-65.0.3325.146-wtf-vector-fix.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS.jdp 2018-03-07 13:54:42.653286576 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS 2018-03-07 13:55:00.973903591 -0500
-@@ -16,6 +16,7 @@ include_rules = [
- "+base/process/process_metrics.h",
- "+base/rand_util.h",
- "+base/strings",
-+ "+base/template_util.h",
- "+base/threading/thread_checker.h",
- "+base/time/time.h",
- "+base/tuple.h",
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.jdp 2018-03-07 13:56:29.053062331 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h 2018-03-07 13:56:36.595904651 -0500
-@@ -6,6 +6,7 @@
- #define Optional_h
-
- #include "base/optional.h"
-+#include "platform/wtf/TemplateUtil.h"
- #include "platform/wtf/TypeTraits.h"
-
- namespace WTF {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.jdp 2018-03-07 13:56:47.356679702 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h 2018-03-07 13:57:41.769542223 -0500
-@@ -0,0 +1,28 @@
-+// Copyright 2018 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.
-+
-+#ifndef TemplateUtil_h
-+#define TemplateUtil_h
-+
-+#include "base/template_util.h"
-+#include "platform/wtf/Vector.h"
-+
-+namespace base {
-+
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<WTF::Vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+//
-+// It completes the declaration in base/template_util.h that was provided
-+// for std::vector
-+template <typename T>
-+struct is_trivially_copy_constructible<WTF::Vector<T>> : std::false_type {};
-+#endif
-+
-+} // namespace base
-+
-+#endif // TemplateUtil_h
-+
diff --git a/chromium-65.0.3325.162-boolfix.patch b/chromium-65.0.3325.162-boolfix.patch
deleted file mode 100644
index a27f3a8..0000000
--- a/chromium-65.0.3325.162-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-03-15 13:07:54.999428755 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-03-15 13:08:21.270794252 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-03-15 13:07:09.680523296 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h 2018-03-15 13:07:44.429684037 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-03-15 13:08:33.494499025 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h 2018-03-15 13:10:39.218462546 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-65.0.3325.162-epel7-stdc++.patch b/chromium-65.0.3325.162-epel7-stdc++.patch
deleted file mode 100644
index ee2066b..0000000
--- a/chromium-65.0.3325.162-epel7-stdc++.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 chromium-65.0.3325.162/build/config/posix/BUILD.gn
---- chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 2018-03-20 16:14:42.425926323 -0400
-+++ chromium-65.0.3325.162/build/config/posix/BUILD.gn 2018-03-20 16:15:10.150152245 -0400
-@@ -74,6 +74,8 @@ config("runtime_library") {
- "rt",
- ]
- }
-+ } else {
-+ libs += [ "stdc++" ]
- }
-
- if (!is_mac && !is_ios && sysroot != "") {
diff --git a/chromium-65.0.3325.162-skia-aarch64-buildfix.patch b/chromium-65.0.3325.162-skia-aarch64-buildfix.patch
deleted file mode 100644
index e48346c..0000000
--- a/chromium-65.0.3325.162-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp
---- chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix 2018-03-15 15:27:35.201345844 -0400
-+++ chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp 2018-03-15 15:31:30.471777400 -0400
-@@ -666,7 +666,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch b/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
deleted file mode 100644
index 36ade41..0000000
--- a/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h.gcc-full-decl chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h
---- chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h.gcc-full-decl 2018-04-25 16:29:52.372692179 -0400
-+++ chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h 2018-04-25 16:31:15.698058409 -0400
-@@ -21,9 +21,9 @@
- #include "services/preferences/public/mojom/preferences.mojom.h"
- #include "services/preferences/tracked/hash_store_contents.h"
- #include "services/preferences/tracked/interceptable_pref_filter.h"
-+#include "services/preferences/tracked/pref_hash_store.h"
- #include "services/preferences/tracked/tracked_preference.h"
-
--class PrefHashStore;
- class PrefService;
-
- namespace base {
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.gcc-full-decl chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.gcc-full-decl 2018-04-17 21:05:12.000000000 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h 2018-04-25 16:29:52.373692159 -0400
-@@ -30,6 +30,7 @@
-
- #include <memory>
- #include "modules/webdatabase/DatabaseBasicTypes.h"
-+#include "modules/webdatabase/SQLError.h"
- #include "modules/webdatabase/SQLStatement.h"
- #include "modules/webdatabase/SQLStatementBackend.h"
- #include "modules/webdatabase/SQLTransactionStateMachine.h"
-@@ -41,7 +42,6 @@
- namespace blink {
-
- class Database;
--class SQLErrorData;
- class SQLiteTransaction;
- class SQLTransaction;
- class SQLTransactionBackend;
diff --git a/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch b/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
deleted file mode 100644
index cb68934..0000000
--- a/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc.flatsetfix chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc
---- chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc.flatsetfix 2018-04-30 14:22:23.997461566 -0400
-+++ chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc 2018-04-30 14:22:51.867920383 -0400
-@@ -368,7 +368,7 @@ SupervisedUserURLFilter::GetFilteringBeh
-
- // Allow navigations to whitelisted origins (currently families.google.com).
- static const base::NoDestructor<base::flat_set<GURL>> kWhitelistedOrigins(
-- {GURL(kFamiliesUrl).GetOrigin()});
-+ base::flat_set<GURL>({GURL(kFamiliesUrl).GetOrigin()}));
- if (base::ContainsKey(*kWhitelistedOrigins, effective_url.GetOrigin()))
- return ALLOW;
-
diff --git a/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch b/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
deleted file mode 100644
index 09c5b82..0000000
--- a/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider.cc.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider.cc
---- chromium-66.0.3359.117/cc/raster/playback_image_provider.cc.copycon 2018-04-23 13:22:43.109126071 -0400
-+++ chromium-66.0.3359.117/cc/raster/playback_image_provider.cc 2018-04-23 13:23:55.761704938 -0400
-@@ -20,7 +20,7 @@ void UnrefImageFromCache(DrawImage draw_
- PlaybackImageProvider::PlaybackImageProvider(
- ImageDecodeCache* cache,
- const gfx::ColorSpace& target_color_space,
-- base::Optional<Settings> settings)
-+ base::Optional<Settings>&& settings)
- : cache_(cache),
- target_color_space_(target_color_space),
- settings_(std::move(settings)) {
-@@ -70,7 +70,10 @@ PlaybackImageProvider::GetDecodedDrawIma
- }
-
- PlaybackImageProvider::Settings::Settings() = default;
--PlaybackImageProvider::Settings::Settings(const Settings& other) = default;
-+PlaybackImageProvider::Settings::Settings(PlaybackImageProvider::Settings&&) =
-+ default;
- PlaybackImageProvider::Settings::~Settings() = default;
-+PlaybackImageProvider::Settings& PlaybackImageProvider::Settings::operator=(
-+ PlaybackImageProvider::Settings&&) = default;
-
- } // namespace cc
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider.h.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider.h
---- chromium-66.0.3359.117/cc/raster/playback_image_provider.h.copycon 2018-04-23 13:24:07.699471148 -0400
-+++ chromium-66.0.3359.117/cc/raster/playback_image_provider.h 2018-04-23 13:24:57.080506348 -0400
-@@ -20,8 +20,10 @@ class CC_EXPORT PlaybackImageProvider :
- public:
- struct CC_EXPORT Settings {
- Settings();
-- Settings(const Settings& other);
-+ Settings(const Settings&) = delete;
-+ Settings(Settings&&);
- ~Settings();
-+ Settings& operator=(Settings&&);
-
- // The set of image ids to skip during raster.
- PaintImageIdFlatSet images_to_skip;
-@@ -34,7 +36,7 @@ class CC_EXPORT PlaybackImageProvider :
- // If no settings are provided, all images are skipped during rasterization.
- PlaybackImageProvider(ImageDecodeCache* cache,
- const gfx::ColorSpace& target_color_space,
-- base::Optional<Settings> settings);
-+ base::Optional<Settings>&& settings);
- ~PlaybackImageProvider() override;
-
- PlaybackImageProvider(PlaybackImageProvider&& other);
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider_unittest.cc.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider_unittest.cc
diff --git a/chromium-66.0.3359.117-gcc-optional-move-fixes.patch b/chromium-66.0.3359.117-gcc-optional-move-fixes.patch
deleted file mode 100644
index 80df7d0..0000000
--- a/chromium-66.0.3359.117-gcc-optional-move-fixes.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -up chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc.gccomove chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc
---- chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc.gccomove 2018-04-23 12:53:32.419477463 -0400
-+++ chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc 2018-04-23 12:54:02.497887258 -0400
-@@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubre
-
- SubresourceLoaderParams params;
- params.loader_factory_info = factory_ptr.PassInterface();
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void AppCacheRequestHandler::MaybeCreateSubresourceLoader(
-diff -up chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc.gccomove chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc
---- chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc.gccomove 2018-04-23 12:54:16.614610083 -0400
-+++ chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc 2018-04-23 12:54:38.401182827 -0400
-@@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::M
- controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle(
- provider_host_->controller());
- params.controller_service_worker_info = std::move(controller_info);
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
-diff -up chromium-66.0.3359.117/device/fido/device_response_converter.cc.gccomove chromium-66.0.3359.117/device/fido/device_response_converter.cc
---- chromium-66.0.3359.117/device/fido/device_response_converter.cc.gccomove 2018-04-23 12:54:51.452926482 -0400
-+++ chromium-66.0.3359.117/device/fido/device_response_converter.cc 2018-04-23 12:55:24.248283058 -0400
-@@ -121,7 +121,7 @@ base::Optional<AuthenticatorGetAssertion
- response.SetNumCredentials(it->second.GetUnsigned());
- }
-
-- return response;
-+ return base::Optional<AuthenticatorGetAssertionResponse>(std::move(response));
- }
-
- base::Optional<AuthenticatorGetInfoResponse> ReadCTAPGetInfoResponse(
-@@ -241,7 +241,7 @@ base::Optional<AuthenticatorGetInfoRespo
- response.SetPinProtocols(std::move(supported_pin_protocols));
- }
-
-- return response;
-+ return base::Optional<AuthenticatorGetInfoResponse>(std::move(response));
- }
-
- } // namespace device
diff --git a/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch b/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
deleted file mode 100644
index b86c200..0000000
--- a/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS.944404 2018-04-23 14:18:43.702116916 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS 2018-04-23 14:19:05.854680223 -0400
-@@ -16,6 +16,7 @@ include_rules = [
- "+base/process/process_metrics.h",
- "+base/rand_util.h",
- "+base/strings",
-+ "+base/template_util.h",
- "+base/threading/thread_checker.h",
- "+base/time/time.h",
- "+base/tuple.h",
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h.944404 2018-04-23 14:20:05.718499685 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h 2018-04-23 14:20:18.165253615 -0400
-@@ -6,6 +6,7 @@
- #define Optional_h
-
- #include "base/optional.h"
-+#include "platform/wtf/TemplateUtil.h"
-
- namespace WTF {
-
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.944404 2018-04-23 14:20:31.660987877 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h 2018-04-23 14:21:40.276637297 -0400
-@@ -0,0 +1,27 @@
-+// Copyright 2018 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.
-+
-+#ifndef TemplateUtil_h
-+#define TemplateUtil_h
-+
-+#include "base/template_util.h"
-+#include "platform/wtf/Vector.h"
-+
-+namespace base {
-+
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<WTF::Vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+//
-+// It completes the declaration in base/template_util.h that was provided
-+// for std::vector
-+template <typename T>
-+struct is_trivially_copy_constructible<WTF::Vector<T>> : std::false_type {};
-+#endif
-+
-+} // namespace base
-+
-+#endif // TemplateUtil_h
diff --git a/chromium-66.0.3359.117-gcc5-r3.patch b/chromium-66.0.3359.117-gcc5-r3.patch
deleted file mode 100644
index 56abcf1..0000000
--- a/chromium-66.0.3359.117-gcc5-r3.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -up chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-04-17 21:04:33.000000000 -0400
-+++ chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h 2018-04-18 12:12:40.065663210 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-04-17 21:04:43.000000000 -0400
-+++ chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-04-18 12:12:40.067663160 -0400
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-diff -up chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-04-17 21:06:20.000000000 -0400
-+++ chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-04-18 12:12:40.068663134 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-66.0.3359.117-nounrar.patch b/chromium-66.0.3359.117-nounrar.patch
deleted file mode 100644
index 67a517b..0000000
--- a/chromium-66.0.3359.117-nounrar.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn.nounrar chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn
---- chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn.nounrar 2018-04-25 12:17:13.858139109 -0400
-+++ chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn 2018-04-25 12:19:53.639532053 -0400
-@@ -27,9 +27,9 @@ source_set("cpp") {
- }
-
- #TODO(crbug/750327): This dependency is here temporarily.
-- deps = [
-- "//third_party/unrar:unrar",
-- ]
-+ # deps = [
-+ # "//third_party/unrar:unrar",
-+ # ]
-
- public_deps += [ "//chrome/common/safe_browsing" ]
- }
diff --git a/chromium-66.0.3359.139-arm-init-fix.patch b/chromium-66.0.3359.139-arm-init-fix.patch
deleted file mode 100644
index 754af5b..0000000
--- a/chromium-66.0.3359.139-arm-init-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.139/skia/ext/convolver_neon.cc.arm-init-fix chromium-66.0.3359.139/skia/ext/convolver_neon.cc
---- chromium-66.0.3359.139/skia/ext/convolver_neon.cc.arm-init-fix 2018-05-05 10:07:03.624424987 -0400
-+++ chromium-66.0.3359.139/skia/ext/convolver_neon.cc 2018-05-05 10:07:45.417503001 -0400
-@@ -23,7 +23,7 @@ AccumRemainder(const unsigned char* pixe
- remainder[2] += coeff * pixels_left[i * 4 + 2];
- remainder[3] += coeff * pixels_left[i * 4 + 3];
- }
-- return {remainder[0], remainder[1], remainder[2], remainder[3]};
-+ return vld1q_s32(remainder);
- }
-
- // Convolves horizontally along a single row. The row data is given in
diff --git a/chromium-66.0.3359.170-gcc8-alignof.patch b/chromium-66.0.3359.170-gcc8-alignof.patch
deleted file mode 100644
index 0c2b356..0000000
--- a/chromium-66.0.3359.170-gcc8-alignof.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.170/mojo/public/c/system/macros.h.gcc8-alignof chromium-66.0.3359.170/mojo/public/c/system/macros.h
---- chromium-66.0.3359.170/mojo/public/c/system/macros.h.gcc8-alignof 2018-05-15 14:58:46.448912634 -0400
-+++ chromium-66.0.3359.170/mojo/public/c/system/macros.h 2018-05-15 14:58:52.041784613 -0400
-@@ -18,7 +18,13 @@
- #endif
-
- // Like the C++11 |alignof| operator.
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__) && __GNUC__ >= 8
-+// GCC 8 has changed the alignof operator to return the minimal alignment
-+// required by the target ABI, instead of the preferred alignment.
-+// This means that on 32-bit x86, it will return 4 instead of 8.
-+// Use __alignof__ instead to avoid this.
-+#define MOJO_ALIGNOF(type) __alignof__(type)
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNOF(type) alignof(type)
- #elif defined(__GNUC__)
- #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/chromium-67.0.3396.62-boolfix.patch b/chromium-67.0.3396.62-boolfix.patch
deleted file mode 100644
index d0ed189..0000000
--- a/chromium-67.0.3396.62-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-05-30 04:43:17.000000000 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-05-30 12:33:03.268912315 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-05-30 04:43:17.000000000 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h 2018-05-30 12:33:03.269912294 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-05-30 12:33:03.270912274 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h 2018-05-30 12:34:05.156637922 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch b/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch
deleted file mode 100644
index e19d726..0000000
--- a/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S.aarch64fix chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
---- chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S.aarch64fix 2018-06-04 14:58:04.730083967 -0400
-+++ chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S 2018-06-04 14:58:24.896572816 -0400
-@@ -288,7 +288,7 @@ CAPTURECONTEXT_SYMBOL2:
- #elif defined(__aarch64__)
-
- // Zero out fault_address, which is unused.
-- str x31, [x0, #0xb0] // context->uc_mcontext.fault_address
-+ str xzr, [x0, #0xb0] // context->uc_mcontext.fault_address
-
- // Save general purpose registers in context->uc_mcontext.regs[i].
- // The original x0 can't be recovered.
-diff -up chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h
diff --git a/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch b/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
deleted file mode 100644
index 1aa5600..0000000
--- a/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py.oldexec chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py
---- chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py.oldexec 2018-06-06 10:13:40.862084284 -0400
-+++ chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py 2018-06-06 10:14:08.809490819 -0400
-@@ -112,7 +112,7 @@ def windows_prepare_toolchain(tempdir):
-
- _globals = {"__builtins__":None}
- _locals = {}
-- exec(response, _globals, _locals)
-+ exec response in _globals, _locals
-
- return _locals
-
diff --git a/chromium-67.0.3396.62-skia-aarch64-buildfix.patch b/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
deleted file mode 100644
index 6b37b08..0000000
--- a/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-05-30 12:38:06.131467092 -0400
-+++ chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-05-30 12:38:39.861734819 -0400
-@@ -653,7 +653,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -673,7 +673,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-67.0.3396.87-fedora-user-agent.patch b/chromium-67.0.3396.87-fedora-user-agent.patch
deleted file mode 100644
index 8df304d..0000000
--- a/chromium-67.0.3396.87-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.87/content/common/user_agent.cc.fedora-user-agent chromium-67.0.3396.87/content/common/user_agent.cc
---- chromium-67.0.3396.87/content/common/user_agent.cc.fedora-user-agent 2018-06-25 16:01:48.092188102 -0400
-+++ chromium-67.0.3396.87/content/common/user_agent.cc 2018-06-25 16:02:42.634878954 -0400
-@@ -141,7 +141,7 @@ std::string getUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #else
diff --git a/chromium-67.0.3396.99-py2-bootstrap.patch b/chromium-67.0.3396.99-py2-bootstrap.patch
deleted file mode 100644
index b59c84b..0000000
--- a/chromium-67.0.3396.99-py2-bootstrap.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
---- chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-07-25 14:14:02.004886479 -0400
-+++ chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-07-25 14:15:30.167896461 -0400
-@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
-
- with tempfile.NamedTemporaryFile() as _:
- args = [
-- 'python',
-+ 'python2',
- rjsmin_path
- ]
- p = subprocess.Popen(args,
-@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
- 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 -up chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py.py2 chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py
---- chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py.py2 2018-07-24 16:58:53.372022183 -0400
-+++ chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py 2018-07-24 17:00:03.200279816 -0400
-@@ -983,7 +983,7 @@ def build_gn_with_gn(temp_gn, build_dir,
- gn_gen_args = options.gn_gen_args or ''
- if not options.debug:
- gn_gen_args += ' is_debug=false'
-- cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args,
-+ cmd = [temp_gn, 'gen', '--script-executable=/usr/bin/python2', build_dir, '--args=%s' % gn_gen_args,
- "--root="+SRC_ROOT
- ]
- check_call(cmd)
-@@ -997,7 +997,7 @@ def build_gn_with_gn(temp_gn, build_dir,
- # build.ninja currently refers back to gn from the temporary directory.
- # Regenerate the build files using the gn we just built so that the reference
- # gets updated to "./gn".
-- cmd = [os.path.join(build_dir, 'gn'), 'gen', build_dir,
-+ cmd = [os.path.join(build_dir, 'gn'), 'gen', '--script-executable=/usr/bin/python2', build_dir,
- '--args=%s' % gn_gen_args]
- check_call(cmd)
-
diff --git a/chromium-68.0.3440.106-fedora-user-agent.patch b/chromium-68.0.3440.106-fedora-user-agent.patch
deleted file mode 100644
index 6c4cb82..0000000
--- a/chromium-68.0.3440.106-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent chromium-68.0.3440.106/content/common/user_agent.cc
---- chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent 2018-08-09 03:27:45.965769824 -0400
-+++ chromium-68.0.3440.106/content/common/user_agent.cc 2018-08-09 03:28:34.001586650 -0400
-@@ -135,7 +135,7 @@ std::string getUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-68.0.3440.106-fix-build-networking_private.patch b/chromium-68.0.3440.106-fix-build-networking_private.patch
deleted file mode 100644
index 787d3db..0000000
--- a/chromium-68.0.3440.106-fix-build-networking_private.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn.fixb chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn
---- chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn.fixb 2018-08-09 03:56:36.091622243 -0400
-+++ chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn 2018-08-09 03:57:03.047001659 -0400
-@@ -61,7 +61,7 @@ source_set("networking_private") {
- ]
- deps += [ "//chromeos" ]
- } else {
-- not_needed(default_sources)
-+ not_needed([ "default_sources" ])
- sources = [
- "networking_private_stubs.cc",
- ]
diff --git a/chromium-68.0.3440.106-notest.patch b/chromium-68.0.3440.106-notest.patch
deleted file mode 100644
index c20a40e..0000000
--- a/chromium-68.0.3440.106-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd.notest chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd
---- chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd.notest 2018-08-09 03:08:33.953029806 -0400
-+++ chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd 2018-08-09 03:09:40.264567818 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- </includes>
- </release>
diff --git a/chromium-68.0.3440.84-cors-string.patch b/chromium-68.0.3440.84-cors-string.patch
deleted file mode 100644
index b724cd4..0000000
--- a/chromium-68.0.3440.84-cors-string.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 01d891fa0790950549c7bedb34edf869827a372e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 31 May 2018 17:03:37 +0000
-Subject: [PATCH] CORS legacy: add missing string include
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The cors_legacy.h file includes declarations using std::string, but
-it is not declared due to missing #include <string>.
-
-Also drop unneeded declarations in .cpp file.
-
-Change-Id: I00df799f84a6c3530c2f12f1e52d24c7d9bd6bfd
-Reviewed-on: https://chromium-review.googlesource.com/1080707
-Reviewed-by: Tom Sepez <tsepez(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#563282}
----
- services/network/public/cpp/cors/cors_legacy.cc | 2 --
- services/network/public/cpp/cors/cors_legacy.h | 1 +
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/services/network/public/cpp/cors/cors_legacy.cc b/services/network/public/cpp/cors/cors_legacy.cc
-index 8f32ac3be64e..f01af63619b5 100644
---- a/services/network/public/cpp/cors/cors_legacy.cc
-+++ b/services/network/public/cpp/cors/cors_legacy.cc
-@@ -5,8 +5,6 @@
- #include "services/network/public/cpp/cors/cors_legacy.h"
-
- #include <algorithm>
--#include <string>
--#include <vector>
-
- #include "url/gurl.h"
- #include "url/url_util.h"
-diff --git a/services/network/public/cpp/cors/cors_legacy.h b/services/network/public/cpp/cors/cors_legacy.h
-index d2cdf026ca3a..dc9295a92c47 100644
---- a/services/network/public/cpp/cors/cors_legacy.h
-+++ b/services/network/public/cpp/cors/cors_legacy.h
-@@ -5,6 +5,7 @@
- #ifndef SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
- #define SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
-
-+#include <string>
- #include <vector>
-
- #include "base/component_export.h"
---
-2.17.1
-
diff --git a/chromium-68.0.3440.84-libjpeg.patch b/chromium-68.0.3440.84-libjpeg.patch
deleted file mode 100644
index 5354281..0000000
--- a/chromium-68.0.3440.84-libjpeg.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From c6b0194f7a4d9f494b2d51f46d2c332e2e5f4050 Mon Sep 17 00:00:00 2001
-From: Daniel Bratell <bratell(a)opera.com>
-Date: Mon, 28 May 2018 13:13:01 +0000
-Subject: [PATCH] Use the same libjpeg in all of blink/platform
-
-The normal libjpeg renames some symbols with macros so if its
-headers are included together with libjpeg-turbo's headers
-in the same translation unit, there will be an inconsistent
-renaming of libjpeg symbols. This happened in some extreme
-jumbo configuration and resulted in confising linker errors.
-
-This patch changes an include so that jpeglib.h becomes included
-the same way everywhere.
-
-Change-Id: I7f122d0919d58371bb40dc0097a766b857b9815e
-Reviewed-on: https://chromium-review.googlesource.com/1073423
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Commit-Queue: Daniel Bratell <bratell(a)opera.com>
-Cr-Commit-Position: refs/heads/master@{#562243}
----
- .../renderer/platform/image-encoders/image_encoder.cc | 11 +++++++++++
- .../renderer/platform/image-encoders/image_encoder.h | 2 --
- 2 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-index 0c7f14c7c0e4..4c450f5d6783 100644
---- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-@@ -4,6 +4,17 @@
-
- #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
-
-+#include "build/build_config.h"
-+
-+#if defined(OS_WIN)
-+#include <basetsd.h> // Included before jpeglib.h because of INT32 clash
-+#endif // OS_WIN
-+#include <stdio.h> // Needed by jpeglib.h
-+
-+#include "jpeglib.h" // for JPEG_MAX_DIMENSION
-+
-+#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION
-+
- namespace blink {
-
- bool ImageEncoder::Encode(Vector<unsigned char>* dst,
-diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.h b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-index 0d1460f34827..40306097d507 100644
---- a/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-@@ -7,8 +7,6 @@
-
- #include "third_party/blink/renderer/platform/platform_export.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
--#include "third_party/libjpeg/jpeglib.h" // for JPEG_MAX_DIMENSION
--#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION
- #include "third_party/skia/include/core/SkStream.h"
- #include "third_party/skia/include/encode/SkJpegEncoder.h"
- #include "third_party/skia/include/encode/SkPngEncoder.h"
---
-2.17.1
-
diff --git a/chromium-68.0.3440.84-libwebp-shim.patch b/chromium-68.0.3440.84-libwebp-shim.patch
deleted file mode 100644
index cb387a4..0000000
--- a/chromium-68.0.3440.84-libwebp-shim.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/build/linux/unbundle/libwebp.gn b/build/linux/unbundle/libwebp.gn
-index ab92adecf400..12574d87be58 100644
---- a/build/linux/unbundle/libwebp.gn
-+++ b/build/linux/unbundle/libwebp.gn
-@@ -2,12 +2,34 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
-
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+
-+pkg_config("system_libwebp") {
-+ packages = [
-+ "libwebp",
-+ "libwebpdemux",
-+ "libwebpmux",
-+ ]
-+}
-+
-+shim_headers("libwebp_shim") {
-+ root_path = "src"
-+ headers = [
-+ "webp/decode.h",
-+ "webp/demux.h",
-+ "webp/encode.h",
-+ "webp/mux.h",
-+ "webp/mux_types.h",
-+ "webp/types.h",
-+ ]
-+}
-+
- source_set("libwebp_webp") {
-- libs = [
-- "webp",
-- "webpdemux",
-- "webpmux",
-+ deps = [
-+ ":libwebp_shim",
- ]
-+ public_configs = [ ":system_libwebp" ]
- }
-
- group("libwebp") {
diff --git a/chromium-68.0.3440.84-move-unique-ptr.patch b/chromium-68.0.3440.84-move-unique-ptr.patch
deleted file mode 100644
index 2942a8f..0000000
--- a/chromium-68.0.3440.84-move-unique-ptr.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 56cb5f7da1025f6db869e840ed34d3b98b9ab899 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 29 May 2018 16:04:14 +0000
-Subject: [PATCH] GCC: do not std::move unique ptr of forward declared UrlIndex
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC fails to resolve the size of UrlIndex, needed
-for moving a std::unique_ptr of UrlIndex. This is because
-moved is done on a forward-declared UrlIndex.
-
-To avoid the problem, move the call to std::move to the .cc
-file so the full declaration is available.
-
-Build error:
-../../buildtools/third_party/libc++/trunk/include/memory: In instantiation of void std::__1::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = bookmarks::UrlIndex]:
-../../buildtools/third_party/libc++/trunk/include/memory:2634:22: required from void std::__1::unique_ptr<_Tp, _Dp>::reset(std::__1::unique_ptr<_Tp, _Dp>::pointer) [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>; std::__1::unique_ptr<_Tp, _Dp>::pointer = bookmarks::UrlIndex*]
-../../buildtools/third_party/libc++/trunk/include/memory:2588:24: required from std::__1::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>]
-../../components/bookmarks/browser/bookmark_storage.h:107:76: required from here
-../../buildtools/third_party/libc++/trunk/include/memory:2317:25: error: invalid application of sizeof to incomplete type bookmarks::UrlIndex
- static_assert(sizeof(_Tp) > 0,
-
-Bug: 819294
-Change-Id: I793a807c28e797aaa2e31d9c8b7e09fb6ca6b9e7
-Reviewed-on: https://chromium-review.googlesource.com/1071648
-Commit-Queue: Scott Violet <sky(a)chromium.org>
-Reviewed-by: Scott Violet <sky(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#562446}
----
- components/bookmarks/browser/bookmark_storage.cc | 4 ++++
- components/bookmarks/browser/bookmark_storage.h | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
-index 1633ba1df2a4..3ae0c62292e7 100644
---- a/components/bookmarks/browser/bookmark_storage.cc
-+++ b/components/bookmarks/browser/bookmark_storage.cc
-@@ -158,6 +158,10 @@ void BookmarkLoadDetails::CreateUrlIndex() {
- url_index_ = std::make_unique<UrlIndex>(std::move(root_node_));
- }
-
-+std::unique_ptr<UrlIndex> BookmarkLoadDetails::owned_url_index() {
-+ return std::move(url_index_);
-+}
-+
- BookmarkPermanentNode* BookmarkLoadDetails::CreatePermanentNode(
- BookmarkClient* client,
- BookmarkNode::Type type) {
-diff --git a/components/bookmarks/browser/bookmark_storage.h b/components/bookmarks/browser/bookmark_storage.h
-index 08df5bb65d83..0a1b1a1b65b9 100644
---- a/components/bookmarks/browser/bookmark_storage.h
-+++ b/components/bookmarks/browser/bookmark_storage.h
-@@ -104,7 +104,7 @@ class BookmarkLoadDetails {
- bool ids_reassigned() const { return ids_reassigned_; }
-
- void CreateUrlIndex();
-- std::unique_ptr<UrlIndex> owned_url_index() { return std::move(url_index_); }
-+ std::unique_ptr<UrlIndex> owned_url_index();
-
- private:
- // Creates one of the possible permanent nodes (bookmark bar node, other node
---
-2.17.1
-
diff --git a/chromium-69.0.3497.81-gcc8-alignof.patch b/chromium-69.0.3497.81-gcc8-alignof.patch
deleted file mode 100644
index 234b391..0000000
--- a/chromium-69.0.3497.81-gcc8-alignof.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof chromium-69.0.3497.81/mojo/public/c/system/macros.h
---- chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof 2018-09-06 10:11:54.336432699 -0400
-+++ chromium-69.0.3497.81/mojo/public/c/system/macros.h 2018-09-06 10:13:56.555727572 -0400
-@@ -27,7 +27,13 @@
- (sizeof(void*) == 4 ? 32 : 0)
-
- // Like the C++11 |alignof| operator.
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__) && __GNUC__ >= 8
-+// GCC 8 has changed the alignof operator to return the minimal alignment
-+// required by the target ABI, instead of the preferred alignment.
-+// This means that on 32-bit x86, it will return 4 instead of 8.
-+// Use __alignof__ instead to avoid this.
-+#define MOJO_ALIGNOF(type) __alignof__(type)
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNOF(type) alignof(type)
- #elif defined(__GNUC__)
- #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/chromium-69.0.3497.81-norar.patch b/chromium-69.0.3497.81-norar.patch
deleted file mode 100644
index 9545b60..0000000
--- a/chromium-69.0.3497.81-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn
---- chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar 2018-09-06 13:29:47.114511569 -0400
-+++ chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn 2018-09-06 13:29:47.120511452 -0400
-@@ -55,40 +55,6 @@ if (safe_browsing_mode == 1) {
- "//components/safe_browsing:csd_proto",
- ]
- }
--
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_protection_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
- }
-
- source_set("safe_browsing") {
-@@ -121,7 +87,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_protection_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS
---- chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar 2018-09-06 13:29:47.119511472 -0400
-+++ chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS 2018-09-06 13:29:47.116511530 -0400
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2018-09-07 10:10:42.286041744 -0400
-+++ chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc 2018-09-07 10:11:14.934308285 -0400
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-69.0.3497.81-py2-bootstrap.patch b/chromium-69.0.3497.81-py2-bootstrap.patch
deleted file mode 100644
index 8a5db71..0000000
--- a/chromium-69.0.3497.81-py2-bootstrap.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
---- chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-09-06 10:45:17.919774145 -0400
-+++ chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-09-06 10:45:17.914774254 -0400
-@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
-
- with tempfile.NamedTemporaryFile() as _:
- args = [
-- 'python',
-+ 'python2',
- rjsmin_path
- ]
- p = subprocess.Popen(args,
-@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
- 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 -up chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py.py2 chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py
---- chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py.py2 2018-09-06 10:44:42.225550561 -0400
-+++ chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py 2018-09-06 13:06:24.251636231 -0400
-@@ -87,7 +87,7 @@ def main(argv):
- if not options.debug:
- gn_gen_args += ' is_debug=false'
- subprocess.check_call([
-- gn_path, 'gen', out_dir,
-+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
- '--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
- ])
-
diff --git a/chromium-69.0.3497.81-widevine-r2.patch b/chromium-69.0.3497.81-widevine-r2.patch
deleted file mode 100644
index a66a0fb..0000000
--- a/chromium-69.0.3497.81-widevine-r2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn.wvhack chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn
---- chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn.wvhack 2018-09-06 13:28:22.655272555 -0400
-+++ chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn 2018-09-06 13:28:22.655272555 -0400
-@@ -11,7 +11,7 @@ import("//third_party/widevine/cdm/widev
- # Internal Cast builds set enable_widevine=true to bring in Widevine support.
- # TODO(xhwang): Support component updated CDM on other platforms and remove this
- # assert.
--assert(!enable_widevine || is_win || is_mac || is_chromecast,
-+assert(!enable_widevine || is_win || is_mac || is_chromecast || is_linux,
- "Component updated CDM only supported on Windows and Mac for now.")
-
- widevine_arch = current_cpu
-diff -up chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h.wvhack chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h
---- chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h.wvhack 2018-09-06 13:28:22.654272577 -0400
-+++ chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h 2018-09-06 13:28:22.654272577 -0400
-@@ -10,6 +10,7 @@
-
- #include "third_party/widevine/cdm/widevine_cdm_common.h"
-
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- #define WIDEVINE_CDM_AVAILABLE
-
- #endif // WIDEVINE_CDM_VERSION_H_
diff --git a/chromium-70.0.3538.110-remove-sysroot-options.patch b/chromium-70.0.3538.110-remove-sysroot-options.patch
deleted file mode 100644
index 9eb99d1..0000000
--- a/chromium-70.0.3538.110-remove-sysroot-options.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py.sysrootfix chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py
---- chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py.sysrootfix 2018-11-26 13:40:19.324713204 -0500
-+++ chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py 2018-11-26 13:40:43.199180888 -0500
-@@ -46,10 +46,6 @@ def main(argv):
- '--build-path',
- help='The directory in which to build gn, '
- 'relative to the src directory. (eg. out/Release)')
-- parser.add_option(
-- '--with-sysroot',
-- action='store_true',
-- help='Download and build with the Debian sysroot.')
- parser.add_option('-v', '--verbose', help='ignored')
- options, args = parser.parse_args(argv)
- if args:
-@@ -71,8 +67,6 @@ def main(argv):
- '--no-last-commit-position',
- '--out-path=' + gn_build_dir,
- ]
-- if not options.with_sysroot:
-- cmd.append('--no-sysroot')
- if options.debug:
- cmd.append('--debug')
- subprocess.check_call(cmd)
diff --git a/chromium-70.0.3538.77-harfbuzz2-fix.patch b/chromium-70.0.3538.77-harfbuzz2-fix.patch
deleted file mode 100644
index 2d5602d..0000000
--- a/chromium-70.0.3538.77-harfbuzz2-fix.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppymaster(a)gmail.com>
-Date: Sun, 21 Oct 2018 10:06:53 -0400
-Subject: [PATCH] blink: add 'const' modifier for harfbuzz hb_codepoint_t
- pointers
-
-This resolves a build failure against harfbuzz 2.0.
-
-Based on a patch by Alexandre Fierreira.
-
-Bug: https://bugs.gentoo.org/669034
----
- .../renderer/platform/fonts/shaping/harfbuzz_face.cc | 2 +-
- .../renderer/platform/fonts/skia/skia_text_metrics.cc | 9 +++++++--
- .../renderer/platform/fonts/skia/skia_text_metrics.h | 2 +-
- 3 files changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-index 8e7d91ca371f..e279a5876cb3 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-@@ -139,7 +139,7 @@ static hb_position_t HarfBuzzGetGlyphHorizontalAdvance(hb_font_t* hb_font,
- static void HarfBuzzGetGlyphHorizontalAdvances(hb_font_t* font,
- void* font_data,
- unsigned count,
-- hb_codepoint_t* first_glyph,
-+ const hb_codepoint_t* first_glyph,
- unsigned int glyph_stride,
- hb_position_t* first_advance,
- unsigned int advance_stride,
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-index 77ec6209fab9..9f9070921448 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-@@ -18,6 +18,11 @@ T* advance_by_byte_size(T* p, unsigned byte_size) {
- return reinterpret_cast<T*>(reinterpret_cast<uint8_t*>(p) + byte_size);
- }
-
-+template <class T>
-+T* advance_by_byte_size_const(T* p, unsigned byte_size) {
-+ return reinterpret_cast<T*>(reinterpret_cast<const uint8_t*>(p) + byte_size);
-+}
-+
- } // namespace
-
- SkiaTextMetrics::SkiaTextMetrics(const SkPaint* paint) : paint_(paint) {
-@@ -39,7 +44,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(hb_codepoint_t codepoint,
- }
-
- void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
-- hb_codepoint_t* glyphs,
-+ const hb_codepoint_t* glyphs,
- unsigned glyph_stride,
- hb_position_t* advances,
- unsigned advance_stride) {
-@@ -48,7 +53,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
- // array that copy them to a regular array.
- Vector<Glyph, 256> glyph_array(count);
- for (unsigned i = 0; i < count;
-- i++, glyphs = advance_by_byte_size(glyphs, glyph_stride)) {
-+ i++, glyphs = advance_by_byte_size_const(glyphs, glyph_stride)) {
- glyph_array[i] = *glyphs;
- }
- Vector<SkScalar, 256> sk_width_array(count);
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-index 787d8af0375a..3bc4407c641b 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-@@ -19,7 +19,7 @@ class SkiaTextMetrics final {
-
- void GetGlyphWidthForHarfBuzz(hb_codepoint_t, hb_position_t* width);
- void GetGlyphWidthForHarfBuzz(unsigned count,
-- hb_codepoint_t* first_glyph,
-+ const hb_codepoint_t* first_glyph,
- unsigned glyph_stride,
- hb_position_t* first_advance,
- unsigned advance_stride);
---
-2.19.1
-
diff --git a/chromium-71-gcc-0.patch b/chromium-71-gcc-0.patch
deleted file mode 100644
index 711b827..0000000
--- a/chromium-71-gcc-0.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 65be571f6ac2f7942b4df9e50b24da517f829eec Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Mon, 15 Oct 2018 20:26:10 +0000
-Subject: [PATCH] google_util: Explicitly use std::initializer_list with
- base::NoDestructor
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Follow-up to ac53c5c53 ("Remove CR_DEFINE_STATIC_LOCAL from /components").
-Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
-base::NoDestructor<T<U>> and passing an initializer list of Us does not
-work if this is not done explicitly, as GCC incorrectly fails to determine
-which constructor overload to use:
-
- ../../components/google/core/common/google_util.cc: In function bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission):
- ../../components/google/core/common/google_util.cc:120:24: error: call of overloaded NoDestructor(<brace-enclosed initializer list>) is ambiguous
- {GOOGLE_TLD_LIST});
-
-See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905
-
-Bug: 819294
-Change-Id: Ie1490b6646d7998d636c485769caabf56c1cf44c
-Reviewed-on: https://chromium-review.googlesource.com/c/1275854
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#599733}
----
- components/google/core/common/google_util.cc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
-index a44c84393820..7733848a0443 100644
---- a/components/google/core/common/google_util.cc
-+++ b/components/google/core/common/google_util.cc
-@@ -117,7 +117,7 @@ bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
- StripTrailingDot(&tld);
-
- static base::NoDestructor<std::set<std::string>> google_tlds(
-- {GOOGLE_TLD_LIST});
-+ std::initializer_list<std::string>({GOOGLE_TLD_LIST}));
- return base::ContainsKey(*google_tlds, tld.as_string());
- }
-
-@@ -132,7 +132,8 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) {
- StripTrailingDot(&host);
-
- static base::NoDestructor<std::set<std::string>> google_subdomains(
-- {"ipv4.google.com", "ipv6.google.com"});
-+ std::initializer_list<std::string>(
-+ {"ipv4.google.com", "ipv6.google.com"}));
-
- return base::ContainsKey(*google_subdomains, host.as_string());
- }
---
-2.19.1
-
diff --git a/chromium-71.0.3578.98-el7-fix-noexcept.patch b/chromium-71.0.3578.98-el7-fix-noexcept.patch
deleted file mode 100644
index 234f0a9..0000000
--- a/chromium-71.0.3578.98-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc.fix-noexcept chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc
---- chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc.fix-noexcept 2019-01-02 14:44:40.449801789 -0500
-+++ chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc 2019-01-02 14:44:54.167481936 -0500
-@@ -24,7 +24,7 @@ MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::Equals(const MediaSink& other) const {
- return sink_id_ == other.sink_id_;
-diff -up chromium-71.0.3578.98/components/policy/core/common/policy_map.cc.fix-noexcept chromium-71.0.3578.98/components/policy/core/common/policy_map.cc
---- chromium-71.0.3578.98/components/policy/core/common/policy_map.cc.fix-noexcept 2019-01-02 12:06:10.867313533 -0500
-+++ chromium-71.0.3578.98/components/policy/core/common/policy_map.cc 2019-01-02 12:06:27.544980078 -0500
-@@ -18,7 +18,7 @@ PolicyMap::Entry::Entry() = default;
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-71.0.3578.98/components/signin/core/browser/account_info.cc.fix-noexcept chromium-71.0.3578.98/components/signin/core/browser/account_info.cc
---- chromium-71.0.3578.98/components/signin/core/browser/account_info.cc.fix-noexcept 2019-01-02 10:57:29.194710662 -0500
-+++ chromium-71.0.3578.98/components/signin/core/browser/account_info.cc 2019-01-02 10:58:57.829965474 -0500
-@@ -32,7 +32,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return account_id.empty() && email.empty() && gaia.empty() &&
-diff -up chromium-71.0.3578.98/gpu/config/gpu_info.cc.fix-noexcept chromium-71.0.3578.98/gpu/config/gpu_info.cc
---- chromium-71.0.3578.98/gpu/config/gpu_info.cc.fix-noexcept 2018-12-20 09:50:03.320449807 -0500
-+++ chromium-71.0.3578.98/gpu/config/gpu_info.cc 2018-12-20 09:50:25.768849091 -0500
-@@ -116,7 +116,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-71.0.3578.98-norar.patch b/chromium-71.0.3578.98-norar.patch
deleted file mode 100644
index 1259088..0000000
--- a/chromium-71.0.3578.98-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn
---- chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn 2018-12-14 11:44:52.172805635 -0500
-@@ -56,40 +56,6 @@ if (safe_browsing_mode == 1) {
- ]
- }
-
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_protection_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
--
- source_set("disk_image_type_sniffer_mac") {
- sources = [
- "disk_image_type_sniffer_mac.cc",
-@@ -136,7 +102,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_protection_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS.nounrar chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS
---- chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS 2018-12-14 11:23:58.628142952 -0500
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc 2018-12-14 11:23:58.628142952 -0500
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-71.0.3578.98-remove-sysroot-options.patch b/chromium-71.0.3578.98-remove-sysroot-options.patch
deleted file mode 100644
index a9af73b..0000000
--- a/chromium-71.0.3578.98-remove-sysroot-options.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.sysrootfix chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py
---- chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.sysrootfix 2018-12-14 12:52:04.144860836 -0500
-+++ chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py 2018-12-14 12:57:54.791539599 -0500
-@@ -46,10 +46,6 @@ def main(argv):
- '--build-path',
- help='The directory in which to build gn, '
- 'relative to the src directory. (eg. out/Release)')
-- parser.add_option(
-- '--with-sysroot',
-- action='store_true',
-- help='Download and build with the Debian sysroot.')
- parser.add_option('-v', '--verbose', help='ignored')
- parser.add_option(
- '--skip-generate-buildfiles',
-@@ -76,8 +72,6 @@ def main(argv):
- '--no-last-commit-position',
- '--out-path=' + gn_build_dir,
- ]
-- if not options.with_sysroot:
-- cmd.append('--no-sysroot')
- if options.debug:
- cmd.append('--debug')
- subprocess.check_call(cmd)
diff --git a/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch b/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch
deleted file mode 100644
index 5b51e3d..0000000
--- a/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc.va1compat chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc
---- chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc.va1compat 2018-12-17 15:07:48.158717055 -0500
-+++ chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc 2018-12-17 15:09:49.780316983 -0500
-@@ -38,6 +38,10 @@ enum VAJDADecoderFailure {
- VAJDA_DECODER_FAILURES_MAX,
- };
-
-+#ifndef VA_FOURCC_I420
-+#define VA_FOURCC_I420 VA_FOURCC('I', '4', '2', '0')
-+#endif
-+
- static void ReportToUMA(VAJDADecoderFailure failure) {
- UMA_HISTOGRAM_ENUMERATION("Media.VAJDA.DecoderFailure", failure,
- VAJDA_DECODER_FAILURES_MAX + 1);
diff --git a/chromium-72.0.3626.121-fix-va-check.patch b/chromium-72.0.3626.121-fix-va-check.patch
deleted file mode 100644
index aa0eb71..0000000
--- a/chromium-72.0.3626.121-fix-va-check.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc
---- chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck 2019-03-10 14:54:38.744305074 -0400
-+++ chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc 2019-03-10 14:55:34.383221574 -0400
-@@ -334,15 +334,16 @@ bool VADisplayState::InitializeOnce() {
- << va_vendor_string_;
-
- // The VAAPI version is determined from what is loaded on the system by
-- // calling vaInitialize(). We want a runtime evaluation of libva version,
-- // of what is loaded on the system, with, what browser is compiled with.
-- // Also since the libva is now ABI-compatible, relax the version check
-- // which helps in upgrading the libva, without breaking any existing
-- // functionality.
-- if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
-- LOG(ERROR) << "This build of Chromium requires VA-API version "
-- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
-- << ", system version: " << major_version << "." << minor_version;
-+ // calling vaInitialize(). Since the libva is now ABI-compatible, relax the
-+ // version check which helps in upgrading the libva, without breaking any
-+ // existing functionality. Make sure the system version is not older than
-+ // the version with which the chromium is built since libva is only
-+ // guaranteed to be backward (and not forward) compatible.
-+ if (VA_MAJOR_VERSION > major_version ||
-+ (VA_MAJOR_VERSION == major_version && VA_MINOR_VERSION > minor_version)) {
-+ LOG(ERROR) << "The system version " << major_version << "." << minor_version
-+ << " should be greater than or equal to "
-+ << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION;
- return false;
- }
- return true;
diff --git a/chromium-72.0.3626.121-norar.patch b/chromium-72.0.3626.121-norar.patch
deleted file mode 100644
index d5d2632..0000000
--- a/chromium-72.0.3626.121-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn
---- chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-10 14:15:47.187705953 -0400
-+++ chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn 2019-03-10 14:16:47.154138649 -0400
-@@ -56,40 +56,6 @@ if (safe_browsing_mode == 1) {
- ]
- }
-
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_type_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
--
- source_set("disk_image_type_sniffer_mac") {
- sources = [
- "disk_image_type_sniffer_mac.cc",
-@@ -150,7 +116,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_type_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS
---- chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar 2019-03-01 23:10:03.000000000 -0500
-+++ chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS 2019-03-10 14:14:55.430058716 -0400
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-01 23:10:04.000000000 -0500
-+++ chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-10 14:14:55.433058638 -0400
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-73-gcc-0.patch b/chromium-73-gcc-0.patch
deleted file mode 100644
index 5a50700..0000000
--- a/chromium-73-gcc-0.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Thu, 7 Feb 2019 22:55:37 +0000
-Subject: [PATCH] allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's
- positions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build. GCC seems to be stricter with the position of the
-linkage specification, so just swap the terms to prevent an error that looks
-like:
-
-In file included from ../../base/allocator/allocator_shim.cc:333:
-../../base/allocator/allocator_shim_override_cpp_symbols.h:39:30: error: expected unqualified-id before string constant
- #define ALIGN_LINKAGE extern "C"
- ^~~
-../../base/allocator/allocator_shim_override_cpp_symbols.h:99:20: note: in expansion of macro ALIGN_LINKAGE
- SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
- ^~~~~~~~~~~~~
-
-Bug: 819294
-Change-Id: I0aa16ea88cead42e83796a1c86afad8b447ddc50
-Reviewed-on: https://chromium-review.googlesource.com/c/1458256
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
-Reviewed-by: Primiano Tucci <primiano(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630084}
----
- .../allocator_shim_override_cpp_symbols.h | 20 +++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/base/allocator/allocator_shim_override_cpp_symbols.h b/base/allocator/allocator_shim_override_cpp_symbols.h
-index 1228f5e33d28..01d25b7f6437 100644
---- a/base/allocator/allocator_shim_override_cpp_symbols.h
-+++ b/base/allocator/allocator_shim_override_cpp_symbols.h
-@@ -96,57 +96,57 @@ SHIM_ALWAYS_EXPORT void operator delete[](void* p, size_t) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW(std::size_t size,
- ALIGN_VAL_T alignment) {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_NOTHROW(
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_NOTHROW(
- std::size_t size,
- ALIGN_VAL_T alignment,
- const std::nothrow_t&) __THROW {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_SIZED(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_SIZED(void* p,
- std::size_t size,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
- ALIGN_DEL_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR(std::size_t size,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR(std::size_t size,
- ALIGN_VAL_T alignment) {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR_NOTHROW(
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR_NOTHROW(
- std::size_t size,
- ALIGN_VAL_T alignment,
- const std::nothrow_t&) __THROW {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR(void* p,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR_SIZED(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR_SIZED(void* p,
- std::size_t size,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
- ALIGN_DEL_ARR_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
- ShimCppDelete(p);
- }
---
-2.20.1
-
diff --git a/chromium-73-gcc-1.patch b/chromium-73-gcc-1.patch
deleted file mode 100644
index c3f8e42..0000000
--- a/chromium-73-gcc-1.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 16:58:38 +0000
-Subject: [PATCH] media::learning: Make LabelledExample's move assignment
- operator noexcept
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The GCC build is currently broken with an error like this:
-
- ../../media/learning/common/labelled_example.cc:20:1: error: function media::learning::LabelledExample::LabelledExample(media::learning::LabelledExample&&) defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification
- LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default;
- ^~~~~~~~~~~~~~~
-
-With GCC, having that noexcept marker requires all members to be marked with
-noexcept themselves, and TargetValue was missing some assignment operators
-and noexcept markers.
-
-clang is fine because we pass -fno-exceptions and it disables the same error
-there, while GCC continues to raise it (bug 843143 and its corresponding CL
-have a longer discussion on this issue).
-
-Bug: 819294
-Change-Id: Ide30932fc466ccb52d6883a82777e703dae48798
-Reviewed-on: https://chromium-review.googlesource.com/c/1458210
-Commit-Queue: Frank Liberato <liberato(a)chromium.org>
-Reviewed-by: Frank Liberato <liberato(a)chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630355}
----
- media/learning/common/labelled_example.cc | 3 ++-
- media/learning/common/labelled_example.h | 2 +-
- media/learning/common/value.cc | 6 ++++++
- media/learning/common/value.h | 4 ++++
- 4 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc
-index 76d08509298e..43e834f9f3cf 100644
---- a/media/learning/common/labelled_example.cc
-+++ b/media/learning/common/labelled_example.cc
-@@ -59,7 +59,8 @@ bool LabelledExample::operator<(const LabelledExample& rhs) const {
- LabelledExample& LabelledExample::operator=(const LabelledExample& rhs) =
- default;
-
--LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) = default;
-+LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) noexcept =
-+ default;
-
- TrainingData::TrainingData() = default;
-
-diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h
-index 4f43c54e7a76..365abc3c0ebf 100644
---- a/media/learning/common/labelled_example.h
-+++ b/media/learning/common/labelled_example.h
-@@ -40,7 +40,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample {
- bool operator<(const LabelledExample& rhs) const;
-
- LabelledExample& operator=(const LabelledExample& rhs);
-- LabelledExample& operator=(LabelledExample&& rhs);
-+ LabelledExample& operator=(LabelledExample&& rhs) noexcept;
-
- // Observed feature values.
- // Note that to interpret these values, you probably need to have the
-diff --git a/media/learning/common/value.cc b/media/learning/common/value.cc
-index 9c9395c25d4e..12ea399d24c3 100644
---- a/media/learning/common/value.cc
-+++ b/media/learning/common/value.cc
-@@ -23,6 +23,12 @@ Value::Value(const std::string& x) : value_(base::PersistentHash(x)) {}
-
- Value::Value(const Value& other) : value_(other.value_) {}
-
-+Value::Value(Value&& rhs) noexcept = default;
-+
-+Value& Value::operator=(const Value& rhs) = default;
-+
-+Value& Value::operator=(Value&& rhs) noexcept = default;
-+
- bool Value::operator==(const Value& rhs) const {
- return value_ == rhs.value_;
- }
-diff --git a/media/learning/common/value.h b/media/learning/common/value.h
-index 0e64da961f34..62f4953f691c 100644
---- a/media/learning/common/value.h
-+++ b/media/learning/common/value.h
-@@ -38,6 +38,10 @@ class COMPONENT_EXPORT(LEARNING_COMMON) Value {
- explicit Value(const std::string& x);
-
- Value(const Value& other);
-+ Value(Value&&) noexcept;
-+
-+ Value& operator=(const Value&);
-+ Value& operator=(Value&&) noexcept;
-
- bool operator==(const Value& rhs) const;
- bool operator!=(const Value& rhs) const;
---
-2.20.1
-
diff --git a/chromium-73-gcc-2.patch b/chromium-73-gcc-2.patch
deleted file mode 100644
index 9d1f05a..0000000
--- a/chromium-73-gcc-2.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 02:57:28 +0000
-Subject: [PATCH] color_utils: Use std::sqrt() instead of std::sqrtf()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the build with libstdc++:
-
- ../../ui/gfx/color_utils.cc: In function SkColor color_utils::SetDarkestColorForTesting(SkColor):
- ../../ui/gfx/color_utils.cc:434:12: error: sqrtf is not a member of std
- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
- ^~~~~
- ../../ui/gfx/color_utils.cc:434:12: note: suggested alternative: sqrt
- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
- ^~~~~
- sqrt
-
-sqrtf() is not formally part of C++14 as far as I can see even though libc++
-has it in <cmath>. Additionally, we're only dealing with floats in all parts
-of the expression above, so using the float sqrt() overload should be
-harmless anyway.
-
-Bug: 819294
-Change-Id: If6c7bf31819df97a761e6963def6d6506154c34d
-Reviewed-on: https://chromium-review.googlesource.com/c/1458193
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630140}
----
- ui/gfx/color_utils.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc
-index c868cd54bac3..92ba1407d594 100644
---- a/ui/gfx/color_utils.cc
-+++ b/ui/gfx/color_utils.cc
-@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColor color) {
- // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint). The formula below
- // can be verified by plugging it into how GetContrastRatio() operates.
- g_luminance_midpoint =
-- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
-+ std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
-
- return previous_darkest_color;
- }
---
-2.20.1
-
diff --git a/chromium-73-gcc-3.patch b/chromium-73-gcc-3.patch
deleted file mode 100644
index 9cc6cf2..0000000
--- a/chromium-73-gcc-3.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 08:44:00 +0000
-Subject: [PATCH] quic_flags_impl: Fix GCC build after #618558
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
-base::NoDestructor<T<U>> and passing an initializer list of Us does not
-work if this is not done explicitly, as GCC incorrectly fails to determine
-which constructor overload to use:
-
- ../../net/third_party/quic/platform/impl/quic_flags_impl.cc: In member function bool quic::TypedQuicFlagHelper<T>::SetFlag(const string&) const [with T = bool; std::__cxx11::string = std::__cxx11::basic_string<char>]:
- ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:156:41: error: call of overloaded NoDestructor(<brace-enclosed initializer list>) is ambiguous
- {"", "1", "t", "true", "y", "yes"});
- ^
- In file included from ../../net/third_party/quic/platform/impl/quic_flags_impl.h:16,
- from ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:5:
- ../../base/no_destructor.h:62:3: note: candidate: base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = std::set<std::__cxx11::basic_string<char> >] <deleted>
- NoDestructor(const NoDestructor&) = delete;
- ^~~~~~~~~~~~
- ../../base/no_destructor.h:60:12: note: candidate: base::NoDestructor<T>::NoDestructor(T&&) [with T = std::set<std::__cxx11::basic_string<char> >]
- explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
- ^~~~~~~~~~~~
- ../../base/no_destructor.h:59:12: note: candidate: base::NoDestructor<T>::NoDestructor(const T&) [with T = std::set<std::__cxx11::basic_string<char> >]
- explicit NoDestructor(const T& x) { new (storage_) T(x); }
- ^~~~~~~~~~~~
-
-Explicitly use an std::initializer_list to make the build work everywhere.
-
-Bug: 819294
-Change-Id: I775be20e3766a88a656b58c94c40869cb1bee2a8
-Reviewed-on: https://chromium-review.googlesource.com/c/1458214
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Ryan Hamilton <rch(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630249}
----
- net/third_party/quic/platform/impl/quic_flags_impl.cc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/net/third_party/quic/platform/impl/quic_flags_impl.cc b/net/third_party/quic/platform/impl/quic_flags_impl.cc
-index 5e6962d1e770..3fa45fc6892d 100644
---- a/net/third_party/quic/platform/impl/quic_flags_impl.cc
-+++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc
-@@ -5,6 +5,7 @@
- #include "net/third_party/quic/platform/impl/quic_flags_impl.h"
-
- #include <algorithm>
-+#include <initializer_list>
- #include <iostream>
- #include <set>
-
-@@ -153,9 +154,9 @@ std::string QuicFlagRegistry::GetHelp() const {
- template <>
- bool TypedQuicFlagHelper<bool>::SetFlag(const std::string& s) const {
- static const base::NoDestructor<std::set<std::string>> kTrueValues(
-- {"", "1", "t", "true", "y", "yes"});
-+ std::initializer_list<std::string>({"", "1", "t", "true", "y", "yes"}));
- static const base::NoDestructor<std::set<std::string>> kFalseValues(
-- {"0", "f", "false", "n", "no"});
-+ std::initializer_list<std::string>({"0", "f", "false", "n", "no"}));
- if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) {
- *flag_ = true;
- return true;
---
-2.20.1
-
diff --git a/chromium-73-gcc-4.patch b/chromium-73-gcc-4.patch
deleted file mode 100644
index df7d630..0000000
--- a/chromium-73-gcc-4.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Wed, 13 Feb 2019 01:02:27 +0000
-Subject: [PATCH] BaseRenderingContext2D: Use base::CheckMul and simplify code
- in putImageData()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Follow-up to commit e0b3253a56 ("Fix image conversion truncation issues").
-The current code does not build with GCC due to
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287:
-
- ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc: In member function void blink::BaseRenderingContext2D::putImageData(blink::ImageData*, int, int, int, int, int, int, blink::ExceptionState&):
- ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc:1777:44: error: default type conversion can't deduce template argument for template<class Dst, typename std::enable_if<base::internal::IsNumericRangeContained<Dst, long unsigned int, void>::value, void>::type* <anonymous> > constexpr base::internal::StrictNumeric<T>::operator Dst() const [with Dst = Dst; typename std::enable_if<base::internal::IsNumericRangeContained<Dst, T>::value>::type* <anonymous> = <enumerator>; T = long unsigned int]
- new uint8_t[data_length.ValueOrDie()]);
- ^
-
-Work around it by using the more idiomatic base::CheckMul() with
-AssignIfValid, so that we can have |data_length| be a size_t again and not
-leave it to the compiler to figure out the type we want when creating the
-|converted_pixels| array.
-
-Bug: 819294
-Change-Id: Id124cc4f3d749b45def4708e21e4badafd708578
-Reviewed-on: https://chromium-review.googlesource.com/c/1467201
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Kentaro Hara <haraken(a)chromium.org>
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#631472}
----
- .../canvas/canvas2d/base_rendering_context_2d.cc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-index d9fa696c9a9d..34a8a202bfd3 100644
---- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-@@ -1769,12 +1769,12 @@ void BaseRenderingContext2D::putImageData(ImageData* data,
- CanvasColorParams(ColorParams().ColorSpace(), PixelFormat(), kNonOpaque);
- if (data_color_params.NeedsColorConversion(context_color_params) ||
- PixelFormat() == kF16CanvasPixelFormat) {
-- base::CheckedNumeric<size_t> data_length = data->Size().Area();
-- data_length *= context_color_params.BytesPerPixel();
-- if (!data_length.IsValid())
-+ size_t data_length;
-+ if (!base::CheckMul(data->Size().Area(),
-+ context_color_params.BytesPerPixel())
-+ .AssignIfValid(&data_length))
- return;
-- std::unique_ptr<uint8_t[]> converted_pixels(
-- new uint8_t[data_length.ValueOrDie()]);
-+ std::unique_ptr<uint8_t[]> converted_pixels(new uint8_t[data_length]);
- if (data->ImageDataInCanvasColorSettings(
- ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(),
- kRGBAColorType)) {
---
-2.20.1
-
diff --git a/chromium-73-gcc-5.patch b/chromium-73-gcc-5.patch
deleted file mode 100644
index 033861e..0000000
--- a/chromium-73-gcc-5.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Wed, 13 Feb 2019 23:28:46 +0000
-Subject: [PATCH] CastActivityManager: Do not make DoLaunchSessionParams' move
- constructor noexcept
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build:
-
- ../../chrome/browser/media/router/providers/cast/cast_activity_manager.cc:806:1: error: function media_router::CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(media_router::CastActivityManager::DoLaunchSessionParams&&) defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification
- CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
- ^~~~~~~~~~~~~~~~~~~
-
-With GCC, having that noexcept marker requires all members to be marked with
-noexcept themselves, and MediaRoute, CastMediaSource and url::Origin need
-the right annotations. Just making DoLaunchSessionParams not noexcept is the
-least intrusive solution for now.
-
-clang is fine because we pass -fno-exceptions and it disables the same error
-there, while GCC continues to raise it (bug 843143 and its corresponding CL
-have a longer discussion on this issue).
-
-Bug: 819294
-Change-Id: Ia3a5fb60b5e74e68bd35cfa50e2fcc728b64e5eb
-Reviewed-on: https://chromium-review.googlesource.com/c/1469942
-Commit-Queue: mark a. foltz <mfoltz(a)chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: mark a. foltz <mfoltz(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#631962}
----
- .../media/router/providers/cast/cast_activity_manager.cc | 2 +-
- .../browser/media/router/providers/cast/cast_activity_manager.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-index b7ee9695f69a..8569e0cd30a3 100644
---- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-@@ -804,7 +804,7 @@ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
- callback(std::move(callback)) {}
-
- CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
-- DoLaunchSessionParams&& other) noexcept = default;
-+ DoLaunchSessionParams&& other) = default;
-
- CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default;
-
-diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-index 325bffc725ee..08fe0ccca603 100644
---- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-@@ -295,7 +295,7 @@ class CastActivityManager : public cast_channel::CastMessageHandler::Observer,
- const url::Origin& origin,
- int tab_id,
- mojom::MediaRouteProvider::CreateRouteCallback callback);
-- DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept;
-+ DoLaunchSessionParams(DoLaunchSessionParams&& other);
- ~DoLaunchSessionParams();
- DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete;
-
---
-2.20.1
-
diff --git a/chromium-73-gcc-6.patch b/chromium-73-gcc-6.patch
deleted file mode 100644
index 752f83c..0000000
--- a/chromium-73-gcc-6.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Thu, 14 Feb 2019 22:22:21 +0000
-Subject: [PATCH] chrome/browser: Replace some forward declarations with actual
- includes
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build which was failing like this:
-
- ../../base/scoped_observer.h: In instantiation of void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]:
- ../../base/scoped_observer.h:26:5: required from ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]
- ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70: required from here
- ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type class TabStripModel
- sources_[i]->RemoveObserver(observer_);
- ~~~~~~~~~~~~~^~~~~~~~~~~~~~
-
-This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace
-initialization needlessly invokes destructor"), i.e. having something like
-
- ScopedObserver<T, U> observer_{this};
-
-in a header declaration requires T and U to be fully declared because
-ScopedObserver's destructor references them. In a few cases, T was only
-forward-declared.
-
-Bug: 819294
-Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595
-Reviewed-on: https://chromium-review.googlesource.com/c/1472576
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Alan Cutter <alancutter(a)chromium.org>
-Reviewed-by: Finnur Thorarinsson <finnur(a)chromium.org>
-Reviewed-by: Alan Cutter <alancutter(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#632385}
----
- chrome/browser/ui/views/extensions/extension_popup.cc | 1 -
- chrome/browser/ui/views/extensions/extension_popup.h | 1 +
- chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc | 1 -
- chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h | 2 +-
- .../web_applications/extensions/bookmark_app_tab_helper.cc | 1 -
- .../web_applications/extensions/bookmark_app_tab_helper.h | 2 +-
- 6 files changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc
-index 3f0985d383dd..57d16aba9e9f 100644
---- a/chrome/browser/ui/views/extensions/extension_popup.cc
-+++ b/chrome/browser/ui/views/extensions/extension_popup.cc
-@@ -8,7 +8,6 @@
- #include "chrome/browser/devtools/devtools_window.h"
- #include "chrome/browser/extensions/extension_view_host.h"
- #include "chrome/browser/ui/browser.h"
--#include "chrome/browser/ui/tabs/tab_strip_model.h"
- #include "content/public/browser/devtools_agent_host.h"
- #include "content/public/browser/notification_details.h"
- #include "content/public/browser/notification_source.h"
-diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h
-index 3661b5bda950..9018efa0fea5 100644
---- a/chrome/browser/ui/views/extensions/extension_popup.h
-+++ b/chrome/browser/ui/views/extensions/extension_popup.h
-@@ -9,6 +9,7 @@
- #include "base/compiler_specific.h"
- #include "base/macros.h"
- #include "base/scoped_observer.h"
-+#include "chrome/browser/ui/tabs/tab_strip_model.h"
- #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
- #include "chrome/browser/ui/views/extensions/extension_view_views.h"
- #include "content/public/browser/devtools_agent_host_observer.h"
-diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-index 2a3ea8e4f91f..ac44a4f05dec 100644
---- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-+++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-@@ -8,6 +8,7 @@
- #include "base/macros.h"
- #include "base/memory/weak_ptr.h"
- #include "base/scoped_observer.h"
-+#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
- #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h"
- #include "chrome/browser/ui/views/toolbar/app_menu_observer.h"
- #include "ui/views/controls/scroll_view.h"
-@@ -15,7 +16,6 @@ class AppMenu;
- class AppMenu;
- class Browser;
- class BrowserActionsContainer;
--class ToolbarActionsBar;
-
- namespace views {
- class MenuItemView;
diff --git a/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch b/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch
deleted file mode 100644
index 8ff952b..0000000
--- a/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.glibc229 chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
---- chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.glibc229 2019-04-16 11:49:35.353081246 -0400
-+++ chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2019-04-16 11:51:22.105794620 -0400
-@@ -134,7 +134,8 @@ namespace sandbox {
- #if !defined(OS_NACL_NONSFI)
- // Allow Glibc's and Android pthread creation flags, crash on any other
- // thread creation attempts and EPERM attempts to use neither
--// CLONE_VM, nor CLONE_THREAD, which includes all fork() implementations.
-+// CLONE_VM nor CLONE_THREAD (all fork implementations), unless CLONE_VFORK is
-+// present (as in posix_spawn).
- ResultExpr RestrictCloneToThreadsAndEPERMFork() {
- const Arg<unsigned long> flags(0);
-
-@@ -153,8 +154,14 @@ ResultExpr RestrictCloneToThreadsAndEPER
- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
- flags == kGlibcPthreadFlags);
-
-+ const uint64_t kImportantSpawnFlags = CLONE_VFORK | CLONE_VM;
-+
-+ const BoolExpr isForkOrSpawn =
-+ AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
-+ (flags & kImportantSpawnFlags) == kImportantSpawnFlags);
-+
- return If(IsAndroid() ? android_test : glibc_test, Allow())
-- .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
-+ .ElseIf(isForkOrSpawn, Error(EPERM))
- .Else(CrashSIGSYSClone());
- }
-
diff --git a/chromium-73.0.3683.75-aarch64-crashpad-limits.patch b/chromium-73.0.3683.75-aarch64-crashpad-limits.patch
deleted file mode 100644
index 4eb9529..0000000
--- a/chromium-73.0.3683.75-aarch64-crashpad-limits.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
---- chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits 2019-03-15 12:08:21.208676651 -0400
-+++ chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc 2019-03-15 12:08:40.934251685 -0400
-@@ -16,6 +16,7 @@
-
- #include <stddef.h>
- #include <string.h>
-+#include <limits>
-
- #include "base/logging.h"
-
diff --git a/chromium-73.0.3683.75-el7-fix-noexcept.patch b/chromium-73.0.3683.75-el7-fix-noexcept.patch
deleted file mode 100644
index 3fc69ba..0000000
--- a/chromium-73.0.3683.75-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc
---- chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-03-11 18:00:54.000000000 -0400
-+++ chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc 2019-03-20 09:45:29.400426336 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-73.0.3683.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-73.0.3683.75/components/policy/core/common/policy_map.cc
---- chromium-73.0.3683.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-03-11 18:00:56.000000000 -0400
-+++ chromium-73.0.3683.75/components/policy/core/common/policy_map.cc 2019-03-19 11:11:38.310689134 -0400
-@@ -25,7 +25,7 @@ PolicyMap::Entry::Entry() = default;
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-73.0.3683.75/components/signin/core/browser/account_info.cc.el7-noexcept chromium-73.0.3683.75/components/signin/core/browser/account_info.cc
---- chromium-73.0.3683.75/components/signin/core/browser/account_info.cc.el7-noexcept 2019-03-11 18:00:57.000000000 -0400
-+++ chromium-73.0.3683.75/components/signin/core/browser/account_info.cc 2019-03-19 11:11:38.311689112 -0400
-@@ -50,7 +50,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return account_id.empty() && email.empty() && gaia.empty() &&
-diff -up chromium-73.0.3683.75/gpu/config/gpu_info.cc.el7-noexcept chromium-73.0.3683.75/gpu/config/gpu_info.cc
---- chromium-73.0.3683.75/gpu/config/gpu_info.cc.el7-noexcept 2019-03-19 11:12:36.992435015 -0400
-+++ chromium-73.0.3683.75/gpu/config/gpu_info.cc 2019-03-19 11:12:37.061433540 -0400
-@@ -118,7 +118,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-73.0.3683.75-no-header-hygiene.patch b/chromium-73.0.3683.75-no-header-hygiene.patch
deleted file mode 100644
index a8d2a19..0000000
--- a/chromium-73.0.3683.75-no-header-hygiene.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn
---- chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh 2019-03-15 09:02:26.167929864 -0400
-+++ chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn 2019-03-15 09:03:30.334433446 -0400
-@@ -74,9 +74,12 @@ config("swiftshader_llvm_private_config"
- "-Wno-unused-private-field",
- "-Wno-unused-result",
- "-Wno-unused-variable",
-- "-Wno-error=header-hygiene",
- ]
-
-+ if (is_clang) {
-+ cflags += [ "-Wno-error=header-hygiene" ]
-+ }
-+
- defines = [
- "__STDC_CONSTANT_MACROS",
- "__STDC_LIMIT_MACROS",
diff --git a/chromium-gcc5-r3.patch b/chromium-gcc5-r3.patch
deleted file mode 100644
index 7605df6..0000000
--- a/chromium-gcc5-r3.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-+++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
---- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000
-+++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000
-@@ -10,7 +10,7 @@
-
- #include "webrtc/modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <numeric>
- #include <vector>
-
---- a/gpu/ipc/common/mailbox_struct_traits.h
-+++ b/gpu/ipc/common/mailbox_struct_traits.h
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
---- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-+++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOperationDataView, cc::FilterOperation> {
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
---- a/services/viz/public/cpp/compositing/quads_struct_traits.h
-+++ b/services/viz/public/cpp/compositing/quads_struct_traits.h
-@@ -284,7 +284,7 @@
-
- static base::span<const float> vertex_opacity(const cc::DrawQuad& input) {
- const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const cc::DrawQuad& input) {
---- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-+++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status,
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status,
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
diff --git a/chromium-gcc8-r588316.patch b/chromium-gcc8-r588316.patch
deleted file mode 100644
index d980805..0000000
--- a/chromium-gcc8-r588316.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 87902b3202f81d689dd314c17006ffc907fe12a1 Mon Sep 17 00:00:00 2001
-From: Wang Qing <wangqing-hf(a)loongson.cn>
-Date: Mon, 3 Sep 2018 02:41:08 +0000
-Subject: [PATCH] Fix build error for blink.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This CLs fixed the error of constexpr function call to non-constexpr function.
-
-Bug: 878202
-Change-Id: I6ad217a687e62a9a384980d852743a56479de3a9
-Reviewed-on: https://chromium-review.googlesource.com/1192467
-Commit-Queue: <wangqing-hf(a)loongson.cn>
-Reviewed-by: Eric Willigers <ericwilligers(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#588316}
----
- .../core/animation/animation_time_delta.cc | 22 ++++++++++++++
- .../core/animation/animation_time_delta.h | 30 +++++++------------
- 2 files changed, 32 insertions(+), 20 deletions(-)
-
-diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.cc b/third_party/blink/renderer/core/animation/animation_time_delta.cc
-index 1b25469c7f2f..2e30a18890da 100644
---- a/third_party/blink/renderer/core/animation/animation_time_delta.cc
-+++ b/third_party/blink/renderer/core/animation/animation_time_delta.cc
-@@ -7,6 +7,28 @@
- namespace blink {
-
- #if !defined(BLINK_ANIMATION_USE_TIME_DELTA)
-+// Comparison operators on AnimationTimeDelta.
-+bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() == rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() != rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() > rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() >= rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() <= rhs.InSecondsF();
-+}
-+
- std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time) {
- return os << time.InSecondsF() << " s";
- }
-diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.h b/third_party/blink/renderer/core/animation/animation_time_delta.h
-index 1903c1150d3e..95d218466d90 100644
---- a/third_party/blink/renderer/core/animation/animation_time_delta.h
-+++ b/third_party/blink/renderer/core/animation/animation_time_delta.h
-@@ -90,26 +90,16 @@ AnimationTimeDelta operator*(T a, AnimationTimeDelta td) {
- }
-
- // Comparison operators on AnimationTimeDelta.
--constexpr bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() == rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() != rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() > rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() >= rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() <= rhs.InSecondsF();
--}
-+bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-
- // Defined to allow DCHECK_EQ/etc to work with the class.
- CORE_EXPORT std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time);
---
-2.17.2
-
diff --git a/chromium-gcc8-r588547.patch b/chromium-gcc8-r588547.patch
deleted file mode 100644
index 5f12f7f..0000000
--- a/chromium-gcc8-r588547.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From e3ad3deb6a6e79284f3748fa7410311d87df91c5 Mon Sep 17 00:00:00 2001
-From: Henrique Nakashima <hnakashima(a)chromium.org>
-Date: Tue, 4 Sep 2018 16:49:51 +0000
-Subject: [PATCH] IWYU: stdint.h in pdfium_mem_buffer_file_write.h for uint8_t
-
-Bug: 879900
-Change-Id: I9c15d1c280a23c53d31f2d72c9d0d1db79eab886
-Reviewed-on: https://chromium-review.googlesource.com/1204410
-Reviewed-by: Lei Zhang <thestig(a)chromium.org>
-Commit-Queue: Henrique Nakashima <hnakashima(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#588547}
----
- pdf/pdfium/pdfium_mem_buffer_file_write.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/pdf/pdfium/pdfium_mem_buffer_file_write.h b/pdf/pdfium/pdfium_mem_buffer_file_write.h
-index 03c54bb63800..82e82d23684d 100644
---- a/pdf/pdfium/pdfium_mem_buffer_file_write.h
-+++ b/pdf/pdfium/pdfium_mem_buffer_file_write.h
-@@ -6,6 +6,7 @@
- #define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_H_
-
- #include <stddef.h>
-+#include <stdint.h>
-
- #include <vector>
-
---
-2.17.2
-
diff --git a/chromium-gcc8-r589614.patch b/chromium-gcc8-r589614.patch
deleted file mode 100644
index 0c187fd..0000000
--- a/chromium-gcc8-r589614.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From cbdb8bd6567c8143dc8c1e5e86a21a8ea064eea4 Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov(a)igalia.com>
-Date: Fri, 7 Sep 2018 18:57:42 +0000
-Subject: [PATCH] OmniboxTextView: fix gcc error for structure initialization
-
-It looks like there is bug in GCC 6, which cannot go through
-structure initialization normally.
-
-Thus, instead of a default initialization of one of the members,
-explicitly initialize it to a default value.
-
-Change-Id: Ia55cc6658e6b6b2f8a80c2582dd28f001c9e648c
-Reviewed-on: https://chromium-review.googlesource.com/1213181
-Reviewed-by: Scott Violet <sky(a)chromium.org>
-Commit-Queue: Maksim Sisov <msisov(a)igalia.com>
-Cr-Commit-Position: refs/heads/master@{#589614}
----
- chrome/browser/ui/views/omnibox/omnibox_text_view.cc | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-index f0a8083dc930..9021284f166d 100644
---- a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-+++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-@@ -175,7 +175,8 @@ void ApplyTextStyleForType(SuggestionAnswer::TextStyle text_style,
- style = {part_color, .baseline = gfx::SUPERIOR};
- break;
- case SuggestionAnswer::TextStyle::BOLD:
-- style = {part_color, .weight = gfx::Font::Weight::BOLD};
-+ style = {part_color, .baseline = gfx::NORMAL_BASELINE,
-+ .weight = gfx::Font::Weight::BOLD};
- break;
- case SuggestionAnswer::TextStyle::NORMAL:
- case SuggestionAnswer::TextStyle::NORMAL_DIM:
---
-2.17.2
-
diff --git a/chromium-gcc8-r591015.patch b/chromium-gcc8-r591015.patch
deleted file mode 100644
index 65c09e8..0000000
--- a/chromium-gcc8-r591015.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From e98f8ef8b2f236ecbb01df8c39e6ee1c8fbe8d7d Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov(a)igalia.com>
-Date: Thu, 13 Sep 2018 15:17:29 +0000
-Subject: [PATCH] ScrollPaintPropertyNode: Rename SnapContainerData() to
- GetSnapContainerData()
-
-GCC is stricter than clang when it comes to class members' names and how
-they can change the meaning of a previously existing symbol with the same
-name.
-
-Here is a short error message:
-
-error: changes meaning of 'SnapContainerData' from 'using SnapContainerData =
-class cc::SnapContainerData' [-fpermissive] using SnapContainerData =
-cc::SnapContainerData;
-
-Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
-Change-Id: I0de5460f17b13484253e1ff0538b111c9a3b0d13
-Reviewed-on: https://chromium-review.googlesource.com/1213180
-Commit-Queue: Maksim Sisov <msisov(a)igalia.com>
-Reviewed-by: Philip Rogers <pdr(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#591015}
----
- .../blink/renderer/core/paint/paint_property_tree_update_tests.cc | 2 +-
- .../renderer/platform/graphics/compositing/property_tree_manager.cc | 2 +-
- .../blink/renderer/platform/graphics/paint/scroll_paint_property_node.h | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-index 0d999d45076f..1fe1815a5659 100644
---- a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-+++ b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-@@ -1310,7 +1310,7 @@ TEST_P(PaintPropertyTreeUpdateTest, EnsureSnapContainerData) {
- GetDocument().View()->Resize(300, 300);
- GetDocument().View()->UpdateAllLifecyclePhases();
-
-- auto doc_snap_container_data = DocScroll()->SnapContainerData();
-+ auto doc_snap_container_data = DocScroll()->GetSnapContainerData();
- ASSERT_TRUE(doc_snap_container_data);
- EXPECT_EQ(doc_snap_container_data->scroll_snap_type().axis, SnapAxis::kBoth);
- EXPECT_EQ(doc_snap_container_data->scroll_snap_type().strictness,
-diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-index 745b8c8b387e..5f87eeea9435 100644
---- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-+++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-@@ -333,7 +333,7 @@ void PropertyTreeManager::CreateCompositorScrollNode(
- scroll_node->OverscrollBehaviorX()),
- static_cast<cc::OverscrollBehavior::OverscrollBehaviorType>(
- scroll_node->OverscrollBehaviorY()));
-- compositor_node.snap_container_data = scroll_node->SnapContainerData();
-+ compositor_node.snap_container_data = scroll_node->GetSnapContainerData();
-
- auto compositor_element_id = scroll_node->GetCompositorElementId();
- if (compositor_element_id) {
-diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-index e1479269ccc3..5bd7f65f10ba 100644
---- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-@@ -99,7 +99,7 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
- return state_.overscroll_behavior.y;
- }
-
-- base::Optional<SnapContainerData> SnapContainerData() const {
-+ base::Optional<SnapContainerData> GetSnapContainerData() const {
- return state_.snap_container_data;
- }
-
---
-2.14.3
-
diff --git a/chromium-gn-bootstrap-r17.patch b/chromium-gn-bootstrap-r17.patch
deleted file mode 100644
index 6cfd08d..0000000
--- a/chromium-gn-bootstrap-r17.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- a/tools/gn/bootstrap/bootstrap.py
-+++ b/tools/gn/bootstrap/bootstrap.py
-@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
- {
-+ 'ENABLE_LOCATION_SOURCE': 'false',
- 'ENABLE_PROFILING': 'false',
- 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false'
- })
-@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_gn_ninja(os.path.join(tempdir, 'build.ninja'),
- root_gen_dir, options)
-- cmd = ['ninja', '-C', tempdir]
-+ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
-
-@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/metrics/bucket_ranges.cc',
- 'base/metrics/field_trial.cc',
- 'base/metrics/field_trial_param_associator.cc',
-+ 'base/metrics/field_trial_params.cc',
- 'base/metrics/histogram.cc',
- 'base/metrics/histogram_base.cc',
- 'base/metrics/histogram_functions.cc',
-@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/task_scheduler/scheduler_lock_impl.cc',
- 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc',
- 'base/task_scheduler/scheduler_worker.cc',
-+ 'base/task_scheduler/scheduler_worker_pool.cc',
- 'base/task_scheduler/scheduler_worker_pool_impl.cc',
- 'base/task_scheduler/scheduler_worker_pool_params.cc',
- 'base/task_scheduler/scheduler_worker_stack.cc',
-@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/third_party/icu/icu_utf.cc',
- 'base/third_party/nspr/prtime.cc',
- 'base/threading/post_task_and_reply_impl.cc',
-+ 'base/threading/scoped_blocking_call.cc',
- 'base/threading/sequence_local_storage_map.cc',
- 'base/threading/sequenced_task_runner_handle.cc',
- 'base/threading/sequenced_worker_pool.cc',
-@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/unguessable_token.cc',
- 'base/value_iterators.cc',
- 'base/values.cc',
-- 'base/value_iterators.cc',
- 'base/vlog.cc',
- ])
-
-@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- static_libraries['base']['sources'].extend([
- 'base/memory/shared_memory_handle_posix.cc',
- 'base/memory/shared_memory_posix.cc',
-- 'base/memory/shared_memory_tracker.cc',
- 'base/nix/xdg_util.cc',
- 'base/process/internal_linux.cc',
- 'base/process/memory_linux.cc',
-@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options):
- cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args]
- check_call(cmd)
-
-- cmd = ['ninja', '-C', build_dir]
-+ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
- cmd.append('gn')
diff --git a/chromium-math.h-r0.patch b/chromium-math.h-r0.patch
deleted file mode 100644
index 6c7c747..0000000
--- a/chromium-math.h-r0.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson(a)chromium.org>
-Date: Sat, 27 Jan 2018 20:03:37 +0000
-Subject: [PATCH] Fix build with glibc 2.27
-
-BUG=806340
-TBR=hamelphi(a)chromium.org
-
-Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e
-Reviewed-on: https://chromium-review.googlesource.com/890059
-Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
-Reviewed-by: Philippe Hamel <hamelphi(a)chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#532249}
----
-
-diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc
-index 54d4dbd..ceedd8f 100644
---- a/components/assist_ranker/ranker_example_util.cc
-+++ b/components/assist_ranker/ranker_example_util.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <math.h>
-+
- #include "components/assist_ranker/ranker_example_util.h"
- #include "base/bit_cast.h"
- #include "base/format_macros.h"
diff --git a/chromium-stdint.patch b/chromium-stdint.patch
deleted file mode 100644
index 8774439..0000000
--- a/chromium-stdint.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela(a)gmail.com>
-Date: Wed, 31 Jan 2018 18:57:07 +0000
-Subject: [PATCH] Add missing stdint include
-
-diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc
-index c2ca777ce90c..53cb3aab1576 100644
---- a/chrome/browser/vr/sample_queue.cc
-+++ b/chrome/browser/vr/sample_queue.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <stdint.h>
-+
- #include "chrome/browser/vr/sample_queue.h"
-
- namespace vr {
---
-2.16.2
-
diff --git a/chromium.spec b/chromium.spec
index a741cda..0f9d7f8 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -174,175 +174,130 @@ License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and Open
Patch0: chromium-67.0.3396.62-gcc5.patch
Patch1: chromium-45.0.2454.101-linux-path-max.patch
Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch4: chromium-72.0.3626.121-notest.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch6: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch7: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+Patch3: chromium-72.0.3626.121-notest.patch
# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch9: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
+Patch4: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
# Ignore deprecations in cups 2.2
# https://bugs.chromium.org/p/chromium/issues/detail?id=622493
-Patch12: chromium-55.0.2883.75-cups22.patch
+Patch5: chromium-55.0.2883.75-cups22.patch
# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch15: chromium-70.0.3538.67-sandbox-pie.patch
+Patch6: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch18: chromium-68.0.3440.106-master-prefs-path.patch
-# Disable MADV_FREE (if set by glibc)
-# https://bugzilla.redhat.com/show_bug.cgi?id=1361157
-Patch19: chromium-52.0.2743.116-unset-madv_free.patch
+Patch7: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch20: chromium-67.0.3396.62-gn-system.patch
-# Fix last commit position issue
-# https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/7nlJv486bD4
-# Patch21: chromium-60.0.3112.78-last-commit-position.patch
+Patch8: chromium-67.0.3396.62-gn-system.patch
# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch22: chromium-53.0.2785.92-boringssl-time-fix.patch
+Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch24: chromium-63.0.3289.84-nullfix.patch
+Patch10: chromium-63.0.3289.84-nullfix.patch
# Add explicit includedir for jpeglib.h
-Patch25: chromium-54.0.2840.59-jpeg-include-dir.patch
+Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch26: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
-# obj/content/renderer/renderer/child_frame_compositing_helper.o: In function `content::ChildFrameCompositingHelper::OnSetSurface(cc::SurfaceId const&, gfx::Size const&, float, cc::SurfaceSequence const&)':
-# /builddir/build/BUILD/chromium-54.0.2840.90/out/Release/../../content/renderer/child_frame_compositing_helper.cc:214: undefined reference to `cc_blink::WebLayerImpl::setOpaque(bool)'
-# Patch27: chromium-63.0.3289.84-setopaque.patch
-# Use -fpermissive to build WebKit
-# Patch31: chromium-56.0.2924.87-fpermissive.patch
-# Fix issue with compilation on gcc7
-# Thanks to Ben Noordhuis
-# Patch33: chromium-65.0.3325.146-gcc7.patch
+Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch36: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
+Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch37: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
# Nacl can't die soon enough
-Patch39: chromium-66.0.3359.117-system-clang.patch
+Patch15: chromium-66.0.3359.117-system-clang.patch
# Do not prefix libpng functions
-Patch42: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch43: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch45: chromium-75.0.3770.80-no-zlib-mangle.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch46: chromium-62.0.3202.62-kmaxskip-constexpr.patch
-Patch47: chromium-60.0.3112.90-vulkan-force-c99.patch
+Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
-Patch50: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch53: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
-# Only needed when glibc 2.26.90 or later is used
-Patch57: chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
+Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
# From gentoo
-Patch62: chromium-72.0.3626.121-gcc5-r3.patch
-# Do not try to use libc++ in the remoting stack
-# Patch63: chromium-63.0.3289.84-nolibc++.patch
+Patch21: chromium-72.0.3626.121-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
-Patch65: chromium-65.0.3325.146-gcc-round-fix.patch
+Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
-Patch67: chromium-65.0.3325.146-memcpy-fix.patch
+Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch85: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-68.0.3440.106-boolfix.patch
# From Debian
-Patch86: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
-# Use lstdc++ on EPEL7 only
-Patch87: chromium-75.0.3770.100-epel7-stdc++.patch
+Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Missing files in tarball
-Patch88: chromium-66.0.3359.117-missing-files.patch
-# https://chromium.googlesource.com/chromium/src/+/ba4141e451f4e0b1b19410b1...
-# Patch89: chromium-66.0.3359.117-gcc-optional-move-fixes.patch
-# https://chromium.googlesource.com/chromium/src/+/4f2b52281ce1649ea8347489...
-# Patch90: chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
-# https://bugs.chromium.org/p/chromium/issues/detail?id=816952
-# Patch91: chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
+Patch26: chromium-66.0.3359.117-missing-files.patch
# Do not use unrar code, it is non-free
-Patch92: chromium-73.0.3683.75-norar.patch
+Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
-Patch93: chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
-Patch94: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Patch95: chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
-# https://github.com/archlinuxarm/PKGBUILDs/blob/master/extra/chromium/0006...
-# Patch96: chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
-# https://chromium.googlesource.com/chromium/src/+/b84682f31dc99b9c90f5a049...
-# Patch97: chromium-66.0.3359.139-arm-init-fix.patch
-# GCC8 has changed the alignof operator to return the minimal alignment required by the target ABI
-# instead of the preferred alignment. This means int64_t is now 4 on i686 (instead of 8).
-# Use __alignof__ to get the value we expect (and chromium checks for).
-# Patch98: chromium-69.0.3497.81-gcc8-alignof.patch
-# RHEL 7 has a bug in its python2.7 which does not propely handle exec with a tuple
-# https://bugs.python.org/issue21591
-Patch100: chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
+Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch101: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
# Try to fix version.py for Rawhide
-Patch103: chromium-71.0.3578.98-py2-bootstrap.patch
+Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch110: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch111: chromium-71.0.3578.98-widevine-r3.patch
+Patch32: chromium-71.0.3578.98-widevine-r3.patch
# Do not require sysroot
# Forget about trying to make libc++
# BUILD SANELY PLEASE
-Patch112: chromium-69.0.3497.81-build-sanely-please.patch
-# Still moar GCC cleanups from upstream
-# Patch113: chromium-gcc8-r588316.patch
-# Patch114: chromium-gcc8-r588547.patch
-# Patch115: chromium-gcc8-r589614.patch
-# Patch116: chromium-gcc8-r591015.patch
+Patch33: chromium-69.0.3497.81-build-sanely-please.patch
# Disable fontconfig cache magic that breaks remoting
-Patch117: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
+Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# Fix aarch64 build against latest linux kernel headers
-Patch119: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
-# Enable VAAPI support on Linux
-# NOTE: This patch will never land upstream
-Patch121: enable-vaapi.patch
-Patch122: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
-# Fix compatibility with VA-API library (libva) version 1
-Patch124: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch126: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
-# Thanks Ubuntu
-# Disable these two patches when v75 lands
-Patch130: revert-gn-4980.patch
-Patch131: revert-gn-4960.patch
+Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch132: chromium-widevine-other-locations.patch
+Patch37: chromium-widevine-other-locations.patch
# Disable -fno-delete-null-pointer-checks
-Patch135: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
# Add #include <cstring> to get pipewire code to build
-Patch136: chromium-73.0.3683.75-pipewire-cstring-fix.patch
-# el7 only patch
-Patch139: chromium-75.0.3770.100-el7-fix-noexcept.patch
+Patch39: chromium-73.0.3683.75-pipewire-cstring-fix.patch
# gcc does not have __assume
-Patch140: chromium-75.0.3770.80-gcc-no-assume.patch
+Patch40: chromium-75.0.3770.80-gcc-no-assume.patch
# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch141: chromium-75.0.3770.80-SIOCGSTAMP.patch
+Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# https://chromium.googlesource.com/chromium/src/+/aeed4d1f15ce84a17ea0bc21...
-Patch142: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+Patch42: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
-Patch143: chromium-75.0.3770.80-revert-daff6b.patch
+Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# Avoid pure virtual crash destroying RenderProcessUserData
# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch144: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch145: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch146: chromium-75.0.3770.100-fix-v8-gcc.patch
+Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
# https://chromium.googlesource.com/chromium/src/+/00281713519dbd84b90d2996...
-Patch147: chromium-75.0.3770.100-git00281713.patch
+Patch47: chromium-75.0.3770.100-git00281713.patch
+# Apply these changes to work around EPEL7 compiler issues
+Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
+# Use lstdc++ on EPEL7 only
+Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
+# el7 only patch
+Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+
+# In file included from ../linux/directory.c:21:
+# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
+# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
+# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
+# ^
+# 1 error generated.
+Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+# Ignore broken nacl open fd counter
+Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+
+# Enable VAAPI support on Linux
+# NOTE: This patch will never land upstream
+Patch202: enable-vaapi.patch
+Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
+# Fix compatibility with VA-API library (libva) version 1
+Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -837,97 +792,73 @@ udev.
%patch0 -p1 -b .gcc5
%patch1 -p1 -b .pathmax
%patch2 -p1 -b .addrfix
-%patch4 -p1 -b .notest
-# %%patch6 -p1 -b .gnu-inline
-%patch7 -p1 -b .ignore-fd-count
-%patch9 -p1 -b .modern-libusbx
-%patch12 -p1 -b .cups22
-%patch15 -p1 -b .sandboxpie
-%patch18 -p1 -b .etc
-# %%patch19 -p1 -b .madv_free
-%patch20 -p1 -b .gnsystem
-# %%patch21 -p1 -b .lastcommit
-%patch22 -p1 -b .timefix
-%patch24 -p1 -b .nullfix
-%patch25 -p1 -b .jpegfix
-%patch26 -p1 -b .ldmemory
-# %%patch27 -p1 -b .setopaque
-# %%patch31 -p1 -b .permissive
-# %%patch33 -p1 -b .gcc7
-%patch36 -p1 -b .revert
-%patch37 -p1 -b .ffmpeg-stdatomic
-%patch39 -p1 -b .system-clang
-%patch42 -p1 -b .noprefix
-%patch43 -p1 -b .nomangle
-%patch45 -p1 -b .nozmangle
-%if 0%{?rhel} == 7
-%patch46 -p1 -b .kmaxskip
-# %%patch47 -p1 -b .c99
-%endif
-%patch50 -p1 -b .pathfix
-%patch53 -p1 -b .nogccoptmath
-# %%if 0%%{?fedora} >= 28
-# %%patch57 -p1 -b .aarch64glibc
-# %%endif
-%patch62 -p1 -b .gcc5-r3
-# %%patch63 -p1 -b .nolibc++
-%patch65 -p1 -b .gcc-round-fix
-%patch67 -p1 -b .memcpyfix
-%patch85 -p1 -b .boolfix
-%patch86 -p1 -b .aarch64fix
-%if 0%{?rhel} == 7
-%patch87 -p1 -b .epel7
-%endif
-%patch88 -p1 -b .missing
-# %%patch89 -p1 -b .gccomove
-# %%patch90 -p1 -b .copycon
-# %%patch91 -p1 -b .944404
-%patch92 -p1 -b .nounrar
-# %%patch93 -p1 -b .gcc-full-decl
-%patch94 -p1 -b .gcc-cpolicyprovider
-# %%patch95 -p1 -b .gcc-getstring
-# %%patch96 -p1 -b .flatsetfix
-# %%patch97 -p1 -b .arm-init-fix
-# %%patch98 -p1 -b .gcc8-alignof
+%patch3 -p1 -b .notest
+%patch4 -p1 -b .modern-libusbx
+%patch5 -p1 -b .cups22
+%patch6 -p1 -b .sandboxpie
+%patch7 -p1 -b .etc
+%patch8 -p1 -b .gnsystem
+%patch9 -p1 -b .timefix
+%patch10 -p1 -b .nullfix
+%patch11 -p1 -b .jpegfix
+%patch12 -p1 -b .ldmemory
+%patch13 -p1 -b .revert
+%patch14 -p1 -b .ffmpeg-stdatomic
+%patch15 -p1 -b .system-clang
+%patch16 -p1 -b .noprefix
+%patch17 -p1 -b .nomangle
+%patch18 -p1 -b .nozmangle
+%patch19 -p1 -b .pathfix
+%patch20 -p1 -b .nogccoptmath
+%patch21 -p1 -b .gcc5-r3
+%patch22 -p1 -b .gcc-round-fix
+%patch23 -p1 -b .memcpyfix
+%patch24 -p1 -b .boolfix
+%patch25 -p1 -b .aarch64fix
+%patch26 -p1 -b .missing-files
+%patch27 -p1 -b .nounrar
+%patch28 -p1 -b .gcc-cpolicyprovider
+%patch29 -p1 -b .fedora-user-agent
+%patch30 -p1 -b .py2
+%patch31 -p1 -b .fix-default-redeclaration
+%patch32 -p1 -b .wvhack
+%patch33 -p1 -b .sanebuild
+%patch34 -p1 -b .nofc
+%patch35 -p1 -b .aarch64-new-stat
+%patch36 -p1 -b .gcc9
+%patch37 -p1 -b .widevine-other-locations
+%patch38 -p1 -b .disable-ndnpc
+%patch39 -p1 -b .cstring-fix
+%patch40 -p1 -b .gcc-assume
+%patch41 -p1 -b .SIOCGSTAMP
+%patch42 -p1 -b .gcc-dcheck_ne-fix
+%patch43 -p1 -b .revert-daff6b
+%patch44 -p1 -b .pure-virtual-fix
+%patch45 -p1 -b .gettid-fix
+%patch46 -p1 -b .fix-v8-gcc
+%patch47 -p1 -b .git00281713
+
+# EPEL specific patches
%if 0%{?rhel} == 7
-# %%patch100 -p1 -b .oldexec
-%endif
-%patch101 -p1 -b .fedora-user-agent
-%patch103 -p1 -b .py2
-# %%patch108 -p1 -b .move-unique-ptr
-%patch110 -p1 -b .fix-default-redeclaration
-%patch111 -p1 -b .wvhack
-%patch112 -p1 -b .sanebuild
-# %%patch113 -p1 -b .r588316
-# %%patch114 -p1 -b .r588547
-# %%patch115 -p1 -b .r589614
-# %%patch116 -p1 -b .r591015
-%patch117 -p1 -b .nofc
-%patch119 -p1 -b .aarch64-new-stat
-%if %{use_vaapi}
-%patch121 -p1 -b .vaapi
+%patch100 -p1 -b .kmaxskip
+%patch101 -p1 -b .epel7
+%patch102 -p1 -b .el7-noexcept
+%endif
+
+# Feature specific patches
+%if ! 0%{?killnacl}
+%patch200 -p1 -b .gnu-inline
+%patch201 -p1 -b .ignore-fd-count
%endif
+
+%if %{use_vaapi}
+%patch202 -p1 -b .vaapi
%ifarch i686
-%patch122 -p1 -b .i686permissive
-%endif
-%patch124 -p1 -b .va1compat
-%patch126 -p1 -b .gcc9
-# %%patch130 -p1 -b .revert-gn-4980
-# %%patch131 -p1 -b .revert-gn-4960
-%patch132 -p1 -b .widevine-other-locations
-%patch135 -p1 -b .disable-ndnpc
-%patch136 -p1 -b .cstring-fix
-%if 0%{?rhel} == 7
-%patch139 -p1 -b .el7-noexcept
-%endif
-%patch140 -p1 -b .gcc-assume
-%patch141 -p1 -b .SIOCGSTAMP
-%patch142 -p1 -b .gcc-dcheck_ne-fix
-%patch143 -p1 -b .revert-daff6b
-%patch144 -p1 -b .pure-virtual-fix
-%patch145 -p1 -b .gettid-fix
-%patch146 -p1 -b .fix-v8-gcc
-%patch147 -p1 -b .git00281713
+%patch203 -p1 -b .i686permissive
+%patch204 -p1 -b .va1compat
+%endif
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
diff --git a/relax-libva-version.patch b/relax-libva-version.patch
deleted file mode 100644
index e297fd6..0000000
--- a/relax-libva-version.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 6f1309ef8fe10965e4d0018b4f1b80ac6deccdaa Mon Sep 17 00:00:00 2001
-From: Azhar Shaikh <azhar.shaikh(a)intel.com>
-Date: Fri, 30 Nov 2018 23:11:57 +0000
-Subject: [PATCH] media/gpu/vaapi: Relax the version check for VA-API
-
-Since the newer versions of VA-API are ABI compatible, relax the
-version checks for VA-API, by using VA_CHECK_VERSION().
-This will help in updating the libva to the latest releases,
-while still supporting the old versions, till the new version of
-libva is merged and picked by the builds. Thus ensuring that
-hardware accleration is not broken while updating the libva.
-
-Bug: 905814
-TEST=libva-2.3.0 and libva-2.1.0 are able to do hardware acceleration.
-
-Suggested-by: Alexandre Courbot <acourbot(a)chromium.org>
-Signed-off-by: Azhar Shaikh <azhar.shaikh(a)intel.com>
-Change-Id: I510549f72290d20676927eeeeb89a87199c062af
-Reviewed-on: https://chromium-review.googlesource.com/c/1352519
-Reviewed-by: Alexandre Courbot <acourbot(a)chromium.org>
-Reviewed-by: Hirokazu Honda <hiroh(a)chromium.org>
-Commit-Queue: Miguel Casas <mcasas(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#612832}
----
-
-diff --git a/AUTHORS b/AUTHORS
-index 567fe15..ff42fc5 100644
---- a/AUTHORS
-+++ b/AUTHORS
-@@ -103,6 +103,7 @@
- Attila Dusnoki <dati91(a)gmail.com>
- Avinaash Doreswamy <avi.nitk(a)samsung.com>
- Ayush Khandelwal <k.ayush(a)samsung.com>
-+Azhar Shaikh <azhar.shaikh(a)intel.com>
- Balazs Kelemen <b.kelemen(a)samsung.com>
- Baul Eun <baul.eun(a)samsung.com>
- Behara Mani Shyam Patro <behara.ms(a)samsung.com>
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index b415642..053384d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -333,7 +333,13 @@
- DVLOG(1) << "VAAPI version: " << major_version << "." << minor_version << " "
- << va_vendor_string_;
-
-- if (major_version != VA_MAJOR_VERSION || minor_version != VA_MINOR_VERSION) {
-+ // The VAAPI version is determined from what is loaded on the system by
-+ // calling vaInitialize(). We want a runtime evaluation of libva version,
-+ // of what is loaded on the system, with, what browser is compiled with.
-+ // Also since the libva is now ABI-compatible, relax the version check
-+ // which helps in upgrading the libva, without breaking any existing
-+ // functionality.
-+ if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
- LOG(ERROR) << "This build of Chromium requires VA-API version "
- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
- << ", system version: " << major_version << "." << minor_version;
diff --git a/revert-gn-4960.patch b/revert-gn-4960.patch
deleted file mode 100644
index bb51ada..0000000
--- a/revert-gn-4960.patch
+++ /dev/null
@@ -1,655 +0,0 @@
-Description: revert https://gn.googlesource.com/gn/+/0d038c2e0a32a528713d3dfaf1f1e0cdfe87fd46, which breaks the chromium build
-
---- a/tools/gn/build/gen.py
-+++ b/tools/gn/build/gen.py
-@@ -522,6 +522,7 @@ def WriteGNNinja(path, platform, host, o
- 'tools/gn/setup.cc',
- 'tools/gn/source_dir.cc',
- 'tools/gn/source_file.cc',
-+ 'tools/gn/source_file_type.cc',
- 'tools/gn/standard_out.cc',
- 'tools/gn/string_utils.cc',
- 'tools/gn/substitution_list.cc',
---- a/tools/gn/tools/gn/c_tool.h
-+++ b/tools/gn/tools/gn/c_tool.h
-@@ -12,6 +12,7 @@
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
- #include "tools/gn/tool.h"
---- a/tools/gn/tools/gn/compile_commands_writer.cc
-+++ b/tools/gn/tools/gn/compile_commands_writer.cc
-@@ -122,7 +122,7 @@ void WriteCommand(const Target* target,
- const CompileFlags& flags,
- std::vector<OutputFile>& tool_outputs,
- PathOutput& path_output,
-- SourceFile::Type source_type,
-+ SourceFileType source_type,
- const char* tool_name,
- EscapeOptions opts,
- std::string* compile_commands) {
-@@ -144,16 +144,16 @@ void WriteCommand(const Target* target,
- } else if (range.type == &CSubstitutionCFlags) {
- command_out << flags.cflags;
- } else if (range.type == &CSubstitutionCFlagsC) {
-- if (source_type == SourceFile::SOURCE_C)
-+ if (source_type == SOURCE_C)
- command_out << flags.cflags_c;
- } else if (range.type == &CSubstitutionCFlagsCc) {
-- if (source_type == SourceFile::SOURCE_CPP)
-+ if (source_type == SOURCE_CPP)
- command_out << flags.cflags_cc;
- } else if (range.type == &CSubstitutionCFlagsObjC) {
-- if (source_type == SourceFile::SOURCE_M)
-+ if (source_type == SOURCE_M)
- command_out << flags.cflags_objc;
- } else if (range.type == &CSubstitutionCFlagsObjCc) {
-- if (source_type == SourceFile::SOURCE_MM)
-+ if (source_type == SOURCE_MM)
- command_out << flags.cflags_objcc;
- } else if (range.type == &SubstitutionLabel ||
- range.type == &SubstitutionLabelName ||
-@@ -222,11 +222,9 @@ void CompileCommandsWriter::RenderJSON(c
- for (const auto& source : target->sources()) {
- // If this source is not a C/C++/ObjC/ObjC++ source (not header) file,
- // continue as it does not belong in the compilation database.
-- SourceFile::Type source_type = source.type();
-- if (source_type != SourceFile::SOURCE_CPP &&
-- source_type != SourceFile::SOURCE_C &&
-- source_type != SourceFile::SOURCE_M &&
-- source_type != SourceFile::SOURCE_MM)
-+ SourceFileType source_type = GetSourceFileType(source);
-+ if (source_type != SOURCE_CPP && source_type != SOURCE_C &&
-+ source_type != SOURCE_M && source_type != SOURCE_MM)
- continue;
-
- const char* tool_name = Tool::kToolNone;
-@@ -324,4 +322,4 @@ void CompileCommandsWriter::VisitDeps(co
- VisitDeps(pair.ptr, visited);
- }
- }
--}
-+}
-\ No newline at end of file
---- a/tools/gn/tools/gn/general_tool.h
-+++ b/tools/gn/tools/gn/general_tool.h
-@@ -11,6 +11,7 @@
- #include "base/macros.h"
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
- #include "tools/gn/tool.h"
---- a/tools/gn/tools/gn/header_checker.cc
-+++ b/tools/gn/tools/gn/header_checker.cc
-@@ -18,6 +18,7 @@
- #include "tools/gn/err.h"
- #include "tools/gn/filesystem_utils.h"
- #include "tools/gn/scheduler.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/target.h"
- #include "tools/gn/trace.h"
- #include "util/worker_pool.h"
-@@ -151,10 +152,9 @@ void HeaderChecker::RunCheckOverFiles(co
-
- for (const auto& file : files) {
- // Only check C-like source files (RC files also have includes).
-- SourceFile::Type type = file.first.type();
-- if (type != SourceFile::SOURCE_CPP && type != SourceFile::SOURCE_H &&
-- type != SourceFile::SOURCE_C && type != SourceFile::SOURCE_M &&
-- type != SourceFile::SOURCE_MM && type != SourceFile::SOURCE_RC)
-+ SourceFileType type = GetSourceFileType(file.first);
-+ if (type != SOURCE_CPP && type != SOURCE_H && type != SOURCE_C &&
-+ type != SOURCE_M && type != SOURCE_MM && type != SOURCE_RC)
- continue;
-
- if (!check_generated_) {
---- a/tools/gn/tools/gn/ninja_binary_target_writer.cc
-+++ b/tools/gn/tools/gn/ninja_binary_target_writer.cc
-@@ -23,23 +23,22 @@
- #include "tools/gn/ninja_utils.h"
- #include "tools/gn/scheduler.h"
- #include "tools/gn/settings.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/string_utils.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/target.h"
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::CSourceUsed() {
-- return Get(SourceFile::SOURCE_CPP) || Get(SourceFile::SOURCE_H) ||
-- Get(SourceFile::SOURCE_C) || Get(SourceFile::SOURCE_M) ||
-- Get(SourceFile::SOURCE_MM) || Get(SourceFile::SOURCE_RC) ||
-- Get(SourceFile::SOURCE_S);
-+ return Get(SOURCE_CPP) || Get(SOURCE_H) || Get(SOURCE_C) || Get(SOURCE_M) ||
-+ Get(SOURCE_MM) || Get(SOURCE_RC) || Get(SOURCE_S);
- }
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::RustSourceUsed() {
-- return Get(SourceFile::SOURCE_RS);
-+ return Get(SOURCE_RS);
- }
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::GoSourceUsed() {
-- return Get(SourceFile::SOURCE_GO);
-+ return Get(SOURCE_GO);
- }
-
- NinjaBinaryTargetWriter::NinjaBinaryTargetWriter(const Target* target,
-@@ -50,6 +49,10 @@ NinjaBinaryTargetWriter::NinjaBinaryTarg
- NinjaBinaryTargetWriter::~NinjaBinaryTargetWriter() = default;
-
- void NinjaBinaryTargetWriter::Run() {
-+ SourceFileTypeSet used_types;
-+ for (const auto& source : target_->sources())
-+ used_types.Set(GetSourceFileType(source));
-+
- NinjaCBinaryTargetWriter writer(target_, out_);
- writer.Run();
- }
---- a/tools/gn/tools/gn/ninja_binary_target_writer.h
-+++ b/tools/gn/tools/gn/ninja_binary_target_writer.h
-@@ -23,12 +23,11 @@ class NinjaBinaryTargetWriter : public N
- class SourceFileTypeSet {
- public:
- SourceFileTypeSet() {
-- memset(flags_, 0,
-- sizeof(bool) * static_cast<int>(SourceFile::SOURCE_NUMTYPES));
-+ memset(flags_, 0, sizeof(bool) * static_cast<int>(SOURCE_NUMTYPES));
- }
-
-- void Set(SourceFile::Type type) { flags_[static_cast<int>(type)] = true; }
-- bool Get(SourceFile::Type type) const {
-+ void Set(SourceFileType type) { flags_[static_cast<int>(type)] = true; }
-+ bool Get(SourceFileType type) const {
- return flags_[static_cast<int>(type)];
- }
-
-@@ -37,7 +36,7 @@ class NinjaBinaryTargetWriter : public N
- bool GoSourceUsed();
-
- private:
-- bool flags_[static_cast<int>(SourceFile::SOURCE_NUMTYPES)];
-+ bool flags_[static_cast<int>(SOURCE_NUMTYPES)];
- };
-
- NinjaBinaryTargetWriter(const Target* target, std::ostream& out);
---- a/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
-+++ b/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
-@@ -24,6 +24,7 @@
- #include "tools/gn/ninja_utils.h"
- #include "tools/gn/scheduler.h"
- #include "tools/gn/settings.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/string_utils.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/target.h"
-@@ -66,27 +67,27 @@ void AddSourceSetObjectFiles(const Targe
- if (source_set->GetOutputFilesForSource(source, &tool_name, &tool_outputs))
- obj_files->push_back(tool_outputs[0]);
-
-- used_types.Set(source.type());
-+ used_types.Set(GetSourceFileType(source));
- }
-
- // Add MSVC precompiled header object files. GCC .gch files are not object
- // files so they are omitted.
- if (source_set->config_values().has_precompiled_headers()) {
-- if (used_types.Get(SourceFile::SOURCE_C)) {
-+ if (used_types.Get(SOURCE_C)) {
- const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCc);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
- GetPCHOutputFiles(source_set, CTool::kCToolCc, &tool_outputs);
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_CPP)) {
-+ if (used_types.Get(SOURCE_CPP)) {
- const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCxx);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
- GetPCHOutputFiles(source_set, CTool::kCToolCxx, &tool_outputs);
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_M)) {
-+ if (used_types.Get(SOURCE_M)) {
- const CTool* tool =
- source_set->toolchain()->GetToolAsC(CTool::kCToolObjC);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
-@@ -94,7 +95,7 @@ void AddSourceSetObjectFiles(const Targe
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_MM)) {
- const CTool* tool =
- source_set->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
-@@ -118,7 +119,7 @@ void NinjaCBinaryTargetWriter::Run() {
- // Figure out what source types are needed.
- SourceFileTypeSet used_types;
- for (const auto& source : target_->sources())
-- used_types.Set(source.type());
-+ used_types.Set(GetSourceFileType(source));
-
- WriteCompilerVars(used_types);
-
-@@ -234,34 +235,31 @@ void NinjaCBinaryTargetWriter::WriteComp
- target_->config_values().has_precompiled_headers();
-
- EscapeOptions opts = GetFlagOptions();
-- if (used_types.Get(SourceFile::SOURCE_S) ||
-- used_types.Get(SourceFile::SOURCE_ASM)) {
-+ if (used_types.Get(SOURCE_S) || used_types.Get(SOURCE_ASM)) {
- WriteOneFlag(target_, &CSubstitutionAsmFlags, false, Tool::kToolNone,
- &ConfigValues::asmflags, opts, path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_C) ||
-- used_types.Get(SourceFile::SOURCE_CPP) ||
-- used_types.Get(SourceFile::SOURCE_M) ||
-- used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_C) || used_types.Get(SOURCE_CPP) ||
-+ used_types.Get(SOURCE_M) || used_types.Get(SOURCE_MM)) {
- WriteOneFlag(target_, &CSubstitutionCFlags, false, Tool::kToolNone,
- &ConfigValues::cflags, opts, path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_C)) {
-+ if (used_types.Get(SOURCE_C)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsC, has_precompiled_headers,
- CTool::kCToolCc, &ConfigValues::cflags_c, opts, path_output_,
- out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_CPP)) {
-+ if (used_types.Get(SOURCE_CPP)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsCc, has_precompiled_headers,
- CTool::kCToolCxx, &ConfigValues::cflags_cc, opts, path_output_,
- out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_M)) {
-+ if (used_types.Get(SOURCE_M)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsObjC, has_precompiled_headers,
- CTool::kCToolObjC, &ConfigValues::cflags_objc, opts,
- path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_MM)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsObjCc, has_precompiled_headers,
- CTool::kCToolObjCxx, &ConfigValues::cflags_objcc, opts,
- path_output_, out_);
-@@ -321,14 +319,14 @@ void NinjaCBinaryTargetWriter::WritePCHC
-
- const CTool* tool_c = target_->toolchain()->GetToolAsC(CTool::kCToolCc);
- if (tool_c && tool_c->precompiled_header_type() != CTool::PCH_NONE &&
-- used_types.Get(SourceFile::SOURCE_C)) {
-+ used_types.Get(SOURCE_C)) {
- WritePCHCommand(&CSubstitutionCFlagsC, CTool::kCToolCc,
- tool_c->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
- }
- const CTool* tool_cxx = target_->toolchain()->GetToolAsC(CTool::kCToolCxx);
- if (tool_cxx && tool_cxx->precompiled_header_type() != CTool::PCH_NONE &&
-- used_types.Get(SourceFile::SOURCE_CPP)) {
-+ used_types.Get(SOURCE_CPP)) {
- WritePCHCommand(&CSubstitutionCFlagsCc, CTool::kCToolCxx,
- tool_cxx->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -336,7 +334,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
-
- const CTool* tool_objc = target_->toolchain()->GetToolAsC(CTool::kCToolObjC);
- if (tool_objc && tool_objc->precompiled_header_type() == CTool::PCH_GCC &&
-- used_types.Get(SourceFile::SOURCE_M)) {
-+ used_types.Get(SOURCE_M)) {
- WritePCHCommand(&CSubstitutionCFlagsObjC, CTool::kCToolObjC,
- tool_objc->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -345,7 +343,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
- const CTool* tool_objcxx =
- target_->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
- if (tool_objcxx && tool_objcxx->precompiled_header_type() == CTool::PCH_GCC &&
-- used_types.Get(SourceFile::SOURCE_MM)) {
-+ used_types.Get(SOURCE_MM)) {
- WritePCHCommand(&CSubstitutionCFlagsObjCc, CTool::kCToolObjCxx,
- tool_objcxx->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -478,7 +476,7 @@ void NinjaCBinaryTargetWriter::WriteSour
- deps.resize(0);
- const char* tool_name = Tool::kToolNone;
- if (!target_->GetOutputFilesForSource(source, &tool_name, &tool_outputs)) {
-- if (source.type() == SourceFile::SOURCE_DEF)
-+ if (GetSourceFileType(source) == SOURCE_DEF)
- other_files->push_back(source);
- continue; // No output for this source.
- }
-@@ -599,7 +597,7 @@ void NinjaCBinaryTargetWriter::WriteLink
- const SourceFile* optional_def_file = nullptr;
- if (!other_files.empty()) {
- for (const SourceFile& src_file : other_files) {
-- if (src_file.type() == SourceFile::SOURCE_DEF) {
-+ if (GetSourceFileType(src_file) == SOURCE_DEF) {
- optional_def_file = &src_file;
- implicit_deps.push_back(
- OutputFile(settings_->build_settings(), src_file));
---- a/tools/gn/tools/gn/source_file.cc
-+++ b/tools/gn/tools/gn/source_file.cc
-@@ -21,48 +21,18 @@ void AssertValueSourceFileString(const s
- DCHECK(!EndsWithSlash(s)) << s;
- }
-
--SourceFile::Type GetSourceFileType(const std::string& file) {
-- base::StringPiece extension = FindExtension(&file);
-- if (extension == "cc" || extension == "cpp" || extension == "cxx")
-- return SourceFile::SOURCE_CPP;
-- if (extension == "h" || extension == "hpp" || extension == "hxx" ||
-- extension == "hh" || extension == "inc")
-- return SourceFile::SOURCE_H;
-- if (extension == "c")
-- return SourceFile::SOURCE_C;
-- if (extension == "m")
-- return SourceFile::SOURCE_M;
-- if (extension == "mm")
-- return SourceFile::SOURCE_MM;
-- if (extension == "rc")
-- return SourceFile::SOURCE_RC;
-- if (extension == "S" || extension == "s" || extension == "asm")
-- return SourceFile::SOURCE_S;
-- if (extension == "o" || extension == "obj")
-- return SourceFile::SOURCE_O;
-- if (extension == "def")
-- return SourceFile::SOURCE_DEF;
-- if (extension == "rs")
-- return SourceFile::SOURCE_RS;
-- if (extension == "go")
-- return SourceFile::SOURCE_GO;
--
-- return SourceFile::SOURCE_UNKNOWN;
--}
--
- } // namespace
-
--SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
-+SourceFile::SourceFile() = default;
-
- SourceFile::SourceFile(const base::StringPiece& p)
-- : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
-+ : value_(p.data(), p.size()) {
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
- }
-
--SourceFile::SourceFile(SwapIn, std::string* value)
-- : type_(GetSourceFileType(*value)) {
-+SourceFile::SourceFile(SwapIn, std::string* value) {
- value_.swap(*value);
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
---- a/tools/gn/tools/gn/source_file.h
-+++ b/tools/gn/tools/gn/source_file.h
-@@ -20,28 +20,6 @@ class SourceDir;
- // ends in one.
- class SourceFile {
- public:
-- // This should be sequential integers starting from 0 so they can be used as
-- // array indices.
-- enum Type {
-- SOURCE_UNKNOWN = 0,
-- SOURCE_ASM,
-- SOURCE_C,
-- SOURCE_CPP,
-- SOURCE_H,
-- SOURCE_M,
-- SOURCE_MM,
-- SOURCE_S,
-- SOURCE_RC,
-- SOURCE_O, // Object files can be inputs, too. Also counts .obj.
-- SOURCE_DEF,
--
-- SOURCE_RS,
-- SOURCE_GO,
--
-- // Must be last.
-- SOURCE_NUMTYPES,
-- };
--
- enum SwapIn { SWAP_IN };
-
- SourceFile();
-@@ -58,7 +36,6 @@ class SourceFile {
-
- bool is_null() const { return value_.empty(); }
- const std::string& value() const { return value_; }
-- Type type() const { return type_; }
-
- // Returns everything after the last slash.
- std::string GetName() const;
-@@ -103,7 +80,6 @@ class SourceFile {
- friend class SourceDir;
-
- std::string value_;
-- Type type_;
-
- // Copy & assign supported.
- };
---- /dev/null
-+++ b/tools/gn/tools/gn/source_file_type.cc
-@@ -0,0 +1,37 @@
-+// Copyright 2014 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.
-+
-+#include "tools/gn/source_file_type.h"
-+
-+#include "tools/gn/filesystem_utils.h"
-+#include "tools/gn/source_file.h"
-+
-+SourceFileType GetSourceFileType(const SourceFile& file) {
-+ base::StringPiece extension = FindExtension(&file.value());
-+ if (extension == "cc" || extension == "cpp" || extension == "cxx")
-+ return SOURCE_CPP;
-+ if (extension == "h" || extension == "hpp" || extension == "hxx" ||
-+ extension == "hh")
-+ return SOURCE_H;
-+ if (extension == "c")
-+ return SOURCE_C;
-+ if (extension == "m")
-+ return SOURCE_M;
-+ if (extension == "mm")
-+ return SOURCE_MM;
-+ if (extension == "rc")
-+ return SOURCE_RC;
-+ if (extension == "S" || extension == "s" || extension == "asm")
-+ return SOURCE_S;
-+ if (extension == "o" || extension == "obj")
-+ return SOURCE_O;
-+ if (extension == "def")
-+ return SOURCE_DEF;
-+ if (extension == "rs")
-+ return SOURCE_RS;
-+ if (extension == "go")
-+ return SOURCE_GO;
-+
-+ return SOURCE_UNKNOWN;
-+}
---- /dev/null
-+++ b/tools/gn/tools/gn/source_file_type.h
-@@ -0,0 +1,34 @@
-+// Copyright 2014 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.
-+
-+#ifndef TOOLS_GN_SOURCE_FILE_TYPE_H_
-+#define TOOLS_GN_SOURCE_FILE_TYPE_H_
-+
-+class SourceFile;
-+
-+// This should be sequential integers starting from 0 so they can be used as
-+// array indices.
-+enum SourceFileType {
-+ SOURCE_UNKNOWN = 0,
-+ SOURCE_ASM,
-+ SOURCE_C,
-+ SOURCE_CPP,
-+ SOURCE_H,
-+ SOURCE_M,
-+ SOURCE_MM,
-+ SOURCE_S,
-+ SOURCE_RC,
-+ SOURCE_O, // Object files can be inputs, too. Also counts .obj.
-+ SOURCE_DEF,
-+
-+ SOURCE_RS,
-+ SOURCE_GO,
-+
-+ // Must be last.
-+ SOURCE_NUMTYPES,
-+};
-+
-+SourceFileType GetSourceFileType(const SourceFile& file);
-+
-+#endif // TOOLS_GN_SOURCE_FILE_TYPE_H_
---- a/tools/gn/tools/gn/target.cc
-+++ b/tools/gn/tools/gn/target.cc
-@@ -16,6 +16,7 @@
- #include "tools/gn/filesystem_utils.h"
- #include "tools/gn/functions.h"
- #include "tools/gn/scheduler.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/tool.h"
- #include "tools/gn/toolchain.h"
-@@ -486,10 +487,10 @@ bool Target::GetOutputFilesForSource(con
- outputs->clear();
- *computed_tool_type = Tool::kToolNone;
-
-- SourceFile::Type file_type = source.type();
-- if (file_type == SourceFile::SOURCE_UNKNOWN)
-+ SourceFileType file_type = GetSourceFileType(source);
-+ if (file_type == SOURCE_UNKNOWN)
- return false;
-- if (file_type == SourceFile::SOURCE_O) {
-+ if (file_type == SOURCE_O) {
- // Object files just get passed to the output and not compiled.
- outputs->push_back(OutputFile(settings()->build_settings(), source));
- return true;
---- a/tools/gn/tools/gn/tool.cc
-+++ b/tools/gn/tools/gn/tool.cc
-@@ -261,27 +261,27 @@ std::unique_ptr<Tool> Tool::CreateTool(c
- }
-
- // static
--const char* Tool::GetToolTypeForSourceType(SourceFile::Type type) {
-+const char* Tool::GetToolTypeForSourceType(SourceFileType type) {
- switch (type) {
-- case SourceFile::SOURCE_C:
-+ case SOURCE_C:
- return CTool::kCToolCc;
-- case SourceFile::SOURCE_CPP:
-+ case SOURCE_CPP:
- return CTool::kCToolCxx;
-- case SourceFile::SOURCE_M:
-+ case SOURCE_M:
- return CTool::kCToolObjC;
-- case SourceFile::SOURCE_MM:
-+ case SOURCE_MM:
- return CTool::kCToolObjCxx;
-- case SourceFile::SOURCE_ASM:
-- case SourceFile::SOURCE_S:
-+ case SOURCE_ASM:
-+ case SOURCE_S:
- return CTool::kCToolAsm;
-- case SourceFile::SOURCE_RC:
-+ case SOURCE_RC:
- return CTool::kCToolRc;
-- case SourceFile::SOURCE_UNKNOWN:
-- case SourceFile::SOURCE_H:
-- case SourceFile::SOURCE_O:
-- case SourceFile::SOURCE_DEF:
-- case SourceFile::SOURCE_GO:
-- case SourceFile::SOURCE_RS:
-+ case SOURCE_UNKNOWN:
-+ case SOURCE_H:
-+ case SOURCE_O:
-+ case SOURCE_DEF:
-+ case SOURCE_GO:
-+ case SOURCE_RS:
- return kToolNone;
- default:
- NOTREACHED();
---- a/tools/gn/tools/gn/tool.h
-+++ b/tools/gn/tools/gn/tool.h
-@@ -12,7 +12,7 @@
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
--#include "tools/gn/source_file.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
-
-@@ -171,7 +171,7 @@ class Tool {
- Toolchain* toolchain,
- Err* err);
-
-- static const char* GetToolTypeForSourceType(SourceFile::Type type);
-+ static const char* GetToolTypeForSourceType(SourceFileType type);
- static const char* GetToolTypeForTargetFinalOutput(const Target* target);
-
- protected:
---- a/tools/gn/tools/gn/toolchain.cc
-+++ b/tools/gn/tools/gn/toolchain.cc
-@@ -88,16 +88,16 @@ void Toolchain::ToolchainSetupComplete()
- setup_complete_ = true;
- }
-
--const Tool* Toolchain::GetToolForSourceType(SourceFile::Type type) const {
-+const Tool* Toolchain::GetToolForSourceType(SourceFileType type) const {
- return GetTool(Tool::GetToolTypeForSourceType(type));
- }
-
--const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFile::Type type) const {
-+const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFileType type) const {
- return GetToolAsC(Tool::GetToolTypeForSourceType(type));
- }
-
- const GeneralTool* Toolchain::GetToolForSourceTypeAsGeneral(
-- SourceFile::Type type) const {
-+ SourceFileType type) const {
- return GetToolAsGeneral(Tool::GetToolTypeForSourceType(type));
- }
-
---- a/tools/gn/tools/gn/toolchain.h
-+++ b/tools/gn/tools/gn/toolchain.h
-@@ -12,6 +12,7 @@
- #include "tools/gn/item.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_type.h"
- #include "tools/gn/tool.h"
- #include "tools/gn/value.h"
-@@ -87,9 +88,9 @@ class Toolchain : public Item {
- }
-
- // Returns the tool for compiling the given source file type.
-- const Tool* GetToolForSourceType(SourceFile::Type type) const;
-- const CTool* GetToolForSourceTypeAsC(SourceFile::Type type) const;
-- const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFile::Type type) const;
-+ const Tool* GetToolForSourceType(SourceFileType type) const;
-+ const CTool* GetToolForSourceTypeAsC(SourceFileType type) const;
-+ const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFileType type) const;
-
- // Returns the tool that produces the final output for the given target type.
- // This isn't necessarily the tool you would expect. For copy target, this
---- a/tools/gn/tools/gn/visual_studio_writer.cc
-+++ b/tools/gn/tools/gn/visual_studio_writer.cc
-@@ -24,6 +24,7 @@
- #include "tools/gn/label_pattern.h"
- #include "tools/gn/parse_tree.h"
- #include "tools/gn/path_output.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/standard_out.h"
- #include "tools/gn/target.h"
- #include "tools/gn/variables.h"
diff --git a/revert-gn-4980.patch b/revert-gn-4980.patch
deleted file mode 100644
index fe550e9..0000000
--- a/revert-gn-4980.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-Description: revert https://gn.googlesource.com/gn/+/8730b0feb6b991fa47368566501ab9ccfb453c92, which breaks the chromium build
-
---- a/tools/gn/tools/gn/binary_target_generator.cc
-+++ b/tools/gn/tools/gn/binary_target_generator.cc
-@@ -68,38 +68,6 @@ void BinaryTargetGenerator::DoRun() {
- return;
- }
-
--bool BinaryTargetGenerator::FillSources() {
-- bool ret = TargetGenerator::FillSources();
-- for (std::size_t i = 0; i < target_->sources().size(); ++i) {
-- const auto& source = target_->sources()[i];
-- switch (source.type()) {
-- case SourceFile::SOURCE_CPP:
-- case SourceFile::SOURCE_H:
-- case SourceFile::SOURCE_C:
-- case SourceFile::SOURCE_M:
-- case SourceFile::SOURCE_MM:
-- case SourceFile::SOURCE_S:
-- case SourceFile::SOURCE_ASM:
-- case SourceFile::SOURCE_O:
-- // These are allowed.
-- break;
-- case SourceFile::SOURCE_RC:
-- case SourceFile::SOURCE_DEF:
-- case SourceFile::SOURCE_RS:
-- case SourceFile::SOURCE_GO:
-- case SourceFile::SOURCE_UNKNOWN:
-- case SourceFile::SOURCE_NUMTYPES:
-- *err_ =
-- Err(scope_->GetValue(variables::kSources, true)->list_value()[i],
-- std::string("Only source, header, and object files belong in "
-- "the sources of a ") +
-- Target::GetStringForOutputType(target_->output_type()) +
-- ". " + source.value() + " is not one of the valid types.");
-- }
-- }
-- return ret;
--}
--
- bool BinaryTargetGenerator::FillCompleteStaticLib() {
- if (target_->output_type() == Target::STATIC_LIBRARY) {
- const Value* value = scope_->GetValue(variables::kCompleteStaticLib, true);
---- a/tools/gn/tools/gn/binary_target_generator.h
-+++ b/tools/gn/tools/gn/binary_target_generator.h
-@@ -22,7 +22,6 @@ class BinaryTargetGenerator : public Tar
-
- protected:
- void DoRun() override;
-- bool FillSources() override;
-
- private:
- bool FillCompleteStaticLib();
---- a/tools/gn/tools/gn/source_dir.cc
-+++ b/tools/gn/tools/gn/source_dir.cc
-@@ -98,10 +98,10 @@ SourceFile SourceDir::ResolveRelativeFil
- return ret;
-
- const std::string& input_string = p.string_value();
-- if (!ValidateResolveInput<std::string>(true, p, input_string, err))
-+ if (!ValidateResolveInput<std::string>(true, p, input_string, err)) {
- return ret;
--
-- ret.SetValue(ResolveRelative(input_string, value_, true, source_root));
-+ }
-+ ret.value_ = ResolveRelative(input_string, value_, true, source_root);
- return ret;
- }
-
---- a/tools/gn/tools/gn/source_file.cc
-+++ b/tools/gn/tools/gn/source_file.cc
-@@ -55,19 +55,18 @@ SourceFile::Type GetSourceFileType(const
- SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
-
- SourceFile::SourceFile(const base::StringPiece& p)
-- : value_(p.data(), p.size()) {
-+ : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
-- type_ = GetSourceFileType(value_);
- }
-
--SourceFile::SourceFile(SwapIn, std::string* value) {
-+SourceFile::SourceFile(SwapIn, std::string* value)
-+ : type_(GetSourceFileType(*value)) {
- value_.swap(*value);
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
-- type_ = GetSourceFileType(value_);
- }
-
- SourceFile::~SourceFile() = default;
-@@ -93,8 +92,3 @@ SourceDir SourceFile::GetDir() const {
- base::FilePath SourceFile::Resolve(const base::FilePath& source_root) const {
- return ResolvePath(value_, true, source_root);
- }
--
--void SourceFile::SetValue(const std::string& value) {
-- value_ = value;
-- type_ = GetSourceFileType(value_);
--}
---- a/tools/gn/tools/gn/source_file.h
-+++ b/tools/gn/tools/gn/source_file.h
-@@ -97,16 +97,11 @@ class SourceFile {
- return value_ < other.value_;
- }
-
-- void swap(SourceFile& other) {
-- value_.swap(other.value_);
-- std::swap(type_, other.type_);
-- }
-+ void swap(SourceFile& other) { value_.swap(other.value_); }
-
- private:
- friend class SourceDir;
-
-- void SetValue(const std::string& value);
--
- std::string value_;
- Type type_;
-
---- a/tools/gn/tools/gn/target_generator.h
-+++ b/tools/gn/tools/gn/target_generator.h
-@@ -47,7 +47,7 @@ class TargetGenerator {
-
- const BuildSettings* GetBuildSettings() const;
-
-- virtual bool FillSources();
-+ bool FillSources();
- bool FillPublic();
- bool FillConfigs();
- bool FillOutputs(bool allow_substitutions);
commit cae7041976921f250979d79a53cd227247927c18
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 21 13:51:11 2019 +0200
Update the list of private libraries and remove a pak file that was removed
diff --git a/chromium.spec b/chromium.spec
index e06bcdd..8a246b7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -54,9 +54,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
%else
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -1753,7 +1753,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chrome_*.pak
%{chromium_path}/resources.pak
%{chromium_path}/icudtl.dat
-%{chromium_path}/views_mus_resources.pak
%{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh
%{chromium_path}/MEIPreload/
commit 53c822f6be8f1d5140bb2be4d122e936f096a9a9
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 22:07:44 2019 +0200
Fix the previously uploaded patch
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
index c59702f..aec3107 100644
--- a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -12,13 +12,13 @@ diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-conste
MessageTracker::MessageTracker() = default;
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
---- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
@@ -36,7 +36,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
-- static constexpr base::TimeDelta kCleanupInterval;
+- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::TimeDelta::FromMinutes(2);
commit c55af60ffa59e4d4fc75644982db695826c58f54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 21:36:06 2019 +0200
Fix the build of remoting_all target
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
new file mode 100644
index 0000000..c59702f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -0,0 +1,27 @@
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
+@@ -9,8 +9,7 @@
+ namespace remoting {
+
+ // static
+-const base::TimeDelta MessageTracker::kCleanupInterval =
+- base::TimeDelta::FromMinutes(2);
++constexpr base::TimeDelta MessageTracker::kCleanupInterval;
+
+ MessageTracker::MessageTracker() = default;
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
+@@ -36,7 +36,8 @@ class MessageTracker final {
+
+ // All IDs older than now - kCleanupInterval will be eventually removed, but
+ // they are not guaranteed to be immediately removed after the interval.
+- static constexpr base::TimeDelta kCleanupInterval;
++ static constexpr base::TimeDelta kCleanupInterval =
++ base::TimeDelta::FromMinutes(2);
+
+ void RemoveExpiredIds();
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..64532df
--- /dev/null
+++ b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
++++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
+ certificate_file,
diff --git a/chromium.spec b/chromium.spec
index f003849..e06bcdd 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -297,10 +297,13 @@ Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
-# TBD - need to submit it
-# In GCC one can't use alignas() for exported classes (as described in
-# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+# In GCC one can't use alignas() for exported classes
+# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+# Needs to be submitted..
+Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
+Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -874,6 +877,8 @@ udev.
%patch59 -p1 -b .gcc-accountinfo-move-noexcept
%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
+%patch62 -p1 -b .gcc-remoting-constexpr
+%patch63 -p1 -b .vtable-symbol-undefined
# EPEL specific patches
%if 0%{?rhel} == 7
commit ba2f198b9f3f9f682f22b035452537a6236294d1
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 16 13:58:53 2019 +0200
//third_party dependency missing for remoting
diff --git a/chromium.spec b/chromium.spec
index de9e05b..f003849 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1207,6 +1207,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/google_trust_services' \
'third_party/googletest' \
'third_party/glslang' \
'third_party/grpc' \
commit 1196d0d541965da13ee93b40cae1dc08167faab5
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 21:14:35 2019 +0200
Backport and create more of the GCC fixes
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..5f45a8f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,53 @@
+From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 18:38:12 +0200
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
+
+AccountInfo declares them as noexcept and uses default implementation,
+so all its members (including AccountId) should be noexcept. But AccountId
+is not noexcept. To fix it we just need to make CoreAccountId move
+operator/assign operator noexcept.
+
+Bug: 819294
+Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
+---
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d808082..12eefe3 100644
+--- a/google_apis/gaia/core_account_id.cc
++++ b/google_apis/gaia/core_account_id.cc
+@@ -6,8 +6,16 @@
+
+ CoreAccountId::CoreAccountId() = default;
+
++CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
++
++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::~CoreAccountId() = default;
+
++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
++
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
+index 5ea602a..c2d1911 100644
+--- a/google_apis/gaia/core_account_id.h
++++ b/google_apis/gaia/core_account_id.h
+@@ -14,8 +14,13 @@
+ // for design and tracking).
+ struct CoreAccountId {
+ CoreAccountId();
++ CoreAccountId(const CoreAccountId&);
++ CoreAccountId(CoreAccountId&&) noexcept;
+ ~CoreAccountId();
+
++ CoreAccountId& operator=(const CoreAccountId&);
++ CoreAccountId& operator=(CoreAccountId&&) noexcept;
++
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+ // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
new file mode 100644
index 0000000..2876de4
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
@@ -0,0 +1,42 @@
+From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 10:27:19 +0200
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+
+In GCC, build is failing because history::QueryURLResult declares its move
+assignment operator as noexcept using default implementation. That requires
+its members to provide a move assignment operator that is noexcept too.
+
+But URLRow was missing noexcept declaration in move assignment operator (even
+though it was providing noexcept to its move constructor).
+
+Bug: 819294
+Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
+---
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd..aec0101 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) = default;
++URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
+index 8f6f9cf..31a1ef8 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@
+
+ virtual ~URLRow();
+ URLRow& operator=(const URLRow& other);
+- URLRow& operator=(URLRow&& other);
++ URLRow& operator=(URLRow&& other) noexcept;
+
+ URLID id() const { return id_; }
+
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
new file mode 100644
index 0000000..cc91d1e
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -0,0 +1,14 @@
+diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
+--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
++++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
+@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
+ DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
+ };
+
+-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
+- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
++class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
++ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
+ : public CSSPropertyValueSet {
+ public:
+ ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
new file mode 100644
index 0000000..ad40bb9
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
@@ -0,0 +1,36 @@
+From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 22:01:03 +0200
+Subject: [PATCH] IWYU: ThemeService requires NativeTheme
+
+As ThemeService referes to NativeTheme through a ScopedObserver,
+the full declaration is required.
+
+Bug: 819294
+Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
+---
+
+diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
+index d65388e2..23dc86d 100644
+--- a/chrome/browser/themes/theme_service.cc
++++ b/chrome/browser/themes/theme_service.cc
+@@ -54,7 +54,6 @@
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/native_theme/common_theme.h"
+-#include "ui/native_theme/native_theme.h"
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+ #include "base/scoped_observer.h"
+diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
+index 6c79c72..f93dc0d 100644
+--- a/chrome/browser/themes/theme_service.h
++++ b/chrome/browser/themes/theme_service.h
+@@ -25,6 +25,7 @@
+ #include "extensions/buildflags/buildflags.h"
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
++#include "ui/native_theme/native_theme.h"
+ #include "ui/native_theme/native_theme_observer.h"
+
+ class BrowserThemePack;
diff --git a/chromium.spec b/chromium.spec
index 64e3243..de9e05b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,6 +291,16 @@ Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
+# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
+Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
+Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
+Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+# TBD - need to submit it
+# In GCC one can't use alignas() for exported classes (as described in
+# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -860,6 +870,10 @@ udev.
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
%patch57 -p1 -b .gcc-initialization-order
+%patch58 -p1 -b .gcc-history-move-noexcept
+%patch59 -p1 -b .gcc-accountinfo-move-noexcept
+%patch60 -p1 -b .gcc-themeservice-includes
+%patch61 -p1 -b .gcc-no-alignas-and-export
# EPEL specific patches
%if 0%{?rhel} == 7
commit b01a0be49606614662f2dc0a5c7cc018c14b2ecf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:10:04 2019 +0200
Upload the new cleaned tarball with aarch64 sources
Previously I forgot to pass the --ffmpegarm while generating the
tarball.
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index e190296..2f27435 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,7 +216,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
- libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index d6d53e4..b7a420d 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
commit 170da1572c9fbe5224d94a9835b423cfa17fe7ae
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:03:49 2019 +0200
Backport another upstream build fix
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
new file mode 100644
index 0000000..3bf394f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-initialization-order.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
+
+XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
+same order of the declaration. GCC fails because of that.
+
+Bug: 819294
+Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
+Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd4..0aa6892 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@
+
+ XSetWindowAttributes swa = {
+ .background_pixmap = 0,
+- .bit_gravity = NorthWestGravity,
+- .colormap = g_colormap,
+ .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
+ .border_pixel = 0,
++ .bit_gravity = NorthWestGravity,
++ .colormap = g_colormap,
+ };
+ auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
+ if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium.spec b/chromium.spec
index f91b60b..64e3243 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -289,6 +289,8 @@ Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
+Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -857,6 +859,7 @@ udev.
%patch54 -p1 -b .gcc-feature-policy-parser
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
+%patch57 -p1 -b .gcc-initialization-order
# EPEL specific patches
%if 0%{?rhel} == 7
commit f31a3b1f0c9d88610827a22cbd6cbc8661a9a85f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:22:37 2019 +0200
Update the Pulseaudio's pa_operation_get_state() signature
Missed it while updating the Pulseaudio signatures.
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
index 37d3dfa..d4e2b46 100644
--- a/chromium-76.0.3809.100-pulse-api-change.patch
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -1,7 +1,7 @@
-diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
---- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
-+++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
-@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200
+@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info
pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
@@ -10,6 +10,11 @@ diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change ch
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+-pa_operation_state_t pa_operation_get_state(pa_operation* o);
++pa_operation_state_t pa_operation_get_state(const pa_operation* o);
+ void pa_context_unref(pa_context* c);
+ void pa_operation_unref(pa_operation* o);
+ int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
int pa_stream_disconnect(pa_stream* s);
int pa_stream_drop(pa_stream *p);
commit 923b51d3f2c64069f49e4f19405f4e7f5462cb45
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:17:42 2019 +0200
Add missing ffmpeg file on aarch64
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..e190296 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,6 +216,7 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
+ libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index 4e53fd1..d6d53e4 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
commit b2aa2214697a15ff6df60d075910c42368111147
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 16:52:41 2019 +0200
Pulseaudio changed the API in 12.99 and we need to adapt the signatures
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
new file mode 100644
index 0000000..37d3dfa
--- /dev/null
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -0,0 +1,42 @@
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
+@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+ pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
+ pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
+ pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
+-pa_context_state_t pa_context_get_state(pa_context* c);
++pa_context_state_t pa_context_get_state(const pa_context* c);
+ pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
+ pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
+ void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
+ int pa_stream_disconnect(pa_stream* s);
+ int pa_stream_drop(pa_stream *p);
+ pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
+-uint32_t pa_stream_get_device_index(pa_stream* s);
++uint32_t pa_stream_get_device_index(const pa_stream* s);
+ int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
+-pa_stream_state_t pa_stream_get_state(pa_stream* p);
++pa_stream_state_t pa_stream_get_state(const pa_stream* p);
+ pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
+ pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
+ pa_proplist* pa_proplist_new(void);
+-int pa_proplist_contains(pa_proplist* p, const char* key);
++int pa_proplist_contains(const pa_proplist* p, const char* key);
+ void pa_proplist_free(pa_proplist* p);
+-const char* pa_proplist_gets(pa_proplist* p, const char* key);
++const char* pa_proplist_gets(const pa_proplist* p, const char* key);
+ int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
+-size_t pa_stream_readable_size(pa_stream *p);
++size_t pa_stream_readable_size(const pa_stream *p);
+ int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
+ void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
+ void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
+ int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
+ void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
+ void pa_stream_unref(pa_stream* s);
+-int pa_context_errno(pa_context *c);
++int pa_context_errno(const pa_context *c);
+ const char* pa_strerror(int error);
+ pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
diff --git a/chromium.spec b/chromium.spec
index bf6bdcb..f91b60b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -141,6 +141,13 @@ BuildRequires: libicu-devel >= 5.4
%global bundleharfbuzz 0
%endif
+# Pulseaudio changed the API a little in 12.99.1
+%if 0%{?fedora} > 30
+%global pulseaudioapichange 1
+%else
+%global pulseaudioapichange 0
+%endif
+
### 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.
@@ -306,6 +313,8 @@ Patch202: enable-vaapi.patch
Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+# Pulseaudio changed the API a little in 12.99.1
+Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -491,7 +500,6 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: pulseaudio-libs-devel
BuildRequires: python2-devel
%if 0%{?fedora} > 27
BuildRequires: python2-beautifulsoup4
@@ -871,6 +879,9 @@ udev.
%endif
%endif
+%if 0%{?pulseaudioapichange}
+%patch205 -p1 -b .pulseaudioapichange
+%endif
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
commit a848ba49241b8d9360d50f2be4660b070679bc4b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Aug 14 09:52:16 2019 -0400
loosen dependency on chromium-libs in freeworld build
diff --git a/chromium.spec b/chromium.spec
index 0d575b1..bf6bdcb 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -730,7 +730,7 @@ Shared libraries used by chromium (and chrome-remote-desktop).
Summary: Chromium media libraries built with all possible codecs
Provides: chromium-libs-media = %{version}-%{release}
Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives
commit 081e6e7deb9f6a686ff904567f5097b1a87d9b75
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:41:23 2019 +0200
third_party/boringssl/linux-x86_64/crypto/third_party/sike needs to be preserved
diff --git a/chromium.spec b/chromium.spec
index f23664a..0d575b1 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1137,7 +1137,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/boringssl/src/third_party/sike' \
- 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike' \
+ 'third_party/boringssl/linux-aarch64/crypto/third_party/sike' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
commit 6338de1419172f50e62e210ac3c70d2490902c4a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:38:35 2019 +0200
third_party/openscreen need to be preserved
diff --git a/chromium.spec b/chromium.spec
index 383bfa9..f23664a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1232,6 +1232,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
+ 'third_party/openscreen' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
commit 333adfcd3829e396207f60316598909ba36b7f8e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 14:38:51 2019 +0200
Backport more build fixes from upstream
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..587abf3
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
+
+Use brace-list notation to wrap the already existing brace-list for
+initializing the flat-set. This resolves an ambiguous instantiation
+in GCC.
+
+Bug: 819294
+Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
+Reviewed-by: Matt Menke <mmenke(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c0..60a03f6 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -224,7 +224,7 @@
+ "application/x-www-form-urlencoded",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
new file mode 100644
index 0000000..0dbffd5
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
@@ -0,0 +1,76 @@
+From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 19:44:58 +0200
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
+
+Compilation fails because we are declaring ParseValueForFuzzer as friend method,
+but we are declaring it is in anonymous namespace. Moving to global namespace
+still fails (in this case in Clang).
+
+So final solution is making it a public static method of FeaturePolicyParser.
+
+Bug: 819294
+Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
+---
+
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+index 3b7f4a9..eaee409 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+@@ -317,6 +317,13 @@
+ return value;
+ }
+
++void FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType feature_type,
++ const WTF::String& value_string) {
++ bool ok;
++ ParseValueForType(feature_type, value_string, &ok);
++}
++
+ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
+ const ParsedFeaturePolicy& policy) {
+ return std::any_of(policy.begin(), policy.end(),
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+index fd25d90..36af405 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+@@ -16,9 +16,6 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+
+-// Forward declare for friendship.
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
+-
+ namespace blink {
+
+ class Document;
+@@ -79,8 +76,9 @@
+ const FeatureNameMap& feature_names,
+ ExecutionContext* execution_context = nullptr);
+
++ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
++
+ private:
+- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
+ static PolicyValue GetFallbackValueForFeature(
+ mojom::FeaturePolicyFeature feature);
+ static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+index 7f8e6aa..53350e43 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+@@ -23,9 +23,9 @@
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ static blink::BlinkFuzzerTestSupport test_support =
+ blink::BlinkFuzzerTestSupport();
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
+- WTF::String(data, size));
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
+- WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
+ return 0;
+ }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
new file mode 100644
index 0000000..26bba05
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+
+Other HasFraction methods as in PhysicalUnit are declared already
+constexpr and using it. It breaks GCC build.
+
+Bug: 819294.
+Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
+Reviewed-by: vmpstr <vmpstr(a)chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986..b6dbc76 100644
+--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
+@@ -202,7 +202,9 @@
+ return value_ > 0 ? LayoutUnit() : *this;
+ }
+
+- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
++ constexpr bool HasFraction() const {
++ return RawValue() % kFixedPointDenominator;
++ }
+
+ LayoutUnit Fraction() const {
+ // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
new file mode 100644
index 0000000..1d4b90f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+
+Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
+build because of that. Move the template specializations out of RunInfo declaration
+in shape_result_inline_headeres.h to fix the GCC build issue.
+
+Bug: 819294
+Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+index 76ee6091..c14d3a0 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+@@ -251,37 +251,6 @@
+ template <bool has_non_zero_glyph_offsets>
+ struct iterator final {};
+
+- // For non-zero glyph offset array
+- template <>
+- struct iterator<true> final {
+- // The constructor for ShapeResult
+- explicit iterator(const GlyphOffsetArray& array)
+- : pointer(array.storage_.get()) {
+- DCHECK(pointer);
+- }
+-
+- // The constructor for ShapeResultView
+- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
+- DCHECK(pointer);
+- }
+-
+- GlyphOffset operator*() const { return *pointer; }
+- void operator++() { ++pointer; }
+-
+- const GlyphOffset* pointer;
+- };
+-
+- // For zero glyph offset array
+- template <>
+- struct iterator<false> final {
+- explicit iterator(const GlyphOffsetArray& array) {
+- DCHECK(!array.HasStorage());
+- }
+- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
+- GlyphOffset operator*() const { return GlyphOffset(); }
+- void operator++() {}
+- };
+-
+ template <bool has_non_zero_glyph_offsets>
+ iterator<has_non_zero_glyph_offsets> GetIterator() const {
+ return iterator<has_non_zero_glyph_offsets>(*this);
+@@ -495,6 +464,37 @@
+ float width_;
+ };
+
++// For non-zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
++ // The constructor for ShapeResult
++ explicit iterator(const GlyphOffsetArray& array)
++ : pointer(array.storage_.get()) {
++ DCHECK(pointer);
++ }
++
++ // The constructor for ShapeResultView
++ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
++ DCHECK(pointer);
++ }
++
++ GlyphOffset operator*() const { return *pointer; }
++ void operator++() { ++pointer; }
++
++ const GlyphOffset* pointer;
++};
++
++// For zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
++ explicit iterator(const GlyphOffsetArray& array) {
++ DCHECK(!array.HasStorage());
++ }
++ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
++ GlyphOffset operator*() const { return GlyphOffset(); }
++ void operator++() {}
++};
++
+ // Find the range of HarfBuzzRunGlyphData for the specified character index
+ // range. This function uses binary search twice, hence O(2 log n).
+ inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
new file mode 100644
index 0000000..98789d9
--- /dev/null
+++ b/chromium-76.0.3809.100-quiche-compile-fix.patch
@@ -0,0 +1,225 @@
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
+@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
+ std::string TransportParameterIdToString(
+ TransportParameters::TransportParameterId param_id) {
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ return "original_connection_id";
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ return "idle_timeout";
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ return "stateless_reset_token";
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ return "max_packet_size";
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ return "initial_max_data";
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ return "initial_max_stream_data_bidi_local";
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ return "initial_max_stream_data_bidi_remote";
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ return "initial_max_stream_data_uni";
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ return "initial_max_streams_bidi";
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ return "initial_max_streams_uni";
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ return "ack_delay_exponent";
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ return "max_ack_delay";
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ return "disable_migration";
+- case kPreferredAddress:
++ case TransportParameters::kPreferredAddress:
+ return "preferred_address";
+- case kGoogleQuicParam:
++ case TransportParameters::kGoogleQuicParam:
+ return "google";
+- case kGoogleQuicVersion:
++ case TransportParameters::kGoogleQuicVersion:
+ return "google-version";
+ }
+ return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
+@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
+ CBB original_connection_id_param;
+ if (!in.original_connection_id.IsEmpty()) {
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
+ !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
+ !CBB_add_bytes(
+ &original_connection_id_param,
+@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
+ if (!in.stateless_reset_token.empty()) {
+ DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
+ !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
+ !CBB_add_bytes(&stateless_reset_token_param,
+ in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
+
+ // disable_migration
+ if (in.disable_migration) {
+- if (!CBB_add_u16(¶ms, kDisableMigration) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
+ !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
+ QUIC_BUG << "Failed to write disable_migration for " << in;
+ return false;
+@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
+ QUIC_BUG << "Bad lengths " << *in.preferred_address;
+ return false;
+ }
+- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
+ !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
+ !CBB_add_bytes(
+ &preferred_address_params,
+@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
+ if (in.google_quic_params) {
+ const QuicData& serialized_google_quic_params =
+ in.google_quic_params->GetSerialized();
+- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
+ !CBB_add_bytes(&google_quic_params,
+ reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
+
+ // Google-specific version extension.
+ CBB google_version_params;
+- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
+ !CBB_add_u32(&google_version_params, in.version)) {
+ QUIC_BUG << "Failed to write Google version extension for " << in;
+@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
+ }
+ bool parse_success = true;
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ if (!out->original_connection_id.IsEmpty()) {
+ QUIC_DLOG(ERROR) << "Received a second original connection ID";
+ return false;
+@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
+ CBS_len(&value));
+ }
+ break;
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
+ break;
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ if (!out->stateless_reset_token.empty()) {
+ QUIC_DLOG(ERROR) << "Received a second stateless reset token";
+ return false;
+@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
+ out->stateless_reset_token.assign(CBS_data(&value),
+ CBS_data(&value) + CBS_len(&value));
+ break;
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ parse_success = out->max_packet_size.ReadFromCbs(&value);
+ break;
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ parse_success = out->initial_max_data.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ parse_success =
+ out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ parse_success =
+ out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
+ break;
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
+ break;
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ parse_success = out->max_ack_delay.ReadFromCbs(&value);
+ break;
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ if (out->disable_migration) {
+ QUIC_DLOG(ERROR) << "Received a second disable migration";
+ return false;
+@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
+ }
+ out->disable_migration = true;
+ break;
+- case kPreferredAddress: {
++ case TransportParameters::kPreferredAddress: {
+ uint16_t ipv4_port, ipv6_port;
+ in_addr ipv4_address;
+ in6_addr ipv6_address;
+@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
+ QuicMakeUnique<TransportParameters::PreferredAddress>(
+ preferred_address);
+ } break;
+- case kGoogleQuicParam: {
++ case TransportParameters::kGoogleQuicParam: {
+ if (out->google_quic_params) {
+ QUIC_DLOG(ERROR) << "Received a second Google parameter";
+ return false;
+@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
+ reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
+ out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
+ } break;
+- case kGoogleQuicVersion: {
++ case TransportParameters::kGoogleQuicVersion: {
+ if (!CBS_get_u32(&value, &out->version)) {
+ QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
+ return false;
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-#include <string>
+-
+ #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
+
++#include <cstring>
++#include <string>
++#include <vector>
++
+ namespace quic {
+
+ namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
new file mode 100644
index 0000000..5e392e6
--- /dev/null
+++ b/chromium-76.0.3809.100-throttling-dead-beef.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 06 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+
+We are setting kAlive and kDead values assigning values that
+are bigger than the maximum signed int32. It is better to use
+uint32_t in this case.
+
+Bug: 819294
+Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4..3c6f87b 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@
+
+ // TODO(https://crbug.com/960874): Debugging code to try and shed some light
+ // on why the owned maps are invalid.
+- enum class Liveness : int32_t {
++ enum class Liveness : uint32_t {
+ kAlive = 0xCA11AB13,
+ kDead = 0xDEADBEEF,
+ };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
new file mode 100644
index 0000000..a392971
--- /dev/null
+++ b/chromium-76.0.3809.100-weak-ptr-no-except.patch
@@ -0,0 +1,66 @@
+From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 18 Jul 2019 14:26:11 +0200
+Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
+
+A GCC build regression has happened on DisjointRangeLockManager, as its move
+operator and constructor were declared noexcept. This was failing because the
+default implementation depended on base::WeakPtr, that did not provide
+noexcept declaration for them.
+
+So make base::WeakPtr noexcept.
+
+Bug: 819294
+Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
+---
+
+diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
+index 64fd499..0efcc44 100644
+--- a/base/memory/weak_ptr.cc
++++ b/base/memory/weak_ptr.cc
+@@ -46,7 +46,7 @@
+
+ WeakReference::~WeakReference() = default;
+
+-WeakReference::WeakReference(WeakReference&& other) = default;
++WeakReference::WeakReference(WeakReference&& other) noexcept = default;
+
+ WeakReference::WeakReference(const WeakReference& other) = default;
+
+diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
+index 72b5f1f..ccd22fd13 100644
+--- a/base/memory/weak_ptr.h
++++ b/base/memory/weak_ptr.h
+@@ -116,9 +116,9 @@
+ explicit WeakReference(const scoped_refptr<Flag>& flag);
+ ~WeakReference();
+
+- WeakReference(WeakReference&& other);
++ WeakReference(WeakReference&& other) noexcept;
+ WeakReference(const WeakReference& other);
+- WeakReference& operator=(WeakReference&& other) = default;
++ WeakReference& operator=(WeakReference&& other) noexcept = default;
+ WeakReference& operator=(const WeakReference& other) = default;
+
+ bool IsValid() const;
+@@ -153,9 +153,9 @@
+ ~WeakPtrBase();
+
+ WeakPtrBase(const WeakPtrBase& other) = default;
+- WeakPtrBase(WeakPtrBase&& other) = default;
++ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
+ WeakPtrBase& operator=(const WeakPtrBase& other) = default;
+- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
++ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
+
+ void reset() {
+ ref_ = internal::WeakReference();
+@@ -236,7 +236,7 @@
+ ptr_ = reinterpret_cast<uintptr_t>(t);
+ }
+ template <typename U>
+- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
++ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
+ // Need to cast from U* to T* to do pointer adjustment in case of multiple
+ // inheritance. This also enforces the "U is a T" rule.
+ T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium.spec b/chromium.spec
index 602b236..383bfa9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -268,6 +268,20 @@ Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
+# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
+Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
+Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
+# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
+Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
+Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
+Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
+Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
+Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -828,6 +842,13 @@ udev.
%patch47 -p1 -b .gcc-vulkan
%patch48 -p1 -b .gcc-cc-no-except
%patch49 -p1 -b .gcc-net-fetcher
+%patch50 -p1 -b .quiche-compile-fix
+%patch51 -p1 -b .throttling-dead-beef
+%patch52 -p1 -b .gcc-ambigous-instantiation
+%patch53 -p1 -b .weak-ptr-no-except
+%patch54 -p1 -b .gcc-feature-policy-parser
+%patch55 -p1 -b .gcc-hasfraction-constexpr
+%patch56 -p1 -b .gcc-move-explicit-initialization
# EPEL specific patches
%if 0%{?rhel} == 7
commit 02877cca954a9e0168139293baedef66fd483257
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 21 13:51:11 2019 +0200
Update the list of private libraries and remove a pak file that was removed
diff --git a/chromium.spec b/chromium.spec
index e06bcdd..8a246b7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -54,9 +54,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
%else
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -1753,7 +1753,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chrome_*.pak
%{chromium_path}/resources.pak
%{chromium_path}/icudtl.dat
-%{chromium_path}/views_mus_resources.pak
%{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh
%{chromium_path}/MEIPreload/
commit 234bd983cba301fe205f7b9c924fd5acbbf415c4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 22:07:44 2019 +0200
Fix the previously uploaded patch
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
index c59702f..aec3107 100644
--- a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -12,13 +12,13 @@ diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-conste
MessageTracker::MessageTracker() = default;
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
---- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
@@ -36,7 +36,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
-- static constexpr base::TimeDelta kCleanupInterval;
+- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::TimeDelta::FromMinutes(2);
commit 05ed80ce7ee4f1c18ac322cf720e62d21ec15bbc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 21:36:06 2019 +0200
Fix the build of remoting_all target
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
new file mode 100644
index 0000000..c59702f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -0,0 +1,27 @@
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
+@@ -9,8 +9,7 @@
+ namespace remoting {
+
+ // static
+-const base::TimeDelta MessageTracker::kCleanupInterval =
+- base::TimeDelta::FromMinutes(2);
++constexpr base::TimeDelta MessageTracker::kCleanupInterval;
+
+ MessageTracker::MessageTracker() = default;
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
+@@ -36,7 +36,8 @@ class MessageTracker final {
+
+ // All IDs older than now - kCleanupInterval will be eventually removed, but
+ // they are not guaranteed to be immediately removed after the interval.
+- static constexpr base::TimeDelta kCleanupInterval;
++ static constexpr base::TimeDelta kCleanupInterval =
++ base::TimeDelta::FromMinutes(2);
+
+ void RemoveExpiredIds();
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..64532df
--- /dev/null
+++ b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
++++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
+ certificate_file,
diff --git a/chromium.spec b/chromium.spec
index f003849..e06bcdd 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -297,10 +297,13 @@ Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
-# TBD - need to submit it
-# In GCC one can't use alignas() for exported classes (as described in
-# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+# In GCC one can't use alignas() for exported classes
+# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+# Needs to be submitted..
+Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
+Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -874,6 +877,8 @@ udev.
%patch59 -p1 -b .gcc-accountinfo-move-noexcept
%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
+%patch62 -p1 -b .gcc-remoting-constexpr
+%patch63 -p1 -b .vtable-symbol-undefined
# EPEL specific patches
%if 0%{?rhel} == 7
commit f32de4175a201b0ba68395cf00dec837e06d6079
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 16 13:58:53 2019 +0200
//third_party dependency missing for remoting
diff --git a/chromium.spec b/chromium.spec
index de9e05b..f003849 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1207,6 +1207,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/google_trust_services' \
'third_party/googletest' \
'third_party/glslang' \
'third_party/grpc' \
commit 6ab36cdf55a4aa71200853ab75f3532831f1adab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 21:14:35 2019 +0200
Backport and create more of the GCC fixes
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..5f45a8f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,53 @@
+From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 18:38:12 +0200
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
+
+AccountInfo declares them as noexcept and uses default implementation,
+so all its members (including AccountId) should be noexcept. But AccountId
+is not noexcept. To fix it we just need to make CoreAccountId move
+operator/assign operator noexcept.
+
+Bug: 819294
+Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
+---
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d808082..12eefe3 100644
+--- a/google_apis/gaia/core_account_id.cc
++++ b/google_apis/gaia/core_account_id.cc
+@@ -6,8 +6,16 @@
+
+ CoreAccountId::CoreAccountId() = default;
+
++CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
++
++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::~CoreAccountId() = default;
+
++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
++
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
+index 5ea602a..c2d1911 100644
+--- a/google_apis/gaia/core_account_id.h
++++ b/google_apis/gaia/core_account_id.h
+@@ -14,8 +14,13 @@
+ // for design and tracking).
+ struct CoreAccountId {
+ CoreAccountId();
++ CoreAccountId(const CoreAccountId&);
++ CoreAccountId(CoreAccountId&&) noexcept;
+ ~CoreAccountId();
+
++ CoreAccountId& operator=(const CoreAccountId&);
++ CoreAccountId& operator=(CoreAccountId&&) noexcept;
++
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+ // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
new file mode 100644
index 0000000..2876de4
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
@@ -0,0 +1,42 @@
+From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 10:27:19 +0200
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+
+In GCC, build is failing because history::QueryURLResult declares its move
+assignment operator as noexcept using default implementation. That requires
+its members to provide a move assignment operator that is noexcept too.
+
+But URLRow was missing noexcept declaration in move assignment operator (even
+though it was providing noexcept to its move constructor).
+
+Bug: 819294
+Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
+---
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd..aec0101 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) = default;
++URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
+index 8f6f9cf..31a1ef8 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@
+
+ virtual ~URLRow();
+ URLRow& operator=(const URLRow& other);
+- URLRow& operator=(URLRow&& other);
++ URLRow& operator=(URLRow&& other) noexcept;
+
+ URLID id() const { return id_; }
+
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
new file mode 100644
index 0000000..cc91d1e
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -0,0 +1,14 @@
+diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
+--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
++++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
+@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
+ DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
+ };
+
+-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
+- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
++class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
++ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
+ : public CSSPropertyValueSet {
+ public:
+ ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
new file mode 100644
index 0000000..ad40bb9
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
@@ -0,0 +1,36 @@
+From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 22:01:03 +0200
+Subject: [PATCH] IWYU: ThemeService requires NativeTheme
+
+As ThemeService referes to NativeTheme through a ScopedObserver,
+the full declaration is required.
+
+Bug: 819294
+Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
+---
+
+diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
+index d65388e2..23dc86d 100644
+--- a/chrome/browser/themes/theme_service.cc
++++ b/chrome/browser/themes/theme_service.cc
+@@ -54,7 +54,6 @@
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/native_theme/common_theme.h"
+-#include "ui/native_theme/native_theme.h"
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+ #include "base/scoped_observer.h"
+diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
+index 6c79c72..f93dc0d 100644
+--- a/chrome/browser/themes/theme_service.h
++++ b/chrome/browser/themes/theme_service.h
+@@ -25,6 +25,7 @@
+ #include "extensions/buildflags/buildflags.h"
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
++#include "ui/native_theme/native_theme.h"
+ #include "ui/native_theme/native_theme_observer.h"
+
+ class BrowserThemePack;
diff --git a/chromium.spec b/chromium.spec
index 64e3243..de9e05b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,6 +291,16 @@ Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
+# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
+Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
+Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
+Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+# TBD - need to submit it
+# In GCC one can't use alignas() for exported classes (as described in
+# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -860,6 +870,10 @@ udev.
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
%patch57 -p1 -b .gcc-initialization-order
+%patch58 -p1 -b .gcc-history-move-noexcept
+%patch59 -p1 -b .gcc-accountinfo-move-noexcept
+%patch60 -p1 -b .gcc-themeservice-includes
+%patch61 -p1 -b .gcc-no-alignas-and-export
# EPEL specific patches
%if 0%{?rhel} == 7
commit cfc50a59ed81324387d036954e96c08805d4f25a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:10:04 2019 +0200
Upload the new cleaned tarball with aarch64 sources
Previously I forgot to pass the --ffmpegarm while generating the
tarball.
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index e190296..2f27435 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,7 +216,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
- libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index d6d53e4..b7a420d 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
commit 453dfe1db369095fe7f201737409eb6ff0829790
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:03:49 2019 +0200
Backport another upstream build fix
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
new file mode 100644
index 0000000..3bf394f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-initialization-order.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
+
+XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
+same order of the declaration. GCC fails because of that.
+
+Bug: 819294
+Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
+Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd4..0aa6892 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@
+
+ XSetWindowAttributes swa = {
+ .background_pixmap = 0,
+- .bit_gravity = NorthWestGravity,
+- .colormap = g_colormap,
+ .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
+ .border_pixel = 0,
++ .bit_gravity = NorthWestGravity,
++ .colormap = g_colormap,
+ };
+ auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
+ if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium.spec b/chromium.spec
index f91b60b..64e3243 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -289,6 +289,8 @@ Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
+Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -857,6 +859,7 @@ udev.
%patch54 -p1 -b .gcc-feature-policy-parser
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
+%patch57 -p1 -b .gcc-initialization-order
# EPEL specific patches
%if 0%{?rhel} == 7
commit 4376be3d5fd00f265b236e6bc9a7814e0b8dfa24
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:22:37 2019 +0200
Update the Pulseaudio's pa_operation_get_state() signature
Missed it while updating the Pulseaudio signatures.
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
index 37d3dfa..d4e2b46 100644
--- a/chromium-76.0.3809.100-pulse-api-change.patch
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -1,7 +1,7 @@
-diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
---- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
-+++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
-@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200
+@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info
pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
@@ -10,6 +10,11 @@ diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change ch
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+-pa_operation_state_t pa_operation_get_state(pa_operation* o);
++pa_operation_state_t pa_operation_get_state(const pa_operation* o);
+ void pa_context_unref(pa_context* c);
+ void pa_operation_unref(pa_operation* o);
+ int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
int pa_stream_disconnect(pa_stream* s);
int pa_stream_drop(pa_stream *p);
commit a491a863e2af05db76391aec32b831d00342a716
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:17:42 2019 +0200
Add missing ffmpeg file on aarch64
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..e190296 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,6 +216,7 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
+ libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index 4e53fd1..d6d53e4 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
commit 8b12346860ef33607fa96d2ed9e4b0014889345c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 16:52:41 2019 +0200
Pulseaudio changed the API in 12.99 and we need to adapt the signatures
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
new file mode 100644
index 0000000..37d3dfa
--- /dev/null
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -0,0 +1,42 @@
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
+@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+ pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
+ pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
+ pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
+-pa_context_state_t pa_context_get_state(pa_context* c);
++pa_context_state_t pa_context_get_state(const pa_context* c);
+ pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
+ pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
+ void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
+ int pa_stream_disconnect(pa_stream* s);
+ int pa_stream_drop(pa_stream *p);
+ pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
+-uint32_t pa_stream_get_device_index(pa_stream* s);
++uint32_t pa_stream_get_device_index(const pa_stream* s);
+ int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
+-pa_stream_state_t pa_stream_get_state(pa_stream* p);
++pa_stream_state_t pa_stream_get_state(const pa_stream* p);
+ pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
+ pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
+ pa_proplist* pa_proplist_new(void);
+-int pa_proplist_contains(pa_proplist* p, const char* key);
++int pa_proplist_contains(const pa_proplist* p, const char* key);
+ void pa_proplist_free(pa_proplist* p);
+-const char* pa_proplist_gets(pa_proplist* p, const char* key);
++const char* pa_proplist_gets(const pa_proplist* p, const char* key);
+ int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
+-size_t pa_stream_readable_size(pa_stream *p);
++size_t pa_stream_readable_size(const pa_stream *p);
+ int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
+ void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
+ void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
+ int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
+ void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
+ void pa_stream_unref(pa_stream* s);
+-int pa_context_errno(pa_context *c);
++int pa_context_errno(const pa_context *c);
+ const char* pa_strerror(int error);
+ pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
diff --git a/chromium.spec b/chromium.spec
index bf6bdcb..f91b60b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -141,6 +141,13 @@ BuildRequires: libicu-devel >= 5.4
%global bundleharfbuzz 0
%endif
+# Pulseaudio changed the API a little in 12.99.1
+%if 0%{?fedora} > 30
+%global pulseaudioapichange 1
+%else
+%global pulseaudioapichange 0
+%endif
+
### 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.
@@ -306,6 +313,8 @@ Patch202: enable-vaapi.patch
Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+# Pulseaudio changed the API a little in 12.99.1
+Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -491,7 +500,6 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: pulseaudio-libs-devel
BuildRequires: python2-devel
%if 0%{?fedora} > 27
BuildRequires: python2-beautifulsoup4
@@ -871,6 +879,9 @@ udev.
%endif
%endif
+%if 0%{?pulseaudioapichange}
+%patch205 -p1 -b .pulseaudioapichange
+%endif
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
commit 6c1fd53b98f2b055fe077a77f604ce681272b4a4
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Aug 14 09:52:16 2019 -0400
loosen dependency on chromium-libs in freeworld build
diff --git a/chromium.spec b/chromium.spec
index 0d575b1..bf6bdcb 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -730,7 +730,7 @@ Shared libraries used by chromium (and chrome-remote-desktop).
Summary: Chromium media libraries built with all possible codecs
Provides: chromium-libs-media = %{version}-%{release}
Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives
commit 3f2dbf438203976abc9b0107bff6bdf3297c6fae
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:41:23 2019 +0200
third_party/boringssl/linux-x86_64/crypto/third_party/sike needs to be preserved
diff --git a/chromium.spec b/chromium.spec
index f23664a..0d575b1 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1137,7 +1137,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/boringssl/src/third_party/sike' \
- 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike' \
+ 'third_party/boringssl/linux-aarch64/crypto/third_party/sike' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
commit 481c90e3a6ad165906e4760ef4739d4cc10f1376
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:38:35 2019 +0200
third_party/openscreen need to be preserved
diff --git a/chromium.spec b/chromium.spec
index 383bfa9..f23664a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1232,6 +1232,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
+ 'third_party/openscreen' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
commit fcb9e6e6edba2dee44b4896fe6e94eabc5ab8009
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 14:38:51 2019 +0200
Backport more build fixes from upstream
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..587abf3
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
+
+Use brace-list notation to wrap the already existing brace-list for
+initializing the flat-set. This resolves an ambiguous instantiation
+in GCC.
+
+Bug: 819294
+Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
+Reviewed-by: Matt Menke <mmenke(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c0..60a03f6 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -224,7 +224,7 @@
+ "application/x-www-form-urlencoded",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
new file mode 100644
index 0000000..0dbffd5
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
@@ -0,0 +1,76 @@
+From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 19:44:58 +0200
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
+
+Compilation fails because we are declaring ParseValueForFuzzer as friend method,
+but we are declaring it is in anonymous namespace. Moving to global namespace
+still fails (in this case in Clang).
+
+So final solution is making it a public static method of FeaturePolicyParser.
+
+Bug: 819294
+Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
+---
+
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+index 3b7f4a9..eaee409 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+@@ -317,6 +317,13 @@
+ return value;
+ }
+
++void FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType feature_type,
++ const WTF::String& value_string) {
++ bool ok;
++ ParseValueForType(feature_type, value_string, &ok);
++}
++
+ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
+ const ParsedFeaturePolicy& policy) {
+ return std::any_of(policy.begin(), policy.end(),
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+index fd25d90..36af405 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+@@ -16,9 +16,6 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+
+-// Forward declare for friendship.
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
+-
+ namespace blink {
+
+ class Document;
+@@ -79,8 +76,9 @@
+ const FeatureNameMap& feature_names,
+ ExecutionContext* execution_context = nullptr);
+
++ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
++
+ private:
+- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
+ static PolicyValue GetFallbackValueForFeature(
+ mojom::FeaturePolicyFeature feature);
+ static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+index 7f8e6aa..53350e43 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+@@ -23,9 +23,9 @@
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ static blink::BlinkFuzzerTestSupport test_support =
+ blink::BlinkFuzzerTestSupport();
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
+- WTF::String(data, size));
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
+- WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
+ return 0;
+ }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
new file mode 100644
index 0000000..26bba05
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+
+Other HasFraction methods as in PhysicalUnit are declared already
+constexpr and using it. It breaks GCC build.
+
+Bug: 819294.
+Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
+Reviewed-by: vmpstr <vmpstr(a)chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986..b6dbc76 100644
+--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
+@@ -202,7 +202,9 @@
+ return value_ > 0 ? LayoutUnit() : *this;
+ }
+
+- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
++ constexpr bool HasFraction() const {
++ return RawValue() % kFixedPointDenominator;
++ }
+
+ LayoutUnit Fraction() const {
+ // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
new file mode 100644
index 0000000..1d4b90f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+
+Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
+build because of that. Move the template specializations out of RunInfo declaration
+in shape_result_inline_headeres.h to fix the GCC build issue.
+
+Bug: 819294
+Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+index 76ee6091..c14d3a0 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+@@ -251,37 +251,6 @@
+ template <bool has_non_zero_glyph_offsets>
+ struct iterator final {};
+
+- // For non-zero glyph offset array
+- template <>
+- struct iterator<true> final {
+- // The constructor for ShapeResult
+- explicit iterator(const GlyphOffsetArray& array)
+- : pointer(array.storage_.get()) {
+- DCHECK(pointer);
+- }
+-
+- // The constructor for ShapeResultView
+- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
+- DCHECK(pointer);
+- }
+-
+- GlyphOffset operator*() const { return *pointer; }
+- void operator++() { ++pointer; }
+-
+- const GlyphOffset* pointer;
+- };
+-
+- // For zero glyph offset array
+- template <>
+- struct iterator<false> final {
+- explicit iterator(const GlyphOffsetArray& array) {
+- DCHECK(!array.HasStorage());
+- }
+- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
+- GlyphOffset operator*() const { return GlyphOffset(); }
+- void operator++() {}
+- };
+-
+ template <bool has_non_zero_glyph_offsets>
+ iterator<has_non_zero_glyph_offsets> GetIterator() const {
+ return iterator<has_non_zero_glyph_offsets>(*this);
+@@ -495,6 +464,37 @@
+ float width_;
+ };
+
++// For non-zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
++ // The constructor for ShapeResult
++ explicit iterator(const GlyphOffsetArray& array)
++ : pointer(array.storage_.get()) {
++ DCHECK(pointer);
++ }
++
++ // The constructor for ShapeResultView
++ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
++ DCHECK(pointer);
++ }
++
++ GlyphOffset operator*() const { return *pointer; }
++ void operator++() { ++pointer; }
++
++ const GlyphOffset* pointer;
++};
++
++// For zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
++ explicit iterator(const GlyphOffsetArray& array) {
++ DCHECK(!array.HasStorage());
++ }
++ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
++ GlyphOffset operator*() const { return GlyphOffset(); }
++ void operator++() {}
++};
++
+ // Find the range of HarfBuzzRunGlyphData for the specified character index
+ // range. This function uses binary search twice, hence O(2 log n).
+ inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
new file mode 100644
index 0000000..98789d9
--- /dev/null
+++ b/chromium-76.0.3809.100-quiche-compile-fix.patch
@@ -0,0 +1,225 @@
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
+@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
+ std::string TransportParameterIdToString(
+ TransportParameters::TransportParameterId param_id) {
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ return "original_connection_id";
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ return "idle_timeout";
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ return "stateless_reset_token";
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ return "max_packet_size";
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ return "initial_max_data";
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ return "initial_max_stream_data_bidi_local";
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ return "initial_max_stream_data_bidi_remote";
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ return "initial_max_stream_data_uni";
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ return "initial_max_streams_bidi";
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ return "initial_max_streams_uni";
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ return "ack_delay_exponent";
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ return "max_ack_delay";
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ return "disable_migration";
+- case kPreferredAddress:
++ case TransportParameters::kPreferredAddress:
+ return "preferred_address";
+- case kGoogleQuicParam:
++ case TransportParameters::kGoogleQuicParam:
+ return "google";
+- case kGoogleQuicVersion:
++ case TransportParameters::kGoogleQuicVersion:
+ return "google-version";
+ }
+ return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
+@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
+ CBB original_connection_id_param;
+ if (!in.original_connection_id.IsEmpty()) {
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
+ !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
+ !CBB_add_bytes(
+ &original_connection_id_param,
+@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
+ if (!in.stateless_reset_token.empty()) {
+ DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
+ !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
+ !CBB_add_bytes(&stateless_reset_token_param,
+ in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
+
+ // disable_migration
+ if (in.disable_migration) {
+- if (!CBB_add_u16(¶ms, kDisableMigration) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
+ !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
+ QUIC_BUG << "Failed to write disable_migration for " << in;
+ return false;
+@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
+ QUIC_BUG << "Bad lengths " << *in.preferred_address;
+ return false;
+ }
+- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
+ !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
+ !CBB_add_bytes(
+ &preferred_address_params,
+@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
+ if (in.google_quic_params) {
+ const QuicData& serialized_google_quic_params =
+ in.google_quic_params->GetSerialized();
+- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
+ !CBB_add_bytes(&google_quic_params,
+ reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
+
+ // Google-specific version extension.
+ CBB google_version_params;
+- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
+ !CBB_add_u32(&google_version_params, in.version)) {
+ QUIC_BUG << "Failed to write Google version extension for " << in;
+@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
+ }
+ bool parse_success = true;
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ if (!out->original_connection_id.IsEmpty()) {
+ QUIC_DLOG(ERROR) << "Received a second original connection ID";
+ return false;
+@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
+ CBS_len(&value));
+ }
+ break;
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
+ break;
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ if (!out->stateless_reset_token.empty()) {
+ QUIC_DLOG(ERROR) << "Received a second stateless reset token";
+ return false;
+@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
+ out->stateless_reset_token.assign(CBS_data(&value),
+ CBS_data(&value) + CBS_len(&value));
+ break;
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ parse_success = out->max_packet_size.ReadFromCbs(&value);
+ break;
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ parse_success = out->initial_max_data.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ parse_success =
+ out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ parse_success =
+ out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
+ break;
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
+ break;
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ parse_success = out->max_ack_delay.ReadFromCbs(&value);
+ break;
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ if (out->disable_migration) {
+ QUIC_DLOG(ERROR) << "Received a second disable migration";
+ return false;
+@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
+ }
+ out->disable_migration = true;
+ break;
+- case kPreferredAddress: {
++ case TransportParameters::kPreferredAddress: {
+ uint16_t ipv4_port, ipv6_port;
+ in_addr ipv4_address;
+ in6_addr ipv6_address;
+@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
+ QuicMakeUnique<TransportParameters::PreferredAddress>(
+ preferred_address);
+ } break;
+- case kGoogleQuicParam: {
++ case TransportParameters::kGoogleQuicParam: {
+ if (out->google_quic_params) {
+ QUIC_DLOG(ERROR) << "Received a second Google parameter";
+ return false;
+@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
+ reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
+ out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
+ } break;
+- case kGoogleQuicVersion: {
++ case TransportParameters::kGoogleQuicVersion: {
+ if (!CBS_get_u32(&value, &out->version)) {
+ QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
+ return false;
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-#include <string>
+-
+ #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
+
++#include <cstring>
++#include <string>
++#include <vector>
++
+ namespace quic {
+
+ namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
new file mode 100644
index 0000000..5e392e6
--- /dev/null
+++ b/chromium-76.0.3809.100-throttling-dead-beef.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 06 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+
+We are setting kAlive and kDead values assigning values that
+are bigger than the maximum signed int32. It is better to use
+uint32_t in this case.
+
+Bug: 819294
+Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4..3c6f87b 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@
+
+ // TODO(https://crbug.com/960874): Debugging code to try and shed some light
+ // on why the owned maps are invalid.
+- enum class Liveness : int32_t {
++ enum class Liveness : uint32_t {
+ kAlive = 0xCA11AB13,
+ kDead = 0xDEADBEEF,
+ };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
new file mode 100644
index 0000000..a392971
--- /dev/null
+++ b/chromium-76.0.3809.100-weak-ptr-no-except.patch
@@ -0,0 +1,66 @@
+From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 18 Jul 2019 14:26:11 +0200
+Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
+
+A GCC build regression has happened on DisjointRangeLockManager, as its move
+operator and constructor were declared noexcept. This was failing because the
+default implementation depended on base::WeakPtr, that did not provide
+noexcept declaration for them.
+
+So make base::WeakPtr noexcept.
+
+Bug: 819294
+Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
+---
+
+diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
+index 64fd499..0efcc44 100644
+--- a/base/memory/weak_ptr.cc
++++ b/base/memory/weak_ptr.cc
+@@ -46,7 +46,7 @@
+
+ WeakReference::~WeakReference() = default;
+
+-WeakReference::WeakReference(WeakReference&& other) = default;
++WeakReference::WeakReference(WeakReference&& other) noexcept = default;
+
+ WeakReference::WeakReference(const WeakReference& other) = default;
+
+diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
+index 72b5f1f..ccd22fd13 100644
+--- a/base/memory/weak_ptr.h
++++ b/base/memory/weak_ptr.h
+@@ -116,9 +116,9 @@
+ explicit WeakReference(const scoped_refptr<Flag>& flag);
+ ~WeakReference();
+
+- WeakReference(WeakReference&& other);
++ WeakReference(WeakReference&& other) noexcept;
+ WeakReference(const WeakReference& other);
+- WeakReference& operator=(WeakReference&& other) = default;
++ WeakReference& operator=(WeakReference&& other) noexcept = default;
+ WeakReference& operator=(const WeakReference& other) = default;
+
+ bool IsValid() const;
+@@ -153,9 +153,9 @@
+ ~WeakPtrBase();
+
+ WeakPtrBase(const WeakPtrBase& other) = default;
+- WeakPtrBase(WeakPtrBase&& other) = default;
++ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
+ WeakPtrBase& operator=(const WeakPtrBase& other) = default;
+- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
++ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
+
+ void reset() {
+ ref_ = internal::WeakReference();
+@@ -236,7 +236,7 @@
+ ptr_ = reinterpret_cast<uintptr_t>(t);
+ }
+ template <typename U>
+- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
++ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
+ // Need to cast from U* to T* to do pointer adjustment in case of multiple
+ // inheritance. This also enforces the "U is a T" rule.
+ T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium.spec b/chromium.spec
index 602b236..383bfa9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -268,6 +268,20 @@ Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
+# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
+Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
+Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
+# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
+Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
+Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
+Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
+Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
+Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -828,6 +842,13 @@ udev.
%patch47 -p1 -b .gcc-vulkan
%patch48 -p1 -b .gcc-cc-no-except
%patch49 -p1 -b .gcc-net-fetcher
+%patch50 -p1 -b .quiche-compile-fix
+%patch51 -p1 -b .throttling-dead-beef
+%patch52 -p1 -b .gcc-ambigous-instantiation
+%patch53 -p1 -b .weak-ptr-no-except
+%patch54 -p1 -b .gcc-feature-policy-parser
+%patch55 -p1 -b .gcc-hasfraction-constexpr
+%patch56 -p1 -b .gcc-move-explicit-initialization
# EPEL specific patches
%if 0%{?rhel} == 7
commit 44822a9bb7a5f3e2bc958f6de38a66d12d964823
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 13 15:39:15 2019 +0200
Add more fixes
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
new file mode 100644
index 0000000..e4d754a
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-cc-no-except.patch
@@ -0,0 +1,105 @@
+From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 07 Jun 2019 09:50:11 +0000
+Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
+
+As LayerTreeHostImpl::UIResourceData move constructor is declared
+noexcept with default implementation, the move constructor of its
+members should also be noexcept. GCC will fail to build otherwise
+for mismatching noexcept declaration.
+
+We also set the move assignment operator.
+
+Bug: 819294
+Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667064}
+---
+
+diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
+index 2be2570..8426fa8 100644
+--- a/base/memory/shared_memory_mapping.cc
++++ b/base/memory/shared_memory_mapping.cc
+@@ -33,7 +33,7 @@
+
+ SharedMemoryMapping::SharedMemoryMapping() = default;
+
+-SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
++SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
+ : memory_(mapping.memory_),
+ size_(mapping.size_),
+ mapped_size_(mapping.mapped_size_),
+@@ -42,7 +42,7 @@
+ }
+
+ SharedMemoryMapping& SharedMemoryMapping::operator=(
+- SharedMemoryMapping&& mapping) {
++ SharedMemoryMapping&& mapping) noexcept {
+ Unmap();
+ memory_ = mapping.memory_;
+ size_ = mapping.size_;
+@@ -90,9 +90,9 @@
+
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+- ReadOnlySharedMemoryMapping&&) = default;
++ ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
+- ReadOnlySharedMemoryMapping&&) = default;
++ ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+ void* address,
+ size_t size,
+@@ -102,9 +102,9 @@
+
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+- WritableSharedMemoryMapping&&) = default;
++ WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
+- WritableSharedMemoryMapping&&) = default;
++ WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+ void* address,
+ size_t size,
+diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
+index d9569af..2b8858e 100644
+--- a/base/memory/shared_memory_mapping.h
++++ b/base/memory/shared_memory_mapping.h
+@@ -32,8 +32,8 @@
+ SharedMemoryMapping();
+
+ // Move operations are allowed.
+- SharedMemoryMapping(SharedMemoryMapping&& mapping);
+- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
++ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
++ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
+
+ // Unmaps the region if the mapping is valid.
+ virtual ~SharedMemoryMapping();
+@@ -93,8 +93,9 @@
+ ReadOnlySharedMemoryMapping();
+
+ // Move operations are allowed.
+- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
+- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
++ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
++ ReadOnlySharedMemoryMapping& operator=(
++ ReadOnlySharedMemoryMapping&&) noexcept;
+
+ // Returns the base address of the mapping. This is read-only memory. This is
+ // page-aligned. This is nullptr for invalid instances.
+@@ -171,8 +172,9 @@
+ WritableSharedMemoryMapping();
+
+ // Move operations are allowed.
+- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
+- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
++ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
++ WritableSharedMemoryMapping& operator=(
++ WritableSharedMemoryMapping&&) noexcept;
+
+ // Returns the base address of the mapping. This is writable memory. This is
+ // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
new file mode 100644
index 0000000..bc0ed98
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-net-fetcher.patch
@@ -0,0 +1,63 @@
+From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 16:56:27 +0000
+Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
+
+GCC does not allow friendship declaration to anonymous namespace as done with Job
+object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
+makes RemoveJob method public, that was the only reason to make Job a friend.
+
+Error was:
+./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
+../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
+ delete_this = parent_->RemoveJob(this);
+ ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+ std::unique_ptr<Job> RemoveJob(Job* job);
+ ^~~~~~~~~
+../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
+../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
+ std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
+ ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+ std::unique_ptr<Job> RemoveJob(Job* job);
+ ^~~~~~~~~
+
+Bug: 819294
+Change-Id: I3609f4558e570741395366de6a4cd40577d91450
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
+Commit-Queue: Eric Roman <eroman(a)chromium.org>
+Reviewed-by: Eric Roman <eroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668015}
+---
+
+diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
+index 11a1166..349c656 100644
+--- a/net/cert_net/cert_net_fetcher_impl.cc
++++ b/net/cert_net/cert_net_fetcher_impl.cc
+@@ -135,21 +135,19 @@
+ void Fetch(std::unique_ptr<RequestParams> request_params,
+ scoped_refptr<RequestCore> request);
+
++ // Removes |job| from the in progress jobs and transfers ownership to the
++ // caller.
++ std::unique_ptr<Job> RemoveJob(Job* job);
++
+ // Cancels outstanding jobs, which stops network requests and signals the
+ // corresponding RequestCores that the requests have completed.
+ void Shutdown();
+
+ private:
+- friend class Job;
+-
+ // Finds a job with a matching RequestPararms or returns nullptr if there was
+ // no match.
+ Job* FindJob(const RequestParams& params);
+
+- // Removes |job| from the in progress jobs and transfers ownership to the
+- // caller.
+- std::unique_ptr<Job> RemoveJob(Job* job);
+-
+ // The in-progress jobs. This set does not contain the job which is actively
+ // invoking callbacks (OnJobCompleted).
+ JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
new file mode 100644
index 0000000..cf93bce
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-vulkan.patch
@@ -0,0 +1,115 @@
+From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 17:39:38 +0000
+Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
+
+The notation for initialization of structs referring to its properties
+is invalid in C++. This is not accepted in GCC. It was making build
+fail in VulkanCommandBuffer.
+
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
+ .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
+ .subresourceRange.baseMipLevel = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
+ .subresourceRange.levelCount = 1,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
+ .subresourceRange.baseArrayLayer = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
+ .subresourceRange.layerCount = 1,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
+ .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
+ .imageSubresource.mipLevel = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
+ .imageSubresource.baseArrayLayer = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
+ .imageSubresource.layerCount = 1,
+ ^
+Bug: 819294
+
+Change-Id: I999abece0c727e77964789183642ba62009c2c22
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Reviewed-by: Antoine Labour <piman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668033}
+---
+
+diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
+index ba776e4..4f14c85 100644
+--- a/gpu/vulkan/vulkan_command_buffer.cc
++++ b/gpu/vulkan/vulkan_command_buffer.cc
+@@ -207,21 +207,20 @@
+ void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
+ VkImageLayout old_layout,
+ VkImageLayout new_layout) {
+- VkImageMemoryBarrier barrier = {
+- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
+- .srcAccessMask = GetAccessMask(old_layout),
+- .dstAccessMask = GetAccessMask(new_layout),
+- .oldLayout = old_layout,
+- .newLayout = new_layout,
+- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+- .image = image,
+- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+- .subresourceRange.baseMipLevel = 0,
+- .subresourceRange.levelCount = 1,
+- .subresourceRange.baseArrayLayer = 0,
+- .subresourceRange.layerCount = 1,
+- };
++ VkImageMemoryBarrier barrier = {};
++ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
++ barrier.srcAccessMask = GetAccessMask(old_layout);
++ barrier.dstAccessMask = GetAccessMask(new_layout);
++ barrier.oldLayout = old_layout;
++ barrier.newLayout = new_layout;
++ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++ barrier.image = image;
++ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++ barrier.subresourceRange.baseMipLevel = 0;
++ barrier.subresourceRange.levelCount = 1;
++ barrier.subresourceRange.baseArrayLayer = 0;
++ barrier.subresourceRange.layerCount = 1;
+ vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
+ GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
+ nullptr, 1, &barrier);
+@@ -233,17 +232,16 @@
+ uint32_t buffer_height,
+ uint32_t width,
+ uint32_t height) {
+- VkBufferImageCopy region = {
+- .bufferOffset = 0,
+- .bufferRowLength = buffer_width,
+- .bufferImageHeight = buffer_height,
+- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+- .imageSubresource.mipLevel = 0,
+- .imageSubresource.baseArrayLayer = 0,
+- .imageSubresource.layerCount = 1,
+- .imageOffset = {0, 0, 0},
+- .imageExtent = {width, height, 1},
+- };
++ VkBufferImageCopy region = {};
++ region.bufferOffset = 0;
++ region.bufferRowLength = buffer_width;
++ region.bufferImageHeight = buffer_height;
++ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++ region.imageSubresource.mipLevel = 0;
++ region.imageSubresource.baseArrayLayer = 0;
++ region.imageSubresource.layerCount = 1;
++ region.imageOffset = {0, 0, 0};
++ region.imageExtent = {width, height, 1};
+ vkCmdCopyBufferToImage(command_buffer_, buffer, image,
+ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
+ }
diff --git a/chromium.spec b/chromium.spec
index 1d3a256..602b236 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -261,6 +261,13 @@ Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
+# Fix Vulkan compilation with gcc
+# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
+Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
+# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
+Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
+Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -818,6 +825,9 @@ udev.
%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
+%patch47 -p1 -b .gcc-vulkan
+%patch48 -p1 -b .gcc-cc-no-except
+%patch49 -p1 -b .gcc-net-fetcher
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1064,6 +1074,7 @@ ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
# Remove most of the bundled libraries. Libraries specified below (taken from
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
+ 'base/third_party/cityhash' \
'base/third_party/dmg_fp' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
@@ -1104,6 +1115,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/blink' \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
+ 'third_party/boringssl/src/third_party/sike' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
@@ -1229,6 +1242,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sinonjs' \
'third_party/skia' \
'third_party/skia/include/third_party/vulkan' \
+ 'third_party/skia/include/third_party/skcms' \
'third_party/skia/third_party/gif' \
'third_party/skia/third_party/skcms' \
'third_party/skia/third_party/vulkan' \
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index 76c73ae..f2225ea 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -41,9 +41,9 @@ def parse_sources(input_sources, output_sources, arch_not_arm):
append_sources (block[1], output_sources)
-def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
+def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
- with open(gyni_path, "r") as input_file:
+ with open(gni_path, "r") as input_file:
content = input_file.read().replace('\n', '')
output_sources = []
@@ -62,7 +62,7 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
limitations = ['ffmpeg_branding == "Chrome"', 'ffmpeg_branding == "ChromeOS"']
if ('use_linux_config' in condition) and not any(limitation in condition for limitation in limitations):
if (arch_not_arm):
- if ('x64' in condition) or ('x86' in condition):
+ if ('x64' in condition) or ('x86' in condition) or ('use_linux_config' in condition):
parse_sources (block[1], output_sources, arch_not_arm)
inserted = True
else:
@@ -79,4 +79,4 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
if __name__ == "__main__":
path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1]
- parse_ffmpeg_gyni_file (path, False if sys.argv[2] == "0" else True)
+ parse_ffmpeg_gni_file (path, False if sys.argv[2] == "0" else True)
diff --git a/sources b/sources
index 778c103..4e53fd1 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ad250b8cd0a01297fdff85c12a4dca85477cf027a68c0a9f7a3bc93b825772d17ddd062a89020ae954def781f19fe44beedb33ec8a86f3c12af290edb43d6ee9
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
commit 38e8f689d58c92e2a4ca9e95c8c9aa67718c5616
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 13 07:05:33 2019 +0200
Update to 76.0.3809.100
diff --git a/.gitignore b/.gitignore
index 61d44ef..2bfdc54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,3 +81,4 @@
/chromium-75.0.3770.80-clean.tar.xz
/chromium-75.0.3770.90-clean.tar.xz
/chromium-75.0.3770.100-clean.tar.xz
+/chromium-76.0.3809.100-clean.tar.xz
diff --git a/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch b/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
deleted file mode 100644
index d0b2484..0000000
--- a/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx chromium-48.0.2564.116/device/usb/usb_context.cc
---- chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx 2016-02-24 10:21:10.534996028 -0500
-+++ chromium-48.0.2564.116/device/usb/usb_context.cc 2016-02-24 10:22:28.270499864 -0500
-@@ -57,7 +57,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-55.0.2883.75-cups22.patch b/chromium-55.0.2883.75-cups22.patch
deleted file mode 100644
index d1a2bf8..0000000
--- a/chromium-55.0.2883.75-cups22.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 chromium-52.0.2743.82/printing/backend/print_backend_cups.cc
---- chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 2016-07-22 09:20:15.794340886 -0400
-+++ chromium-52.0.2743.82/printing/backend/print_backend_cups.cc 2016-07-22 09:20:26.338261197 -0400
-@@ -16,6 +16,7 @@
- #include "base/synchronization/lock.h"
- #include "base/values.h"
- #include "printing/backend/cups_helper.h"
-+#include <cups/ppd.h>
- #include "printing/backend/print_backend_consts.h"
- #include "url/gurl.h"
-
-diff -up chromium-52.0.2743.82/printing/BUILD.gn.cups22 chromium-52.0.2743.82/printing/BUILD.gn
---- chromium-52.0.2743.82/printing/BUILD.gn.cups22 2016-07-21 11:27:05.597507544 -0400
-+++ chromium-52.0.2743.82/printing/BUILD.gn 2016-07-21 14:36:45.574137758 -0400
-@@ -147,12 +147,13 @@ component("printing") {
- ],
- "trim string")
-
-- if (cups_version == "1.6" || cups_version == "1.7") {
-+ if (cups_version == "1.6" || cups_version == "1.7" || cups_version == "2.2") {
- cflags += [
- # CUPS 1.6 deprecated the PPD APIs, but we will stay with this
- # API for now as supported Linux and Mac OS'es are still using
- # older versions of CUPS. More info: crbug.com/226176
- "-Wno-deprecated-declarations",
-+ "-D_PPD_DEPRECATED=",
- # CUPS 1.7 deprecates httpConnectEncrypt(), see the mac section
- # below.
- ]
diff --git a/chromium-66.0.3359.117-missing-files.patch b/chromium-66.0.3359.117-missing-files.patch
deleted file mode 100644
index 746d56e..0000000
--- a/chromium-66.0.3359.117-missing-files.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing 2018-04-19 09:51:46.165723235 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py 2018-04-19 09:51:46.171723115 -0400
-@@ -0,0 +1,3 @@
-+# Copyright 2017 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.
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing 2018-04-19 09:51:46.171723115 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py 2018-04-19 09:51:46.172723095 -0400
-@@ -0,0 +1,110 @@
-+# Copyright 2017 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.
-+# pylint: disable=import-error,print-statement,relative-import
-+import re
-+SPECIAL_TOKENS = [
-+ # This list should be sorted by length.
-+ 'CString',
-+ 'Float32',
-+ 'Float64',
-+ 'Base64',
-+ 'IFrame',
-+ 'Latin1',
-+ 'PlugIn',
-+ 'SQLite',
-+ 'Uint16',
-+ 'Uint32',
-+ 'WebGL2',
-+ 'ASCII',
-+ 'CType',
-+ 'DList',
-+ 'Int16',
-+ 'Int32',
-+ 'MPath',
-+ 'OList',
-+ 'TSpan',
-+ 'UList',
-+ 'UTF16',
-+ 'Uint8',
-+ 'WebGL',
-+ 'XPath',
-+ 'ETC1',
-+ 'HTML',
-+ 'Int8',
-+ 'S3TC',
-+ 'SPv2',
-+ 'UTF8',
-+ 'API',
-+ 'CSS',
-+ 'DOM',
-+ 'EXT',
-+ 'RTC',
-+ 'SVG',
-+ '2D',
-+ 'AX',
-+ 'V0',
-+ 'V8',
-+]
-+MATCHING_EXPRESSION = '((?:[A-Z][a-z]+)|[0-9]D?$)'
-+class SmartTokenizer(object):
-+ """Detects special cases that are not easily discernible without additional
-+ knowledge, such as recognizing that in SVGSVGElement, the first two SVGs
-+ are separate tokens, but WebGL is one token."""
-+ def __init__(self, name):
-+ self.remaining = name
-+ def tokenize(self):
-+ name = self.remaining
-+ tokens = []
-+ while len(name) > 0:
-+ matched_token = None
-+ for token in SPECIAL_TOKENS:
-+ if name.startswith(token):
-+ matched_token = token
-+ break
-+ if not matched_token:
-+ match = re.search(MATCHING_EXPRESSION, name)
-+ if not match:
-+ matched_token = name
-+ elif match.start(0) != 0:
-+ matched_token = name[:match.start(0)]
-+ else:
-+ matched_token = match.group(0)
-+ tokens.append(name[:len(matched_token)])
-+ name = name[len(matched_token):]
-+ return tokens
-+class NameStyleConverter(object):
-+ """Converts names from camelCase to various other styles.
-+ """
-+ def __init__(self, name):
-+ self.tokens = self.tokenize(name)
-+ def tokenize(self, name):
-+ tokenizer = SmartTokenizer(name)
-+ return tokenizer.tokenize()
-+ def to_snake_case(self):
-+ """Snake case is the file and variable name style per Google C++ Style
-+ Guide:
-+ https://google.github.io/styleguide/cppguide.html#Variable_Names
-+ Also known as the hacker case.
-+ https://en.wikipedia.org/wiki/Snake_case
-+ """
-+ return '_'.join([token.lower() for token in self.tokens])
-+ def to_upper_camel_case(self):
-+ """Upper-camel case is the class and function name style per
-+ Google C++ Style Guide:
-+ https://google.github.io/styleguide/cppguide.html#Function_Names
-+ Also known as the PascalCase.
-+ https://en.wikipedia.org/wiki/Camel_case.
-+ """
-+ return ''.join([token[0].upper() + token[1:] for token in self.tokens])
-+ def to_macro_case(self):
-+ """Macro case is the macro name style per Google C++ Style Guide:
-+ https://google.github.io/styleguide/cppguide.html#Macro_Names
-+ """
-+ return '_'.join([token.upper() for token in self.tokens])
-+ def to_all_cases(self):
-+ return {
-+ 'snake_case': self.to_snake_case(),
-+ 'upper_camel_case': self.to_upper_camel_case(),
-+ 'macro_case': self.to_macro_case(),
-+ }
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing 2018-04-19 09:51:46.172723095 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py 2018-04-19 09:51:46.173723075 -0400
-@@ -0,0 +1,140 @@
-+# Copyright 2017 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.
-+# pylint: disable=import-error,print-statement,relative-import,protected-access
-+"""Unit tests for name_style_converter.py."""
-+import unittest
-+from name_style_converter import NameStyleConverter
-+from name_style_converter import SmartTokenizer
-+class SmartTokenizerTest(unittest.TestCase):
-+ def test_simple_cases(self):
-+ tokenizer = SmartTokenizer('foo')
-+ self.assertEqual(tokenizer.tokenize(), ['foo'])
-+ tokenizer = SmartTokenizer('fooBar')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar'])
-+ tokenizer = SmartTokenizer('fooBarBaz')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar', 'Baz'])
-+ tokenizer = SmartTokenizer('Baz')
-+ self.assertEqual(tokenizer.tokenize(), ['Baz'])
-+ tokenizer = SmartTokenizer('')
-+ self.assertEqual(tokenizer.tokenize(), [])
-+ tokenizer = SmartTokenizer('FOO')
-+ self.assertEqual(tokenizer.tokenize(), ['FOO'])
-+ tokenizer = SmartTokenizer('foo2')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', '2'])
-+ def test_tricky_cases(self):
-+ tokenizer = SmartTokenizer('XMLHttpRequest')
-+ self.assertEqual(tokenizer.tokenize(), ['XML', 'Http', 'Request'])
-+ tokenizer = SmartTokenizer('HTMLElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Element'])
-+ tokenizer = SmartTokenizer('WebGLRenderingContext')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['WebGL', 'Rendering', 'Context'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['Canvas', 'Rendering', 'Context', '2D'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2DAPITest')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['Canvas', 'Rendering', 'Context', '2D', 'API', 'Test'])
-+ tokenizer = SmartTokenizer('SVGSVGElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'SVG', 'Element'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D'])
-+ tokenizer = SmartTokenizer('CSSURLImageValue')
-+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'URL', 'Image', 'Value'])
-+ tokenizer = SmartTokenizer('CSSPropertyAPID')
-+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'Property', 'API', 'D'])
-+ tokenizer = SmartTokenizer('AXARIAGridCell')
-+ self.assertEqual(tokenizer.tokenize(), ['AX', 'ARIA', 'Grid', 'Cell'])
-+ tokenizer = SmartTokenizer('CDATASection')
-+ self.assertEqual(tokenizer.tokenize(), ['CDATA', 'Section'])
-+ tokenizer = SmartTokenizer('ASCIICType')
-+ self.assertEqual(tokenizer.tokenize(), ['ASCII', 'CType'])
-+ tokenizer = SmartTokenizer('CString')
-+ self.assertEqual(tokenizer.tokenize(), ['CString'])
-+ tokenizer = SmartTokenizer('HTMLDListElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'DList', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLOListElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'OList', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLIFrameElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'IFrame', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLPlugInElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'PlugIn', 'Element'])
-+ # No special handling for OptGroup, FieldSet, and TextArea.
-+ tokenizer = SmartTokenizer('HTMLOptGroupElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Opt', 'Group', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLFieldSetElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Field', 'Set', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLTextAreaElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Text', 'Area', 'Element'])
-+ tokenizer = SmartTokenizer('Path2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Path', '2D'])
-+ tokenizer = SmartTokenizer('Point2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Point', '2D'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2DState')
-+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D', 'State'])
-+ tokenizer = SmartTokenizer('RTCDTMFSender')
-+ self.assertEqual(tokenizer.tokenize(), ['RTC', 'DTMF', 'Sender'])
-+ tokenizer = SmartTokenizer('WebGLCompressedTextureS3TCsRGB')
-+ self.assertEqual(tokenizer.tokenize(), ['WebGL', 'Compressed', 'Texture', 'S3TC', 'sRGB'])
-+ tokenizer = SmartTokenizer('WebGL2CompressedTextureETC1')
-+ self.assertEqual(tokenizer.tokenize(), ['WebGL2', 'Compressed', 'Texture', 'ETC1'])
-+ tokenizer = SmartTokenizer('EXTsRGB')
-+ self.assertEqual(tokenizer.tokenize(), ['EXT', 'sRGB'])
-+ tokenizer = SmartTokenizer('SVGFEBlendElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'FE', 'Blend', 'Element'])
-+ tokenizer = SmartTokenizer('SVGMPathElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'MPath', 'Element'])
-+ tokenizer = SmartTokenizer('SVGTSpanElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'TSpan', 'Element'])
-+ tokenizer = SmartTokenizer('SVGURIReference')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'URI', 'Reference'])
-+ tokenizer = SmartTokenizer('UTF16TextIterator')
-+ self.assertEqual(tokenizer.tokenize(), ['UTF16', 'Text', 'Iterator'])
-+ tokenizer = SmartTokenizer('UTF8Decoder')
-+ self.assertEqual(tokenizer.tokenize(), ['UTF8', 'Decoder'])
-+ tokenizer = SmartTokenizer('Uint8Array')
-+ self.assertEqual(tokenizer.tokenize(), ['Uint8', 'Array'])
-+ tokenizer = SmartTokenizer('DOMWindowBase64')
-+ self.assertEqual(tokenizer.tokenize(), ['DOM', 'Window', 'Base64'])
-+ tokenizer = SmartTokenizer('TextCodecLatin1')
-+ self.assertEqual(tokenizer.tokenize(), ['Text', 'Codec', 'Latin1'])
-+ tokenizer = SmartTokenizer('V8BindingForCore')
-+ self.assertEqual(tokenizer.tokenize(), ['V8', 'Binding', 'For', 'Core'])
-+ tokenizer = SmartTokenizer('V8DOMRect')
-+ self.assertEqual(tokenizer.tokenize(), ['V8', 'DOM', 'Rect'])
-+ tokenizer = SmartTokenizer('V0InsertionPoint')
-+ self.assertEqual(tokenizer.tokenize(), ['V0', 'Insertion', 'Point'])
-+ tokenizer = SmartTokenizer('ShadowDOMV0Test')
-+ self.assertEqual(tokenizer.tokenize(), ['Shadow', 'DOM', 'V0', 'Test'])
-+ tokenizer = SmartTokenizer('ElementShadowV0')
-+ self.assertEqual(tokenizer.tokenize(), ['Element', 'Shadow', 'V0'])
-+ tokenizer = SmartTokenizer('StubChromeClientForSPv2')
-+ self.assertEqual(tokenizer.tokenize(), ['Stub', 'Chrome', 'Client', 'For', 'SPv2'])
-+ tokenizer = SmartTokenizer('SQLiteAuthorizer')
-+ self.assertEqual(tokenizer.tokenize(), ['SQLite', 'Authorizer'])
-+ tokenizer = SmartTokenizer('XPathEvaluator')
-+ self.assertEqual(tokenizer.tokenize(), ['XPath', 'Evaluator'])
-+ tokenizer = SmartTokenizer('IsXHTMLDocument')
-+ self.assertEqual(tokenizer.tokenize(), ['Is', 'XHTML', 'Document'])
-+ tokenizer = SmartTokenizer('Animation.idl')
-+ self.assertEqual(tokenizer.tokenize(), ['Animation', '.idl'])
-+class NameStyleConverterTest(unittest.TestCase):
-+ def test_snake_case(self):
-+ converter = NameStyleConverter('HTMLElement')
-+ self.assertEqual(converter.to_snake_case(), 'html_element')
-+ def test_upper_camel_case(self):
-+ converter = NameStyleConverter('someSuperThing')
-+ self.assertEqual(converter.to_upper_camel_case(), 'SomeSuperThing')
-+ converter = NameStyleConverter('SVGElement')
-+ self.assertEqual(converter.to_upper_camel_case(), 'SVGElement')
-+ def test_macro_case(self):
-+ converter = NameStyleConverter('WebGLBaz2D')
-+ self.assertEqual(converter.to_macro_case(), 'WEBGL_BAZ_2D')
-+ def test_all_cases(self):
-+ converter = NameStyleConverter('SVGScriptElement')
-+ self.assertEqual(converter.to_all_cases(), {
-+ 'snake_case': 'svg_script_element',
-+ 'upper_camel_case': 'SVGScriptElement',
-+ 'macro_case': 'SVG_SCRIPT_ELEMENT',
-+ })
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing 2018-04-19 11:34:40.621293007 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py 2018-04-19 11:34:34.440413163 -0400
-@@ -0,0 +1,3 @@
-+# Copyright 2017 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.
diff --git a/chromium-73.0.3683.75-pipewire-cstring-fix.patch b/chromium-73.0.3683.75-pipewire-cstring-fix.patch
deleted file mode 100644
index ce8b70b..0000000
--- a/chromium-73.0.3683.75-pipewire-cstring-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-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-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
new file mode 100644
index 0000000..690f0f9
--- /dev/null
+++ b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
@@ -0,0 +1,15 @@
+diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
+--- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
++++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
+@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
+
+ void UsbContext::UsbEventHandler::Stop() {
+ base::subtle::Release_Store(&running_, 0);
++#ifdef LIBUSB_API_VERSION >= 0x01000105
++ libusb_interrupt_event_handler(context_);
++#else
+ libusb_interrupt_handle_event(context_);
++#endif
+ }
+
+ UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium.spec b/chromium.spec
index d734490..1d3a256 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,15 +157,15 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 75
+%global majorversion 76
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3770.100
-Release: 4%{?dist}
+Version: %{majorversion}.0.3809.100
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -176,10 +176,7 @@ Patch1: chromium-45.0.2454.101-linux-path-max.patch
Patch2: chromium-55.0.2883.75-addrfix.patch
Patch3: chromium-72.0.3626.121-notest.patch
# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
-# Ignore deprecations in cups 2.2
-# https://bugs.chromium.org/p/chromium/issues/detail?id=622493
-Patch5: chromium-55.0.2883.75-cups22.patch
+Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
Patch6: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
@@ -223,8 +220,6 @@ Patch23: chromium-65.0.3325.146-memcpy-fix.patch
Patch24: chromium-68.0.3440.106-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
-# Missing files in tarball
-Patch26: chromium-66.0.3359.117-missing-files.patch
# Do not use unrar code, it is non-free
Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
@@ -253,14 +248,8 @@ Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
Patch37: chromium-widevine-other-locations.patch
# Disable -fno-delete-null-pointer-checks
Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Add #include <cstring> to get pipewire code to build
-Patch39: chromium-73.0.3683.75-pipewire-cstring-fix.patch
-# gcc does not have __assume
-Patch40: chromium-75.0.3770.80-gcc-no-assume.patch
# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# https://chromium.googlesource.com/chromium/src/+/aeed4d1f15ce84a17ea0bc21...
-Patch42: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
@@ -272,8 +261,6 @@ Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# https://chromium.googlesource.com/chromium/src/+/00281713519dbd84b90d2996...
-Patch47: chromium-75.0.3770.100-git00281713.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -794,7 +781,6 @@ udev.
%patch2 -p1 -b .addrfix
%patch3 -p1 -b .notest
%patch4 -p1 -b .modern-libusbx
-%patch5 -p1 -b .cups22
%patch6 -p1 -b .sandboxpie
%patch7 -p1 -b .etc
%patch8 -p1 -b .gnsystem
@@ -815,7 +801,6 @@ udev.
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
%patch25 -p1 -b .aarch64fix
-%patch26 -p1 -b .missing-files
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -828,15 +813,11 @@ udev.
%patch36 -p1 -b .gcc9
%patch37 -p1 -b .widevine-other-locations
%patch38 -p1 -b .disable-ndnpc
-%patch39 -p1 -b .cstring-fix
-%patch40 -p1 -b .gcc-assume
%patch41 -p1 -b .SIOCGSTAMP
-%patch42 -p1 -b .gcc-dcheck_ne-fix
%patch43 -p1 -b .revert-daff6b
%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .git00281713
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1217,7 +1198,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
- 'third_party/openmax_dl' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
@@ -1260,7 +1240,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sqlite' \
'third_party/swiftshader' \
'third_party/swiftshader/third_party/subzero' \
- 'third_party/swiftshader/third_party/LLVM' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
'third_party/tcmalloc' \
@@ -1857,6 +1836,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
+- Update to 76.0.3809.100
+
* Wed Jul 24 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 75.0.3770.100-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
diff --git a/sources b/sources
index 5ba7f4f..778c103 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-75.0.3770.100-clean.tar.xz) = ee2fad215cf39edc572b4ecd040f1130e857e19a34e64fffb14a995ca325adc0b01d6e8bfae4f91c2fecd13ed018049e64fe2c2cc755502b8e3291698698512e
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ad250b8cd0a01297fdff85c12a4dca85477cf027a68c0a9f7a3bc93b825772d17ddd062a89020ae954def781f19fe44beedb33ec8a86f3c12af290edb43d6ee9
commit a77981312eab329555316eb924a841f7be09887e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 12 17:09:21 2019 +0200
Cleanup the patches
diff --git a/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch b/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch
deleted file mode 100644
index f73ded3..0000000
--- a/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Submitted
-
-GCC aarch64 build fix [this is actually a libvpx patch, not a Chromium one]
-
-Sent to: https://chromium-review.googlesource.com/c/webm/libvpx/+/1136449
-
-Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
----
-From c20bd394f18c47bf133b51d6a40399273c3f24e0 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 13 Jul 2018 14:29:09 +0200
-Subject: [PATCH] vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.
-
-This fixes the build with at least GCC 7.3, where it was previously failing
-with:
-
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon':
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:5: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
- s2 = vpaddl_u32(s1);
- ^~
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
- s2 = vpaddl_u32(s1);
- ^
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:81:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
- s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1));
- ^
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:84:24: error: incompatible type for argument 1 of 'vget_lane_u64'
- return vget_lane_u64(s2, 0);
- ^~
-
-The generated assembly was verified to remain identical with both GCC and
-LLVM.
-
-Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac
----
- vpx_dsp/arm/sum_squares_neon.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/vpx_dsp/arm/sum_squares_neon.c b/vpx_dsp/arm/sum_squares_neon.c
-index 8942ba83b..cfefad993 100644
---- a/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
-+++ b/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
-@@ -14,7 +14,7 @@
- #include "./vpx_dsp_rtcd.h"
-
- uint64_t vpx_sum_squares_2d_i16_neon(const int16_t *src, int stride, int size) {
-- int64x1_t s2;
-+ uint64x1_t s2;
-
- if (size == 4) {
- int16x4_t s[4];
---
-2.14.4
-
diff --git a/chromium-46.0.2490.71-notest.patch b/chromium-46.0.2490.71-notest.patch
deleted file mode 100644
index e4e3448..0000000
--- a/chromium-46.0.2490.71-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd
---- chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest 2015-10-16 02:01:56.644149741 -0400
-+++ chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd 2015-10-16 02:02:36.217285227 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- </includes>
- </release>
- </grit>
diff --git a/chromium-52.0.2743.116-unset-madv_free.patch b/chromium-52.0.2743.116-unset-madv_free.patch
deleted file mode 100644
index 2867c79..0000000
--- a/chromium-52.0.2743.116-unset-madv_free.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
---- chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free 2016-08-15 13:07:29.279655676 -0400
-+++ chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-15 13:08:38.447317416 -0400
-@@ -41,6 +41,11 @@
- #include <errno.h>
- #include <sys/mman.h>
-
-+#if OS(LINUX) && defined(MADV_FREE)
-+// Added in Linux 4.5, but it breaks the sandbox.
-+#undef MADV_FREE
-+#endif
-+
- #ifndef MADV_FREE
- #define MADV_FREE MADV_DONTNEED
- #endif
diff --git a/chromium-52.0.2743.82-arm-webrtc.patch b/chromium-52.0.2743.82-arm-webrtc.patch
deleted file mode 100644
index f1a6629..0000000
--- a/chromium-52.0.2743.82-arm-webrtc.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -up chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc
---- chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc 2016-08-03 09:30:53.922861020 +0200
-+++ chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc 2016-08-03 09:32:00.337498174 +0200
-@@ -18,6 +18,47 @@
-
- #include "webrtc/typedefs.h"
-
-+#include <elf.h>
-+#ifdef __arm__
-+#include <fcntl.h>
-+#include <unistd.h>
-+#include <linux/auxvec.h>
-+#include <asm/hwcap.h>
-+#endif
-+
-+#ifdef __arm__
-+uint64_t WebRtc_GetCPUFeaturesARM() {
-+ static bool detected = false;
-+ static uint64_t have_neon = 0;
-+
-+ int fd;
-+ Elf32_auxv_t auxv;
-+ unsigned int hwcaps;
-+
-+ if (!detected) {
-+ int fd;
-+ Elf32_auxv_t auxv;
-+ unsigned int hwcaps;
-+
-+ fd = open("/proc/self/auxv", O_RDONLY);
-+ if (fd >= 0) {
-+ while (read(fd, &auxv, sizeof(Elf32_auxv_t)) == sizeof(Elf32_auxv_t)) {
-+ if (auxv.a_type == AT_HWCAP) {
-+ have_neon = (auxv.a_un.a_val & HWCAP_NEON) ? kCPUFeatureNEON : 0;
-+ break;
-+ }
-+ }
-+ close (fd);
-+ } else {
-+ have_neon = 0;
-+ }
-+ detected = true;
-+ }
-+
-+ return 0 | have_neon; // others here as we need them
-+}
-+#endif
-+
- // No CPU feature is available => straight C path.
- int GetCPUInfoNoASM(CPUFeature feature) {
- (void)feature;
diff --git a/chromium-52.0.2743.82-master-prefs-path.patch b/chromium-52.0.2743.82-master-prefs-path.patch
deleted file mode 100644
index 6ddd26f..0000000
--- a/chromium-52.0.2743.82-master-prefs-path.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc
---- chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc 2016-08-03 10:15:57.980692109 +0200
-+++ chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc 2016-08-03 10:16:44.553325229 +0200
-@@ -19,9 +19,9 @@ bool IsOrganicFirstRun() {
-
- base::FilePath MasterPrefsPath() {
- // The standard location of the master prefs is next to the chrome binary.
-+ // ...but we patch it to use /etc/chromium
- base::FilePath master_prefs;
-- if (!PathService::Get(base::DIR_EXE, &master_prefs))
-- return base::FilePath();
-+ master_prefs = base::FilePath("/etc/chromium");
- return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
- }
-
diff --git a/chromium-55.0.2883.75-sandbox-pie.patch b/chromium-55.0.2883.75-sandbox-pie.patch
deleted file mode 100644
index 6aae0b0..0000000
--- a/chromium-55.0.2883.75-sandbox-pie.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie chromium-55.0.2883.75/sandbox/linux/BUILD.gn
---- chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie 2016-12-01 18:02:17.000000000 -0500
-+++ chromium-55.0.2883.75/sandbox/linux/BUILD.gn 2016-12-12 16:26:06.863426221 -0500
-@@ -279,11 +279,17 @@ if (is_linux) {
- # For ULLONG_MAX
- "-std=gnu99",
-
-+ "-fPIE",
-+
- # These files have a suspicious comparison.
- # TODO fix this and re-enable this warning.
- "-Wno-sign-compare",
- ]
-
-+ ldflags = [
-+ "-pie",
-+ ]
-+
- import("//build/config/compiler/compiler.gni")
- import("//build/config/sanitizers/sanitizers.gni")
- if (is_component_build || using_sanitizer) {
-@@ -293,7 +299,7 @@ if (is_linux) {
- # other flags that executable_config might have.
- configs -= [ "//build/config:executable_config" ]
- if (!use_gold) {
-- ldflags = [ "-Wl,--disable-new-dtags" ]
-+ ldflags += [ "-Wl,--disable-new-dtags" ]
- }
- }
-
diff --git a/chromium-56.0.2924.87-fpermissive.patch b/chromium-56.0.2924.87-fpermissive.patch
deleted file mode 100644
index be68cf9..0000000
--- a/chromium-56.0.2924.87-fpermissive.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn
---- chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive 2017-02-13 12:32:23.419665971 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn 2017-02-13 12:33:16.146629190 -0500
-@@ -54,6 +54,9 @@ config("config") {
- cflags = []
- defines = []
-
-+ # error: there are no arguments to 'swapAnchor' that depend on a template parameter, so a declaration of 'swapAnchor' must be available [-fpermissive]
-+ cflags += [ "-fpermissive" ]
-+
- if (is_win) {
- cflags += [
- "/wd4305", # Truncation from 'type1' to 'type2'.
diff --git a/chromium-56.0.2924.87-gcc5.patch b/chromium-56.0.2924.87-gcc5.patch
deleted file mode 100644
index 902f92b..0000000
--- a/chromium-56.0.2924.87-gcc5.patch
+++ /dev/null
@@ -1,354 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc
---- chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 2017-02-01 21:03:47.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc 2017-02-09 10:38:38.319790897 -0500
-@@ -165,8 +165,8 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- // state[16 + 2] 0x000000 Byte 2 of 3 (relative offsets)
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-
- // state[17 + 2] 0x0031c0 Byte 3 of 3 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -259,10 +259,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229, 3,208, 0,229, 5, 233, 0,229,229,229,208,229,229,
-
- // state[32 + 2] 0x002000 Byte 2 of 3 (relative offsets)
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-
- // state[33 + 2] 0x003780 Byte 3 of 3 (property)
- 229,208,229,229,208,229,229,229, 208,208,208,208,208, 4, 6,208,
-@@ -355,10 +355,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 228,229,229,229,229,233,233, 6, 208,229, 3,229,233, 6, 6, 0,
-
- // state[48 + 2] 0x001000 Byte 2 of 3 (relative offsets)
---46,-46,-46,-46,-42,-41,-40,-39, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-
- // state[49 + 2] 0x003b40 Byte 3 of 3 (property)
- 6,227,208,233,208, 3, 3,208, 208,229, 0,229,233,219, 0, 6,
-@@ -451,10 +451,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,208,208,217,208,229,229, 229,229,208,217,208,229,229,229,
-
- // state[64 + 2] 0x003000 Byte 2 of 3 (relative offsets)
---54,-53,-52,-51,-50,-58,-49,-47, -62,-62,-62,-62,-62,-62,-62,-62,
---46,-45,-44,-43,-42,-41,-40,-39, -38,-37,-36,-35,-34,-33,-31,-30,
---29,-28,-27,-26,-25,-24,-23,-22, -21,-20,-19,-18,-17,-15,-14,-13,
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-54,(uint8)-53,(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-58,(uint8)-49,(uint8)-47, (uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,
-+(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-38,(uint8)-37,(uint8)-36,(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,
-+(uint8)-29,(uint8)-28,(uint8)-27,(uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22, (uint8)-21,(uint8)-20,(uint8)-19,(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
-
- // state[65 + 2] 0x003f00 Byte 3 of 3 (property)
- 217,217,208, 3,208,217,208,208, 6,229,208,228,229,229,208,229,
-@@ -547,10 +547,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,229,229,208,229,233, 0, 208,208,229,208,227,229,229,229,
-
- // state[80 + 2] 0x004000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-- 38, 39, 40, 41, 42, 43, 44,-78, 45, 46, 47, 48, 49, 50, 51, 52,
-+ 38, 39, 40, 41, 42, 43, 44,(uint8)-78, 45, 46, 47, 48, 49, 50, 51, 52,
-
- // state[81 + 2] 0x0042c0 Byte 3 of 3 (property)
- 229, 0,229,229,229, 3, 4, 4, 229,229,229,229,208,229, 0,208,
-@@ -931,7 +931,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,142, 98, 28,117,206,212,212, 220, 15, 0,231,199,231,111, 28,
-
- // state[144 + 2] 0x005000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -1315,7 +1315,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 16, 15,211,118, 0,231, 68,231, 0, 99,161, 0,115,221,144,140,
-
- // state[208 + 2] 0x006000 Byte 2 of 3 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -1699,7 +1699,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 119, 16, 51, 0, 0, 68,136, 72, 144,118, 87,201,191,136, 78,233,
-
- // state[272 + 2] 0x007000 Byte 2 of 3 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -2083,7 +2083,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 212,212, 0,126,140,220,220, 0, 0, 0,127,118,106, 0,199, 0,
-
- // state[336 + 2] 0x008000 Byte 2 of 3 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -2467,7 +2467,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,122, 0,231,100,232, 0, 0, 117, 0,206,231, 0, 0,231, 0,
-
- // state[400 + 2] 0x009000 Byte 2 of 3 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-@@ -2851,10 +2851,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- // state[464 + 2] 0x00a000 Byte 2 of 3 (relative offsets)
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5,
-
- // state[465 + 2] 0x000080 Byte 2 of 2 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -2947,10 +2947,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208, 5, 6,208, 2, 0, 6, 6, 5,208,208,208, 6,
-
- // state[480 + 2] 0x00b000 Byte 2 of 3 (relative offsets)
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-
- // state[481 + 2] 0x020100 Byte 4 of 4 (property)
- 2, 6, 5, 6, 5,229, 5,208, 208,208,208,208,208,208,208,229,
-@@ -3043,10 +3043,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5,208,208, 2, 229, 5, 5, 5, 5, 5, 6,208,
-
- // state[496 + 2] 0x00d000 Byte 2 of 3 (relative offsets)
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-35,-35,
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-34,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-34,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-
- // state[497 + 2] 0x0204c0 Byte 4 of 4 (property)
- 2, 2, 5, 5, 5, 2,208, 2, 5, 5, 6,208,208, 5, 5, 5,
-@@ -3139,10 +3139,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5, 5, 6, 6, 208,208, 2,208,208,208,208,208,
-
- // state[512 + 2] 0x00f000 Byte 2 of 3 (relative offsets)
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-46,-45,-44,-43, -42,-41,-44,-40,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-39,-38,-37,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43, (uint8)-42,(uint8)-41,(uint8)-44,(uint8)-40,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-39,(uint8)-38,(uint8)-37,
-
- // state[513 + 2] 0x020880 Byte 4 of 4 (property)
- 5, 5, 5, 6,208,208,208,208, 208,208, 5, 5, 6, 6,208,208,
-@@ -3235,10 +3235,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 6,208,218,208,208,208,218, 208, 6,227,229, 6, 6, 6,208,
-
- // state[528 + 2] 0x020000 Byte 3 of 4 (relative offsets)
---52,-51,-50,-49,-47,-46,-45,-44, -43,-42,-41,-40,-39,-38,-37,-36,
---35,-34,-33,-31,-30,-29,-28,-27, -26,-25,-24,-23,-22,-21,-20,-19,
---18,-17,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2,
-- -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-+(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-49,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44, (uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39,(uint8)-38,(uint8)-37,(uint8)-36,
-+(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,(uint8)-29,(uint8)-28,(uint8)-27, (uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22,(uint8)-21,(uint8)-20,(uint8)-19,
-+(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2,
-+ (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-
- // state[529 + 2] 0x020c40 Byte 4 of 4 (property)
- 227, 5, 5, 5, 2, 2, 2, 2, 213, 2, 2, 2, 2, 2,208, 6,
-@@ -3427,7 +3427,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208,208,208,208,208, 208, 6, 6, 6, 6, 2, 5, 5,
-
- // state[560 + 2] 0x021000 Byte 3 of 4 (relative offsets)
---16,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
-+(uint8)-16,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-@@ -3811,7 +3811,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6, 6, 6, 5,208, 208,229,208,208, 5, 5, 5, 5,
-
- // state[624 + 2] 0x022000 Byte 3 of 4 (relative offsets)
---15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1,
-+(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-@@ -4195,7 +4195,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 4, 5,208,208,208,208, 208,208,229, 6, 5, 6, 6, 6,
-
- // state[688 + 2] 0x023000 Byte 3 of 4 (relative offsets)
---14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2,
-+(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-@@ -4579,7 +4579,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 6, 208,208,208,208,208,208, 6, 6,
-
- // state[752 + 2] 0x024000 Byte 3 of 4 (relative offsets)
---13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3,
-+(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-@@ -4963,7 +4963,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 6,229,
-
- // state[816 + 2] 0x025000 Byte 3 of 4 (relative offsets)
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-@@ -5347,7 +5347,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 3, 6,229,208,208,229,
-
- // state[880 + 2] 0x026000 Byte 3 of 4 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -5731,7 +5731,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208, 6, 6,208,208,208,208,208, 6, 6, 6,216, 5, 5, 5, 5,
-
- // state[944 + 2] 0x027000 Byte 3 of 4 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -6115,7 +6115,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6,208,208, 6, 6, 208,229,208,208,208, 5, 5, 5,
-
- // state[1008 + 2] 0x028000 Byte 3 of 4 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -6499,7 +6499,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 6,208,208, 5, 208,208,208, 6,208, 6,208,208,
-
- // state[1072 + 2] 0x029000 Byte 3 of 4 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -6883,7 +6883,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229,229,208,208,208,229, 208,208,208,229, 0,229,208,208,
-
- // state[1136 + 2] 0x02a000 Byte 3 of 4 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
-@@ -7075,10 +7075,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-
- // state[1168 + 2] 0x02f000 Byte 3 of 4 (relative offsets)
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-
- // state[1169 + 2] 0x02fa00 Byte 4 of 4 (property)
- 217, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,217, 5, 5,
-diff -up chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2017-02-01 21:03:57.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2017-02-09 10:38:38.380789675 -0500
-@@ -265,7 +265,7 @@ interface WebGL2RenderingContextBase
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h 2017-02-09 10:38:38.387789535 -0500
-@@ -49,7 +49,7 @@ class NodeFilter final : public GarbageC
- * to the value of NodeType for the equivalent node type.
- */
- enum {
-- kShowAll = 0xFFFFFFFF,
-+ kShowAll = 256 /* 0xFFFFFFFF */,
- kShowElement = 0x00000001,
- kShowAttribute = 0x00000002,
- kShowText = 0x00000004,
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl 2017-02-09 10:38:38.394789395 -0500
-@@ -30,7 +30,7 @@
- const unsigned short FILTER_SKIP = 3;
-
- // Constants for whatToShow
-- const unsigned long SHOW_ALL = 0xFFFFFFFF;
-+ const unsigned long SHOW_ALL = 256; // 0xFFFFFFFF
- const unsigned long SHOW_ELEMENT = 0x1;
- const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
- const unsigned long SHOW_TEXT = 0x4;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl 2017-02-09 11:07:32.828682863 -0500
-@@ -239,7 +239,7 @@ typedef unsigned long long GLuint64;
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-@@ -269,7 +269,7 @@ typedef unsigned long long GLuint64;
- const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;
- const GLenum MAX_ELEMENT_INDEX = 0x8D6B;
- const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
-- const GLint TIMEOUT_IGNORED = -1;
-+ const GLint TIMEOUT_IGNORED = 256;
-
- /* WebGL-specific enums */
- const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
diff --git a/chromium-59.0.3071.115-ucontext-fix.patch b/chromium-59.0.3071.115-ucontext-fix.patch
deleted file mode 100644
index 96bfadb..0000000
--- a/chromium-59.0.3071.115-ucontext-fix.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.ucontextfix 2017-07-12 15:23:33.019591380 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc 2017-07-12 15:32:52.069197546 -0400
-@@ -36,19 +36,19 @@ namespace google_breakpad {
-
- // Minidump defines register structures which are different from the raw
- // structures which we get from the kernel. These are platform specific
--// functions to juggle the ucontext and user structures into minidump format.
-+// functions to juggle the ucontext_t and user structures into minidump format.
-
- #if defined(__i386__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_ESP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_EIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__x86_64)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RSP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__ARM_EABI__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- out->context_flags = MD_CONTEXT_ARM_FULL;
-
- out->iregs[0] = uc->uc_mcontext.arm_r0;
-@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__aarch64__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs) {
- out->context_flags = MD_CONTEXT_ARM64_FULL;
-
-@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__mips__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- #if _MIPS_SIM == _ABI64
- out->context_flags = MD_CONTEXT_MIPS64_FULL;
- #elif _MIPS_SIM == _ABIO32
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
---- chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.ucontextfix 2017-07-12 15:33:08.486806743 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h 2017-07-12 15:33:57.299644808 -0400
-@@ -39,23 +39,23 @@
-
- namespace google_breakpad {
-
--// Wraps platform-dependent implementations of accessors to ucontext structs.
-+// Wraps platform-dependent implementations of accessors to ucontext_t structs.
- struct UContextReader {
-- static uintptr_t GetStackPointer(const struct ucontext* uc);
-+ static uintptr_t GetStackPointer(const ucontext_t* uc);
-
-- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
-+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
-
-- // Juggle a arch-specific ucontext into a minidump format
-+ // Juggle a arch-specific ucontext_t into a minidump format
- // out: the minidump structure
- // info: the collection of register structures.
- #if defined(__i386__) || defined(__x86_64)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
- #elif defined(__aarch64__)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs);
- #else
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
- #endif
- };
-
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc.ucontextfix 2017-07-12 15:34:09.094364048 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc 2017-07-12 15:35:36.483283853 -0400
-@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int
- // Fill in all the holes in the struct to make Valgrind happy.
- memset(&g_crash_context_, 0, sizeof(g_crash_context_));
- memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
-- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
-+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
- #if defined(__aarch64__)
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
-@@ -450,9 +450,9 @@ bool ExceptionHandler::HandleSignal(int
- }
- #elif !defined(__ARM_EABI__) && !defined(__mips__)
- // FP state is not part of user ABI on ARM Linux.
-- // In case of MIPS Linux FP state is already part of struct ucontext
-+ // In case of MIPS Linux FP state is already part of ucontext_t
- // and 'float_state' is not a member of CrashContext.
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- if (uc_ptr->uc_mcontext.fpregs) {
- memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
- sizeof(g_crash_context_.float_state));
-@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDel
- // ExceptionHandler::HandleSignal().
- siginfo.si_code = SI_USER;
- siginfo.si_pid = getpid();
-- struct ucontext context;
-+ ucontext_t context;
- getcontext(&context);
- return HandleSignal(sig, &siginfo, &context);
- }
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h
---- chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h.ucontextfix 2017-07-12 15:35:48.559996380 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h 2017-07-12 15:36:32.615948562 -0400
-@@ -191,11 +191,11 @@ class ExceptionHandler {
- struct CrashContext {
- siginfo_t siginfo;
- pid_t tid; // the crashing thread.
-- struct ucontext context;
-+ ucontext_t context;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- // #ifdef this out because FP state is not part of user ABI for Linux ARM.
- // In case of MIPS Linux FP state is already part of struct
-- // ucontext so 'float_state' is not required.
-+ // ucontext_t so 'float_state' is not required.
- fpstate_t float_state;
- #endif
- };
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.ucontextfix 2017-07-12 15:37:26.232674196 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc 2017-07-12 15:37:39.032369973 -0400
-@@ -579,7 +579,7 @@ class MicrodumpWriter {
-
- void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
-
-- const struct ucontext* const ucontext_;
-+ const ucontext_t* const ucontext_;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_;
- #endif
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.ucontextfix 2017-07-12 15:37:54.041013246 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc 2017-07-12 15:38:19.600405748 -0400
-@@ -1323,7 +1323,7 @@ class MinidumpWriter {
- const int fd_; // File descriptor where the minidum should be written.
- const char* path_; // Path to the file where the minidum should be written.
-
-- const struct ucontext* const ucontext_; // also from the signal handler
-+ const ucontext_t* const ucontext_; // also from the signal handler
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_; // ditto
- #endif
diff --git a/chromium-59.0.3071.86-ffmpeg-stdatomic.patch b/chromium-59.0.3071.86-ffmpeg-stdatomic.patch
deleted file mode 100644
index a512513..0000000
--- a/chromium-59.0.3071.86-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c
---- chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2017-06-07 17:15:24.993945430 -0400
-+++ chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c 2017-06-07 17:18:41.625997601 -0400
-@@ -17,7 +17,13 @@
- */
-
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "cpu.h"
- #include "cpu_internal.h"
diff --git a/chromium-59.0.3071.86-nullfix.patch b/chromium-59.0.3071.86-nullfix.patch
deleted file mode 100644
index 20e9d18..0000000
--- a/chromium-59.0.3071.86-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.nullfix chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.nullfix 2017-06-05 15:03:01.000000000 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:32:43.531911624 -0400
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -91,6 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -136,6 +139,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -161,6 +165,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "mipsel-linux-gnu-readelf"
- nm = "mipsel-linux-gnu-nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-59.0.3071.86-system-clang.patch b/chromium-59.0.3071.86-system-clang.patch
deleted file mode 100644
index 458834b..0000000
--- a/chromium-59.0.3071.86-system-clang.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff -up chromium-59.0.3071.86/build/config/clang/clang.gni.system-clang chromium-59.0.3071.86/build/config/clang/clang.gni
---- chromium-59.0.3071.86/build/config/clang/clang.gni.system-clang 2017-06-11 20:57:07.327949687 -0400
-+++ chromium-59.0.3071.86/build/config/clang/clang.gni 2017-06-11 20:57:24.085620826 -0400
-@@ -9,5 +9,5 @@ declare_args() {
- # coding guidelines, etc. Only used when compiling with Clang.
- clang_use_chrome_plugins = is_clang && !is_nacl && !use_xcode_clang
-
-- clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+ clang_base_path = "/usr"
- }
diff --git a/chromium-60.0.3112.78-gn-system.patch b/chromium-60.0.3112.78-gn-system.patch
deleted file mode 100644
index 60489bb..0000000
--- a/chromium-60.0.3112.78-gn-system.patch
+++ /dev/null
@@ -1,221 +0,0 @@
-diff -up chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn
---- chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn 2017-07-31 10:38:25.879951641 -0400
-@@ -16,6 +16,10 @@ source_set("libjpeg") {
- libs = [ "jpeg" ]
- }
-
-+config("system_libjpeg") {
-+ defines = [ "USE_SYSTEM_LIBJPEG=1" ]
-+}
-+
- source_set("simd") {
- }
-
-diff -up chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libusb.gn
---- chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem 2017-07-31 10:38:25.880951622 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/libusb.gn 2017-07-31 10:38:25.879951641 -0400
-@@ -0,0 +1,24 @@
-+# Copyright 2016 The Chromium Authors. All rights reserved.
-+# Use of this source code is governed by a BSD-style license that can be
-+# found in the LICENSE file.
-+
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+
-+pkg_config("system_libusb") {
-+ packages = [ "libusb-1.0" ]
-+}
-+
-+shim_headers("libusb_shim") {
-+ root_path = "src/libusb"
-+ headers = [
-+ "libusb.h",
-+ ]
-+}
-+
-+source_set("libusb") {
-+ deps = [
-+ ":libusb_shim",
-+ ]
-+ public_configs = [ ":system_libusb" ]
-+}
-diff -up chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/opus.gn
---- chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/opus.gn 2017-07-31 10:38:25.880951622 -0400
-@@ -1,3 +1,164 @@
-+# Copyright 2016 The Chromium Authors. All rights reserved.
-+# Use of this source code is governed by a BSD-style license that can be
-+# found in the LICENSE file.
-+
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+import("//testing/test.gni")
-+
-+pkg_config("system_opus") {
-+ packages = [ "opus" ]
-+}
-+
-+shim_headers("opus_shim") {
-+ root_path = "src/include"
-+ headers = [
-+ "opus_custom.h",
-+ "opus_defines.h",
-+ "opus_multistream.h",
-+ "opus_types.h",
-+ "opus.h",
-+ ]
-+}
-+
-+source_set("opus") {
-+ deps = [
-+ ":opus_shim",
-+ ]
-+ public_configs = [ ":system_opus" ]
-+}
-+
-+config("opus_test_config") {
-+ include_dirs = [
-+ "src/celt",
-+ "src/silk",
-+ ]
-+
-+ if (is_win) {
-+ defines = [ "inline=__inline" ]
-+ }
-+ if (is_android) {
-+ libs = [ "log" ]
-+ }
-+ if (is_clang) {
-+ cflags = [ "-Wno-absolute-value" ]
-+ }
-+}
-+
-+executable("opus_compare") {
-+ sources = [
-+ "src/src/opus_compare.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ "//build/config/sanitizers:deps",
-+ "//build/win:default_exe_manifest",
-+ ]
-+}
-+
-+executable("opus_demo") {
-+ sources = [
-+ "src/src/opus_demo.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ "//build/config/sanitizers:deps",
-+ "//build/win:default_exe_manifest",
-+ ]
-+}
-+
-+test("test_opus_api") {
-+ sources = [
-+ "src/tests/test_opus_api.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+test("test_opus_encode") {
-+ sources = [
-+ "src/tests/test_opus_encode.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+# GN orders flags on a target before flags from configs. The default config
-+# adds -Wall, and this flag have to be after -Wall -- so they need to
-+# come from a config and can't be on the target directly.
-+config("test_opus_decode_config") {
-+ # test_opus_decode passes a null pointer to opus_decode() for an argument
-+ # marked as requiring a non-null value by the nonnull function attribute,
-+ # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
-+ # a compilation error if -Werror is specified.
-+ if (is_posix) {
-+ cflags = [ "-Wno-nonnull" ]
-+ }
-+}
-+
-+test("test_opus_decode") {
-+ sources = [
-+ "src/tests/test_opus_decode.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ":test_opus_decode_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+test("test_opus_padding") {
-+ sources = [
-+ "src/tests/test_opus_padding.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
- # Copyright 2017 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.
-diff -up chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py
---- chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem 2017-07-31 10:38:25.880951622 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py 2017-07-31 10:39:58.067159914 -0400
-@@ -26,6 +26,7 @@ REPLACEMENTS = {
- 'libevent': 'base/third_party/libevent/BUILD.gn',
- 'libjpeg': 'build/secondary/third_party/libjpeg_turbo/BUILD.gn',
- 'libpng': 'third_party/libpng/BUILD.gn',
-+ 'libusb': 'third_party/libusb/BUILD.gn',
- 'libvpx': 'third_party/libvpx/BUILD.gn',
- 'libwebp': 'third_party/libwebp/BUILD.gn',
- 'libxml': 'third_party/libxml/BUILD.gn',
diff --git a/chromium-60.0.3112.78-last-commit-position.patch b/chromium-60.0.3112.78-last-commit-position.patch
deleted file mode 100644
index 7c26d9f..0000000
--- a/chromium-60.0.3112.78-last-commit-position.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit chromium-60.0.3112.78/tools/gn/BUILD.gn
---- chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit 2017-07-31 10:42:38.568041044 -0400
-+++ chromium-60.0.3112.78/tools/gn/BUILD.gn 2017-07-31 10:47:50.760974587 -0400
-@@ -268,7 +268,6 @@ executable("gn") {
-
- deps = [
- ":gn_lib",
-- ":last_commit_position",
- "//base",
- "//build/config:exe_and_shlib_deps",
- "//build/win:default_exe_manifest",
-diff -up chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit chromium-60.0.3112.78/tools/gn/gn_main.cc
---- chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit 2017-07-25 15:05:19.000000000 -0400
-+++ chromium-60.0.3112.78/tools/gn/gn_main.cc 2017-07-31 10:42:38.568041044 -0400
-@@ -12,13 +12,7 @@
- #include "tools/gn/standard_out.h"
- #include "tools/gn/switches.h"
-
--// Only the GN-generated build makes this header for now.
--// TODO(brettw) consider adding this if we need it in GYP.
--#if defined(GN_BUILD)
--#include "tools/gn/last_commit_position.h"
--#else
- #define LAST_COMMIT_POSITION "UNKNOWN"
--#endif
-
- namespace {
-
diff --git a/chromium-60.0.3112.78-no-zlib-mangle.patch b/chromium-60.0.3112.78-no-zlib-mangle.patch
deleted file mode 100644
index 4b90360..0000000
--- a/chromium-60.0.3112.78-no-zlib-mangle.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle chromium-60.0.3112.78/third_party/zlib/zconf.h
---- chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle 2017-08-04 10:45:17.509152089 -0400
-+++ chromium-60.0.3112.78/third_party/zlib/zconf.h 2017-08-04 10:45:30.451902380 -0400
-@@ -8,9 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names */
--#include "names.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-60.0.3112.90-vulkan-force-c99.patch b/chromium-60.0.3112.90-vulkan-force-c99.patch
deleted file mode 100644
index 881aa91..0000000
--- a/chromium-60.0.3112.90-vulkan-force-c99.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn.c99 chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn
---- chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn.c99 2017-08-14 10:40:48.028799820 -0400
-+++ chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn 2017-08-14 10:41:43.054734910 -0400
-@@ -180,6 +180,7 @@ config("vulkan_internal_config") {
- cflags += [ "-Wno-ignored-attributes" ]
- }
- if (is_linux) {
-+ cflags += [ "-std=c99" ]
- defines += [
- "SYSCONFDIR=\"/etc\"",
- "FALLBACK_CONFIG_DIRS=\"/etc/xdg\"",
diff --git a/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch b/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch
deleted file mode 100644
index 12e88d2..0000000
--- a/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc 2017-09-12 10:12:25.375736650 -0400
-+++ chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc 2017-09-12 10:14:42.339638321 -0400
-@@ -461,7 +461,7 @@ bool ExceptionHandler::HandleSignal(int
- #if defined(__aarch64__)
- ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
-- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
-+ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__glibc_reserved1;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
- memcpy(&g_crash_context_.float_state, fp_ptr,
- sizeof(g_crash_context_.float_state));
diff --git a/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch b/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch
deleted file mode 100644
index a8c7260..0000000
--- a/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 2017-09-06 14:34:36.247232957 -0400
-+++ chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni 2017-09-06 14:36:37.632892363 -0400
-@@ -537,7 +537,7 @@ if (use_linux_config && current_cpu == "
- ]
- }
-
--if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
-+if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chromium")) {
- ffmpeg_c_sources += [
- "libavcodec/aarch64/mpegaudiodsp_init.c",
- ]
diff --git a/chromium-61.0.3163.79-setopaque.patch b/chromium-61.0.3163.79-setopaque.patch
deleted file mode 100644
index b797d10..0000000
--- a/chromium-61.0.3163.79-setopaque.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/cc/blink/web_layer_impl.h.setopaque chromium-61.0.3163.79/cc/blink/web_layer_impl.h
---- chromium-61.0.3163.79/cc/blink/web_layer_impl.h.setopaque 2017-09-06 13:55:45.454175023 -0400
-+++ chromium-61.0.3163.79/cc/blink/web_layer_impl.h 2017-09-06 13:58:02.395533936 -0400
-@@ -71,7 +71,7 @@ class CC_BLINK_EXPORT WebLayerImpl : pub
- bool IsRootForIsolatedGroup() override;
- void SetShouldHitTest(bool should_hit_test) override;
- bool ShouldHitTest() override;
-- void SetOpaque(bool opaque) override;
-+ CC_BLINK_EXPORT void SetOpaque(bool opaque) override;
- bool Opaque() const override;
- void SetPosition(const blink::WebFloatPoint& position) override;
- blink::WebFloatPoint GetPosition() const override;
diff --git a/chromium-62.0.3202.62-correct-cplusplus-check.patch b/chromium-62.0.3202.62-correct-cplusplus-check.patch
deleted file mode 100644
index 39f8580..0000000
--- a/chromium-62.0.3202.62-correct-cplusplus-check.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h.fix-cplusplus-conditional chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h
---- chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h.fix-cplusplus-conditional 2017-10-17 15:12:35.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h 2017-10-19 11:41:45.860279576 -0400
-@@ -38,6 +38,8 @@ inline uint32_t Crc32c(const std::string
- // Visual Studio provides a <string_view> header even in C++11 mode. When
- // included, the header issues an #error. (C1189)
- #if !defined(_MSC_VER) || __cplusplus >= 201703L
-+// GCC issues an #error if __cplusplus <= 201402L
-+#if defined(__GNUC__) && __cplusplus > 201402L
- #include <string_view>
-
- // Comptues the CRC32C of the bytes in the string_view.
-@@ -46,6 +48,7 @@ inline uint32_t Crc32c(const std::string
- string_view.size());
- }
-
-+#endif // defined(__GNUC__) && __cplusplus > 201402L
- #endif // !defined(_MSC_VER) || __cplusplus >= 201703L
- #endif // __has_include(<string_view>)
- #endif // defined(__has_include)
diff --git a/chromium-62.0.3202.62-dde535-gcc-fix.patch b/chromium-62.0.3202.62-dde535-gcc-fix.patch
deleted file mode 100644
index 378403a..0000000
--- a/chromium-62.0.3202.62-dde535-gcc-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc.dde535 chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc
---- chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc.dde535 2017-10-18 10:04:33.237966223 -0400
-+++ chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc 2017-10-18 10:05:00.442438694 -0400
-@@ -18,7 +18,8 @@ std::unique_ptr<service_manager::Service
- auto resource_coordinator_service =
- base::MakeUnique<ResourceCoordinatorService>();
-
-- return resource_coordinator_service;
-+ return std::unique_ptr<service_manager::Service>(
-+ resource_coordinator_service.release());
- }
-
- ResourceCoordinatorService::ResourceCoordinatorService()
diff --git a/chromium-62.0.3202.62-enable-mp3.patch b/chromium-62.0.3202.62-enable-mp3.patch
deleted file mode 100644
index 3ed9dbf..0000000
--- a/chromium-62.0.3202.62-enable-mp3.patch
+++ /dev/null
@@ -1,484 +0,0 @@
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/button-press.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/button-press
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/hit.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/hit
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/score-reached.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/score-reached
-diff -up chromium-62.0.3202.62/media/base/mime_util_internal.cc.mp3 chromium-62.0.3202.62/media/base/mime_util_internal.cc
---- chromium-62.0.3202.62/media/base/mime_util_internal.cc.mp3 2017-10-17 15:10:44.000000000 -0400
-+++ chromium-62.0.3202.62/media/base/mime_util_internal.cc 2017-10-18 09:32:16.957562156 -0400
-@@ -266,15 +266,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -311,10 +315,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -920,7 +924,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -928,6 +931,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
-diff -up chromium-62.0.3202.62/media/formats/BUILD.gn.mp3 chromium-62.0.3202.62/media/formats/BUILD.gn
---- chromium-62.0.3202.62/media/formats/BUILD.gn.mp3 2017-10-17 15:10:45.000000000 -0400
-+++ chromium-62.0.3202.62/media/formats/BUILD.gn 2017-10-18 09:25:18.353676481 -0400
-@@ -17,6 +17,14 @@ source_set("formats") {
- "ac3/ac3_util.h",
- "common/offset_byte_queue.cc",
- "common/offset_byte_queue.h",
-+ "mpeg/adts_constants.cc",
-+ "mpeg/adts_constants.h",
-+ "mpeg/adts_stream_parser.cc",
-+ "mpeg/adts_stream_parser.h",
-+ "mpeg/mpeg1_audio_stream_parser.cc",
-+ "mpeg/mpeg1_audio_stream_parser.h",
-+ "mpeg/mpeg_audio_stream_parser_base.cc",
-+ "mpeg/mpeg_audio_stream_parser_base.h",
- "webm/webm_audio_client.cc",
- "webm/webm_audio_client.h",
- "webm/webm_cluster_parser.cc",
-@@ -78,14 +86,6 @@ source_set("formats") {
- "mp4/sample_to_group_iterator.h",
- "mp4/track_run_iterator.cc",
- "mp4/track_run_iterator.h",
-- "mpeg/adts_constants.cc",
-- "mpeg/adts_constants.h",
-- "mpeg/adts_stream_parser.cc",
-- "mpeg/adts_stream_parser.h",
-- "mpeg/mpeg1_audio_stream_parser.cc",
-- "mpeg/mpeg1_audio_stream_parser.h",
-- "mpeg/mpeg_audio_stream_parser_base.cc",
-- "mpeg/mpeg_audio_stream_parser_base.h",
- ]
- }
-
-diff -up chromium-62.0.3202.62/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test.mp3 chromium-62.0.3202.62/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h 2017-10-18 09:25:18.354676462 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h 2017-10-18 09:25:18.355676443 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h 2017-10-18 09:25:18.360676348 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h 2017-10-18 09:25:18.360676348 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h 2017-10-18 09:25:18.361676329 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-10-18 09:05:28.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni 2017-10-18 09:25:18.362676310 -0400
-@@ -182,17 +182,9 @@ if ((is_mac) || (is_win) || (use_linux_c
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_win) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm64") || (use_linux_config && current_cpu == "mipsel") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
-- "libavcodec/aac_ac3_parser.c",
-- "libavcodec/aac_parser.c",
-- "libavcodec/aacadtsdec.c",
-- "libavcodec/aacps_float.c",
-- "libavcodec/aacpsdsp_float.c",
-- "libavcodec/aacsbr.c",
-- "libavcodec/aactab.c",
- "libavcodec/ac3tab.c",
-- "libavcodec/autorename_libavcodec_aacdec.c",
- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
- "libavcodec/autorename_libavcodec_sbrdsp.c",
- "libavcodec/cbrt_data.c",
-@@ -210,7 +202,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
- "libavcodec/mpegaudiodsp_float.c",
- "libavcodec/sinewin.c",
- "libavcodec/sinewin_fixed.c",
-- "libavformat/aacdec.c",
- "libavformat/apetag.c",
- "libavformat/img2.c",
- "libavformat/mov.c",
-@@ -219,6 +210,20 @@ if ((current_cpu == "x64" && ffmpeg_bran
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+ ffmpeg_c_sources += [
-+ "libavcodec/aac_ac3_parser.c",
-+ "libavcodec/aac_parser.c",
-+ "libavcodec/aacadtsdec.c",
-+ "libavcodec/aacps_float.c",
-+ "libavcodec/aacpsdsp_float.c",
-+ "libavcodec/aacsbr.c",
-+ "libavcodec/aactab.c",
-+ "libavcodec/autorename_libavcodec_aacdec.c",
-+ "libavformat/aacdec.c",
-+ ]
-+}
-+
- if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
-@@ -322,15 +327,19 @@ if ((is_mac) || (is_win) || (use_linux_c
- if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/aacpsdsp_init.c",
-+ ]
-+ ffmpeg_yasm_sources += [
-+ "libavcodec/x86/aacpsdsp.asm",
-+ ]
-+}
-+
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86") || (is_win)) {
-+ ffmpeg_c_sources += [
- "libavcodec/x86/dct_init.c",
- "libavcodec/x86/mpegaudiodsp.c",
- "libavcodec/x86/sbrdsp_init.c",
- ]
--}
--
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_yasm_sources += [
-- "libavcodec/x86/aacpsdsp.asm",
- "libavcodec/x86/dct32.asm",
- "libavcodec/x86/imdct36.asm",
- "libavcodec/x86/sbrdsp.asm",
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c
---- chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-10-18 09:05:30.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-10-18 09:25:18.362676310 -0400
-@@ -23,6 +23,7 @@
- #define USE_FIXED 0
-
- #include "aac.h"
-+#include "aacsbrdata.h"
- #include "config.h"
- #include "libavutil/attributes.h"
- #include "libavutil/intfloat.h"
-diff -up chromium-62.0.3202.62/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 chromium-62.0.3202.62/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart
-diff -up chromium-62.0.3202.62/tools/android/audio_focus_grabber/java/res/raw/ping.mp3 chromium-62.0.3202.62/tools/android/audio_focus_grabber/java/res/raw/ping
diff --git a/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch b/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch
deleted file mode 100644
index 7af702a..0000000
--- a/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp.nonullptr chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp
---- chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp.nonullptr 2017-10-18 10:10:14.216353575 -0400
-+++ chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp 2017-10-18 10:10:23.657170980 -0400
-@@ -295,7 +295,7 @@ BlobDataHandle::BlobDataHandle(std::uniq
-
- size_t current_memory_population = 0;
- Vector<DataElementPtr> elements;
-- const DataElementPtr null_element = nullptr;
-+ const DataElementPtr null_element;
- BlobBytesProvider* last_bytes_provider = nullptr;
- RefPtr<WebTaskRunner> file_runner = Platform::Current()->FileTaskRunner();
-
diff --git a/chromium-62.0.3202.62-gcc-nc.patch b/chromium-62.0.3202.62-gcc-nc.patch
deleted file mode 100644
index 0a74d25..0000000
--- a/chromium-62.0.3202.62-gcc-nc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-62.0.3202.62/content/network/network_service_impl.cc.gcc-nc chromium-62.0.3202.62/content/network/network_service_impl.cc
---- chromium-62.0.3202.62/content/network/network_service_impl.cc.gcc-nc 2017-10-18 10:07:04.045041261 -0400
-+++ chromium-62.0.3202.62/content/network/network_service_impl.cc 2017-10-18 10:07:53.175088528 -0400
-@@ -90,6 +90,7 @@ NetworkServiceImpl::CreateNetworkContext
- base::MakeUnique<NetworkContext>(this, std::move(request),
- std::move(params), std::move(builder));
- *url_request_context = network_context->url_request_context();
-+ return std::unique_ptr<content::NetworkContext>(network_context.release());
- return network_context;
- }
-
diff --git a/chromium-62.0.3202.62-gcc7.patch b/chromium-62.0.3202.62-gcc7.patch
deleted file mode 100644
index 90d177d..0000000
--- a/chromium-62.0.3202.62-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2017-10-18 09:20:04.072765163 -0400
-+++ chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-10-18 09:21:40.156905187 -0400
-@@ -9,6 +9,7 @@
- #include "platform/graphics/WebGraphicsContext3DProviderWrapper.h"
- #include "platform/wtf/ThreadSpecific.h"
-
-+#include <functional>
- #include <memory>
-
- namespace blink {
diff --git a/chromium-62.0.3202.62-rvalue-fix.patch b/chromium-62.0.3202.62-rvalue-fix.patch
deleted file mode 100644
index 89197cd..0000000
--- a/chromium-62.0.3202.62-rvalue-fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -up chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc.another-rvalue-fix chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc
---- chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc.another-rvalue-fix 2017-10-18 10:15:58.855675480 -0400
-+++ chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc 2017-10-18 10:16:28.925093301 -0400
-@@ -77,7 +77,7 @@ std::unique_ptr<base::Value> OnStartupHa
- !extensions::ExtensionSystem::Get(profile_)
- ->management_policy()
- ->MustRemainEnabled(ntp_extension, nullptr));
-- return dict;
-+ return std::move(dict);
- }
-
- void OnStartupHandler::HandleGetNtpExtension(const base::ListValue* args) {
-diff -up chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc.another-rvalue-fix chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc
---- chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc.another-rvalue-fix 2017-10-18 10:15:16.408497853 -0400
-+++ chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc 2017-10-18 10:15:43.793967075 -0400
-@@ -305,7 +305,7 @@ std::unique_ptr<InkDropImpl> InkDropHost
- base::MakeUnique<InkDropImpl>(this, size());
- ink_drop->SetAutoHighlightMode(
- views::InkDropImpl::AutoHighlightMode::HIDE_ON_RIPPLE);
-- return ink_drop;
-+ return std:move(ink_drop);
- }
-
- std::unique_ptr<InkDropImpl>
-@@ -314,7 +314,7 @@ InkDropHostView::CreateDefaultFloodFillI
- InkDropHostView::CreateDefaultInkDropImpl();
- ink_drop->SetAutoHighlightMode(
- views::InkDropImpl::AutoHighlightMode::SHOW_ON_RIPPLE);
-- return ink_drop;
-+ return std:move(ink_drop);
- }
-
- } // namespace views
-diff -up chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc.another-rvalue-fix chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc
---- chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc.another-rvalue-fix 2017-10-18 10:14:18.054627919 -0400
-+++ chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc 2017-10-18 10:14:42.265159378 -0400
-@@ -198,7 +198,7 @@ std::unique_ptr<InkDrop> Checkbox::Creat
- std::unique_ptr<InkDropImpl> ink_drop = CreateDefaultInkDropImpl();
- ink_drop->SetShowHighlightOnHover(false);
- ink_drop->SetAutoHighlightMode(InkDropImpl::AutoHighlightMode::NONE);
-- return ink_drop;
-+ return std::move(ink_drop);
- }
-
- std::unique_ptr<InkDropRipple> Checkbox::CreateInkDropRipple() const {
diff --git a/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch b/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
deleted file mode 100644
index 469d680..0000000
--- a/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc 2017-12-12 09:56:24.469343868 -0500
-+++ chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2017-12-12 09:56:38.468071095 -0500
-@@ -461,7 +461,7 @@ bool ExceptionHandler::HandleSignal(int
- #if defined(__aarch64__)
- ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
-- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
-+ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__glibc_reserved1;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
- memcpy(&g_crash_context_.float_state, fp_ptr,
- sizeof(g_crash_context_.float_state));
diff --git a/chromium-63.0.3289.84-enable-mp3.patch b/chromium-63.0.3289.84-enable-mp3.patch
deleted file mode 100644
index 91a331a..0000000
--- a/chromium-63.0.3289.84-enable-mp3.patch
+++ /dev/null
@@ -1,485 +0,0 @@
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/button-press.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/button-press
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/hit.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/hit
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/score-reached.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/score-reached
-diff -up chromium-63.0.3239.84/media/base/mime_util_internal.cc.mp3 chromium-63.0.3239.84/media/base/mime_util_internal.cc
---- chromium-63.0.3239.84/media/base/mime_util_internal.cc.mp3 2017-12-06 15:05:29.000000000 -0500
-+++ chromium-63.0.3239.84/media/base/mime_util_internal.cc 2017-12-07 10:52:02.472510232 -0500
-@@ -266,15 +266,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -311,10 +315,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -935,7 +939,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -943,6 +946,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
-diff -up chromium-63.0.3239.84/media/formats/BUILD.gn.mp3 chromium-63.0.3239.84/media/formats/BUILD.gn
---- chromium-63.0.3239.84/media/formats/BUILD.gn.mp3 2017-12-06 15:05:29.000000000 -0500
-+++ chromium-63.0.3239.84/media/formats/BUILD.gn 2017-12-07 10:52:02.473510212 -0500
-@@ -20,6 +20,14 @@ source_set("formats") {
- "ac3/ac3_util.h",
- "common/offset_byte_queue.cc",
- "common/offset_byte_queue.h",
-+ "mpeg/adts_constants.cc",
-+ "mpeg/adts_constants.h",
-+ "mpeg/adts_stream_parser.cc",
-+ "mpeg/adts_stream_parser.h",
-+ "mpeg/mpeg1_audio_stream_parser.cc",
-+ "mpeg/mpeg1_audio_stream_parser.h",
-+ "mpeg/mpeg_audio_stream_parser_base.cc",
-+ "mpeg/mpeg_audio_stream_parser_base.h",
- "webm/webm_audio_client.cc",
- "webm/webm_audio_client.h",
- "webm/webm_cluster_parser.cc",
-@@ -81,14 +89,6 @@ source_set("formats") {
- "mp4/sample_to_group_iterator.h",
- "mp4/track_run_iterator.cc",
- "mp4/track_run_iterator.h",
-- "mpeg/adts_constants.cc",
-- "mpeg/adts_constants.h",
-- "mpeg/adts_stream_parser.cc",
-- "mpeg/adts_stream_parser.h",
-- "mpeg/mpeg1_audio_stream_parser.cc",
-- "mpeg/mpeg1_audio_stream_parser.h",
-- "mpeg/mpeg_audio_stream_parser_base.cc",
-- "mpeg/mpeg_audio_stream_parser_base.h",
- ]
- }
-
-diff -up chromium-63.0.3239.84/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test.mp3 chromium-63.0.3239.84/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h 2017-12-07 11:08:41.116117073 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h 2017-12-07 11:09:23.602291820 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h 2017-12-07 11:09:49.945779754 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h 2017-12-07 11:10:25.513089579 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h 2017-12-07 11:10:50.721599547 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-12-07 09:51:36.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni 2017-12-07 11:16:58.728447124 -0500
-@@ -183,17 +183,9 @@ if ((is_mac) || (is_win) || (use_linux_c
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_win) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm64") || (use_linux_config && current_cpu == "mipsel") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
-- "libavcodec/aac_ac3_parser.c",
-- "libavcodec/aac_parser.c",
-- "libavcodec/aacadtsdec.c",
-- "libavcodec/aacps_float.c",
-- "libavcodec/aacpsdsp_float.c",
-- "libavcodec/aacsbr.c",
-- "libavcodec/aactab.c",
- "libavcodec/ac3tab.c",
-- "libavcodec/autorename_libavcodec_aacdec.c",
- "libavcodec/autorename_libavcodec_mdct15.c",
- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
- "libavcodec/autorename_libavcodec_sbrdsp.c",
-@@ -211,7 +203,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
- "libavcodec/mpegaudiodsp_float.c",
- "libavcodec/sinewin.c",
- "libavcodec/sinewin_fixed.c",
-- "libavformat/aacdec.c",
- "libavformat/apetag.c",
- "libavformat/img2.c",
- "libavformat/mov.c",
-@@ -220,6 +211,20 @@ if ((current_cpu == "x64" && ffmpeg_bran
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+ ffmpeg_c_sources += [
-+ "libavcodec/aac_ac3_parser.c",
-+ "libavcodec/aac_parser.c",
-+ "libavcodec/aacadtsdec.c",
-+ "libavcodec/aacps_float.c",
-+ "libavcodec/aacpsdsp_float.c",
-+ "libavcodec/aacsbr.c",
-+ "libavcodec/aactab.c",
-+ "libavcodec/autorename_libavcodec_aacdec.c",
-+ "libavformat/aacdec.c",
-+ ]
-+}
-+
- if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
-@@ -323,16 +328,20 @@ if ((is_mac) || (is_win) || (use_linux_c
- if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/aacpsdsp_init.c",
-+ ]
-+ ffmpeg_yasm_sources += [
-+ "libavcodec/x86/aacpsdsp.asm",
-+ ]
-+}
-+
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86") || (is_win)) {
-+ ffmpeg_c_sources += [
- "libavcodec/x86/dct_init.c",
- "libavcodec/x86/mdct15_init.c",
- "libavcodec/x86/mpegaudiodsp.c",
- "libavcodec/x86/sbrdsp_init.c",
- ]
--}
--
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_yasm_sources += [
-- "libavcodec/x86/aacpsdsp.asm",
- "libavcodec/x86/dct32.asm",
- "libavcodec/x86/imdct36.asm",
- "libavcodec/x86/mdct15.asm",
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c
---- chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-12-07 10:52:02.484509992 -0500
-@@ -23,6 +23,7 @@
- #define USE_FIXED 0
-
- #include "aac.h"
-+#include "aacsbrdata.h"
- #include "config.h"
- #include "libavutil/attributes.h"
- #include "libavutil/intfloat.h"
-diff -up chromium-63.0.3239.84/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 chromium-63.0.3239.84/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart
-diff -up chromium-63.0.3239.84/tools/android/audio_focus_grabber/java/res/raw/ping.mp3 chromium-63.0.3239.84/tools/android/audio_focus_grabber/java/res/raw/ping
diff --git a/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch b/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch
deleted file mode 100644
index 8df206b..0000000
--- a/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 2017-12-07 11:23:07.077290535 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni 2017-12-07 11:27:30.354175021 -0500
-@@ -541,7 +541,7 @@ if (use_linux_config && current_cpu == "
- ]
- }
-
--if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
-+if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64")) {
- ffmpeg_c_sources += [
- "libavcodec/aarch64/aacpsdsp_init_aarch64.c",
- "libavcodec/aarch64/mpegaudiodsp_init.c",
diff --git a/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch b/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch
deleted file mode 100644
index 9ca87ad..0000000
--- a/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-63.0.3239.84/build/linux/unbundle/freetype.gn.fixunbundle chromium-63.0.3239.84/build/linux/unbundle/freetype.gn
---- chromium-63.0.3239.84/build/linux/unbundle/freetype.gn.fixunbundle 2017-12-07 12:07:48.652161826 -0500
-+++ chromium-63.0.3239.84/build/linux/unbundle/freetype.gn 2017-12-07 12:08:52.514919585 -0500
-@@ -117,6 +117,14 @@ source_set("freetype") {
- public_configs = [ ":freetype_config" ]
- }
-
-+source_set("freetype_source") {
-+ visibility = [ "//third_party:freetype_harfbuzz" ]
-+ deps = [
-+ ":freetype_shim",
-+ ]
-+ public_configs = [ ":freetype_config" ]
-+}
-+
- source_set("bootstrap_freetype_for_harfbuzz") {
- deps = [
- ":freetype_shim",
-diff -up chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn.fixunbundle chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn
---- chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn.fixunbundle 2017-12-07 12:09:57.057661738 -0500
-+++ chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn 2017-12-07 12:10:03.225541404 -0500
-@@ -24,6 +24,14 @@ group("harfbuzz-ng") {
- ]
- }
-
-+source_set("harfbuzz_source") {
-+ visibility = [ "//third_party:freetype_harfbuzz" ]
-+ deps = [
-+ ":harfbuzz_shim",
-+ ]
-+ public_configs = [ ":system_harfbuzz" ]
-+}
-+
- source_set("harfbuzz-ng-ft") {
- deps = [
- ":harfbuzz_shim",
diff --git a/chromium-63.0.3289.84-gcc-round-fix.patch b/chromium-63.0.3289.84-gcc-round-fix.patch
deleted file mode 100644
index 86d0a7e..0000000
--- a/chromium-63.0.3289.84-gcc-round-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc
---- chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2017-12-07 16:20:01.521717091 -0500
-+++ chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc 2017-12-07 16:20:13.025491739 -0500
-@@ -11,6 +11,7 @@
- #include "p2p/base/port.h"
-
- #include <algorithm>
-+#include <cmath>
- #include <vector>
-
- #include "p2p/base/common.h"
diff --git a/chromium-63.0.3289.84-gcc5-r3.patch b/chromium-63.0.3289.84-gcc5-r3.patch
deleted file mode 100644
index 83c6911..0000000
--- a/chromium-63.0.3289.84-gcc5-r3.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-diff -up chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2017-12-06 15:05:28.000000000 -0500
-+++ chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h 2017-12-07 11:32:15.416636125 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2017-12-06 15:05:31.000000000 -0500
-+++ chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2017-12-07 11:32:15.422636011 -0500
-@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2017-12-07 11:32:15.429635877 -0500
-+++ chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h 2017-12-07 11:34:00.081601880 -0500
-@@ -309,7 +309,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp
---- chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 2017-12-06 15:05:46.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp 2017-12-07 11:32:15.430635859 -0500
-@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -512,7 +512,7 @@ WebString PreflightErrorString(const Pre
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -533,7 +533,7 @@ WebString RedirectErrorString(const Redi
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-diff -up chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2017-12-06 15:05:46.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2017-12-07 11:32:15.408636277 -0500
-@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2017-12-07 11:32:15.409636258 -0500
-+++ chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-12-07 11:33:10.714561105 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <numeric>
- #include <vector>
-
diff --git a/chromium-63.0.3289.84-nolibc++.patch b/chromium-63.0.3289.84-nolibc++.patch
deleted file mode 100644
index 0d999c8..0000000
--- a/chromium-63.0.3289.84-nolibc++.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-63.0.3239.84/remoting/host/linux/BUILD.gn.nolibc++ chromium-63.0.3239.84/remoting/host/linux/BUILD.gn
---- chromium-63.0.3239.84/remoting/host/linux/BUILD.gn.nolibc++ 2017-12-07 11:55:43.173273434 -0500
-+++ chromium-63.0.3239.84/remoting/host/linux/BUILD.gn 2017-12-07 11:55:53.244077772 -0500
-@@ -62,11 +62,9 @@ if (enable_me2me_host) {
- if (is_component_build) {
- sources += [
- "$root_build_dir/libbase.so",
-- "$root_build_dir/libc++.so",
- ]
- deps += [
- "//base:base",
-- "//buildtools/third_party/libc++:libc++",
- ]
- }
- }
diff --git a/chromium-63.0.3289.84-setopaque.patch b/chromium-63.0.3289.84-setopaque.patch
deleted file mode 100644
index 8fb585a..0000000
--- a/chromium-63.0.3289.84-setopaque.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/cc/blink/web_layer_impl.h.setopaque chromium-63.0.3239.84/cc/blink/web_layer_impl.h
---- chromium-63.0.3239.84/cc/blink/web_layer_impl.h.setopaque 2017-12-07 10:47:48.262446682 -0500
-+++ chromium-63.0.3239.84/cc/blink/web_layer_impl.h 2017-12-07 10:48:47.437298948 -0500
-@@ -67,7 +67,7 @@ class CC_BLINK_EXPORT WebLayerImpl : pub
- void SetIsRootForIsolatedGroup(bool root) override;
- bool IsRootForIsolatedGroup() override;
- void SetHitTestableWithoutDrawsContent(bool should_hit_test) override;
-- void SetOpaque(bool opaque) override;
-+ CC_BLINK_EXPORT void SetOpaque(bool opaque) override;
- bool Opaque() const override;
- void SetPosition(const blink::WebFloatPoint& position) override;
- blink::WebFloatPoint GetPosition() const override;
diff --git a/chromium-64.0.3282.119-enable-mp3.patch b/chromium-64.0.3282.119-enable-mp3.patch
deleted file mode 100644
index 849b5ee..0000000
--- a/chromium-64.0.3282.119-enable-mp3.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-64.0.3282.119/media/base/mime_util_internal.cc.mp3 chromium-64.0.3282.119/media/base/mime_util_internal.cc
---- chromium-64.0.3282.119/media/base/mime_util_internal.cc.mp3 2018-01-24 15:05:48.000000000 -0500
-+++ chromium-64.0.3282.119/media/base/mime_util_internal.cc 2018-01-25 11:18:12.354147726 -0500
-@@ -279,15 +279,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -329,10 +333,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -970,7 +974,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -978,6 +981,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
diff --git a/chromium-64.0.3282.119-gcc-constexpr-fix.patch b/chromium-64.0.3282.119-gcc-constexpr-fix.patch
deleted file mode 100644
index 57b63cd..0000000
--- a/chromium-64.0.3282.119-gcc-constexpr-fix.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h.gcc-constexpr 2018-01-25 15:50:16.971171007 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h 2018-01-25 15:51:14.158053914 -0500
-@@ -160,7 +160,7 @@ template <TBasicType basicType,
- TPrecision precision,
- TQualifier qualifier,
- unsigned char secondarySize>
--const TType *GetForVecMatHelper(unsigned char primarySize)
-+constexpr const TType *GetForVecMatHelper(unsigned char primarySize)
- {
- static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
- basicType == EbtBool,
-@@ -186,7 +186,7 @@ const TType *GetForVecMatHelper(unsigned
- template <TBasicType basicType,
- TPrecision precision = EbpUndefined,
- TQualifier qualifier = EvqGlobal>
--const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
-+constexpr const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
- {
- static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
- basicType == EbtBool,
-@@ -208,7 +208,7 @@ const TType *GetForVecMat(unsigned char
- }
-
- template <TBasicType basicType, TPrecision precision = EbpUndefined>
--const TType *GetForVec(TQualifier qualifier, unsigned char size)
-+constexpr const TType *GetForVec(TQualifier qualifier, unsigned char size)
- {
- switch (qualifier)
- {
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp.gcc-constexpr 2018-01-25 15:51:27.670790008 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp 2018-01-25 15:52:04.117077652 -0500
-@@ -189,7 +189,7 @@ TSymbolTable::~TSymbolTable()
- pop();
- }
-
--bool IsGenType(const TType *type)
-+constexpr bool IsGenType(const TType *type)
- {
- if (type)
- {
-@@ -201,7 +201,7 @@ bool IsGenType(const TType *type)
- return false;
- }
-
--bool IsVecType(const TType *type)
-+constexpr bool IsVecType(const TType *type)
- {
- if (type)
- {
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h.gcc-constexpr 2018-01-25 15:52:15.042864767 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h 2018-01-25 15:52:56.763049389 -0500
-@@ -236,13 +236,13 @@ class TType
- {
- }
-
-- TBasicType getBasicType() const { return type; }
-+ constexpr TBasicType getBasicType() const { return type; }
- void setBasicType(TBasicType t);
-
- TPrecision getPrecision() const { return precision; }
- void setPrecision(TPrecision p) { precision = p; }
-
-- TQualifier getQualifier() const { return qualifier; }
-+ constexpr TQualifier getQualifier() const { return qualifier; }
- void setQualifier(TQualifier q) { qualifier = q; }
-
- bool isInvariant() const { return invariant; }
diff --git a/chromium-64.0.3282.119-gcc-round-fix.patch b/chromium-64.0.3282.119-gcc-round-fix.patch
deleted file mode 100644
index 465808c..0000000
--- a/chromium-64.0.3282.119-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc
---- chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-01-25 12:03:14.696443814 -0500
-+++ chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc 2018-01-25 12:20:26.446448618 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <vector>
diff --git a/chromium-64.0.3282.119-gcc5-r3.patch b/chromium-64.0.3282.119-gcc5-r3.patch
deleted file mode 100644
index 3679ecf..0000000
--- a/chromium-64.0.3282.119-gcc5-r3.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -up chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-01-24 15:05:47.000000000 -0500
-+++ chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h 2018-01-25 11:58:48.251623423 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2018-01-24 15:05:51.000000000 -0500
-+++ chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2018-01-25 11:58:48.252623400 -0500
-@@ -137,7 +137,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-01-24 15:05:51.000000000 -0500
-+++ chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-01-25 11:58:48.252623400 -0500
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 chromium-64.0.3282.119/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2018-01-24 15:06:11.000000000 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2018-01-25 11:58:48.253623376 -0500
-@@ -62,7 +62,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -93,11 +93,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-01-25 11:58:48.253623376 -0500
-+++ chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-01-25 12:01:28.769900550 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-64.0.3282.119-gcc5.patch b/chromium-64.0.3282.119-gcc5.patch
deleted file mode 100644
index 0fdc39f..0000000
--- a/chromium-64.0.3282.119-gcc5.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-01-25 11:07:27.179175007 -0500
-+++ chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-01-25 11:07:38.037925336 -0500
-@@ -263,7 +263,7 @@ interface WebGL2RenderingContextBase
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 2018-01-25 11:11:08.581962228 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h 2018-01-25 11:11:24.062593478 -0500
-@@ -49,7 +49,7 @@ class NodeFilter final {
- * to the value of NodeType for the equivalent node type.
- */
- enum {
-- kShowAll = 0xFFFFFFFF,
-+ kShowAll = 256 /* 0xFFFFFFFF */,
- kShowElement = 0x00000001,
- kShowAttribute = 0x00000002,
- kShowText = 0x00000004,
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl
---- chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 2018-01-25 11:11:34.816335412 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl 2018-01-25 11:12:23.380171262 -0500
-@@ -27,7 +27,7 @@ callback interface NodeFilter {
- const unsigned short FILTER_SKIP = 3;
-
- // Constants for whatToShow
-- const unsigned long SHOW_ALL = 0xFFFFFFFF;
-+ const unsigned long SHOW_ALL = 256; // 0xFFFFFFFF
- const unsigned long SHOW_ELEMENT = 0x1;
- const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
- const unsigned long SHOW_TEXT = 0x4;
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
---- chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 2018-01-25 11:12:57.367363214 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl 2018-01-25 11:13:29.883590960 -0500
-@@ -241,7 +241,7 @@ typedef unsigned long long GLuint64;
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-@@ -271,7 +271,7 @@ typedef unsigned long long GLuint64;
- const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;
- const GLenum MAX_ELEMENT_INDEX = 0x8D6B;
- const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
-- const GLint TIMEOUT_IGNORED = -1;
-+ const GLint TIMEOUT_IGNORED = 256;
-
- /* WebGL-specific enums */
- const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
diff --git a/chromium-64.0.3282.119-gcc7.patch b/chromium-64.0.3282.119-gcc7.patch
deleted file mode 100644
index 7fe383e..0000000
--- a/chromium-64.0.3282.119-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2018-01-25 11:15:00.291466617 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2018-01-25 11:16:36.159320291 -0500
-@@ -10,6 +10,7 @@
- #include "platform/wtf/Functional.h"
- #include "platform/wtf/ThreadSpecific.h"
-
-+#include <functional>
- #include <memory>
-
- namespace blink {
diff --git a/chromium-64.0.3282.119-memcpy-fix.patch b/chromium-64.0.3282.119-memcpy-fix.patch
deleted file mode 100644
index 39c3c25..0000000
--- a/chromium-64.0.3282.119-memcpy-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-01-26 15:04:44.708100850 -0500
-+++ chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc 2018-01-26 15:04:54.234915081 -0500
-@@ -3,6 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
-+#include <memory.h>
-
- namespace cc {
-
diff --git a/chromium-64.0.3282.167-gcc8-fabi11.patch b/chromium-64.0.3282.167-gcc8-fabi11.patch
deleted file mode 100644
index 5f0c527..0000000
--- a/chromium-64.0.3282.167-gcc8-fabi11.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py.fabi11 chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py
---- chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py.fabi11 2018-02-19 11:39:15.807713662 -0500
-+++ chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py 2018-02-19 11:39:47.038070341 -0500
-@@ -336,6 +336,11 @@ def write_gn_ninja(path, root_gen_dir, o
- cflags = os.environ.get('CFLAGS', '').split()
- cflags_cc = os.environ.get('CXXFLAGS', '').split()
- ldflags = os.environ.get('LDFLAGS', '').split()
-+
-+ # Work around GCC8 bug gcc#84286
-+ cflags.extend(['-fabi-version=11'])
-+ cflags_cc.extend(['-fabi-version=11'])
-+
- include_dirs = [root_gen_dir, SRC_ROOT]
- libs = []
-
diff --git a/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch b/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch
deleted file mode 100644
index 6cf8ca8..0000000
--- a/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.noncopyable chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.noncopyable 2018-03-13 16:52:15.953729689 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 16:53:55.365792522 -0400
-@@ -45,6 +45,15 @@ struct OptionalStorageBase {
-
- // When T is not trivially destructible we must call its
- // destructor before deallocating its memory.
-+ // Note that this hides the (implicitly declared) move constructor, which
-+ // would be used for constexpr move constructor in OptionalStorage<T>.
-+ // It is needed iff T is trivially move constructible. However, the current
-+ // is_trivially_{copy,move}_constructible implementation requires
-+ // is_trivially_destructible (which looks a bug, cf:
-+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51452 and
-+ // http://cplusplus.github.io/LWG/lwg-active.html#2116), so it is not
-+ // necessary for this case at the moment. Please see also the destructor
-+ // comment in "is_trivially_destructible = true" specialization below.
- ~OptionalStorageBase() {
- if (!is_null_)
- value_.~T();
-@@ -78,9 +87,18 @@ struct OptionalStorageBase<T, true /* tr
- : is_null_(false), value_(std::forward<Args>(args)...) {}
-
- // When T is trivially destructible (i.e. its destructor does nothing) there
-- // is no need to call it. Explicitly defaulting the destructor means it's not
-- // user-provided. Those two together make this destructor trivial.
-- ~OptionalStorageBase() = default;
-+ // is no need to call it. Implicitly defined destructor is trivial, because
-+ // both members (bool and union containing only variants which are trivially
-+ // destructible) are trivially destructible.
-+ // Explicitly-defaulted destructor is also trivial, but do not use it here,
-+ // because it hides the implicit move constructor. It is needed to implement
-+ // constexpr move constructor in OptionalStorage iff T is trivially move
-+ // constructible. Note that, if T is trivially move constructible, the move
-+ // constructor of OptionalStorageBase<T> is also implicitly defined and it is
-+ // trivially move constructor. If T is not trivially move constructible,
-+ // "not declaring move constructor without destructor declaration" here means
-+ // "delete move constructor", which works because any move constructor of
-+ // OptionalStorage will not refer to it in that case.
-
- template <class... Args>
- void Init(Args&&... args) {
diff --git a/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch b/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
deleted file mode 100644
index dbdf68f..0000000
--- a/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp.GetString 2018-03-13 22:54:27.262671113 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp 2018-03-13 22:55:47.722113713 -0400
-@@ -68,7 +68,7 @@ v8::Local<v8::Value> ToV8(const IDBKeyPa
- case IDBKeyPath::kNullType:
- return v8::Null(isolate);
- case IDBKeyPath::kStringType:
-- return V8String(isolate, value.String());
-+ return V8String(isolate, value.GetString());
- case IDBKeyPath::kArrayType:
- return ToV8(value.Array(), creation_context, isolate);
- }
-@@ -97,7 +97,7 @@ v8::Local<v8::Value> ToV8(const IDBKey*
- case IDBKey::kNumberType:
- return v8::Number::New(isolate, key->Number());
- case IDBKey::kStringType:
-- return V8String(isolate, key->String());
-+ return V8String(isolate, key->GetString());
- case IDBKey::kBinaryType:
- // https://w3c.github.io/IndexedDB/#convert-a-value-to-a-key
- return ToV8(DOMArrayBuffer::Create(key->Binary()), creation_context,
-@@ -379,7 +379,7 @@ static std::unique_ptr<IDBKey> CreateIDB
- }
-
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.String(),
-+ return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.GetString(),
- exception_state);
- }
-
-@@ -483,7 +483,7 @@ bool InjectV8KeyIntoV8Value(v8::Isolate*
- DCHECK(isolate->InContext());
-
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
-+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
-
- // The conbination of a key generator and an empty key path is forbidden by
- // spec.
-@@ -569,7 +569,7 @@ bool CanInjectIDBKeyIntoScriptValue(v8::
- const IDBKeyPath& key_path) {
- IDB_TRACE("canInjectIDBKeyIntoScriptValue");
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
-+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
-
- if (!key_path_elements.size())
- return false;
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp.GetString 2018-03-13 22:56:04.041798217 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp 2018-03-13 22:56:22.481440993 -0400
-@@ -56,7 +56,7 @@ WebData WebIDBKeyView::Binary() const {
- }
-
- WebString WebIDBKeyView::String() const {
-- return private_->String();
-+ return private_->GetString();
- }
-
- double WebIDBKeyView::Date() const {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp.GetString 2018-03-13 22:56:36.028178758 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp 2018-03-13 22:56:58.846736831 -0400
-@@ -297,7 +297,7 @@ IDBObjectStore* IDBDatabase::createObjec
- }
-
- if (auto_increment && ((key_path.GetType() == IDBKeyPath::kStringType &&
-- key_path.String().IsEmpty()) ||
-+ key_path.GetString().IsEmpty()) ||
- key_path.GetType() == IDBKeyPath::kArrayType)) {
- exception_state.ThrowDOMException(
- kInvalidAccessError,
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h.GetString 2018-03-13 22:57:13.229458842 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h 2018-03-13 22:57:38.633966776 -0400
-@@ -106,7 +106,7 @@ class MODULES_EXPORT IDBKey {
- return binary_;
- }
-
-- const String& String() const {
-+ const String& GetString() const {
- DCHECK_EQ(type_, kStringType);
- return string_;
- }
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h.GetString 2018-03-13 22:57:51.104725428 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h 2018-03-13 22:58:09.459369906 -0400
-@@ -65,7 +65,7 @@ class MODULES_EXPORT IDBKeyPath {
- return array_;
- }
-
-- const String& String() const {
-+ const String& GetString() const {
- DCHECK_EQ(type_, kStringType);
- return string_;
- }
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp.GetString 2018-03-13 22:58:28.778995834 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp 2018-03-13 22:58:45.044681364 -0400
-@@ -399,7 +399,7 @@ static std::unique_ptr<KeyPath> KeyPathF
- case IDBKeyPath::kStringType:
- key_path = KeyPath::create()
- .setType(KeyPath::TypeEnum::String)
-- .setString(idb_key_path.String())
-+ .setString(idb_key_path.GetString())
- .build();
- break;
- case IDBKeyPath::kArrayType: {
diff --git a/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch b/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch
deleted file mode 100644
index 8edc424..0000000
--- a/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/raster/playback_image_provider.cc.pipcc chromium-65.0.3325.146/cc/raster/playback_image_provider.cc
---- chromium-65.0.3325.146/cc/raster/playback_image_provider.cc.pipcc 2018-03-13 22:47:00.271322726 -0400
-+++ chromium-65.0.3325.146/cc/raster/playback_image_provider.cc 2018-03-13 22:47:53.127300060 -0400
-@@ -92,7 +92,6 @@ PlaybackImageProvider::GetDecodedDrawIma
- }
-
- PlaybackImageProvider::Settings::Settings() = default;
--PlaybackImageProvider::Settings::Settings(const Settings& other) = default;
- PlaybackImageProvider::Settings::~Settings() = default;
-
- } // namespace cc
-diff -up chromium-65.0.3325.146/cc/raster/playback_image_provider.h.pipcc chromium-65.0.3325.146/cc/raster/playback_image_provider.h
---- chromium-65.0.3325.146/cc/raster/playback_image_provider.h.pipcc 2018-03-13 22:48:00.673153629 -0400
-+++ chromium-65.0.3325.146/cc/raster/playback_image_provider.h 2018-03-13 22:48:12.726920597 -0400
-@@ -20,7 +20,6 @@ class CC_EXPORT PlaybackImageProvider :
- public:
- struct CC_EXPORT Settings {
- Settings();
-- Settings(const Settings& other);
- ~Settings();
-
- // The set of image ids to skip during raster.
diff --git a/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch b/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
deleted file mode 100644
index 62124be..0000000
--- a/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h.fulldecl chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h
---- chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h.fulldecl 2018-03-13 16:38:38.870652491 -0400
-+++ chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h 2018-03-13 16:39:02.691186647 -0400
-@@ -21,9 +21,9 @@
- #include "services/preferences/public/interfaces/preferences.mojom.h"
- #include "services/preferences/tracked/hash_store_contents.h"
- #include "services/preferences/tracked/interceptable_pref_filter.h"
-+#include "services/preferences/tracked/pref_hash_store.h"
- #include "services/preferences/tracked/tracked_preference.h"
-
--class PrefHashStore;
- class PrefService;
-
- namespace base {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.fulldecl chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.fulldecl 2018-03-13 16:39:13.787970233 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h 2018-03-13 16:39:42.614407235 -0400
-@@ -30,6 +30,7 @@
-
- #include <memory>
- #include "modules/webdatabase/DatabaseBasicTypes.h"
-+#include "modules/webdatabase/SQLError.h"
- #include "modules/webdatabase/SQLStatement.h"
- #include "modules/webdatabase/SQLStatementBackend.h"
- #include "modules/webdatabase/SQLTransactionStateMachine.h"
-@@ -41,7 +42,6 @@
- namespace blink {
-
- class Database;
--class SQLErrorData;
- class SQLiteTransaction;
- class SQLTransaction;
- class SQLTransactionBackend;
diff --git a/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch b/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
deleted file mode 100644
index 9c6f315..0000000
--- a/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc.explicit-std-move chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc
---- chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc.explicit-std-move 2018-03-13 22:50:41.346043716 -0400
-+++ chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc 2018-03-13 22:51:21.428267583 -0400
-@@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubre
-
- SubresourceLoaderParams params;
- params.loader_factory_info = factory_ptr.PassInterface();
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void AppCacheRequestHandler::MaybeCreateSubresourceLoader(
-diff -up chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc.explicit-std-move chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc
---- chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc.explicit-std-move 2018-03-13 22:51:38.133943776 -0400
-+++ chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc 2018-03-13 22:51:57.658566347 -0400
-@@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::M
- controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle(
- provider_host_->controller());
- params.controller_service_worker_info = std::move(controller_info);
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
diff --git a/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index 809a321..0000000
--- a/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h.fully-declare chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h.fully-declare 2018-03-13 23:02:13.989635567 -0400
-+++ chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h 2018-03-13 23:02:44.318048625 -0400
-@@ -12,13 +12,13 @@
- #include "base/macros.h"
- #include "base/optional.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch b/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch
deleted file mode 100644
index 9b4befe..0000000
--- a/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.conditional chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.conditional 2018-03-13 22:11:02.328058249 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:12:43.622098296 -0400
-@@ -266,6 +266,58 @@ class OptionalBase {
- OptionalStorage<T> storage_;
- };
-
-+// The following {Copy,Move}{Constructible,Assignable} structs are helpers to
-+// implement constructor/assign-operator overloading. Specifically, if T is
-+// is not movable but copyable, Optional<T>'s move constructor should not
-+// participate in overload resolution. This inheritance trick implements that.
-+template <bool is_copy_constructible>
-+struct CopyConstructible {};
-+
-+template <>
-+struct CopyConstructible<false> {
-+ constexpr CopyConstructible() = default;
-+ constexpr CopyConstructible(const CopyConstructible&) = delete;
-+ constexpr CopyConstructible(CopyConstructible&&) = default;
-+ CopyConstructible& operator=(const CopyConstructible&) = default;
-+ CopyConstructible& operator=(CopyConstructible&&) = default;
-+};
-+
-+template <bool is_move_constructible>
-+struct MoveConstructible {};
-+
-+template <>
-+struct MoveConstructible<false> {
-+ constexpr MoveConstructible() = default;
-+ constexpr MoveConstructible(const MoveConstructible&) = default;
-+ constexpr MoveConstructible(MoveConstructible&&) = delete;
-+ MoveConstructible& operator=(const MoveConstructible&) = default;
-+ MoveConstructible& operator=(MoveConstructible&&) = default;
-+};
-+
-+template <bool is_copy_assignable>
-+struct CopyAssignable {};
-+
-+template <>
-+struct CopyAssignable<false> {
-+ constexpr CopyAssignable() = default;
-+ constexpr CopyAssignable(const CopyAssignable&) = default;
-+ constexpr CopyAssignable(CopyAssignable&&) = default;
-+ CopyAssignable& operator=(const CopyAssignable&) = delete;
-+ CopyAssignable& operator=(CopyAssignable&&) = default;
-+};
-+
-+template <bool is_move_assignable>
-+struct MoveAssignable {};
-+
-+template <>
-+struct MoveAssignable<false> {
-+ constexpr MoveAssignable() = default;
-+ constexpr MoveAssignable(const MoveAssignable&) = default;
-+ constexpr MoveAssignable(MoveAssignable&&) = default;
-+ MoveAssignable& operator=(const MoveAssignable&) = default;
-+ MoveAssignable& operator=(MoveAssignable&&) = delete;
-+};
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -280,12 +332,18 @@ class OptionalBase {
- // - No exceptions are thrown, because they are banned from Chromium.
- // - All the non-members are in the 'base' namespace instead of 'std'.
- template <typename T>
--class Optional : public internal::OptionalBase<T> {
-+class Optional
-+ : public internal::OptionalBase<T>,
-+ public internal::CopyConstructible<std::is_copy_constructible<T>::value>,
-+ public internal::MoveConstructible<std::is_move_constructible<T>::value>,
-+ public internal::CopyAssignable<std::is_copy_constructible<T>::value &&
-+ std::is_copy_assignable<T>::value>,
-+ public internal::MoveAssignable<std::is_move_constructible<T>::value &&
-+ std::is_move_assignable<T>::value> {
- public:
- using value_type = T;
-
- // Defer default/copy/move constructor implementation to OptionalBase.
-- // TODO(hidehiko): Implement conditional enabling.
- constexpr Optional() = default;
- constexpr Optional(const Optional& other) = default;
- constexpr Optional(Optional&& other) = default;
-@@ -316,7 +374,6 @@ class Optional : public internal::Option
- ~Optional() = default;
-
- // Defer copy-/move- assign operator implementation to OptionalBase.
-- // TOOD(hidehiko): Implement conditional enabling.
- Optional& operator=(const Optional& other) = default;
- Optional& operator=(Optional&& other) = default;
-
diff --git a/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch b/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch
deleted file mode 100644
index 3214104..0000000
--- a/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.converting chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.converting 2018-03-13 22:31:05.248797490 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:33:10.826368771 -0400
-@@ -31,6 +31,10 @@ constexpr in_place_t in_place = {};
- // http://en.cppreference.com/w/cpp/utility/optional/nullopt
- constexpr nullopt_t nullopt(0);
-
-+// Forward declaration, which is refered by following helpers.
-+template <typename T>
-+class Optional;
-+
- namespace internal {
-
- template <typename T, bool = std::is_trivially_destructible<T>::value>
-@@ -220,6 +224,19 @@ class OptionalBase {
- constexpr explicit OptionalBase(in_place_t, Args&&... args)
- : storage_(in_place, std::forward<Args>(args)...) {}
-
-+ // Implementation of converting constructors.
-+ template <typename U>
-+ explicit OptionalBase(const OptionalBase<U>& other) {
-+ if (other.storage_.is_populated_)
-+ storage_.Init(other.storage_.value_);
-+ }
-+
-+ template <typename U>
-+ explicit OptionalBase(OptionalBase<U>&& other) {
-+ if (other.storage_.is_populated_)
-+ storage_.Init(std::move(other.storage_.value_));
-+ }
-+
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-@@ -263,6 +280,11 @@ class OptionalBase {
- storage_.is_populated_ = false;
- }
-
-+ // For implementing conversion, allow access to other typed OptionalBase
-+ // class.
-+ template <typename U>
-+ friend class OptionalBase;
-+
- OptionalStorage<T> storage_;
- };
-
-@@ -318,6 +340,20 @@ struct MoveAssignable<false> {
- MoveAssignable& operator=(MoveAssignable&&) = delete;
- };
-
-+// Helper to conditionally enable converting constructors.
-+template <typename T, typename U>
-+struct IsConvertibleFromOptional
-+ : std::integral_constant<
-+ bool,
-+ std::is_constructible<T, Optional<U>&>::value ||
-+ std::is_constructible<T, const Optional<U>&>::value ||
-+ std::is_constructible<T, Optional<U>&&>::value ||
-+ std::is_constructible<T, const Optional<U>&&>::value ||
-+ std::is_convertible<Optional<U>&, T>::value ||
-+ std::is_convertible<const Optional<U>&, T>::value ||
-+ std::is_convertible<Optional<U>&&, T>::value ||
-+ std::is_convertible<const Optional<U>&&, T>::value> {};
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -348,7 +384,47 @@ class Optional
- constexpr Optional(const Optional& other) = default;
- constexpr Optional(Optional&& other) = default;
-
-- constexpr Optional(nullopt_t) {}
-+ constexpr Optional(nullopt_t) {} // NOLINT(runtime/explicit)
-+
-+ // Converting copy constructor. "explicit" only if
-+ // std::is_convertible<const U&, T>::value is false. It is implemented by
-+ // declaring two almost same constructors, but that condition in enable_if_t
-+ // is different, so that either one is chosen, thanks to SFINAE.
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, const U&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ std::is_convertible<const U&, T>::value,
-+ bool> = false>
-+ Optional(const Optional<U>& other) : internal::OptionalBase<T>(other) {}
-+
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, const U&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ !std::is_convertible<const U&, T>::value,
-+ bool> = false>
-+ explicit Optional(const Optional<U>& other)
-+ : internal::OptionalBase<T>(other) {}
-+
-+ // Converting move constructor. Similar to converting copy constructor,
-+ // declaring two (explicit and non-explicit) constructors.
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, U&&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ Optional(Optional<U>&& other) : internal::OptionalBase<T>(std::move(other)) {}
-+
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, U&&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ !std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ explicit Optional(Optional<U>&& other)
-+ : internal::OptionalBase<T>(std::move(other)) {}
-
- constexpr Optional(const T& value)
- : internal::OptionalBase<T>(in_place, value) {}
diff --git a/chromium-65.0.3325.146-Implement-value-forward-constructor.patch b/chromium-65.0.3325.146-Implement-value-forward-constructor.patch
deleted file mode 100644
index db727d8..0000000
--- a/chromium-65.0.3325.146-Implement-value-forward-constructor.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.vforward chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.vforward 2018-03-13 22:35:46.383359966 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:37:48.724992995 -0400
-@@ -354,6 +354,10 @@ struct IsConvertibleFromOptional
- std::is_convertible<Optional<U>&&, T>::value ||
- std::is_convertible<const Optional<U>&&, T>::value> {};
-
-+// Forward compatibility for C++20.
-+template <typename T>
-+using RemoveCvRefT = std::remove_cv_t<std::remove_reference_t<T>>;
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -367,6 +371,13 @@ struct IsConvertibleFromOptional
- // - 'constexpr' might be missing in some places for reasons specified locally.
- // - No exceptions are thrown, because they are banned from Chromium.
- // - All the non-members are in the 'base' namespace instead of 'std'.
-+//
-+// Note that T cannot have a constructor T(Optional<T>) etc. Optional<T> checks
-+// T's constructor (specifically via IsConvertibleFromOptional), and in the
-+// check whether T can be constructible from Optional<T>, which is recursive
-+// so it does not work. As of Feb 2018, std::optional C++17 implementation in
-+// both clang and gcc has same limitation. MSVC SFINAE looks to have different
-+// behavior, but anyway it reports an error, too.
- template <typename T>
- class Optional
- : public internal::OptionalBase<T>,
-@@ -426,12 +437,6 @@ class Optional
- explicit Optional(Optional<U>&& other)
- : internal::OptionalBase<T>(std::move(other)) {}
-
-- constexpr Optional(const T& value)
-- : internal::OptionalBase<T>(in_place, value) {}
--
-- constexpr Optional(T&& value)
-- : internal::OptionalBase<T>(in_place, std::move(value)) {}
--
- template <class... Args>
- constexpr explicit Optional(in_place_t, Args&&... args)
- : internal::OptionalBase<T>(in_place, std::forward<Args>(args)...) {}
-@@ -447,6 +452,30 @@ class Optional
- Args&&... args)
- : internal::OptionalBase<T>(in_place, il, std::forward<Args>(args)...) {}
-
-+ // Forward value constructor. Similar to converting constructors,
-+ // conditionally explicit.
-+ template <
-+ typename U = value_type,
-+ std::enable_if_t<
-+ std::is_constructible<T, U&&>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, in_place_t>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ constexpr Optional(U&& value)
-+ : internal::OptionalBase<T>(in_place, std::forward<U>(value)) {}
-+
-+ template <
-+ typename U = value_type,
-+ std::enable_if_t<
-+ std::is_constructible<T, U&&>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, in_place_t>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ !std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ constexpr explicit Optional(U&& value)
-+ : internal::OptionalBase<T>(in_place, std::forward<U>(value)) {}
-+
- ~Optional() = default;
-
- // Defer copy-/move- assign operator implementation to OptionalBase.
diff --git a/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch b/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch
deleted file mode 100644
index f9c4503..0000000
--- a/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.ncnm chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.ncnm 2018-03-13 22:40:11.743226276 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:44:30.948211358 -0400
-@@ -240,37 +240,37 @@ class OptionalBase {
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-- if (!other.storage_.is_populated_) {
-- FreeIfNeeded();
-- return *this;
-- }
--
-- InitOrAssign(other.storage_.value_);
-+ CopyAssign(other);
- return *this;
- }
-
- OptionalBase& operator=(OptionalBase&& other) {
-- if (!other.storage_.is_populated_) {
-- FreeIfNeeded();
-- return *this;
-- }
--
-- InitOrAssign(std::move(other.storage_.value_));
-+ MoveAssign(std::move(other));
- return *this;
- }
-
-- void InitOrAssign(const T& value) {
-- if (!storage_.is_populated_)
-- storage_.Init(value);
-+ template <typename U>
-+ void CopyAssign(const OptionalBase<U>& other) {
-+ if (other.storage_.is_populated_)
-+ InitOrAssign(other.storage_.value_);
- else
-- storage_.value_ = value;
-+ FreeIfNeeded();
- }
-
-- void InitOrAssign(T&& value) {
-- if (!storage_.is_populated_)
-- storage_.Init(std::move(value));
-+ template <typename U>
-+ void MoveAssign(OptionalBase<U>&& other) {
-+ if (other.storage_.is_populated_)
-+ InitOrAssign(std::move(other.storage_.value_));
-+ else
-+ FreeIfNeeded();
-+ }
-+
-+ template <typename U>
-+ void InitOrAssign(U&& value) {
-+ if (storage_.is_populated_)
-+ storage_.value_ = std::forward<U>(value);
- else
-- storage_.value_ = std::move(value);
-+ storage_.Init(std::forward<U>(value));
- }
-
- void FreeIfNeeded() {
-@@ -340,7 +340,7 @@ struct MoveAssignable<false> {
- MoveAssignable& operator=(MoveAssignable&&) = delete;
- };
-
--// Helper to conditionally enable converting constructors.
-+// Helper to conditionally enable converting constructors and assign operators.
- template <typename T, typename U>
- struct IsConvertibleFromOptional
- : std::integral_constant<
-@@ -354,6 +354,16 @@ struct IsConvertibleFromOptional
- std::is_convertible<Optional<U>&&, T>::value ||
- std::is_convertible<const Optional<U>&&, T>::value> {};
-
-+template <typename T, typename U>
-+struct IsAssignableFromOptional
-+ : std::integral_constant<
-+ bool,
-+ IsConvertibleFromOptional<T, U>::value ||
-+ std::is_assignable<T&, Optional<U>&>::value ||
-+ std::is_assignable<T&, const Optional<U>&>::value ||
-+ std::is_assignable<T&, Optional<U>&&>::value ||
-+ std::is_assignable<T&, const Optional<U>&&>::value> {};
-+
- // Forward compatibility for C++20.
- template <typename T>
- using RemoveCvRefT = std::remove_cv_t<std::remove_reference_t<T>>;
-@@ -487,14 +497,42 @@ class Optional
- return *this;
- }
-
-- template <class U>
-- typename std::enable_if<std::is_same<std::decay_t<U>, T>::value,
-- Optional&>::type
-+ // Perfect-forwarded assignment.
-+ template <typename U>
-+ std::enable_if_t<
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ std::is_constructible<T, U>::value &&
-+ std::is_assignable<T&, U>::value &&
-+ (!std::is_scalar<T>::value ||
-+ !std::is_same<std::decay_t<U>, T>::value),
-+ Optional&>
- operator=(U&& value) {
- InitOrAssign(std::forward<U>(value));
- return *this;
- }
-
-+// Copy assign the state of other.
-+ template <typename U>
-+ std::enable_if_t<!internal::IsAssignableFromOptional<T, U>::value &&
-+ std::is_constructible<T, const U&>::value &&
-+ std::is_assignable<T&, const U&>::value,
-+ Optional&>
-+ operator=(const Optional<U>& other) {
-+ CopyAssign(other);
-+ return *this;
-+ }
-+
-+ // Move assign the state of other.
-+ template <typename U>
-+ std::enable_if_t<!internal::IsAssignableFromOptional<T, U>::value &&
-+ std::is_constructible<T, U>::value &&
-+ std::is_assignable<T&, U>::value,
-+ Optional&>
-+ operator=(Optional<U>&& other) {
-+ MoveAssign(std::move(other));
-+ return *this;
-+ }
-+
- constexpr const T* operator->() const {
- DCHECK(storage_.is_populated_);
- return &value();
-@@ -606,8 +644,10 @@ class Optional
- private:
- // Accessing template base class's protected member needs explicit
- // declaration to do so.
-+ using internal::OptionalBase<T>::CopyAssign;
- using internal::OptionalBase<T>::FreeIfNeeded;
- using internal::OptionalBase<T>::InitOrAssign;
-+ using internal::OptionalBase<T>::MoveAssign;
- using internal::OptionalBase<T>::storage_;
- };
-
diff --git a/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch b/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch
deleted file mode 100644
index 8aaea85..0000000
--- a/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.affirmative chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.affirmative 2018-03-13 22:27:29.451969704 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:27:57.031436045 -0400
-@@ -41,7 +41,7 @@ struct OptionalStorageBase {
-
- template <class... Args>
- constexpr explicit OptionalStorageBase(in_place_t, Args&&... args)
-- : is_null_(false), value_(std::forward<Args>(args)...) {}
-+ : is_populated_(true), value_(std::forward<Args>(args)...) {}
-
- // When T is not trivially destructible we must call its
- // destructor before deallocating its memory.
-@@ -55,18 +55,18 @@ struct OptionalStorageBase {
- // necessary for this case at the moment. Please see also the destructor
- // comment in "is_trivially_destructible = true" specialization below.
- ~OptionalStorageBase() {
-- if (!is_null_)
-+ if (is_populated_)
- value_.~T();
- }
-
- template <class... Args>
- void Init(Args&&... args) {
-- DCHECK(is_null_);
-+ DCHECK(!is_populated_);
- ::new (&value_) T(std::forward<Args>(args)...);
-- is_null_ = false;
-+ is_populated_ = true;
- }
-
-- bool is_null_ = true;
-+ bool is_populated_ = false;
- union {
- // |empty_| exists so that the union will always be initialized, even when
- // it doesn't contain a value. Union members must be initialized for the
-@@ -84,7 +84,7 @@ struct OptionalStorageBase<T, true /* tr
-
- template <class... Args>
- constexpr explicit OptionalStorageBase(in_place_t, Args&&... args)
-- : is_null_(false), value_(std::forward<Args>(args)...) {}
-+ : is_populated_(true), value_(std::forward<Args>(args)...) {}
-
- // When T is trivially destructible (i.e. its destructor does nothing) there
- // is no need to call it. Implicitly defined destructor is trivial, because
-@@ -102,12 +102,12 @@ struct OptionalStorageBase<T, true /* tr
-
- template <class... Args>
- void Init(Args&&... args) {
-- DCHECK(is_null_);
-+ DCHECK(!is_populated_);
- ::new (&value_) T(std::forward<Args>(args)...);
-- is_null_ = false;
-+ is_populated_ = true;
- }
-
-- bool is_null_ = true;
-+ bool is_populated_ = false;
- union {
- // |empty_| exists so that the union will always be initialized, even when
- // it doesn't contain a value. Union members must be initialized for the
-@@ -133,7 +133,7 @@ struct OptionalStorage : OptionalStorage
-
- // Accessing the members of template base class requires explicit
- // declaration.
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
-
-@@ -145,12 +145,12 @@ struct OptionalStorage : OptionalStorage
- OptionalStorage() = default;
-
- OptionalStorage(const OptionalStorage& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(other.value_);
- }
-
- OptionalStorage(OptionalStorage&& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(std::move(other.value_));
- }
- };
-@@ -160,7 +160,7 @@ struct OptionalStorage<T,
- true /* trivially copy constructible */,
- false /* trivially move constructible */>
- : OptionalStorageBase<T> {
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
- using OptionalStorageBase<T>::OptionalStorageBase;
-@@ -169,7 +169,7 @@ struct OptionalStorage<T,
- OptionalStorage(const OptionalStorage& other) = default;
-
- OptionalStorage(OptionalStorage&& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(std::move(other.value_));
- }
- };
-@@ -179,7 +179,7 @@ struct OptionalStorage<T,
- false /* trivially copy constructible */,
- true /* trivially move constructible */>
- : OptionalStorageBase<T> {
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
- using OptionalStorageBase<T>::OptionalStorageBase;
-@@ -188,7 +188,7 @@ struct OptionalStorage<T,
- OptionalStorage(OptionalStorage&& other) = default;
-
- OptionalStorage(const OptionalStorage& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(other.value_);
- }
- };
-@@ -223,7 +223,7 @@ class OptionalBase {
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-- if (other.storage_.is_null_) {
-+ if (!other.storage_.is_populated_) {
- FreeIfNeeded();
- return *this;
- }
-@@ -233,7 +233,7 @@ class OptionalBase {
- }
-
- OptionalBase& operator=(OptionalBase&& other) {
-- if (other.storage_.is_null_) {
-+ if (!other.storage_.is_populated_) {
- FreeIfNeeded();
- return *this;
- }
-@@ -243,24 +243,24 @@ class OptionalBase {
- }
-
- void InitOrAssign(const T& value) {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- storage_.Init(value);
- else
- storage_.value_ = value;
- }
-
- void InitOrAssign(T&& value) {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- storage_.Init(std::move(value));
- else
- storage_.value_ = std::move(value);
- }
-
- void FreeIfNeeded() {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- return;
- storage_.value_.~T();
-- storage_.is_null_ = true;
-+ storage_.is_populated_ = false;
- }
-
- OptionalStorage<T> storage_;
-@@ -334,12 +334,12 @@ class Optional : public internal::Option
- }
-
- constexpr const T* operator->() const {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return &value();
- }
-
- constexpr T* operator->() {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return &value();
- }
-
-@@ -351,27 +351,27 @@ class Optional : public internal::Option
-
- constexpr T&& operator*() && { return std::move(value()); }
-
-- constexpr explicit operator bool() const { return !storage_.is_null_; }
-+ constexpr explicit operator bool() const { return storage_.is_populated_; }
-
-- constexpr bool has_value() const { return !storage_.is_null_; }
-+ constexpr bool has_value() const { return storage_.is_populated_; }
-
- constexpr T& value() & {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return storage_.value_;
- }
-
- constexpr const T& value() const & {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return storage_.value_;
- }
-
- constexpr T&& value() && {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return std::move(storage_.value_);
- }
-
- constexpr const T&& value() const && {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return std::move(storage_.value_);
- }
-
-@@ -382,8 +382,9 @@ class Optional : public internal::Option
- // "T must be copy constructible");
- static_assert(std::is_convertible<U, T>::value,
- "U must be convertible to T");
-- return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
-- : value();
-+ return storage_.is_populated_
-+ ? value()
-+ : static_cast<T>(std::forward<U>(default_value));
- }
-
- template <class U>
-@@ -393,26 +394,27 @@ class Optional : public internal::Option
- // "T must be move constructible");
- static_assert(std::is_convertible<U, T>::value,
- "U must be convertible to T");
-- return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
-- : std::move(value());
-+ return storage_.is_populated_
-+ ? std::move(value())
-+ : static_cast<T>(std::forward<U>(default_value));
- }
-
- void swap(Optional& other) {
-- if (storage_.is_null_ && other.storage_.is_null_)
-+ if (!storage_.is_populated_ && !other.storage_.is_populated_)
- return;
-
-- if (storage_.is_null_ != other.storage_.is_null_) {
-- if (storage_.is_null_) {
-- storage_.Init(std::move(other.storage_.value_));
-- other.FreeIfNeeded();
-- } else {
-+ if (storage_.is_populated_ != other.storage_.is_populated_) {
-+ if (storage_.is_populated_) {
- other.storage_.Init(std::move(storage_.value_));
- FreeIfNeeded();
-+ } else {
-+ storage_.Init(std::move(other.storage_.value_));
-+ other.FreeIfNeeded();
- }
- return;
- }
-
-- DCHECK(!storage_.is_null_ && !other.storage_.is_null_);
-+ DCHECK(storage_.is_populated_ && other.storage_.is_populated_);
- using std::swap;
- swap(**this, *other);
- }
diff --git a/chromium-65.0.3325.146-gcc5-r3.patch b/chromium-65.0.3325.146-gcc5-r3.patch
deleted file mode 100644
index ab74a35..0000000
--- a/chromium-65.0.3325.146-gcc5-r3.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -up chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-03-06 18:04:32.000000000 -0500
-+++ chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2018-03-06 18:04:37.000000000 -0500
-+++ chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -138,7 +138,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-03-06 18:04:37.000000000 -0500
-+++ chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2018-03-06 18:05:06.000000000 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2018-03-07 10:48:53.996093882 -0500
-@@ -62,7 +62,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(length),
- data_(data),
- data_length_(length),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -93,11 +93,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-03-06 18:06:09.000000000 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-03-07 10:42:07.199179616 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-65.0.3325.146-gcc7.patch b/chromium-65.0.3325.146-gcc7.patch
deleted file mode 100644
index 4f2b46c..0000000
--- a/chromium-65.0.3325.146-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2018-03-07 10:34:48.783900894 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2018-03-07 10:35:44.885638503 -0500
-@@ -5,6 +5,7 @@
- #ifndef SharedGpuContext_h
- #define SharedGpuContext_h
-
-+#include <functional>
- #include <memory>
- #include "base/callback.h"
- #include "base/memory/weak_ptr.h"
diff --git a/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch b/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch
deleted file mode 100644
index 241dfb5..0000000
--- a/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.784732 chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.784732 2018-03-07 13:40:00.103579631 -0500
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-07 13:41:08.950323996 -0500
-@@ -9,6 +9,7 @@
- #include <utility>
-
- #include "base/logging.h"
-+#include "base/template_util.h"
-
- namespace base {
-
-@@ -106,7 +107,7 @@ struct OptionalStorageBase<T, true /* tr
- // compiler generated constexpr {copy,move} constructors). Note that
- // placement-new is prohibited in constexpr.
- template <typename T,
-- bool = std::is_trivially_copy_constructible<T>::value,
-+ bool = is_trivially_copy_constructible<T>::value,
- bool = std::is_trivially_move_constructible<T>::value>
- struct OptionalStorage : OptionalStorageBase<T> {
- // This is no trivially {copy,move} constructible case. Other cases are
-diff -up chromium-65.0.3325.146/base/template_util.h.784732 chromium-65.0.3325.146/base/template_util.h
---- chromium-65.0.3325.146/base/template_util.h.784732 2018-03-07 13:41:19.479131969 -0500
-+++ chromium-65.0.3325.146/base/template_util.h 2018-03-07 13:42:41.308639551 -0500
-@@ -10,6 +10,7 @@
- #include <iterator>
- #include <type_traits>
- #include <utility>
-+#include <vector>
-
- #include "build/build_config.h"
-
-@@ -127,6 +128,23 @@ template <class T>
- using is_trivially_copyable = std::is_trivially_copyable<T>;
- #endif
-
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<std::vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+template <typename T>
-+struct is_trivially_copy_constructible
-+ : std::is_trivially_copy_constructible<T> {};
-+
-+template <typename... T>
-+struct is_trivially_copy_constructible<std::vector<T...>> : std::false_type {};
-+#else
-+// Otherwise use std::is_trivially_copy_constructible as is.
-+template <typename T>
-+using is_trivially_copy_constructible = std::is_trivially_copy_constructible<T>;
-+#endif
-+
- } // namespace base
-
- #undef CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX
diff --git a/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch b/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch
deleted file mode 100644
index 8b5ff7f..0000000
--- a/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h.oilpan chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h.oilpan 2018-03-13 16:45:40.613426445 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h 2018-03-13 16:45:49.946244905 -0400
-@@ -18,6 +18,7 @@
- #include "platform/wtf/HashTable.h"
- #include "platform/wtf/LinkedHashSet.h"
- #include "platform/wtf/ListHashSet.h"
-+#include "platform/wtf/Optional.h"
- #include "platform/wtf/TypeTraits.h"
-
- namespace blink {
-@@ -325,6 +326,23 @@ class TraceTrait<std::pair<T, U>> {
- }
- };
-
-+// While using Optional<T> with garbage-collected types is generally disallowed
-+// by the OptionalGarbageCollected check in blink_gc_plugin, garbage-collected
-+// containers such as HeapVector are allowed and need to be traced.
-+template <typename T>
-+class TraceTrait<WTF::Optional<T>> {
-+ STATIC_ONLY(TraceTrait);
-+
-+ public:
-+ template <typename VisitorDispatcher>
-+ static void Trace(VisitorDispatcher visitor, WTF::Optional<T>* optional) {
-+ if (*optional != WTF::nullopt) {
-+ TraceIfEnabled<T, WTF::IsTraceable<T>::value>::Trace(visitor,
-+ optional->value());
-+ }
-+ }
-+};
-+
- // If eager tracing leads to excessively deep |trace()| call chains (and
- // the system stack usage that this brings), the marker implementation will
- // switch to using an explicit mark stack. Recursive and deep object graphs
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.oilpan chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.oilpan 2018-03-13 16:46:01.683015951 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h 2018-03-13 16:46:51.632043375 -0400
-@@ -7,20 +7,15 @@
-
- #include "base/optional.h"
- #include "platform/wtf/TemplateUtil.h"
--#include "platform/wtf/TypeTraits.h"
-
- namespace WTF {
-
- // WTF::Optional is base::Optional. See base/optional.h for documentation.
- //
- // A clang plugin enforces that garbage collected types are not allocated
--// outside of the heap, similarly we enforce that one doesn't create garbage
--// collected types nested inside an Optional.
-+// outside of the heap. GC containers such as HeapVector are allowed though.
- template <typename T>
--using Optional =
-- typename std::enable_if<!IsGarbageCollectedType<T>::value ||
-- IsPersistentReferenceType<T>::value,
-- base::Optional<T>>::type;
-+using Optional = base::Optional<T>;
-
- constexpr base::nullopt_t nullopt = base::nullopt;
- constexpr base::in_place_t in_place = base::in_place;
diff --git a/chromium-65.0.3325.146-wtf-vector-fix.patch b/chromium-65.0.3325.146-wtf-vector-fix.patch
deleted file mode 100644
index e4bfeba..0000000
--- a/chromium-65.0.3325.146-wtf-vector-fix.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS.jdp 2018-03-07 13:54:42.653286576 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS 2018-03-07 13:55:00.973903591 -0500
-@@ -16,6 +16,7 @@ include_rules = [
- "+base/process/process_metrics.h",
- "+base/rand_util.h",
- "+base/strings",
-+ "+base/template_util.h",
- "+base/threading/thread_checker.h",
- "+base/time/time.h",
- "+base/tuple.h",
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.jdp 2018-03-07 13:56:29.053062331 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h 2018-03-07 13:56:36.595904651 -0500
-@@ -6,6 +6,7 @@
- #define Optional_h
-
- #include "base/optional.h"
-+#include "platform/wtf/TemplateUtil.h"
- #include "platform/wtf/TypeTraits.h"
-
- namespace WTF {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.jdp 2018-03-07 13:56:47.356679702 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h 2018-03-07 13:57:41.769542223 -0500
-@@ -0,0 +1,28 @@
-+// Copyright 2018 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.
-+
-+#ifndef TemplateUtil_h
-+#define TemplateUtil_h
-+
-+#include "base/template_util.h"
-+#include "platform/wtf/Vector.h"
-+
-+namespace base {
-+
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<WTF::Vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+//
-+// It completes the declaration in base/template_util.h that was provided
-+// for std::vector
-+template <typename T>
-+struct is_trivially_copy_constructible<WTF::Vector<T>> : std::false_type {};
-+#endif
-+
-+} // namespace base
-+
-+#endif // TemplateUtil_h
-+
diff --git a/chromium-65.0.3325.162-boolfix.patch b/chromium-65.0.3325.162-boolfix.patch
deleted file mode 100644
index a27f3a8..0000000
--- a/chromium-65.0.3325.162-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-03-15 13:07:54.999428755 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-03-15 13:08:21.270794252 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-03-15 13:07:09.680523296 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h 2018-03-15 13:07:44.429684037 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-03-15 13:08:33.494499025 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h 2018-03-15 13:10:39.218462546 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-65.0.3325.162-epel7-stdc++.patch b/chromium-65.0.3325.162-epel7-stdc++.patch
deleted file mode 100644
index ee2066b..0000000
--- a/chromium-65.0.3325.162-epel7-stdc++.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 chromium-65.0.3325.162/build/config/posix/BUILD.gn
---- chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 2018-03-20 16:14:42.425926323 -0400
-+++ chromium-65.0.3325.162/build/config/posix/BUILD.gn 2018-03-20 16:15:10.150152245 -0400
-@@ -74,6 +74,8 @@ config("runtime_library") {
- "rt",
- ]
- }
-+ } else {
-+ libs += [ "stdc++" ]
- }
-
- if (!is_mac && !is_ios && sysroot != "") {
diff --git a/chromium-65.0.3325.162-skia-aarch64-buildfix.patch b/chromium-65.0.3325.162-skia-aarch64-buildfix.patch
deleted file mode 100644
index e48346c..0000000
--- a/chromium-65.0.3325.162-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp
---- chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix 2018-03-15 15:27:35.201345844 -0400
-+++ chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp 2018-03-15 15:31:30.471777400 -0400
-@@ -666,7 +666,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch b/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
deleted file mode 100644
index 36ade41..0000000
--- a/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h.gcc-full-decl chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h
---- chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h.gcc-full-decl 2018-04-25 16:29:52.372692179 -0400
-+++ chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h 2018-04-25 16:31:15.698058409 -0400
-@@ -21,9 +21,9 @@
- #include "services/preferences/public/mojom/preferences.mojom.h"
- #include "services/preferences/tracked/hash_store_contents.h"
- #include "services/preferences/tracked/interceptable_pref_filter.h"
-+#include "services/preferences/tracked/pref_hash_store.h"
- #include "services/preferences/tracked/tracked_preference.h"
-
--class PrefHashStore;
- class PrefService;
-
- namespace base {
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.gcc-full-decl chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.gcc-full-decl 2018-04-17 21:05:12.000000000 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h 2018-04-25 16:29:52.373692159 -0400
-@@ -30,6 +30,7 @@
-
- #include <memory>
- #include "modules/webdatabase/DatabaseBasicTypes.h"
-+#include "modules/webdatabase/SQLError.h"
- #include "modules/webdatabase/SQLStatement.h"
- #include "modules/webdatabase/SQLStatementBackend.h"
- #include "modules/webdatabase/SQLTransactionStateMachine.h"
-@@ -41,7 +42,6 @@
- namespace blink {
-
- class Database;
--class SQLErrorData;
- class SQLiteTransaction;
- class SQLTransaction;
- class SQLTransactionBackend;
diff --git a/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch b/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
deleted file mode 100644
index cb68934..0000000
--- a/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc.flatsetfix chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc
---- chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc.flatsetfix 2018-04-30 14:22:23.997461566 -0400
-+++ chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc 2018-04-30 14:22:51.867920383 -0400
-@@ -368,7 +368,7 @@ SupervisedUserURLFilter::GetFilteringBeh
-
- // Allow navigations to whitelisted origins (currently families.google.com).
- static const base::NoDestructor<base::flat_set<GURL>> kWhitelistedOrigins(
-- {GURL(kFamiliesUrl).GetOrigin()});
-+ base::flat_set<GURL>({GURL(kFamiliesUrl).GetOrigin()}));
- if (base::ContainsKey(*kWhitelistedOrigins, effective_url.GetOrigin()))
- return ALLOW;
-
diff --git a/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch b/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
deleted file mode 100644
index 09c5b82..0000000
--- a/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider.cc.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider.cc
---- chromium-66.0.3359.117/cc/raster/playback_image_provider.cc.copycon 2018-04-23 13:22:43.109126071 -0400
-+++ chromium-66.0.3359.117/cc/raster/playback_image_provider.cc 2018-04-23 13:23:55.761704938 -0400
-@@ -20,7 +20,7 @@ void UnrefImageFromCache(DrawImage draw_
- PlaybackImageProvider::PlaybackImageProvider(
- ImageDecodeCache* cache,
- const gfx::ColorSpace& target_color_space,
-- base::Optional<Settings> settings)
-+ base::Optional<Settings>&& settings)
- : cache_(cache),
- target_color_space_(target_color_space),
- settings_(std::move(settings)) {
-@@ -70,7 +70,10 @@ PlaybackImageProvider::GetDecodedDrawIma
- }
-
- PlaybackImageProvider::Settings::Settings() = default;
--PlaybackImageProvider::Settings::Settings(const Settings& other) = default;
-+PlaybackImageProvider::Settings::Settings(PlaybackImageProvider::Settings&&) =
-+ default;
- PlaybackImageProvider::Settings::~Settings() = default;
-+PlaybackImageProvider::Settings& PlaybackImageProvider::Settings::operator=(
-+ PlaybackImageProvider::Settings&&) = default;
-
- } // namespace cc
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider.h.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider.h
---- chromium-66.0.3359.117/cc/raster/playback_image_provider.h.copycon 2018-04-23 13:24:07.699471148 -0400
-+++ chromium-66.0.3359.117/cc/raster/playback_image_provider.h 2018-04-23 13:24:57.080506348 -0400
-@@ -20,8 +20,10 @@ class CC_EXPORT PlaybackImageProvider :
- public:
- struct CC_EXPORT Settings {
- Settings();
-- Settings(const Settings& other);
-+ Settings(const Settings&) = delete;
-+ Settings(Settings&&);
- ~Settings();
-+ Settings& operator=(Settings&&);
-
- // The set of image ids to skip during raster.
- PaintImageIdFlatSet images_to_skip;
-@@ -34,7 +36,7 @@ class CC_EXPORT PlaybackImageProvider :
- // If no settings are provided, all images are skipped during rasterization.
- PlaybackImageProvider(ImageDecodeCache* cache,
- const gfx::ColorSpace& target_color_space,
-- base::Optional<Settings> settings);
-+ base::Optional<Settings>&& settings);
- ~PlaybackImageProvider() override;
-
- PlaybackImageProvider(PlaybackImageProvider&& other);
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider_unittest.cc.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider_unittest.cc
diff --git a/chromium-66.0.3359.117-gcc-optional-move-fixes.patch b/chromium-66.0.3359.117-gcc-optional-move-fixes.patch
deleted file mode 100644
index 80df7d0..0000000
--- a/chromium-66.0.3359.117-gcc-optional-move-fixes.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -up chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc.gccomove chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc
---- chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc.gccomove 2018-04-23 12:53:32.419477463 -0400
-+++ chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc 2018-04-23 12:54:02.497887258 -0400
-@@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubre
-
- SubresourceLoaderParams params;
- params.loader_factory_info = factory_ptr.PassInterface();
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void AppCacheRequestHandler::MaybeCreateSubresourceLoader(
-diff -up chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc.gccomove chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc
---- chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc.gccomove 2018-04-23 12:54:16.614610083 -0400
-+++ chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc 2018-04-23 12:54:38.401182827 -0400
-@@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::M
- controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle(
- provider_host_->controller());
- params.controller_service_worker_info = std::move(controller_info);
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
-diff -up chromium-66.0.3359.117/device/fido/device_response_converter.cc.gccomove chromium-66.0.3359.117/device/fido/device_response_converter.cc
---- chromium-66.0.3359.117/device/fido/device_response_converter.cc.gccomove 2018-04-23 12:54:51.452926482 -0400
-+++ chromium-66.0.3359.117/device/fido/device_response_converter.cc 2018-04-23 12:55:24.248283058 -0400
-@@ -121,7 +121,7 @@ base::Optional<AuthenticatorGetAssertion
- response.SetNumCredentials(it->second.GetUnsigned());
- }
-
-- return response;
-+ return base::Optional<AuthenticatorGetAssertionResponse>(std::move(response));
- }
-
- base::Optional<AuthenticatorGetInfoResponse> ReadCTAPGetInfoResponse(
-@@ -241,7 +241,7 @@ base::Optional<AuthenticatorGetInfoRespo
- response.SetPinProtocols(std::move(supported_pin_protocols));
- }
-
-- return response;
-+ return base::Optional<AuthenticatorGetInfoResponse>(std::move(response));
- }
-
- } // namespace device
diff --git a/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch b/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
deleted file mode 100644
index b86c200..0000000
--- a/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS.944404 2018-04-23 14:18:43.702116916 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS 2018-04-23 14:19:05.854680223 -0400
-@@ -16,6 +16,7 @@ include_rules = [
- "+base/process/process_metrics.h",
- "+base/rand_util.h",
- "+base/strings",
-+ "+base/template_util.h",
- "+base/threading/thread_checker.h",
- "+base/time/time.h",
- "+base/tuple.h",
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h.944404 2018-04-23 14:20:05.718499685 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h 2018-04-23 14:20:18.165253615 -0400
-@@ -6,6 +6,7 @@
- #define Optional_h
-
- #include "base/optional.h"
-+#include "platform/wtf/TemplateUtil.h"
-
- namespace WTF {
-
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.944404 2018-04-23 14:20:31.660987877 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h 2018-04-23 14:21:40.276637297 -0400
-@@ -0,0 +1,27 @@
-+// Copyright 2018 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.
-+
-+#ifndef TemplateUtil_h
-+#define TemplateUtil_h
-+
-+#include "base/template_util.h"
-+#include "platform/wtf/Vector.h"
-+
-+namespace base {
-+
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<WTF::Vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+//
-+// It completes the declaration in base/template_util.h that was provided
-+// for std::vector
-+template <typename T>
-+struct is_trivially_copy_constructible<WTF::Vector<T>> : std::false_type {};
-+#endif
-+
-+} // namespace base
-+
-+#endif // TemplateUtil_h
diff --git a/chromium-66.0.3359.117-gcc5-r3.patch b/chromium-66.0.3359.117-gcc5-r3.patch
deleted file mode 100644
index 56abcf1..0000000
--- a/chromium-66.0.3359.117-gcc5-r3.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -up chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-04-17 21:04:33.000000000 -0400
-+++ chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h 2018-04-18 12:12:40.065663210 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-04-17 21:04:43.000000000 -0400
-+++ chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-04-18 12:12:40.067663160 -0400
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-diff -up chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-04-17 21:06:20.000000000 -0400
-+++ chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-04-18 12:12:40.068663134 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-66.0.3359.117-nounrar.patch b/chromium-66.0.3359.117-nounrar.patch
deleted file mode 100644
index 67a517b..0000000
--- a/chromium-66.0.3359.117-nounrar.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn.nounrar chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn
---- chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn.nounrar 2018-04-25 12:17:13.858139109 -0400
-+++ chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn 2018-04-25 12:19:53.639532053 -0400
-@@ -27,9 +27,9 @@ source_set("cpp") {
- }
-
- #TODO(crbug/750327): This dependency is here temporarily.
-- deps = [
-- "//third_party/unrar:unrar",
-- ]
-+ # deps = [
-+ # "//third_party/unrar:unrar",
-+ # ]
-
- public_deps += [ "//chrome/common/safe_browsing" ]
- }
diff --git a/chromium-66.0.3359.139-arm-init-fix.patch b/chromium-66.0.3359.139-arm-init-fix.patch
deleted file mode 100644
index 754af5b..0000000
--- a/chromium-66.0.3359.139-arm-init-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.139/skia/ext/convolver_neon.cc.arm-init-fix chromium-66.0.3359.139/skia/ext/convolver_neon.cc
---- chromium-66.0.3359.139/skia/ext/convolver_neon.cc.arm-init-fix 2018-05-05 10:07:03.624424987 -0400
-+++ chromium-66.0.3359.139/skia/ext/convolver_neon.cc 2018-05-05 10:07:45.417503001 -0400
-@@ -23,7 +23,7 @@ AccumRemainder(const unsigned char* pixe
- remainder[2] += coeff * pixels_left[i * 4 + 2];
- remainder[3] += coeff * pixels_left[i * 4 + 3];
- }
-- return {remainder[0], remainder[1], remainder[2], remainder[3]};
-+ return vld1q_s32(remainder);
- }
-
- // Convolves horizontally along a single row. The row data is given in
diff --git a/chromium-66.0.3359.170-gcc8-alignof.patch b/chromium-66.0.3359.170-gcc8-alignof.patch
deleted file mode 100644
index 0c2b356..0000000
--- a/chromium-66.0.3359.170-gcc8-alignof.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.170/mojo/public/c/system/macros.h.gcc8-alignof chromium-66.0.3359.170/mojo/public/c/system/macros.h
---- chromium-66.0.3359.170/mojo/public/c/system/macros.h.gcc8-alignof 2018-05-15 14:58:46.448912634 -0400
-+++ chromium-66.0.3359.170/mojo/public/c/system/macros.h 2018-05-15 14:58:52.041784613 -0400
-@@ -18,7 +18,13 @@
- #endif
-
- // Like the C++11 |alignof| operator.
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__) && __GNUC__ >= 8
-+// GCC 8 has changed the alignof operator to return the minimal alignment
-+// required by the target ABI, instead of the preferred alignment.
-+// This means that on 32-bit x86, it will return 4 instead of 8.
-+// Use __alignof__ instead to avoid this.
-+#define MOJO_ALIGNOF(type) __alignof__(type)
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNOF(type) alignof(type)
- #elif defined(__GNUC__)
- #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/chromium-67.0.3396.62-boolfix.patch b/chromium-67.0.3396.62-boolfix.patch
deleted file mode 100644
index d0ed189..0000000
--- a/chromium-67.0.3396.62-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-05-30 04:43:17.000000000 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-05-30 12:33:03.268912315 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-05-30 04:43:17.000000000 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h 2018-05-30 12:33:03.269912294 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-05-30 12:33:03.270912274 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h 2018-05-30 12:34:05.156637922 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch b/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch
deleted file mode 100644
index e19d726..0000000
--- a/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S.aarch64fix chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
---- chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S.aarch64fix 2018-06-04 14:58:04.730083967 -0400
-+++ chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S 2018-06-04 14:58:24.896572816 -0400
-@@ -288,7 +288,7 @@ CAPTURECONTEXT_SYMBOL2:
- #elif defined(__aarch64__)
-
- // Zero out fault_address, which is unused.
-- str x31, [x0, #0xb0] // context->uc_mcontext.fault_address
-+ str xzr, [x0, #0xb0] // context->uc_mcontext.fault_address
-
- // Save general purpose registers in context->uc_mcontext.regs[i].
- // The original x0 can't be recovered.
-diff -up chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h
diff --git a/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch b/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
deleted file mode 100644
index 1aa5600..0000000
--- a/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py.oldexec chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py
---- chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py.oldexec 2018-06-06 10:13:40.862084284 -0400
-+++ chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py 2018-06-06 10:14:08.809490819 -0400
-@@ -112,7 +112,7 @@ def windows_prepare_toolchain(tempdir):
-
- _globals = {"__builtins__":None}
- _locals = {}
-- exec(response, _globals, _locals)
-+ exec response in _globals, _locals
-
- return _locals
-
diff --git a/chromium-67.0.3396.62-skia-aarch64-buildfix.patch b/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
deleted file mode 100644
index 6b37b08..0000000
--- a/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-05-30 12:38:06.131467092 -0400
-+++ chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-05-30 12:38:39.861734819 -0400
-@@ -653,7 +653,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -673,7 +673,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-67.0.3396.87-fedora-user-agent.patch b/chromium-67.0.3396.87-fedora-user-agent.patch
deleted file mode 100644
index 8df304d..0000000
--- a/chromium-67.0.3396.87-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.87/content/common/user_agent.cc.fedora-user-agent chromium-67.0.3396.87/content/common/user_agent.cc
---- chromium-67.0.3396.87/content/common/user_agent.cc.fedora-user-agent 2018-06-25 16:01:48.092188102 -0400
-+++ chromium-67.0.3396.87/content/common/user_agent.cc 2018-06-25 16:02:42.634878954 -0400
-@@ -141,7 +141,7 @@ std::string getUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #else
diff --git a/chromium-67.0.3396.99-py2-bootstrap.patch b/chromium-67.0.3396.99-py2-bootstrap.patch
deleted file mode 100644
index b59c84b..0000000
--- a/chromium-67.0.3396.99-py2-bootstrap.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
---- chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-07-25 14:14:02.004886479 -0400
-+++ chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-07-25 14:15:30.167896461 -0400
-@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
-
- with tempfile.NamedTemporaryFile() as _:
- args = [
-- 'python',
-+ 'python2',
- rjsmin_path
- ]
- p = subprocess.Popen(args,
-@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
- 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 -up chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py.py2 chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py
---- chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py.py2 2018-07-24 16:58:53.372022183 -0400
-+++ chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py 2018-07-24 17:00:03.200279816 -0400
-@@ -983,7 +983,7 @@ def build_gn_with_gn(temp_gn, build_dir,
- gn_gen_args = options.gn_gen_args or ''
- if not options.debug:
- gn_gen_args += ' is_debug=false'
-- cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args,
-+ cmd = [temp_gn, 'gen', '--script-executable=/usr/bin/python2', build_dir, '--args=%s' % gn_gen_args,
- "--root="+SRC_ROOT
- ]
- check_call(cmd)
-@@ -997,7 +997,7 @@ def build_gn_with_gn(temp_gn, build_dir,
- # build.ninja currently refers back to gn from the temporary directory.
- # Regenerate the build files using the gn we just built so that the reference
- # gets updated to "./gn".
-- cmd = [os.path.join(build_dir, 'gn'), 'gen', build_dir,
-+ cmd = [os.path.join(build_dir, 'gn'), 'gen', '--script-executable=/usr/bin/python2', build_dir,
- '--args=%s' % gn_gen_args]
- check_call(cmd)
-
diff --git a/chromium-68.0.3440.106-fedora-user-agent.patch b/chromium-68.0.3440.106-fedora-user-agent.patch
deleted file mode 100644
index 6c4cb82..0000000
--- a/chromium-68.0.3440.106-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent chromium-68.0.3440.106/content/common/user_agent.cc
---- chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent 2018-08-09 03:27:45.965769824 -0400
-+++ chromium-68.0.3440.106/content/common/user_agent.cc 2018-08-09 03:28:34.001586650 -0400
-@@ -135,7 +135,7 @@ std::string getUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-68.0.3440.106-fix-build-networking_private.patch b/chromium-68.0.3440.106-fix-build-networking_private.patch
deleted file mode 100644
index 787d3db..0000000
--- a/chromium-68.0.3440.106-fix-build-networking_private.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn.fixb chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn
---- chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn.fixb 2018-08-09 03:56:36.091622243 -0400
-+++ chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn 2018-08-09 03:57:03.047001659 -0400
-@@ -61,7 +61,7 @@ source_set("networking_private") {
- ]
- deps += [ "//chromeos" ]
- } else {
-- not_needed(default_sources)
-+ not_needed([ "default_sources" ])
- sources = [
- "networking_private_stubs.cc",
- ]
diff --git a/chromium-68.0.3440.106-notest.patch b/chromium-68.0.3440.106-notest.patch
deleted file mode 100644
index c20a40e..0000000
--- a/chromium-68.0.3440.106-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd.notest chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd
---- chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd.notest 2018-08-09 03:08:33.953029806 -0400
-+++ chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd 2018-08-09 03:09:40.264567818 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- </includes>
- </release>
diff --git a/chromium-68.0.3440.84-cors-string.patch b/chromium-68.0.3440.84-cors-string.patch
deleted file mode 100644
index b724cd4..0000000
--- a/chromium-68.0.3440.84-cors-string.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 01d891fa0790950549c7bedb34edf869827a372e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 31 May 2018 17:03:37 +0000
-Subject: [PATCH] CORS legacy: add missing string include
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The cors_legacy.h file includes declarations using std::string, but
-it is not declared due to missing #include <string>.
-
-Also drop unneeded declarations in .cpp file.
-
-Change-Id: I00df799f84a6c3530c2f12f1e52d24c7d9bd6bfd
-Reviewed-on: https://chromium-review.googlesource.com/1080707
-Reviewed-by: Tom Sepez <tsepez(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#563282}
----
- services/network/public/cpp/cors/cors_legacy.cc | 2 --
- services/network/public/cpp/cors/cors_legacy.h | 1 +
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/services/network/public/cpp/cors/cors_legacy.cc b/services/network/public/cpp/cors/cors_legacy.cc
-index 8f32ac3be64e..f01af63619b5 100644
---- a/services/network/public/cpp/cors/cors_legacy.cc
-+++ b/services/network/public/cpp/cors/cors_legacy.cc
-@@ -5,8 +5,6 @@
- #include "services/network/public/cpp/cors/cors_legacy.h"
-
- #include <algorithm>
--#include <string>
--#include <vector>
-
- #include "url/gurl.h"
- #include "url/url_util.h"
-diff --git a/services/network/public/cpp/cors/cors_legacy.h b/services/network/public/cpp/cors/cors_legacy.h
-index d2cdf026ca3a..dc9295a92c47 100644
---- a/services/network/public/cpp/cors/cors_legacy.h
-+++ b/services/network/public/cpp/cors/cors_legacy.h
-@@ -5,6 +5,7 @@
- #ifndef SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
- #define SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
-
-+#include <string>
- #include <vector>
-
- #include "base/component_export.h"
---
-2.17.1
-
diff --git a/chromium-68.0.3440.84-libjpeg.patch b/chromium-68.0.3440.84-libjpeg.patch
deleted file mode 100644
index 5354281..0000000
--- a/chromium-68.0.3440.84-libjpeg.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From c6b0194f7a4d9f494b2d51f46d2c332e2e5f4050 Mon Sep 17 00:00:00 2001
-From: Daniel Bratell <bratell(a)opera.com>
-Date: Mon, 28 May 2018 13:13:01 +0000
-Subject: [PATCH] Use the same libjpeg in all of blink/platform
-
-The normal libjpeg renames some symbols with macros so if its
-headers are included together with libjpeg-turbo's headers
-in the same translation unit, there will be an inconsistent
-renaming of libjpeg symbols. This happened in some extreme
-jumbo configuration and resulted in confising linker errors.
-
-This patch changes an include so that jpeglib.h becomes included
-the same way everywhere.
-
-Change-Id: I7f122d0919d58371bb40dc0097a766b857b9815e
-Reviewed-on: https://chromium-review.googlesource.com/1073423
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Commit-Queue: Daniel Bratell <bratell(a)opera.com>
-Cr-Commit-Position: refs/heads/master@{#562243}
----
- .../renderer/platform/image-encoders/image_encoder.cc | 11 +++++++++++
- .../renderer/platform/image-encoders/image_encoder.h | 2 --
- 2 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-index 0c7f14c7c0e4..4c450f5d6783 100644
---- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-@@ -4,6 +4,17 @@
-
- #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
-
-+#include "build/build_config.h"
-+
-+#if defined(OS_WIN)
-+#include <basetsd.h> // Included before jpeglib.h because of INT32 clash
-+#endif // OS_WIN
-+#include <stdio.h> // Needed by jpeglib.h
-+
-+#include "jpeglib.h" // for JPEG_MAX_DIMENSION
-+
-+#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION
-+
- namespace blink {
-
- bool ImageEncoder::Encode(Vector<unsigned char>* dst,
-diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.h b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-index 0d1460f34827..40306097d507 100644
---- a/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-@@ -7,8 +7,6 @@
-
- #include "third_party/blink/renderer/platform/platform_export.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
--#include "third_party/libjpeg/jpeglib.h" // for JPEG_MAX_DIMENSION
--#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION
- #include "third_party/skia/include/core/SkStream.h"
- #include "third_party/skia/include/encode/SkJpegEncoder.h"
- #include "third_party/skia/include/encode/SkPngEncoder.h"
---
-2.17.1
-
diff --git a/chromium-68.0.3440.84-libwebp-shim.patch b/chromium-68.0.3440.84-libwebp-shim.patch
deleted file mode 100644
index cb387a4..0000000
--- a/chromium-68.0.3440.84-libwebp-shim.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/build/linux/unbundle/libwebp.gn b/build/linux/unbundle/libwebp.gn
-index ab92adecf400..12574d87be58 100644
---- a/build/linux/unbundle/libwebp.gn
-+++ b/build/linux/unbundle/libwebp.gn
-@@ -2,12 +2,34 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
-
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+
-+pkg_config("system_libwebp") {
-+ packages = [
-+ "libwebp",
-+ "libwebpdemux",
-+ "libwebpmux",
-+ ]
-+}
-+
-+shim_headers("libwebp_shim") {
-+ root_path = "src"
-+ headers = [
-+ "webp/decode.h",
-+ "webp/demux.h",
-+ "webp/encode.h",
-+ "webp/mux.h",
-+ "webp/mux_types.h",
-+ "webp/types.h",
-+ ]
-+}
-+
- source_set("libwebp_webp") {
-- libs = [
-- "webp",
-- "webpdemux",
-- "webpmux",
-+ deps = [
-+ ":libwebp_shim",
- ]
-+ public_configs = [ ":system_libwebp" ]
- }
-
- group("libwebp") {
diff --git a/chromium-68.0.3440.84-move-unique-ptr.patch b/chromium-68.0.3440.84-move-unique-ptr.patch
deleted file mode 100644
index 2942a8f..0000000
--- a/chromium-68.0.3440.84-move-unique-ptr.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 56cb5f7da1025f6db869e840ed34d3b98b9ab899 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 29 May 2018 16:04:14 +0000
-Subject: [PATCH] GCC: do not std::move unique ptr of forward declared UrlIndex
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC fails to resolve the size of UrlIndex, needed
-for moving a std::unique_ptr of UrlIndex. This is because
-moved is done on a forward-declared UrlIndex.
-
-To avoid the problem, move the call to std::move to the .cc
-file so the full declaration is available.
-
-Build error:
-../../buildtools/third_party/libc++/trunk/include/memory: In instantiation of void std::__1::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = bookmarks::UrlIndex]:
-../../buildtools/third_party/libc++/trunk/include/memory:2634:22: required from void std::__1::unique_ptr<_Tp, _Dp>::reset(std::__1::unique_ptr<_Tp, _Dp>::pointer) [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>; std::__1::unique_ptr<_Tp, _Dp>::pointer = bookmarks::UrlIndex*]
-../../buildtools/third_party/libc++/trunk/include/memory:2588:24: required from std::__1::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>]
-../../components/bookmarks/browser/bookmark_storage.h:107:76: required from here
-../../buildtools/third_party/libc++/trunk/include/memory:2317:25: error: invalid application of sizeof to incomplete type bookmarks::UrlIndex
- static_assert(sizeof(_Tp) > 0,
-
-Bug: 819294
-Change-Id: I793a807c28e797aaa2e31d9c8b7e09fb6ca6b9e7
-Reviewed-on: https://chromium-review.googlesource.com/1071648
-Commit-Queue: Scott Violet <sky(a)chromium.org>
-Reviewed-by: Scott Violet <sky(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#562446}
----
- components/bookmarks/browser/bookmark_storage.cc | 4 ++++
- components/bookmarks/browser/bookmark_storage.h | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
-index 1633ba1df2a4..3ae0c62292e7 100644
---- a/components/bookmarks/browser/bookmark_storage.cc
-+++ b/components/bookmarks/browser/bookmark_storage.cc
-@@ -158,6 +158,10 @@ void BookmarkLoadDetails::CreateUrlIndex() {
- url_index_ = std::make_unique<UrlIndex>(std::move(root_node_));
- }
-
-+std::unique_ptr<UrlIndex> BookmarkLoadDetails::owned_url_index() {
-+ return std::move(url_index_);
-+}
-+
- BookmarkPermanentNode* BookmarkLoadDetails::CreatePermanentNode(
- BookmarkClient* client,
- BookmarkNode::Type type) {
-diff --git a/components/bookmarks/browser/bookmark_storage.h b/components/bookmarks/browser/bookmark_storage.h
-index 08df5bb65d83..0a1b1a1b65b9 100644
---- a/components/bookmarks/browser/bookmark_storage.h
-+++ b/components/bookmarks/browser/bookmark_storage.h
-@@ -104,7 +104,7 @@ class BookmarkLoadDetails {
- bool ids_reassigned() const { return ids_reassigned_; }
-
- void CreateUrlIndex();
-- std::unique_ptr<UrlIndex> owned_url_index() { return std::move(url_index_); }
-+ std::unique_ptr<UrlIndex> owned_url_index();
-
- private:
- // Creates one of the possible permanent nodes (bookmark bar node, other node
---
-2.17.1
-
diff --git a/chromium-69.0.3497.81-gcc8-alignof.patch b/chromium-69.0.3497.81-gcc8-alignof.patch
deleted file mode 100644
index 234b391..0000000
--- a/chromium-69.0.3497.81-gcc8-alignof.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof chromium-69.0.3497.81/mojo/public/c/system/macros.h
---- chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof 2018-09-06 10:11:54.336432699 -0400
-+++ chromium-69.0.3497.81/mojo/public/c/system/macros.h 2018-09-06 10:13:56.555727572 -0400
-@@ -27,7 +27,13 @@
- (sizeof(void*) == 4 ? 32 : 0)
-
- // Like the C++11 |alignof| operator.
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__) && __GNUC__ >= 8
-+// GCC 8 has changed the alignof operator to return the minimal alignment
-+// required by the target ABI, instead of the preferred alignment.
-+// This means that on 32-bit x86, it will return 4 instead of 8.
-+// Use __alignof__ instead to avoid this.
-+#define MOJO_ALIGNOF(type) __alignof__(type)
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNOF(type) alignof(type)
- #elif defined(__GNUC__)
- #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/chromium-69.0.3497.81-norar.patch b/chromium-69.0.3497.81-norar.patch
deleted file mode 100644
index 9545b60..0000000
--- a/chromium-69.0.3497.81-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn
---- chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar 2018-09-06 13:29:47.114511569 -0400
-+++ chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn 2018-09-06 13:29:47.120511452 -0400
-@@ -55,40 +55,6 @@ if (safe_browsing_mode == 1) {
- "//components/safe_browsing:csd_proto",
- ]
- }
--
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_protection_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
- }
-
- source_set("safe_browsing") {
-@@ -121,7 +87,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_protection_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS
---- chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar 2018-09-06 13:29:47.119511472 -0400
-+++ chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS 2018-09-06 13:29:47.116511530 -0400
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2018-09-07 10:10:42.286041744 -0400
-+++ chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc 2018-09-07 10:11:14.934308285 -0400
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-69.0.3497.81-py2-bootstrap.patch b/chromium-69.0.3497.81-py2-bootstrap.patch
deleted file mode 100644
index 8a5db71..0000000
--- a/chromium-69.0.3497.81-py2-bootstrap.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
---- chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-09-06 10:45:17.919774145 -0400
-+++ chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-09-06 10:45:17.914774254 -0400
-@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
-
- with tempfile.NamedTemporaryFile() as _:
- args = [
-- 'python',
-+ 'python2',
- rjsmin_path
- ]
- p = subprocess.Popen(args,
-@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
- 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 -up chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py.py2 chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py
---- chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py.py2 2018-09-06 10:44:42.225550561 -0400
-+++ chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py 2018-09-06 13:06:24.251636231 -0400
-@@ -87,7 +87,7 @@ def main(argv):
- if not options.debug:
- gn_gen_args += ' is_debug=false'
- subprocess.check_call([
-- gn_path, 'gen', out_dir,
-+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
- '--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
- ])
-
diff --git a/chromium-69.0.3497.81-widevine-r2.patch b/chromium-69.0.3497.81-widevine-r2.patch
deleted file mode 100644
index a66a0fb..0000000
--- a/chromium-69.0.3497.81-widevine-r2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn.wvhack chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn
---- chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn.wvhack 2018-09-06 13:28:22.655272555 -0400
-+++ chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn 2018-09-06 13:28:22.655272555 -0400
-@@ -11,7 +11,7 @@ import("//third_party/widevine/cdm/widev
- # Internal Cast builds set enable_widevine=true to bring in Widevine support.
- # TODO(xhwang): Support component updated CDM on other platforms and remove this
- # assert.
--assert(!enable_widevine || is_win || is_mac || is_chromecast,
-+assert(!enable_widevine || is_win || is_mac || is_chromecast || is_linux,
- "Component updated CDM only supported on Windows and Mac for now.")
-
- widevine_arch = current_cpu
-diff -up chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h.wvhack chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h
---- chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h.wvhack 2018-09-06 13:28:22.654272577 -0400
-+++ chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h 2018-09-06 13:28:22.654272577 -0400
-@@ -10,6 +10,7 @@
-
- #include "third_party/widevine/cdm/widevine_cdm_common.h"
-
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- #define WIDEVINE_CDM_AVAILABLE
-
- #endif // WIDEVINE_CDM_VERSION_H_
diff --git a/chromium-70.0.3538.110-remove-sysroot-options.patch b/chromium-70.0.3538.110-remove-sysroot-options.patch
deleted file mode 100644
index 9eb99d1..0000000
--- a/chromium-70.0.3538.110-remove-sysroot-options.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py.sysrootfix chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py
---- chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py.sysrootfix 2018-11-26 13:40:19.324713204 -0500
-+++ chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py 2018-11-26 13:40:43.199180888 -0500
-@@ -46,10 +46,6 @@ def main(argv):
- '--build-path',
- help='The directory in which to build gn, '
- 'relative to the src directory. (eg. out/Release)')
-- parser.add_option(
-- '--with-sysroot',
-- action='store_true',
-- help='Download and build with the Debian sysroot.')
- parser.add_option('-v', '--verbose', help='ignored')
- options, args = parser.parse_args(argv)
- if args:
-@@ -71,8 +67,6 @@ def main(argv):
- '--no-last-commit-position',
- '--out-path=' + gn_build_dir,
- ]
-- if not options.with_sysroot:
-- cmd.append('--no-sysroot')
- if options.debug:
- cmd.append('--debug')
- subprocess.check_call(cmd)
diff --git a/chromium-70.0.3538.77-harfbuzz2-fix.patch b/chromium-70.0.3538.77-harfbuzz2-fix.patch
deleted file mode 100644
index 2d5602d..0000000
--- a/chromium-70.0.3538.77-harfbuzz2-fix.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppymaster(a)gmail.com>
-Date: Sun, 21 Oct 2018 10:06:53 -0400
-Subject: [PATCH] blink: add 'const' modifier for harfbuzz hb_codepoint_t
- pointers
-
-This resolves a build failure against harfbuzz 2.0.
-
-Based on a patch by Alexandre Fierreira.
-
-Bug: https://bugs.gentoo.org/669034
----
- .../renderer/platform/fonts/shaping/harfbuzz_face.cc | 2 +-
- .../renderer/platform/fonts/skia/skia_text_metrics.cc | 9 +++++++--
- .../renderer/platform/fonts/skia/skia_text_metrics.h | 2 +-
- 3 files changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-index 8e7d91ca371f..e279a5876cb3 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-@@ -139,7 +139,7 @@ static hb_position_t HarfBuzzGetGlyphHorizontalAdvance(hb_font_t* hb_font,
- static void HarfBuzzGetGlyphHorizontalAdvances(hb_font_t* font,
- void* font_data,
- unsigned count,
-- hb_codepoint_t* first_glyph,
-+ const hb_codepoint_t* first_glyph,
- unsigned int glyph_stride,
- hb_position_t* first_advance,
- unsigned int advance_stride,
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-index 77ec6209fab9..9f9070921448 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-@@ -18,6 +18,11 @@ T* advance_by_byte_size(T* p, unsigned byte_size) {
- return reinterpret_cast<T*>(reinterpret_cast<uint8_t*>(p) + byte_size);
- }
-
-+template <class T>
-+T* advance_by_byte_size_const(T* p, unsigned byte_size) {
-+ return reinterpret_cast<T*>(reinterpret_cast<const uint8_t*>(p) + byte_size);
-+}
-+
- } // namespace
-
- SkiaTextMetrics::SkiaTextMetrics(const SkPaint* paint) : paint_(paint) {
-@@ -39,7 +44,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(hb_codepoint_t codepoint,
- }
-
- void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
-- hb_codepoint_t* glyphs,
-+ const hb_codepoint_t* glyphs,
- unsigned glyph_stride,
- hb_position_t* advances,
- unsigned advance_stride) {
-@@ -48,7 +53,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
- // array that copy them to a regular array.
- Vector<Glyph, 256> glyph_array(count);
- for (unsigned i = 0; i < count;
-- i++, glyphs = advance_by_byte_size(glyphs, glyph_stride)) {
-+ i++, glyphs = advance_by_byte_size_const(glyphs, glyph_stride)) {
- glyph_array[i] = *glyphs;
- }
- Vector<SkScalar, 256> sk_width_array(count);
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-index 787d8af0375a..3bc4407c641b 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-@@ -19,7 +19,7 @@ class SkiaTextMetrics final {
-
- void GetGlyphWidthForHarfBuzz(hb_codepoint_t, hb_position_t* width);
- void GetGlyphWidthForHarfBuzz(unsigned count,
-- hb_codepoint_t* first_glyph,
-+ const hb_codepoint_t* first_glyph,
- unsigned glyph_stride,
- hb_position_t* first_advance,
- unsigned advance_stride);
---
-2.19.1
-
diff --git a/chromium-71-gcc-0.patch b/chromium-71-gcc-0.patch
deleted file mode 100644
index 711b827..0000000
--- a/chromium-71-gcc-0.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 65be571f6ac2f7942b4df9e50b24da517f829eec Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Mon, 15 Oct 2018 20:26:10 +0000
-Subject: [PATCH] google_util: Explicitly use std::initializer_list with
- base::NoDestructor
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Follow-up to ac53c5c53 ("Remove CR_DEFINE_STATIC_LOCAL from /components").
-Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
-base::NoDestructor<T<U>> and passing an initializer list of Us does not
-work if this is not done explicitly, as GCC incorrectly fails to determine
-which constructor overload to use:
-
- ../../components/google/core/common/google_util.cc: In function bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission):
- ../../components/google/core/common/google_util.cc:120:24: error: call of overloaded NoDestructor(<brace-enclosed initializer list>) is ambiguous
- {GOOGLE_TLD_LIST});
-
-See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905
-
-Bug: 819294
-Change-Id: Ie1490b6646d7998d636c485769caabf56c1cf44c
-Reviewed-on: https://chromium-review.googlesource.com/c/1275854
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#599733}
----
- components/google/core/common/google_util.cc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
-index a44c84393820..7733848a0443 100644
---- a/components/google/core/common/google_util.cc
-+++ b/components/google/core/common/google_util.cc
-@@ -117,7 +117,7 @@ bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
- StripTrailingDot(&tld);
-
- static base::NoDestructor<std::set<std::string>> google_tlds(
-- {GOOGLE_TLD_LIST});
-+ std::initializer_list<std::string>({GOOGLE_TLD_LIST}));
- return base::ContainsKey(*google_tlds, tld.as_string());
- }
-
-@@ -132,7 +132,8 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) {
- StripTrailingDot(&host);
-
- static base::NoDestructor<std::set<std::string>> google_subdomains(
-- {"ipv4.google.com", "ipv6.google.com"});
-+ std::initializer_list<std::string>(
-+ {"ipv4.google.com", "ipv6.google.com"}));
-
- return base::ContainsKey(*google_subdomains, host.as_string());
- }
---
-2.19.1
-
diff --git a/chromium-71.0.3578.98-el7-fix-noexcept.patch b/chromium-71.0.3578.98-el7-fix-noexcept.patch
deleted file mode 100644
index 234f0a9..0000000
--- a/chromium-71.0.3578.98-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc.fix-noexcept chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc
---- chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc.fix-noexcept 2019-01-02 14:44:40.449801789 -0500
-+++ chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc 2019-01-02 14:44:54.167481936 -0500
-@@ -24,7 +24,7 @@ MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::Equals(const MediaSink& other) const {
- return sink_id_ == other.sink_id_;
-diff -up chromium-71.0.3578.98/components/policy/core/common/policy_map.cc.fix-noexcept chromium-71.0.3578.98/components/policy/core/common/policy_map.cc
---- chromium-71.0.3578.98/components/policy/core/common/policy_map.cc.fix-noexcept 2019-01-02 12:06:10.867313533 -0500
-+++ chromium-71.0.3578.98/components/policy/core/common/policy_map.cc 2019-01-02 12:06:27.544980078 -0500
-@@ -18,7 +18,7 @@ PolicyMap::Entry::Entry() = default;
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-71.0.3578.98/components/signin/core/browser/account_info.cc.fix-noexcept chromium-71.0.3578.98/components/signin/core/browser/account_info.cc
---- chromium-71.0.3578.98/components/signin/core/browser/account_info.cc.fix-noexcept 2019-01-02 10:57:29.194710662 -0500
-+++ chromium-71.0.3578.98/components/signin/core/browser/account_info.cc 2019-01-02 10:58:57.829965474 -0500
-@@ -32,7 +32,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return account_id.empty() && email.empty() && gaia.empty() &&
-diff -up chromium-71.0.3578.98/gpu/config/gpu_info.cc.fix-noexcept chromium-71.0.3578.98/gpu/config/gpu_info.cc
---- chromium-71.0.3578.98/gpu/config/gpu_info.cc.fix-noexcept 2018-12-20 09:50:03.320449807 -0500
-+++ chromium-71.0.3578.98/gpu/config/gpu_info.cc 2018-12-20 09:50:25.768849091 -0500
-@@ -116,7 +116,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-71.0.3578.98-norar.patch b/chromium-71.0.3578.98-norar.patch
deleted file mode 100644
index 1259088..0000000
--- a/chromium-71.0.3578.98-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn
---- chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn 2018-12-14 11:44:52.172805635 -0500
-@@ -56,40 +56,6 @@ if (safe_browsing_mode == 1) {
- ]
- }
-
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_protection_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
--
- source_set("disk_image_type_sniffer_mac") {
- sources = [
- "disk_image_type_sniffer_mac.cc",
-@@ -136,7 +102,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_protection_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS.nounrar chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS
---- chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS 2018-12-14 11:23:58.628142952 -0500
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc 2018-12-14 11:23:58.628142952 -0500
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-71.0.3578.98-remove-sysroot-options.patch b/chromium-71.0.3578.98-remove-sysroot-options.patch
deleted file mode 100644
index a9af73b..0000000
--- a/chromium-71.0.3578.98-remove-sysroot-options.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.sysrootfix chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py
---- chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.sysrootfix 2018-12-14 12:52:04.144860836 -0500
-+++ chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py 2018-12-14 12:57:54.791539599 -0500
-@@ -46,10 +46,6 @@ def main(argv):
- '--build-path',
- help='The directory in which to build gn, '
- 'relative to the src directory. (eg. out/Release)')
-- parser.add_option(
-- '--with-sysroot',
-- action='store_true',
-- help='Download and build with the Debian sysroot.')
- parser.add_option('-v', '--verbose', help='ignored')
- parser.add_option(
- '--skip-generate-buildfiles',
-@@ -76,8 +72,6 @@ def main(argv):
- '--no-last-commit-position',
- '--out-path=' + gn_build_dir,
- ]
-- if not options.with_sysroot:
-- cmd.append('--no-sysroot')
- if options.debug:
- cmd.append('--debug')
- subprocess.check_call(cmd)
diff --git a/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch b/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch
deleted file mode 100644
index 5b51e3d..0000000
--- a/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc.va1compat chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc
---- chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc.va1compat 2018-12-17 15:07:48.158717055 -0500
-+++ chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc 2018-12-17 15:09:49.780316983 -0500
-@@ -38,6 +38,10 @@ enum VAJDADecoderFailure {
- VAJDA_DECODER_FAILURES_MAX,
- };
-
-+#ifndef VA_FOURCC_I420
-+#define VA_FOURCC_I420 VA_FOURCC('I', '4', '2', '0')
-+#endif
-+
- static void ReportToUMA(VAJDADecoderFailure failure) {
- UMA_HISTOGRAM_ENUMERATION("Media.VAJDA.DecoderFailure", failure,
- VAJDA_DECODER_FAILURES_MAX + 1);
diff --git a/chromium-72.0.3626.121-fix-va-check.patch b/chromium-72.0.3626.121-fix-va-check.patch
deleted file mode 100644
index aa0eb71..0000000
--- a/chromium-72.0.3626.121-fix-va-check.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc
---- chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck 2019-03-10 14:54:38.744305074 -0400
-+++ chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc 2019-03-10 14:55:34.383221574 -0400
-@@ -334,15 +334,16 @@ bool VADisplayState::InitializeOnce() {
- << va_vendor_string_;
-
- // The VAAPI version is determined from what is loaded on the system by
-- // calling vaInitialize(). We want a runtime evaluation of libva version,
-- // of what is loaded on the system, with, what browser is compiled with.
-- // Also since the libva is now ABI-compatible, relax the version check
-- // which helps in upgrading the libva, without breaking any existing
-- // functionality.
-- if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
-- LOG(ERROR) << "This build of Chromium requires VA-API version "
-- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
-- << ", system version: " << major_version << "." << minor_version;
-+ // calling vaInitialize(). Since the libva is now ABI-compatible, relax the
-+ // version check which helps in upgrading the libva, without breaking any
-+ // existing functionality. Make sure the system version is not older than
-+ // the version with which the chromium is built since libva is only
-+ // guaranteed to be backward (and not forward) compatible.
-+ if (VA_MAJOR_VERSION > major_version ||
-+ (VA_MAJOR_VERSION == major_version && VA_MINOR_VERSION > minor_version)) {
-+ LOG(ERROR) << "The system version " << major_version << "." << minor_version
-+ << " should be greater than or equal to "
-+ << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION;
- return false;
- }
- return true;
diff --git a/chromium-72.0.3626.121-norar.patch b/chromium-72.0.3626.121-norar.patch
deleted file mode 100644
index d5d2632..0000000
--- a/chromium-72.0.3626.121-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn
---- chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-10 14:15:47.187705953 -0400
-+++ chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn 2019-03-10 14:16:47.154138649 -0400
-@@ -56,40 +56,6 @@ if (safe_browsing_mode == 1) {
- ]
- }
-
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_type_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
--
- source_set("disk_image_type_sniffer_mac") {
- sources = [
- "disk_image_type_sniffer_mac.cc",
-@@ -150,7 +116,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_type_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS
---- chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar 2019-03-01 23:10:03.000000000 -0500
-+++ chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS 2019-03-10 14:14:55.430058716 -0400
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-01 23:10:04.000000000 -0500
-+++ chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-10 14:14:55.433058638 -0400
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-73-gcc-0.patch b/chromium-73-gcc-0.patch
deleted file mode 100644
index 5a50700..0000000
--- a/chromium-73-gcc-0.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Thu, 7 Feb 2019 22:55:37 +0000
-Subject: [PATCH] allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's
- positions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build. GCC seems to be stricter with the position of the
-linkage specification, so just swap the terms to prevent an error that looks
-like:
-
-In file included from ../../base/allocator/allocator_shim.cc:333:
-../../base/allocator/allocator_shim_override_cpp_symbols.h:39:30: error: expected unqualified-id before string constant
- #define ALIGN_LINKAGE extern "C"
- ^~~
-../../base/allocator/allocator_shim_override_cpp_symbols.h:99:20: note: in expansion of macro ALIGN_LINKAGE
- SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
- ^~~~~~~~~~~~~
-
-Bug: 819294
-Change-Id: I0aa16ea88cead42e83796a1c86afad8b447ddc50
-Reviewed-on: https://chromium-review.googlesource.com/c/1458256
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
-Reviewed-by: Primiano Tucci <primiano(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630084}
----
- .../allocator_shim_override_cpp_symbols.h | 20 +++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/base/allocator/allocator_shim_override_cpp_symbols.h b/base/allocator/allocator_shim_override_cpp_symbols.h
-index 1228f5e33d28..01d25b7f6437 100644
---- a/base/allocator/allocator_shim_override_cpp_symbols.h
-+++ b/base/allocator/allocator_shim_override_cpp_symbols.h
-@@ -96,57 +96,57 @@ SHIM_ALWAYS_EXPORT void operator delete[](void* p, size_t) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW(std::size_t size,
- ALIGN_VAL_T alignment) {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_NOTHROW(
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_NOTHROW(
- std::size_t size,
- ALIGN_VAL_T alignment,
- const std::nothrow_t&) __THROW {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_SIZED(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_SIZED(void* p,
- std::size_t size,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
- ALIGN_DEL_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR(std::size_t size,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR(std::size_t size,
- ALIGN_VAL_T alignment) {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR_NOTHROW(
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR_NOTHROW(
- std::size_t size,
- ALIGN_VAL_T alignment,
- const std::nothrow_t&) __THROW {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR(void* p,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR_SIZED(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR_SIZED(void* p,
- std::size_t size,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
- ALIGN_DEL_ARR_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
- ShimCppDelete(p);
- }
---
-2.20.1
-
diff --git a/chromium-73-gcc-1.patch b/chromium-73-gcc-1.patch
deleted file mode 100644
index c3f8e42..0000000
--- a/chromium-73-gcc-1.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 16:58:38 +0000
-Subject: [PATCH] media::learning: Make LabelledExample's move assignment
- operator noexcept
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The GCC build is currently broken with an error like this:
-
- ../../media/learning/common/labelled_example.cc:20:1: error: function media::learning::LabelledExample::LabelledExample(media::learning::LabelledExample&&) defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification
- LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default;
- ^~~~~~~~~~~~~~~
-
-With GCC, having that noexcept marker requires all members to be marked with
-noexcept themselves, and TargetValue was missing some assignment operators
-and noexcept markers.
-
-clang is fine because we pass -fno-exceptions and it disables the same error
-there, while GCC continues to raise it (bug 843143 and its corresponding CL
-have a longer discussion on this issue).
-
-Bug: 819294
-Change-Id: Ide30932fc466ccb52d6883a82777e703dae48798
-Reviewed-on: https://chromium-review.googlesource.com/c/1458210
-Commit-Queue: Frank Liberato <liberato(a)chromium.org>
-Reviewed-by: Frank Liberato <liberato(a)chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630355}
----
- media/learning/common/labelled_example.cc | 3 ++-
- media/learning/common/labelled_example.h | 2 +-
- media/learning/common/value.cc | 6 ++++++
- media/learning/common/value.h | 4 ++++
- 4 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc
-index 76d08509298e..43e834f9f3cf 100644
---- a/media/learning/common/labelled_example.cc
-+++ b/media/learning/common/labelled_example.cc
-@@ -59,7 +59,8 @@ bool LabelledExample::operator<(const LabelledExample& rhs) const {
- LabelledExample& LabelledExample::operator=(const LabelledExample& rhs) =
- default;
-
--LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) = default;
-+LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) noexcept =
-+ default;
-
- TrainingData::TrainingData() = default;
-
-diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h
-index 4f43c54e7a76..365abc3c0ebf 100644
---- a/media/learning/common/labelled_example.h
-+++ b/media/learning/common/labelled_example.h
-@@ -40,7 +40,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample {
- bool operator<(const LabelledExample& rhs) const;
-
- LabelledExample& operator=(const LabelledExample& rhs);
-- LabelledExample& operator=(LabelledExample&& rhs);
-+ LabelledExample& operator=(LabelledExample&& rhs) noexcept;
-
- // Observed feature values.
- // Note that to interpret these values, you probably need to have the
-diff --git a/media/learning/common/value.cc b/media/learning/common/value.cc
-index 9c9395c25d4e..12ea399d24c3 100644
---- a/media/learning/common/value.cc
-+++ b/media/learning/common/value.cc
-@@ -23,6 +23,12 @@ Value::Value(const std::string& x) : value_(base::PersistentHash(x)) {}
-
- Value::Value(const Value& other) : value_(other.value_) {}
-
-+Value::Value(Value&& rhs) noexcept = default;
-+
-+Value& Value::operator=(const Value& rhs) = default;
-+
-+Value& Value::operator=(Value&& rhs) noexcept = default;
-+
- bool Value::operator==(const Value& rhs) const {
- return value_ == rhs.value_;
- }
-diff --git a/media/learning/common/value.h b/media/learning/common/value.h
-index 0e64da961f34..62f4953f691c 100644
---- a/media/learning/common/value.h
-+++ b/media/learning/common/value.h
-@@ -38,6 +38,10 @@ class COMPONENT_EXPORT(LEARNING_COMMON) Value {
- explicit Value(const std::string& x);
-
- Value(const Value& other);
-+ Value(Value&&) noexcept;
-+
-+ Value& operator=(const Value&);
-+ Value& operator=(Value&&) noexcept;
-
- bool operator==(const Value& rhs) const;
- bool operator!=(const Value& rhs) const;
---
-2.20.1
-
diff --git a/chromium-73-gcc-2.patch b/chromium-73-gcc-2.patch
deleted file mode 100644
index 9d1f05a..0000000
--- a/chromium-73-gcc-2.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 02:57:28 +0000
-Subject: [PATCH] color_utils: Use std::sqrt() instead of std::sqrtf()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the build with libstdc++:
-
- ../../ui/gfx/color_utils.cc: In function SkColor color_utils::SetDarkestColorForTesting(SkColor):
- ../../ui/gfx/color_utils.cc:434:12: error: sqrtf is not a member of std
- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
- ^~~~~
- ../../ui/gfx/color_utils.cc:434:12: note: suggested alternative: sqrt
- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
- ^~~~~
- sqrt
-
-sqrtf() is not formally part of C++14 as far as I can see even though libc++
-has it in <cmath>. Additionally, we're only dealing with floats in all parts
-of the expression above, so using the float sqrt() overload should be
-harmless anyway.
-
-Bug: 819294
-Change-Id: If6c7bf31819df97a761e6963def6d6506154c34d
-Reviewed-on: https://chromium-review.googlesource.com/c/1458193
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630140}
----
- ui/gfx/color_utils.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc
-index c868cd54bac3..92ba1407d594 100644
---- a/ui/gfx/color_utils.cc
-+++ b/ui/gfx/color_utils.cc
-@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColor color) {
- // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint). The formula below
- // can be verified by plugging it into how GetContrastRatio() operates.
- g_luminance_midpoint =
-- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
-+ std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
-
- return previous_darkest_color;
- }
---
-2.20.1
-
diff --git a/chromium-73-gcc-3.patch b/chromium-73-gcc-3.patch
deleted file mode 100644
index 9cc6cf2..0000000
--- a/chromium-73-gcc-3.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 08:44:00 +0000
-Subject: [PATCH] quic_flags_impl: Fix GCC build after #618558
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
-base::NoDestructor<T<U>> and passing an initializer list of Us does not
-work if this is not done explicitly, as GCC incorrectly fails to determine
-which constructor overload to use:
-
- ../../net/third_party/quic/platform/impl/quic_flags_impl.cc: In member function bool quic::TypedQuicFlagHelper<T>::SetFlag(const string&) const [with T = bool; std::__cxx11::string = std::__cxx11::basic_string<char>]:
- ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:156:41: error: call of overloaded NoDestructor(<brace-enclosed initializer list>) is ambiguous
- {"", "1", "t", "true", "y", "yes"});
- ^
- In file included from ../../net/third_party/quic/platform/impl/quic_flags_impl.h:16,
- from ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:5:
- ../../base/no_destructor.h:62:3: note: candidate: base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = std::set<std::__cxx11::basic_string<char> >] <deleted>
- NoDestructor(const NoDestructor&) = delete;
- ^~~~~~~~~~~~
- ../../base/no_destructor.h:60:12: note: candidate: base::NoDestructor<T>::NoDestructor(T&&) [with T = std::set<std::__cxx11::basic_string<char> >]
- explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
- ^~~~~~~~~~~~
- ../../base/no_destructor.h:59:12: note: candidate: base::NoDestructor<T>::NoDestructor(const T&) [with T = std::set<std::__cxx11::basic_string<char> >]
- explicit NoDestructor(const T& x) { new (storage_) T(x); }
- ^~~~~~~~~~~~
-
-Explicitly use an std::initializer_list to make the build work everywhere.
-
-Bug: 819294
-Change-Id: I775be20e3766a88a656b58c94c40869cb1bee2a8
-Reviewed-on: https://chromium-review.googlesource.com/c/1458214
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Ryan Hamilton <rch(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630249}
----
- net/third_party/quic/platform/impl/quic_flags_impl.cc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/net/third_party/quic/platform/impl/quic_flags_impl.cc b/net/third_party/quic/platform/impl/quic_flags_impl.cc
-index 5e6962d1e770..3fa45fc6892d 100644
---- a/net/third_party/quic/platform/impl/quic_flags_impl.cc
-+++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc
-@@ -5,6 +5,7 @@
- #include "net/third_party/quic/platform/impl/quic_flags_impl.h"
-
- #include <algorithm>
-+#include <initializer_list>
- #include <iostream>
- #include <set>
-
-@@ -153,9 +154,9 @@ std::string QuicFlagRegistry::GetHelp() const {
- template <>
- bool TypedQuicFlagHelper<bool>::SetFlag(const std::string& s) const {
- static const base::NoDestructor<std::set<std::string>> kTrueValues(
-- {"", "1", "t", "true", "y", "yes"});
-+ std::initializer_list<std::string>({"", "1", "t", "true", "y", "yes"}));
- static const base::NoDestructor<std::set<std::string>> kFalseValues(
-- {"0", "f", "false", "n", "no"});
-+ std::initializer_list<std::string>({"0", "f", "false", "n", "no"}));
- if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) {
- *flag_ = true;
- return true;
---
-2.20.1
-
diff --git a/chromium-73-gcc-4.patch b/chromium-73-gcc-4.patch
deleted file mode 100644
index df7d630..0000000
--- a/chromium-73-gcc-4.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Wed, 13 Feb 2019 01:02:27 +0000
-Subject: [PATCH] BaseRenderingContext2D: Use base::CheckMul and simplify code
- in putImageData()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Follow-up to commit e0b3253a56 ("Fix image conversion truncation issues").
-The current code does not build with GCC due to
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287:
-
- ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc: In member function void blink::BaseRenderingContext2D::putImageData(blink::ImageData*, int, int, int, int, int, int, blink::ExceptionState&):
- ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc:1777:44: error: default type conversion can't deduce template argument for template<class Dst, typename std::enable_if<base::internal::IsNumericRangeContained<Dst, long unsigned int, void>::value, void>::type* <anonymous> > constexpr base::internal::StrictNumeric<T>::operator Dst() const [with Dst = Dst; typename std::enable_if<base::internal::IsNumericRangeContained<Dst, T>::value>::type* <anonymous> = <enumerator>; T = long unsigned int]
- new uint8_t[data_length.ValueOrDie()]);
- ^
-
-Work around it by using the more idiomatic base::CheckMul() with
-AssignIfValid, so that we can have |data_length| be a size_t again and not
-leave it to the compiler to figure out the type we want when creating the
-|converted_pixels| array.
-
-Bug: 819294
-Change-Id: Id124cc4f3d749b45def4708e21e4badafd708578
-Reviewed-on: https://chromium-review.googlesource.com/c/1467201
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Kentaro Hara <haraken(a)chromium.org>
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#631472}
----
- .../canvas/canvas2d/base_rendering_context_2d.cc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-index d9fa696c9a9d..34a8a202bfd3 100644
---- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-@@ -1769,12 +1769,12 @@ void BaseRenderingContext2D::putImageData(ImageData* data,
- CanvasColorParams(ColorParams().ColorSpace(), PixelFormat(), kNonOpaque);
- if (data_color_params.NeedsColorConversion(context_color_params) ||
- PixelFormat() == kF16CanvasPixelFormat) {
-- base::CheckedNumeric<size_t> data_length = data->Size().Area();
-- data_length *= context_color_params.BytesPerPixel();
-- if (!data_length.IsValid())
-+ size_t data_length;
-+ if (!base::CheckMul(data->Size().Area(),
-+ context_color_params.BytesPerPixel())
-+ .AssignIfValid(&data_length))
- return;
-- std::unique_ptr<uint8_t[]> converted_pixels(
-- new uint8_t[data_length.ValueOrDie()]);
-+ std::unique_ptr<uint8_t[]> converted_pixels(new uint8_t[data_length]);
- if (data->ImageDataInCanvasColorSettings(
- ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(),
- kRGBAColorType)) {
---
-2.20.1
-
diff --git a/chromium-73-gcc-5.patch b/chromium-73-gcc-5.patch
deleted file mode 100644
index 033861e..0000000
--- a/chromium-73-gcc-5.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Wed, 13 Feb 2019 23:28:46 +0000
-Subject: [PATCH] CastActivityManager: Do not make DoLaunchSessionParams' move
- constructor noexcept
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build:
-
- ../../chrome/browser/media/router/providers/cast/cast_activity_manager.cc:806:1: error: function media_router::CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(media_router::CastActivityManager::DoLaunchSessionParams&&) defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification
- CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
- ^~~~~~~~~~~~~~~~~~~
-
-With GCC, having that noexcept marker requires all members to be marked with
-noexcept themselves, and MediaRoute, CastMediaSource and url::Origin need
-the right annotations. Just making DoLaunchSessionParams not noexcept is the
-least intrusive solution for now.
-
-clang is fine because we pass -fno-exceptions and it disables the same error
-there, while GCC continues to raise it (bug 843143 and its corresponding CL
-have a longer discussion on this issue).
-
-Bug: 819294
-Change-Id: Ia3a5fb60b5e74e68bd35cfa50e2fcc728b64e5eb
-Reviewed-on: https://chromium-review.googlesource.com/c/1469942
-Commit-Queue: mark a. foltz <mfoltz(a)chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: mark a. foltz <mfoltz(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#631962}
----
- .../media/router/providers/cast/cast_activity_manager.cc | 2 +-
- .../browser/media/router/providers/cast/cast_activity_manager.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-index b7ee9695f69a..8569e0cd30a3 100644
---- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-@@ -804,7 +804,7 @@ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
- callback(std::move(callback)) {}
-
- CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
-- DoLaunchSessionParams&& other) noexcept = default;
-+ DoLaunchSessionParams&& other) = default;
-
- CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default;
-
-diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-index 325bffc725ee..08fe0ccca603 100644
---- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-@@ -295,7 +295,7 @@ class CastActivityManager : public cast_channel::CastMessageHandler::Observer,
- const url::Origin& origin,
- int tab_id,
- mojom::MediaRouteProvider::CreateRouteCallback callback);
-- DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept;
-+ DoLaunchSessionParams(DoLaunchSessionParams&& other);
- ~DoLaunchSessionParams();
- DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete;
-
---
-2.20.1
-
diff --git a/chromium-73-gcc-6.patch b/chromium-73-gcc-6.patch
deleted file mode 100644
index 752f83c..0000000
--- a/chromium-73-gcc-6.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Thu, 14 Feb 2019 22:22:21 +0000
-Subject: [PATCH] chrome/browser: Replace some forward declarations with actual
- includes
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build which was failing like this:
-
- ../../base/scoped_observer.h: In instantiation of void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]:
- ../../base/scoped_observer.h:26:5: required from ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]
- ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70: required from here
- ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type class TabStripModel
- sources_[i]->RemoveObserver(observer_);
- ~~~~~~~~~~~~~^~~~~~~~~~~~~~
-
-This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace
-initialization needlessly invokes destructor"), i.e. having something like
-
- ScopedObserver<T, U> observer_{this};
-
-in a header declaration requires T and U to be fully declared because
-ScopedObserver's destructor references them. In a few cases, T was only
-forward-declared.
-
-Bug: 819294
-Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595
-Reviewed-on: https://chromium-review.googlesource.com/c/1472576
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Alan Cutter <alancutter(a)chromium.org>
-Reviewed-by: Finnur Thorarinsson <finnur(a)chromium.org>
-Reviewed-by: Alan Cutter <alancutter(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#632385}
----
- chrome/browser/ui/views/extensions/extension_popup.cc | 1 -
- chrome/browser/ui/views/extensions/extension_popup.h | 1 +
- chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc | 1 -
- chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h | 2 +-
- .../web_applications/extensions/bookmark_app_tab_helper.cc | 1 -
- .../web_applications/extensions/bookmark_app_tab_helper.h | 2 +-
- 6 files changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc
-index 3f0985d383dd..57d16aba9e9f 100644
---- a/chrome/browser/ui/views/extensions/extension_popup.cc
-+++ b/chrome/browser/ui/views/extensions/extension_popup.cc
-@@ -8,7 +8,6 @@
- #include "chrome/browser/devtools/devtools_window.h"
- #include "chrome/browser/extensions/extension_view_host.h"
- #include "chrome/browser/ui/browser.h"
--#include "chrome/browser/ui/tabs/tab_strip_model.h"
- #include "content/public/browser/devtools_agent_host.h"
- #include "content/public/browser/notification_details.h"
- #include "content/public/browser/notification_source.h"
-diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h
-index 3661b5bda950..9018efa0fea5 100644
---- a/chrome/browser/ui/views/extensions/extension_popup.h
-+++ b/chrome/browser/ui/views/extensions/extension_popup.h
-@@ -9,6 +9,7 @@
- #include "base/compiler_specific.h"
- #include "base/macros.h"
- #include "base/scoped_observer.h"
-+#include "chrome/browser/ui/tabs/tab_strip_model.h"
- #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
- #include "chrome/browser/ui/views/extensions/extension_view_views.h"
- #include "content/public/browser/devtools_agent_host_observer.h"
-diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-index 2a3ea8e4f91f..ac44a4f05dec 100644
---- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-+++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-@@ -8,6 +8,7 @@
- #include "base/macros.h"
- #include "base/memory/weak_ptr.h"
- #include "base/scoped_observer.h"
-+#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
- #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h"
- #include "chrome/browser/ui/views/toolbar/app_menu_observer.h"
- #include "ui/views/controls/scroll_view.h"
-@@ -15,7 +16,6 @@ class AppMenu;
- class AppMenu;
- class Browser;
- class BrowserActionsContainer;
--class ToolbarActionsBar;
-
- namespace views {
- class MenuItemView;
diff --git a/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch b/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch
deleted file mode 100644
index 8ff952b..0000000
--- a/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.glibc229 chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
---- chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.glibc229 2019-04-16 11:49:35.353081246 -0400
-+++ chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2019-04-16 11:51:22.105794620 -0400
-@@ -134,7 +134,8 @@ namespace sandbox {
- #if !defined(OS_NACL_NONSFI)
- // Allow Glibc's and Android pthread creation flags, crash on any other
- // thread creation attempts and EPERM attempts to use neither
--// CLONE_VM, nor CLONE_THREAD, which includes all fork() implementations.
-+// CLONE_VM nor CLONE_THREAD (all fork implementations), unless CLONE_VFORK is
-+// present (as in posix_spawn).
- ResultExpr RestrictCloneToThreadsAndEPERMFork() {
- const Arg<unsigned long> flags(0);
-
-@@ -153,8 +154,14 @@ ResultExpr RestrictCloneToThreadsAndEPER
- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
- flags == kGlibcPthreadFlags);
-
-+ const uint64_t kImportantSpawnFlags = CLONE_VFORK | CLONE_VM;
-+
-+ const BoolExpr isForkOrSpawn =
-+ AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
-+ (flags & kImportantSpawnFlags) == kImportantSpawnFlags);
-+
- return If(IsAndroid() ? android_test : glibc_test, Allow())
-- .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
-+ .ElseIf(isForkOrSpawn, Error(EPERM))
- .Else(CrashSIGSYSClone());
- }
-
diff --git a/chromium-73.0.3683.75-aarch64-crashpad-limits.patch b/chromium-73.0.3683.75-aarch64-crashpad-limits.patch
deleted file mode 100644
index 4eb9529..0000000
--- a/chromium-73.0.3683.75-aarch64-crashpad-limits.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
---- chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits 2019-03-15 12:08:21.208676651 -0400
-+++ chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc 2019-03-15 12:08:40.934251685 -0400
-@@ -16,6 +16,7 @@
-
- #include <stddef.h>
- #include <string.h>
-+#include <limits>
-
- #include "base/logging.h"
-
diff --git a/chromium-73.0.3683.75-el7-fix-noexcept.patch b/chromium-73.0.3683.75-el7-fix-noexcept.patch
deleted file mode 100644
index 3fc69ba..0000000
--- a/chromium-73.0.3683.75-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc
---- chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-03-11 18:00:54.000000000 -0400
-+++ chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc 2019-03-20 09:45:29.400426336 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-73.0.3683.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-73.0.3683.75/components/policy/core/common/policy_map.cc
---- chromium-73.0.3683.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-03-11 18:00:56.000000000 -0400
-+++ chromium-73.0.3683.75/components/policy/core/common/policy_map.cc 2019-03-19 11:11:38.310689134 -0400
-@@ -25,7 +25,7 @@ PolicyMap::Entry::Entry() = default;
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-73.0.3683.75/components/signin/core/browser/account_info.cc.el7-noexcept chromium-73.0.3683.75/components/signin/core/browser/account_info.cc
---- chromium-73.0.3683.75/components/signin/core/browser/account_info.cc.el7-noexcept 2019-03-11 18:00:57.000000000 -0400
-+++ chromium-73.0.3683.75/components/signin/core/browser/account_info.cc 2019-03-19 11:11:38.311689112 -0400
-@@ -50,7 +50,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return account_id.empty() && email.empty() && gaia.empty() &&
-diff -up chromium-73.0.3683.75/gpu/config/gpu_info.cc.el7-noexcept chromium-73.0.3683.75/gpu/config/gpu_info.cc
---- chromium-73.0.3683.75/gpu/config/gpu_info.cc.el7-noexcept 2019-03-19 11:12:36.992435015 -0400
-+++ chromium-73.0.3683.75/gpu/config/gpu_info.cc 2019-03-19 11:12:37.061433540 -0400
-@@ -118,7 +118,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-73.0.3683.75-no-header-hygiene.patch b/chromium-73.0.3683.75-no-header-hygiene.patch
deleted file mode 100644
index a8d2a19..0000000
--- a/chromium-73.0.3683.75-no-header-hygiene.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn
---- chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh 2019-03-15 09:02:26.167929864 -0400
-+++ chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn 2019-03-15 09:03:30.334433446 -0400
-@@ -74,9 +74,12 @@ config("swiftshader_llvm_private_config"
- "-Wno-unused-private-field",
- "-Wno-unused-result",
- "-Wno-unused-variable",
-- "-Wno-error=header-hygiene",
- ]
-
-+ if (is_clang) {
-+ cflags += [ "-Wno-error=header-hygiene" ]
-+ }
-+
- defines = [
- "__STDC_CONSTANT_MACROS",
- "__STDC_LIMIT_MACROS",
diff --git a/chromium-gcc5-r3.patch b/chromium-gcc5-r3.patch
deleted file mode 100644
index 7605df6..0000000
--- a/chromium-gcc5-r3.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-+++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
---- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000
-+++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000
-@@ -10,7 +10,7 @@
-
- #include "webrtc/modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <numeric>
- #include <vector>
-
---- a/gpu/ipc/common/mailbox_struct_traits.h
-+++ b/gpu/ipc/common/mailbox_struct_traits.h
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
---- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-+++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOperationDataView, cc::FilterOperation> {
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
---- a/services/viz/public/cpp/compositing/quads_struct_traits.h
-+++ b/services/viz/public/cpp/compositing/quads_struct_traits.h
-@@ -284,7 +284,7 @@
-
- static base::span<const float> vertex_opacity(const cc::DrawQuad& input) {
- const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const cc::DrawQuad& input) {
---- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-+++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status,
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status,
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
diff --git a/chromium-gcc8-r588316.patch b/chromium-gcc8-r588316.patch
deleted file mode 100644
index d980805..0000000
--- a/chromium-gcc8-r588316.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 87902b3202f81d689dd314c17006ffc907fe12a1 Mon Sep 17 00:00:00 2001
-From: Wang Qing <wangqing-hf(a)loongson.cn>
-Date: Mon, 3 Sep 2018 02:41:08 +0000
-Subject: [PATCH] Fix build error for blink.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This CLs fixed the error of constexpr function call to non-constexpr function.
-
-Bug: 878202
-Change-Id: I6ad217a687e62a9a384980d852743a56479de3a9
-Reviewed-on: https://chromium-review.googlesource.com/1192467
-Commit-Queue: <wangqing-hf(a)loongson.cn>
-Reviewed-by: Eric Willigers <ericwilligers(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#588316}
----
- .../core/animation/animation_time_delta.cc | 22 ++++++++++++++
- .../core/animation/animation_time_delta.h | 30 +++++++------------
- 2 files changed, 32 insertions(+), 20 deletions(-)
-
-diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.cc b/third_party/blink/renderer/core/animation/animation_time_delta.cc
-index 1b25469c7f2f..2e30a18890da 100644
---- a/third_party/blink/renderer/core/animation/animation_time_delta.cc
-+++ b/third_party/blink/renderer/core/animation/animation_time_delta.cc
-@@ -7,6 +7,28 @@
- namespace blink {
-
- #if !defined(BLINK_ANIMATION_USE_TIME_DELTA)
-+// Comparison operators on AnimationTimeDelta.
-+bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() == rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() != rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() > rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() >= rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() <= rhs.InSecondsF();
-+}
-+
- std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time) {
- return os << time.InSecondsF() << " s";
- }
-diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.h b/third_party/blink/renderer/core/animation/animation_time_delta.h
-index 1903c1150d3e..95d218466d90 100644
---- a/third_party/blink/renderer/core/animation/animation_time_delta.h
-+++ b/third_party/blink/renderer/core/animation/animation_time_delta.h
-@@ -90,26 +90,16 @@ AnimationTimeDelta operator*(T a, AnimationTimeDelta td) {
- }
-
- // Comparison operators on AnimationTimeDelta.
--constexpr bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() == rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() != rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() > rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() >= rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() <= rhs.InSecondsF();
--}
-+bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-
- // Defined to allow DCHECK_EQ/etc to work with the class.
- CORE_EXPORT std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time);
---
-2.17.2
-
diff --git a/chromium-gcc8-r588547.patch b/chromium-gcc8-r588547.patch
deleted file mode 100644
index 5f12f7f..0000000
--- a/chromium-gcc8-r588547.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From e3ad3deb6a6e79284f3748fa7410311d87df91c5 Mon Sep 17 00:00:00 2001
-From: Henrique Nakashima <hnakashima(a)chromium.org>
-Date: Tue, 4 Sep 2018 16:49:51 +0000
-Subject: [PATCH] IWYU: stdint.h in pdfium_mem_buffer_file_write.h for uint8_t
-
-Bug: 879900
-Change-Id: I9c15d1c280a23c53d31f2d72c9d0d1db79eab886
-Reviewed-on: https://chromium-review.googlesource.com/1204410
-Reviewed-by: Lei Zhang <thestig(a)chromium.org>
-Commit-Queue: Henrique Nakashima <hnakashima(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#588547}
----
- pdf/pdfium/pdfium_mem_buffer_file_write.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/pdf/pdfium/pdfium_mem_buffer_file_write.h b/pdf/pdfium/pdfium_mem_buffer_file_write.h
-index 03c54bb63800..82e82d23684d 100644
---- a/pdf/pdfium/pdfium_mem_buffer_file_write.h
-+++ b/pdf/pdfium/pdfium_mem_buffer_file_write.h
-@@ -6,6 +6,7 @@
- #define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_H_
-
- #include <stddef.h>
-+#include <stdint.h>
-
- #include <vector>
-
---
-2.17.2
-
diff --git a/chromium-gcc8-r589614.patch b/chromium-gcc8-r589614.patch
deleted file mode 100644
index 0c187fd..0000000
--- a/chromium-gcc8-r589614.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From cbdb8bd6567c8143dc8c1e5e86a21a8ea064eea4 Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov(a)igalia.com>
-Date: Fri, 7 Sep 2018 18:57:42 +0000
-Subject: [PATCH] OmniboxTextView: fix gcc error for structure initialization
-
-It looks like there is bug in GCC 6, which cannot go through
-structure initialization normally.
-
-Thus, instead of a default initialization of one of the members,
-explicitly initialize it to a default value.
-
-Change-Id: Ia55cc6658e6b6b2f8a80c2582dd28f001c9e648c
-Reviewed-on: https://chromium-review.googlesource.com/1213181
-Reviewed-by: Scott Violet <sky(a)chromium.org>
-Commit-Queue: Maksim Sisov <msisov(a)igalia.com>
-Cr-Commit-Position: refs/heads/master@{#589614}
----
- chrome/browser/ui/views/omnibox/omnibox_text_view.cc | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-index f0a8083dc930..9021284f166d 100644
---- a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-+++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-@@ -175,7 +175,8 @@ void ApplyTextStyleForType(SuggestionAnswer::TextStyle text_style,
- style = {part_color, .baseline = gfx::SUPERIOR};
- break;
- case SuggestionAnswer::TextStyle::BOLD:
-- style = {part_color, .weight = gfx::Font::Weight::BOLD};
-+ style = {part_color, .baseline = gfx::NORMAL_BASELINE,
-+ .weight = gfx::Font::Weight::BOLD};
- break;
- case SuggestionAnswer::TextStyle::NORMAL:
- case SuggestionAnswer::TextStyle::NORMAL_DIM:
---
-2.17.2
-
diff --git a/chromium-gcc8-r591015.patch b/chromium-gcc8-r591015.patch
deleted file mode 100644
index 65c09e8..0000000
--- a/chromium-gcc8-r591015.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From e98f8ef8b2f236ecbb01df8c39e6ee1c8fbe8d7d Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov(a)igalia.com>
-Date: Thu, 13 Sep 2018 15:17:29 +0000
-Subject: [PATCH] ScrollPaintPropertyNode: Rename SnapContainerData() to
- GetSnapContainerData()
-
-GCC is stricter than clang when it comes to class members' names and how
-they can change the meaning of a previously existing symbol with the same
-name.
-
-Here is a short error message:
-
-error: changes meaning of 'SnapContainerData' from 'using SnapContainerData =
-class cc::SnapContainerData' [-fpermissive] using SnapContainerData =
-cc::SnapContainerData;
-
-Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
-Change-Id: I0de5460f17b13484253e1ff0538b111c9a3b0d13
-Reviewed-on: https://chromium-review.googlesource.com/1213180
-Commit-Queue: Maksim Sisov <msisov(a)igalia.com>
-Reviewed-by: Philip Rogers <pdr(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#591015}
----
- .../blink/renderer/core/paint/paint_property_tree_update_tests.cc | 2 +-
- .../renderer/platform/graphics/compositing/property_tree_manager.cc | 2 +-
- .../blink/renderer/platform/graphics/paint/scroll_paint_property_node.h | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-index 0d999d45076f..1fe1815a5659 100644
---- a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-+++ b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-@@ -1310,7 +1310,7 @@ TEST_P(PaintPropertyTreeUpdateTest, EnsureSnapContainerData) {
- GetDocument().View()->Resize(300, 300);
- GetDocument().View()->UpdateAllLifecyclePhases();
-
-- auto doc_snap_container_data = DocScroll()->SnapContainerData();
-+ auto doc_snap_container_data = DocScroll()->GetSnapContainerData();
- ASSERT_TRUE(doc_snap_container_data);
- EXPECT_EQ(doc_snap_container_data->scroll_snap_type().axis, SnapAxis::kBoth);
- EXPECT_EQ(doc_snap_container_data->scroll_snap_type().strictness,
-diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-index 745b8c8b387e..5f87eeea9435 100644
---- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-+++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-@@ -333,7 +333,7 @@ void PropertyTreeManager::CreateCompositorScrollNode(
- scroll_node->OverscrollBehaviorX()),
- static_cast<cc::OverscrollBehavior::OverscrollBehaviorType>(
- scroll_node->OverscrollBehaviorY()));
-- compositor_node.snap_container_data = scroll_node->SnapContainerData();
-+ compositor_node.snap_container_data = scroll_node->GetSnapContainerData();
-
- auto compositor_element_id = scroll_node->GetCompositorElementId();
- if (compositor_element_id) {
-diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-index e1479269ccc3..5bd7f65f10ba 100644
---- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-@@ -99,7 +99,7 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
- return state_.overscroll_behavior.y;
- }
-
-- base::Optional<SnapContainerData> SnapContainerData() const {
-+ base::Optional<SnapContainerData> GetSnapContainerData() const {
- return state_.snap_container_data;
- }
-
---
-2.14.3
-
diff --git a/chromium-gn-bootstrap-r17.patch b/chromium-gn-bootstrap-r17.patch
deleted file mode 100644
index 6cfd08d..0000000
--- a/chromium-gn-bootstrap-r17.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- a/tools/gn/bootstrap/bootstrap.py
-+++ b/tools/gn/bootstrap/bootstrap.py
-@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
- {
-+ 'ENABLE_LOCATION_SOURCE': 'false',
- 'ENABLE_PROFILING': 'false',
- 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false'
- })
-@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_gn_ninja(os.path.join(tempdir, 'build.ninja'),
- root_gen_dir, options)
-- cmd = ['ninja', '-C', tempdir]
-+ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
-
-@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/metrics/bucket_ranges.cc',
- 'base/metrics/field_trial.cc',
- 'base/metrics/field_trial_param_associator.cc',
-+ 'base/metrics/field_trial_params.cc',
- 'base/metrics/histogram.cc',
- 'base/metrics/histogram_base.cc',
- 'base/metrics/histogram_functions.cc',
-@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/task_scheduler/scheduler_lock_impl.cc',
- 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc',
- 'base/task_scheduler/scheduler_worker.cc',
-+ 'base/task_scheduler/scheduler_worker_pool.cc',
- 'base/task_scheduler/scheduler_worker_pool_impl.cc',
- 'base/task_scheduler/scheduler_worker_pool_params.cc',
- 'base/task_scheduler/scheduler_worker_stack.cc',
-@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/third_party/icu/icu_utf.cc',
- 'base/third_party/nspr/prtime.cc',
- 'base/threading/post_task_and_reply_impl.cc',
-+ 'base/threading/scoped_blocking_call.cc',
- 'base/threading/sequence_local_storage_map.cc',
- 'base/threading/sequenced_task_runner_handle.cc',
- 'base/threading/sequenced_worker_pool.cc',
-@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/unguessable_token.cc',
- 'base/value_iterators.cc',
- 'base/values.cc',
-- 'base/value_iterators.cc',
- 'base/vlog.cc',
- ])
-
-@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- static_libraries['base']['sources'].extend([
- 'base/memory/shared_memory_handle_posix.cc',
- 'base/memory/shared_memory_posix.cc',
-- 'base/memory/shared_memory_tracker.cc',
- 'base/nix/xdg_util.cc',
- 'base/process/internal_linux.cc',
- 'base/process/memory_linux.cc',
-@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options):
- cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args]
- check_call(cmd)
-
-- cmd = ['ninja', '-C', build_dir]
-+ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
- cmd.append('gn')
diff --git a/chromium-math.h-r0.patch b/chromium-math.h-r0.patch
deleted file mode 100644
index 6c7c747..0000000
--- a/chromium-math.h-r0.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson(a)chromium.org>
-Date: Sat, 27 Jan 2018 20:03:37 +0000
-Subject: [PATCH] Fix build with glibc 2.27
-
-BUG=806340
-TBR=hamelphi(a)chromium.org
-
-Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e
-Reviewed-on: https://chromium-review.googlesource.com/890059
-Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
-Reviewed-by: Philippe Hamel <hamelphi(a)chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#532249}
----
-
-diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc
-index 54d4dbd..ceedd8f 100644
---- a/components/assist_ranker/ranker_example_util.cc
-+++ b/components/assist_ranker/ranker_example_util.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <math.h>
-+
- #include "components/assist_ranker/ranker_example_util.h"
- #include "base/bit_cast.h"
- #include "base/format_macros.h"
diff --git a/chromium-stdint.patch b/chromium-stdint.patch
deleted file mode 100644
index 8774439..0000000
--- a/chromium-stdint.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela(a)gmail.com>
-Date: Wed, 31 Jan 2018 18:57:07 +0000
-Subject: [PATCH] Add missing stdint include
-
-diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc
-index c2ca777ce90c..53cb3aab1576 100644
---- a/chrome/browser/vr/sample_queue.cc
-+++ b/chrome/browser/vr/sample_queue.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <stdint.h>
-+
- #include "chrome/browser/vr/sample_queue.h"
-
- namespace vr {
---
-2.16.2
-
diff --git a/chromium.spec b/chromium.spec
index de018ef..d734490 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -174,175 +174,130 @@ License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and Open
Patch0: chromium-67.0.3396.62-gcc5.patch
Patch1: chromium-45.0.2454.101-linux-path-max.patch
Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch4: chromium-72.0.3626.121-notest.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch6: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch7: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+Patch3: chromium-72.0.3626.121-notest.patch
# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch9: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
+Patch4: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
# Ignore deprecations in cups 2.2
# https://bugs.chromium.org/p/chromium/issues/detail?id=622493
-Patch12: chromium-55.0.2883.75-cups22.patch
+Patch5: chromium-55.0.2883.75-cups22.patch
# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch15: chromium-70.0.3538.67-sandbox-pie.patch
+Patch6: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch18: chromium-68.0.3440.106-master-prefs-path.patch
-# Disable MADV_FREE (if set by glibc)
-# https://bugzilla.redhat.com/show_bug.cgi?id=1361157
-Patch19: chromium-52.0.2743.116-unset-madv_free.patch
+Patch7: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch20: chromium-67.0.3396.62-gn-system.patch
-# Fix last commit position issue
-# https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/7nlJv486bD4
-# Patch21: chromium-60.0.3112.78-last-commit-position.patch
+Patch8: chromium-67.0.3396.62-gn-system.patch
# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch22: chromium-53.0.2785.92-boringssl-time-fix.patch
+Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch24: chromium-63.0.3289.84-nullfix.patch
+Patch10: chromium-63.0.3289.84-nullfix.patch
# Add explicit includedir for jpeglib.h
-Patch25: chromium-54.0.2840.59-jpeg-include-dir.patch
+Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch26: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
-# obj/content/renderer/renderer/child_frame_compositing_helper.o: In function `content::ChildFrameCompositingHelper::OnSetSurface(cc::SurfaceId const&, gfx::Size const&, float, cc::SurfaceSequence const&)':
-# /builddir/build/BUILD/chromium-54.0.2840.90/out/Release/../../content/renderer/child_frame_compositing_helper.cc:214: undefined reference to `cc_blink::WebLayerImpl::setOpaque(bool)'
-# Patch27: chromium-63.0.3289.84-setopaque.patch
-# Use -fpermissive to build WebKit
-# Patch31: chromium-56.0.2924.87-fpermissive.patch
-# Fix issue with compilation on gcc7
-# Thanks to Ben Noordhuis
-# Patch33: chromium-65.0.3325.146-gcc7.patch
+Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch36: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
+Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch37: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
# Nacl can't die soon enough
-Patch39: chromium-66.0.3359.117-system-clang.patch
+Patch15: chromium-66.0.3359.117-system-clang.patch
# Do not prefix libpng functions
-Patch42: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch43: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch45: chromium-75.0.3770.80-no-zlib-mangle.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch46: chromium-62.0.3202.62-kmaxskip-constexpr.patch
-Patch47: chromium-60.0.3112.90-vulkan-force-c99.patch
+Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
-Patch50: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch53: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
-# Only needed when glibc 2.26.90 or later is used
-Patch57: chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
+Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
# From gentoo
-Patch62: chromium-72.0.3626.121-gcc5-r3.patch
-# Do not try to use libc++ in the remoting stack
-# Patch63: chromium-63.0.3289.84-nolibc++.patch
+Patch21: chromium-72.0.3626.121-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
-Patch65: chromium-65.0.3325.146-gcc-round-fix.patch
+Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
-Patch67: chromium-65.0.3325.146-memcpy-fix.patch
+Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch85: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-68.0.3440.106-boolfix.patch
# From Debian
-Patch86: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
-# Use lstdc++ on EPEL7 only
-Patch87: chromium-75.0.3770.100-epel7-stdc++.patch
+Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Missing files in tarball
-Patch88: chromium-66.0.3359.117-missing-files.patch
-# https://chromium.googlesource.com/chromium/src/+/ba4141e451f4e0b1b19410b1...
-# Patch89: chromium-66.0.3359.117-gcc-optional-move-fixes.patch
-# https://chromium.googlesource.com/chromium/src/+/4f2b52281ce1649ea8347489...
-# Patch90: chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
-# https://bugs.chromium.org/p/chromium/issues/detail?id=816952
-# Patch91: chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
+Patch26: chromium-66.0.3359.117-missing-files.patch
# Do not use unrar code, it is non-free
-Patch92: chromium-73.0.3683.75-norar.patch
+Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
-Patch93: chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
-Patch94: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Patch95: chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
-# https://github.com/archlinuxarm/PKGBUILDs/blob/master/extra/chromium/0006...
-# Patch96: chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
-# https://chromium.googlesource.com/chromium/src/+/b84682f31dc99b9c90f5a049...
-# Patch97: chromium-66.0.3359.139-arm-init-fix.patch
-# GCC8 has changed the alignof operator to return the minimal alignment required by the target ABI
-# instead of the preferred alignment. This means int64_t is now 4 on i686 (instead of 8).
-# Use __alignof__ to get the value we expect (and chromium checks for).
-# Patch98: chromium-69.0.3497.81-gcc8-alignof.patch
-# RHEL 7 has a bug in its python2.7 which does not propely handle exec with a tuple
-# https://bugs.python.org/issue21591
-Patch100: chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
+Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch101: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
# Try to fix version.py for Rawhide
-Patch103: chromium-71.0.3578.98-py2-bootstrap.patch
+Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch110: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch111: chromium-71.0.3578.98-widevine-r3.patch
+Patch32: chromium-71.0.3578.98-widevine-r3.patch
# Do not require sysroot
# Forget about trying to make libc++
# BUILD SANELY PLEASE
-Patch112: chromium-69.0.3497.81-build-sanely-please.patch
-# Still moar GCC cleanups from upstream
-# Patch113: chromium-gcc8-r588316.patch
-# Patch114: chromium-gcc8-r588547.patch
-# Patch115: chromium-gcc8-r589614.patch
-# Patch116: chromium-gcc8-r591015.patch
+Patch33: chromium-69.0.3497.81-build-sanely-please.patch
# Disable fontconfig cache magic that breaks remoting
-Patch117: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
+Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# Fix aarch64 build against latest linux kernel headers
-Patch119: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
-# Enable VAAPI support on Linux
-# NOTE: This patch will never land upstream
-Patch121: enable-vaapi.patch
-Patch122: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
-# Fix compatibility with VA-API library (libva) version 1
-Patch124: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch126: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
-# Thanks Ubuntu
-# Disable these two patches when v75 lands
-Patch130: revert-gn-4980.patch
-Patch131: revert-gn-4960.patch
+Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch132: chromium-widevine-other-locations.patch
+Patch37: chromium-widevine-other-locations.patch
# Disable -fno-delete-null-pointer-checks
-Patch135: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
# Add #include <cstring> to get pipewire code to build
-Patch136: chromium-73.0.3683.75-pipewire-cstring-fix.patch
-# el7 only patch
-Patch139: chromium-75.0.3770.100-el7-fix-noexcept.patch
+Patch39: chromium-73.0.3683.75-pipewire-cstring-fix.patch
# gcc does not have __assume
-Patch140: chromium-75.0.3770.80-gcc-no-assume.patch
+Patch40: chromium-75.0.3770.80-gcc-no-assume.patch
# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch141: chromium-75.0.3770.80-SIOCGSTAMP.patch
+Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# https://chromium.googlesource.com/chromium/src/+/aeed4d1f15ce84a17ea0bc21...
-Patch142: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+Patch42: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
-Patch143: chromium-75.0.3770.80-revert-daff6b.patch
+Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# Avoid pure virtual crash destroying RenderProcessUserData
# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch144: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch145: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch146: chromium-75.0.3770.100-fix-v8-gcc.patch
+Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
# https://chromium.googlesource.com/chromium/src/+/00281713519dbd84b90d2996...
-Patch147: chromium-75.0.3770.100-git00281713.patch
+Patch47: chromium-75.0.3770.100-git00281713.patch
+# Apply these changes to work around EPEL7 compiler issues
+Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
+# Use lstdc++ on EPEL7 only
+Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
+# el7 only patch
+Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+
+# In file included from ../linux/directory.c:21:
+# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
+# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
+# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
+# ^
+# 1 error generated.
+Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+# Ignore broken nacl open fd counter
+Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+
+# Enable VAAPI support on Linux
+# NOTE: This patch will never land upstream
+Patch202: enable-vaapi.patch
+Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
+# Fix compatibility with VA-API library (libva) version 1
+Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -837,97 +792,73 @@ udev.
%patch0 -p1 -b .gcc5
%patch1 -p1 -b .pathmax
%patch2 -p1 -b .addrfix
-%patch4 -p1 -b .notest
-# %%patch6 -p1 -b .gnu-inline
-%patch7 -p1 -b .ignore-fd-count
-%patch9 -p1 -b .modern-libusbx
-%patch12 -p1 -b .cups22
-%patch15 -p1 -b .sandboxpie
-%patch18 -p1 -b .etc
-# %%patch19 -p1 -b .madv_free
-%patch20 -p1 -b .gnsystem
-# %%patch21 -p1 -b .lastcommit
-%patch22 -p1 -b .timefix
-%patch24 -p1 -b .nullfix
-%patch25 -p1 -b .jpegfix
-%patch26 -p1 -b .ldmemory
-# %%patch27 -p1 -b .setopaque
-# %%patch31 -p1 -b .permissive
-# %%patch33 -p1 -b .gcc7
-%patch36 -p1 -b .revert
-%patch37 -p1 -b .ffmpeg-stdatomic
-%patch39 -p1 -b .system-clang
-%patch42 -p1 -b .noprefix
-%patch43 -p1 -b .nomangle
-%patch45 -p1 -b .nozmangle
-%if 0%{?rhel} == 7
-%patch46 -p1 -b .kmaxskip
-# %%patch47 -p1 -b .c99
-%endif
-%patch50 -p1 -b .pathfix
-%patch53 -p1 -b .nogccoptmath
-# %%if 0%%{?fedora} >= 28
-# %%patch57 -p1 -b .aarch64glibc
-# %%endif
-%patch62 -p1 -b .gcc5-r3
-# %%patch63 -p1 -b .nolibc++
-%patch65 -p1 -b .gcc-round-fix
-%patch67 -p1 -b .memcpyfix
-%patch85 -p1 -b .boolfix
-%patch86 -p1 -b .aarch64fix
-%if 0%{?rhel} == 7
-%patch87 -p1 -b .epel7
-%endif
-%patch88 -p1 -b .missing
-# %%patch89 -p1 -b .gccomove
-# %%patch90 -p1 -b .copycon
-# %%patch91 -p1 -b .944404
-%patch92 -p1 -b .nounrar
-# %%patch93 -p1 -b .gcc-full-decl
-%patch94 -p1 -b .gcc-cpolicyprovider
-# %%patch95 -p1 -b .gcc-getstring
-# %%patch96 -p1 -b .flatsetfix
-# %%patch97 -p1 -b .arm-init-fix
-# %%patch98 -p1 -b .gcc8-alignof
+%patch3 -p1 -b .notest
+%patch4 -p1 -b .modern-libusbx
+%patch5 -p1 -b .cups22
+%patch6 -p1 -b .sandboxpie
+%patch7 -p1 -b .etc
+%patch8 -p1 -b .gnsystem
+%patch9 -p1 -b .timefix
+%patch10 -p1 -b .nullfix
+%patch11 -p1 -b .jpegfix
+%patch12 -p1 -b .ldmemory
+%patch13 -p1 -b .revert
+%patch14 -p1 -b .ffmpeg-stdatomic
+%patch15 -p1 -b .system-clang
+%patch16 -p1 -b .noprefix
+%patch17 -p1 -b .nomangle
+%patch18 -p1 -b .nozmangle
+%patch19 -p1 -b .pathfix
+%patch20 -p1 -b .nogccoptmath
+%patch21 -p1 -b .gcc5-r3
+%patch22 -p1 -b .gcc-round-fix
+%patch23 -p1 -b .memcpyfix
+%patch24 -p1 -b .boolfix
+%patch25 -p1 -b .aarch64fix
+%patch26 -p1 -b .missing-files
+%patch27 -p1 -b .nounrar
+%patch28 -p1 -b .gcc-cpolicyprovider
+%patch29 -p1 -b .fedora-user-agent
+%patch30 -p1 -b .py2
+%patch31 -p1 -b .fix-default-redeclaration
+%patch32 -p1 -b .wvhack
+%patch33 -p1 -b .sanebuild
+%patch34 -p1 -b .nofc
+%patch35 -p1 -b .aarch64-new-stat
+%patch36 -p1 -b .gcc9
+%patch37 -p1 -b .widevine-other-locations
+%patch38 -p1 -b .disable-ndnpc
+%patch39 -p1 -b .cstring-fix
+%patch40 -p1 -b .gcc-assume
+%patch41 -p1 -b .SIOCGSTAMP
+%patch42 -p1 -b .gcc-dcheck_ne-fix
+%patch43 -p1 -b .revert-daff6b
+%patch44 -p1 -b .pure-virtual-fix
+%patch45 -p1 -b .gettid-fix
+%patch46 -p1 -b .fix-v8-gcc
+%patch47 -p1 -b .git00281713
+
+# EPEL specific patches
%if 0%{?rhel} == 7
-# %%patch100 -p1 -b .oldexec
-%endif
-%patch101 -p1 -b .fedora-user-agent
-%patch103 -p1 -b .py2
-# %%patch108 -p1 -b .move-unique-ptr
-%patch110 -p1 -b .fix-default-redeclaration
-%patch111 -p1 -b .wvhack
-%patch112 -p1 -b .sanebuild
-# %%patch113 -p1 -b .r588316
-# %%patch114 -p1 -b .r588547
-# %%patch115 -p1 -b .r589614
-# %%patch116 -p1 -b .r591015
-%patch117 -p1 -b .nofc
-%patch119 -p1 -b .aarch64-new-stat
-%if %{use_vaapi}
-%patch121 -p1 -b .vaapi
+%patch100 -p1 -b .kmaxskip
+%patch101 -p1 -b .epel7
+%patch102 -p1 -b .el7-noexcept
+%endif
+
+# Feature specific patches
+%if ! 0%{?killnacl}
+%patch200 -p1 -b .gnu-inline
+%patch201 -p1 -b .ignore-fd-count
%endif
+
+%if %{use_vaapi}
+%patch202 -p1 -b .vaapi
%ifarch i686
-%patch122 -p1 -b .i686permissive
-%endif
-%patch124 -p1 -b .va1compat
-%patch126 -p1 -b .gcc9
-# %%patch130 -p1 -b .revert-gn-4980
-# %%patch131 -p1 -b .revert-gn-4960
-%patch132 -p1 -b .widevine-other-locations
-%patch135 -p1 -b .disable-ndnpc
-%patch136 -p1 -b .cstring-fix
-%if 0%{?rhel} == 7
-%patch139 -p1 -b .el7-noexcept
-%endif
-%patch140 -p1 -b .gcc-assume
-%patch141 -p1 -b .SIOCGSTAMP
-%patch142 -p1 -b .gcc-dcheck_ne-fix
-%patch143 -p1 -b .revert-daff6b
-%patch144 -p1 -b .pure-virtual-fix
-%patch145 -p1 -b .gettid-fix
-%patch146 -p1 -b .fix-v8-gcc
-%patch147 -p1 -b .git00281713
+%patch203 -p1 -b .i686permissive
+%patch204 -p1 -b .va1compat
+%endif
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
diff --git a/relax-libva-version.patch b/relax-libva-version.patch
deleted file mode 100644
index e297fd6..0000000
--- a/relax-libva-version.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 6f1309ef8fe10965e4d0018b4f1b80ac6deccdaa Mon Sep 17 00:00:00 2001
-From: Azhar Shaikh <azhar.shaikh(a)intel.com>
-Date: Fri, 30 Nov 2018 23:11:57 +0000
-Subject: [PATCH] media/gpu/vaapi: Relax the version check for VA-API
-
-Since the newer versions of VA-API are ABI compatible, relax the
-version checks for VA-API, by using VA_CHECK_VERSION().
-This will help in updating the libva to the latest releases,
-while still supporting the old versions, till the new version of
-libva is merged and picked by the builds. Thus ensuring that
-hardware accleration is not broken while updating the libva.
-
-Bug: 905814
-TEST=libva-2.3.0 and libva-2.1.0 are able to do hardware acceleration.
-
-Suggested-by: Alexandre Courbot <acourbot(a)chromium.org>
-Signed-off-by: Azhar Shaikh <azhar.shaikh(a)intel.com>
-Change-Id: I510549f72290d20676927eeeeb89a87199c062af
-Reviewed-on: https://chromium-review.googlesource.com/c/1352519
-Reviewed-by: Alexandre Courbot <acourbot(a)chromium.org>
-Reviewed-by: Hirokazu Honda <hiroh(a)chromium.org>
-Commit-Queue: Miguel Casas <mcasas(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#612832}
----
-
-diff --git a/AUTHORS b/AUTHORS
-index 567fe15..ff42fc5 100644
---- a/AUTHORS
-+++ b/AUTHORS
-@@ -103,6 +103,7 @@
- Attila Dusnoki <dati91(a)gmail.com>
- Avinaash Doreswamy <avi.nitk(a)samsung.com>
- Ayush Khandelwal <k.ayush(a)samsung.com>
-+Azhar Shaikh <azhar.shaikh(a)intel.com>
- Balazs Kelemen <b.kelemen(a)samsung.com>
- Baul Eun <baul.eun(a)samsung.com>
- Behara Mani Shyam Patro <behara.ms(a)samsung.com>
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index b415642..053384d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -333,7 +333,13 @@
- DVLOG(1) << "VAAPI version: " << major_version << "." << minor_version << " "
- << va_vendor_string_;
-
-- if (major_version != VA_MAJOR_VERSION || minor_version != VA_MINOR_VERSION) {
-+ // The VAAPI version is determined from what is loaded on the system by
-+ // calling vaInitialize(). We want a runtime evaluation of libva version,
-+ // of what is loaded on the system, with, what browser is compiled with.
-+ // Also since the libva is now ABI-compatible, relax the version check
-+ // which helps in upgrading the libva, without breaking any existing
-+ // functionality.
-+ if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
- LOG(ERROR) << "This build of Chromium requires VA-API version "
- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
- << ", system version: " << major_version << "." << minor_version;
diff --git a/revert-gn-4960.patch b/revert-gn-4960.patch
deleted file mode 100644
index bb51ada..0000000
--- a/revert-gn-4960.patch
+++ /dev/null
@@ -1,655 +0,0 @@
-Description: revert https://gn.googlesource.com/gn/+/0d038c2e0a32a528713d3dfaf1f1e0cdfe87fd46, which breaks the chromium build
-
---- a/tools/gn/build/gen.py
-+++ b/tools/gn/build/gen.py
-@@ -522,6 +522,7 @@ def WriteGNNinja(path, platform, host, o
- 'tools/gn/setup.cc',
- 'tools/gn/source_dir.cc',
- 'tools/gn/source_file.cc',
-+ 'tools/gn/source_file_type.cc',
- 'tools/gn/standard_out.cc',
- 'tools/gn/string_utils.cc',
- 'tools/gn/substitution_list.cc',
---- a/tools/gn/tools/gn/c_tool.h
-+++ b/tools/gn/tools/gn/c_tool.h
-@@ -12,6 +12,7 @@
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
- #include "tools/gn/tool.h"
---- a/tools/gn/tools/gn/compile_commands_writer.cc
-+++ b/tools/gn/tools/gn/compile_commands_writer.cc
-@@ -122,7 +122,7 @@ void WriteCommand(const Target* target,
- const CompileFlags& flags,
- std::vector<OutputFile>& tool_outputs,
- PathOutput& path_output,
-- SourceFile::Type source_type,
-+ SourceFileType source_type,
- const char* tool_name,
- EscapeOptions opts,
- std::string* compile_commands) {
-@@ -144,16 +144,16 @@ void WriteCommand(const Target* target,
- } else if (range.type == &CSubstitutionCFlags) {
- command_out << flags.cflags;
- } else if (range.type == &CSubstitutionCFlagsC) {
-- if (source_type == SourceFile::SOURCE_C)
-+ if (source_type == SOURCE_C)
- command_out << flags.cflags_c;
- } else if (range.type == &CSubstitutionCFlagsCc) {
-- if (source_type == SourceFile::SOURCE_CPP)
-+ if (source_type == SOURCE_CPP)
- command_out << flags.cflags_cc;
- } else if (range.type == &CSubstitutionCFlagsObjC) {
-- if (source_type == SourceFile::SOURCE_M)
-+ if (source_type == SOURCE_M)
- command_out << flags.cflags_objc;
- } else if (range.type == &CSubstitutionCFlagsObjCc) {
-- if (source_type == SourceFile::SOURCE_MM)
-+ if (source_type == SOURCE_MM)
- command_out << flags.cflags_objcc;
- } else if (range.type == &SubstitutionLabel ||
- range.type == &SubstitutionLabelName ||
-@@ -222,11 +222,9 @@ void CompileCommandsWriter::RenderJSON(c
- for (const auto& source : target->sources()) {
- // If this source is not a C/C++/ObjC/ObjC++ source (not header) file,
- // continue as it does not belong in the compilation database.
-- SourceFile::Type source_type = source.type();
-- if (source_type != SourceFile::SOURCE_CPP &&
-- source_type != SourceFile::SOURCE_C &&
-- source_type != SourceFile::SOURCE_M &&
-- source_type != SourceFile::SOURCE_MM)
-+ SourceFileType source_type = GetSourceFileType(source);
-+ if (source_type != SOURCE_CPP && source_type != SOURCE_C &&
-+ source_type != SOURCE_M && source_type != SOURCE_MM)
- continue;
-
- const char* tool_name = Tool::kToolNone;
-@@ -324,4 +322,4 @@ void CompileCommandsWriter::VisitDeps(co
- VisitDeps(pair.ptr, visited);
- }
- }
--}
-+}
-\ No newline at end of file
---- a/tools/gn/tools/gn/general_tool.h
-+++ b/tools/gn/tools/gn/general_tool.h
-@@ -11,6 +11,7 @@
- #include "base/macros.h"
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
- #include "tools/gn/tool.h"
---- a/tools/gn/tools/gn/header_checker.cc
-+++ b/tools/gn/tools/gn/header_checker.cc
-@@ -18,6 +18,7 @@
- #include "tools/gn/err.h"
- #include "tools/gn/filesystem_utils.h"
- #include "tools/gn/scheduler.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/target.h"
- #include "tools/gn/trace.h"
- #include "util/worker_pool.h"
-@@ -151,10 +152,9 @@ void HeaderChecker::RunCheckOverFiles(co
-
- for (const auto& file : files) {
- // Only check C-like source files (RC files also have includes).
-- SourceFile::Type type = file.first.type();
-- if (type != SourceFile::SOURCE_CPP && type != SourceFile::SOURCE_H &&
-- type != SourceFile::SOURCE_C && type != SourceFile::SOURCE_M &&
-- type != SourceFile::SOURCE_MM && type != SourceFile::SOURCE_RC)
-+ SourceFileType type = GetSourceFileType(file.first);
-+ if (type != SOURCE_CPP && type != SOURCE_H && type != SOURCE_C &&
-+ type != SOURCE_M && type != SOURCE_MM && type != SOURCE_RC)
- continue;
-
- if (!check_generated_) {
---- a/tools/gn/tools/gn/ninja_binary_target_writer.cc
-+++ b/tools/gn/tools/gn/ninja_binary_target_writer.cc
-@@ -23,23 +23,22 @@
- #include "tools/gn/ninja_utils.h"
- #include "tools/gn/scheduler.h"
- #include "tools/gn/settings.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/string_utils.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/target.h"
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::CSourceUsed() {
-- return Get(SourceFile::SOURCE_CPP) || Get(SourceFile::SOURCE_H) ||
-- Get(SourceFile::SOURCE_C) || Get(SourceFile::SOURCE_M) ||
-- Get(SourceFile::SOURCE_MM) || Get(SourceFile::SOURCE_RC) ||
-- Get(SourceFile::SOURCE_S);
-+ return Get(SOURCE_CPP) || Get(SOURCE_H) || Get(SOURCE_C) || Get(SOURCE_M) ||
-+ Get(SOURCE_MM) || Get(SOURCE_RC) || Get(SOURCE_S);
- }
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::RustSourceUsed() {
-- return Get(SourceFile::SOURCE_RS);
-+ return Get(SOURCE_RS);
- }
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::GoSourceUsed() {
-- return Get(SourceFile::SOURCE_GO);
-+ return Get(SOURCE_GO);
- }
-
- NinjaBinaryTargetWriter::NinjaBinaryTargetWriter(const Target* target,
-@@ -50,6 +49,10 @@ NinjaBinaryTargetWriter::NinjaBinaryTarg
- NinjaBinaryTargetWriter::~NinjaBinaryTargetWriter() = default;
-
- void NinjaBinaryTargetWriter::Run() {
-+ SourceFileTypeSet used_types;
-+ for (const auto& source : target_->sources())
-+ used_types.Set(GetSourceFileType(source));
-+
- NinjaCBinaryTargetWriter writer(target_, out_);
- writer.Run();
- }
---- a/tools/gn/tools/gn/ninja_binary_target_writer.h
-+++ b/tools/gn/tools/gn/ninja_binary_target_writer.h
-@@ -23,12 +23,11 @@ class NinjaBinaryTargetWriter : public N
- class SourceFileTypeSet {
- public:
- SourceFileTypeSet() {
-- memset(flags_, 0,
-- sizeof(bool) * static_cast<int>(SourceFile::SOURCE_NUMTYPES));
-+ memset(flags_, 0, sizeof(bool) * static_cast<int>(SOURCE_NUMTYPES));
- }
-
-- void Set(SourceFile::Type type) { flags_[static_cast<int>(type)] = true; }
-- bool Get(SourceFile::Type type) const {
-+ void Set(SourceFileType type) { flags_[static_cast<int>(type)] = true; }
-+ bool Get(SourceFileType type) const {
- return flags_[static_cast<int>(type)];
- }
-
-@@ -37,7 +36,7 @@ class NinjaBinaryTargetWriter : public N
- bool GoSourceUsed();
-
- private:
-- bool flags_[static_cast<int>(SourceFile::SOURCE_NUMTYPES)];
-+ bool flags_[static_cast<int>(SOURCE_NUMTYPES)];
- };
-
- NinjaBinaryTargetWriter(const Target* target, std::ostream& out);
---- a/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
-+++ b/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
-@@ -24,6 +24,7 @@
- #include "tools/gn/ninja_utils.h"
- #include "tools/gn/scheduler.h"
- #include "tools/gn/settings.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/string_utils.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/target.h"
-@@ -66,27 +67,27 @@ void AddSourceSetObjectFiles(const Targe
- if (source_set->GetOutputFilesForSource(source, &tool_name, &tool_outputs))
- obj_files->push_back(tool_outputs[0]);
-
-- used_types.Set(source.type());
-+ used_types.Set(GetSourceFileType(source));
- }
-
- // Add MSVC precompiled header object files. GCC .gch files are not object
- // files so they are omitted.
- if (source_set->config_values().has_precompiled_headers()) {
-- if (used_types.Get(SourceFile::SOURCE_C)) {
-+ if (used_types.Get(SOURCE_C)) {
- const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCc);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
- GetPCHOutputFiles(source_set, CTool::kCToolCc, &tool_outputs);
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_CPP)) {
-+ if (used_types.Get(SOURCE_CPP)) {
- const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCxx);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
- GetPCHOutputFiles(source_set, CTool::kCToolCxx, &tool_outputs);
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_M)) {
-+ if (used_types.Get(SOURCE_M)) {
- const CTool* tool =
- source_set->toolchain()->GetToolAsC(CTool::kCToolObjC);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
-@@ -94,7 +95,7 @@ void AddSourceSetObjectFiles(const Targe
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_MM)) {
- const CTool* tool =
- source_set->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
-@@ -118,7 +119,7 @@ void NinjaCBinaryTargetWriter::Run() {
- // Figure out what source types are needed.
- SourceFileTypeSet used_types;
- for (const auto& source : target_->sources())
-- used_types.Set(source.type());
-+ used_types.Set(GetSourceFileType(source));
-
- WriteCompilerVars(used_types);
-
-@@ -234,34 +235,31 @@ void NinjaCBinaryTargetWriter::WriteComp
- target_->config_values().has_precompiled_headers();
-
- EscapeOptions opts = GetFlagOptions();
-- if (used_types.Get(SourceFile::SOURCE_S) ||
-- used_types.Get(SourceFile::SOURCE_ASM)) {
-+ if (used_types.Get(SOURCE_S) || used_types.Get(SOURCE_ASM)) {
- WriteOneFlag(target_, &CSubstitutionAsmFlags, false, Tool::kToolNone,
- &ConfigValues::asmflags, opts, path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_C) ||
-- used_types.Get(SourceFile::SOURCE_CPP) ||
-- used_types.Get(SourceFile::SOURCE_M) ||
-- used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_C) || used_types.Get(SOURCE_CPP) ||
-+ used_types.Get(SOURCE_M) || used_types.Get(SOURCE_MM)) {
- WriteOneFlag(target_, &CSubstitutionCFlags, false, Tool::kToolNone,
- &ConfigValues::cflags, opts, path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_C)) {
-+ if (used_types.Get(SOURCE_C)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsC, has_precompiled_headers,
- CTool::kCToolCc, &ConfigValues::cflags_c, opts, path_output_,
- out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_CPP)) {
-+ if (used_types.Get(SOURCE_CPP)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsCc, has_precompiled_headers,
- CTool::kCToolCxx, &ConfigValues::cflags_cc, opts, path_output_,
- out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_M)) {
-+ if (used_types.Get(SOURCE_M)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsObjC, has_precompiled_headers,
- CTool::kCToolObjC, &ConfigValues::cflags_objc, opts,
- path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_MM)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsObjCc, has_precompiled_headers,
- CTool::kCToolObjCxx, &ConfigValues::cflags_objcc, opts,
- path_output_, out_);
-@@ -321,14 +319,14 @@ void NinjaCBinaryTargetWriter::WritePCHC
-
- const CTool* tool_c = target_->toolchain()->GetToolAsC(CTool::kCToolCc);
- if (tool_c && tool_c->precompiled_header_type() != CTool::PCH_NONE &&
-- used_types.Get(SourceFile::SOURCE_C)) {
-+ used_types.Get(SOURCE_C)) {
- WritePCHCommand(&CSubstitutionCFlagsC, CTool::kCToolCc,
- tool_c->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
- }
- const CTool* tool_cxx = target_->toolchain()->GetToolAsC(CTool::kCToolCxx);
- if (tool_cxx && tool_cxx->precompiled_header_type() != CTool::PCH_NONE &&
-- used_types.Get(SourceFile::SOURCE_CPP)) {
-+ used_types.Get(SOURCE_CPP)) {
- WritePCHCommand(&CSubstitutionCFlagsCc, CTool::kCToolCxx,
- tool_cxx->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -336,7 +334,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
-
- const CTool* tool_objc = target_->toolchain()->GetToolAsC(CTool::kCToolObjC);
- if (tool_objc && tool_objc->precompiled_header_type() == CTool::PCH_GCC &&
-- used_types.Get(SourceFile::SOURCE_M)) {
-+ used_types.Get(SOURCE_M)) {
- WritePCHCommand(&CSubstitutionCFlagsObjC, CTool::kCToolObjC,
- tool_objc->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -345,7 +343,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
- const CTool* tool_objcxx =
- target_->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
- if (tool_objcxx && tool_objcxx->precompiled_header_type() == CTool::PCH_GCC &&
-- used_types.Get(SourceFile::SOURCE_MM)) {
-+ used_types.Get(SOURCE_MM)) {
- WritePCHCommand(&CSubstitutionCFlagsObjCc, CTool::kCToolObjCxx,
- tool_objcxx->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -478,7 +476,7 @@ void NinjaCBinaryTargetWriter::WriteSour
- deps.resize(0);
- const char* tool_name = Tool::kToolNone;
- if (!target_->GetOutputFilesForSource(source, &tool_name, &tool_outputs)) {
-- if (source.type() == SourceFile::SOURCE_DEF)
-+ if (GetSourceFileType(source) == SOURCE_DEF)
- other_files->push_back(source);
- continue; // No output for this source.
- }
-@@ -599,7 +597,7 @@ void NinjaCBinaryTargetWriter::WriteLink
- const SourceFile* optional_def_file = nullptr;
- if (!other_files.empty()) {
- for (const SourceFile& src_file : other_files) {
-- if (src_file.type() == SourceFile::SOURCE_DEF) {
-+ if (GetSourceFileType(src_file) == SOURCE_DEF) {
- optional_def_file = &src_file;
- implicit_deps.push_back(
- OutputFile(settings_->build_settings(), src_file));
---- a/tools/gn/tools/gn/source_file.cc
-+++ b/tools/gn/tools/gn/source_file.cc
-@@ -21,48 +21,18 @@ void AssertValueSourceFileString(const s
- DCHECK(!EndsWithSlash(s)) << s;
- }
-
--SourceFile::Type GetSourceFileType(const std::string& file) {
-- base::StringPiece extension = FindExtension(&file);
-- if (extension == "cc" || extension == "cpp" || extension == "cxx")
-- return SourceFile::SOURCE_CPP;
-- if (extension == "h" || extension == "hpp" || extension == "hxx" ||
-- extension == "hh" || extension == "inc")
-- return SourceFile::SOURCE_H;
-- if (extension == "c")
-- return SourceFile::SOURCE_C;
-- if (extension == "m")
-- return SourceFile::SOURCE_M;
-- if (extension == "mm")
-- return SourceFile::SOURCE_MM;
-- if (extension == "rc")
-- return SourceFile::SOURCE_RC;
-- if (extension == "S" || extension == "s" || extension == "asm")
-- return SourceFile::SOURCE_S;
-- if (extension == "o" || extension == "obj")
-- return SourceFile::SOURCE_O;
-- if (extension == "def")
-- return SourceFile::SOURCE_DEF;
-- if (extension == "rs")
-- return SourceFile::SOURCE_RS;
-- if (extension == "go")
-- return SourceFile::SOURCE_GO;
--
-- return SourceFile::SOURCE_UNKNOWN;
--}
--
- } // namespace
-
--SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
-+SourceFile::SourceFile() = default;
-
- SourceFile::SourceFile(const base::StringPiece& p)
-- : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
-+ : value_(p.data(), p.size()) {
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
- }
-
--SourceFile::SourceFile(SwapIn, std::string* value)
-- : type_(GetSourceFileType(*value)) {
-+SourceFile::SourceFile(SwapIn, std::string* value) {
- value_.swap(*value);
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
---- a/tools/gn/tools/gn/source_file.h
-+++ b/tools/gn/tools/gn/source_file.h
-@@ -20,28 +20,6 @@ class SourceDir;
- // ends in one.
- class SourceFile {
- public:
-- // This should be sequential integers starting from 0 so they can be used as
-- // array indices.
-- enum Type {
-- SOURCE_UNKNOWN = 0,
-- SOURCE_ASM,
-- SOURCE_C,
-- SOURCE_CPP,
-- SOURCE_H,
-- SOURCE_M,
-- SOURCE_MM,
-- SOURCE_S,
-- SOURCE_RC,
-- SOURCE_O, // Object files can be inputs, too. Also counts .obj.
-- SOURCE_DEF,
--
-- SOURCE_RS,
-- SOURCE_GO,
--
-- // Must be last.
-- SOURCE_NUMTYPES,
-- };
--
- enum SwapIn { SWAP_IN };
-
- SourceFile();
-@@ -58,7 +36,6 @@ class SourceFile {
-
- bool is_null() const { return value_.empty(); }
- const std::string& value() const { return value_; }
-- Type type() const { return type_; }
-
- // Returns everything after the last slash.
- std::string GetName() const;
-@@ -103,7 +80,6 @@ class SourceFile {
- friend class SourceDir;
-
- std::string value_;
-- Type type_;
-
- // Copy & assign supported.
- };
---- /dev/null
-+++ b/tools/gn/tools/gn/source_file_type.cc
-@@ -0,0 +1,37 @@
-+// Copyright 2014 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.
-+
-+#include "tools/gn/source_file_type.h"
-+
-+#include "tools/gn/filesystem_utils.h"
-+#include "tools/gn/source_file.h"
-+
-+SourceFileType GetSourceFileType(const SourceFile& file) {
-+ base::StringPiece extension = FindExtension(&file.value());
-+ if (extension == "cc" || extension == "cpp" || extension == "cxx")
-+ return SOURCE_CPP;
-+ if (extension == "h" || extension == "hpp" || extension == "hxx" ||
-+ extension == "hh")
-+ return SOURCE_H;
-+ if (extension == "c")
-+ return SOURCE_C;
-+ if (extension == "m")
-+ return SOURCE_M;
-+ if (extension == "mm")
-+ return SOURCE_MM;
-+ if (extension == "rc")
-+ return SOURCE_RC;
-+ if (extension == "S" || extension == "s" || extension == "asm")
-+ return SOURCE_S;
-+ if (extension == "o" || extension == "obj")
-+ return SOURCE_O;
-+ if (extension == "def")
-+ return SOURCE_DEF;
-+ if (extension == "rs")
-+ return SOURCE_RS;
-+ if (extension == "go")
-+ return SOURCE_GO;
-+
-+ return SOURCE_UNKNOWN;
-+}
---- /dev/null
-+++ b/tools/gn/tools/gn/source_file_type.h
-@@ -0,0 +1,34 @@
-+// Copyright 2014 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.
-+
-+#ifndef TOOLS_GN_SOURCE_FILE_TYPE_H_
-+#define TOOLS_GN_SOURCE_FILE_TYPE_H_
-+
-+class SourceFile;
-+
-+// This should be sequential integers starting from 0 so they can be used as
-+// array indices.
-+enum SourceFileType {
-+ SOURCE_UNKNOWN = 0,
-+ SOURCE_ASM,
-+ SOURCE_C,
-+ SOURCE_CPP,
-+ SOURCE_H,
-+ SOURCE_M,
-+ SOURCE_MM,
-+ SOURCE_S,
-+ SOURCE_RC,
-+ SOURCE_O, // Object files can be inputs, too. Also counts .obj.
-+ SOURCE_DEF,
-+
-+ SOURCE_RS,
-+ SOURCE_GO,
-+
-+ // Must be last.
-+ SOURCE_NUMTYPES,
-+};
-+
-+SourceFileType GetSourceFileType(const SourceFile& file);
-+
-+#endif // TOOLS_GN_SOURCE_FILE_TYPE_H_
---- a/tools/gn/tools/gn/target.cc
-+++ b/tools/gn/tools/gn/target.cc
-@@ -16,6 +16,7 @@
- #include "tools/gn/filesystem_utils.h"
- #include "tools/gn/functions.h"
- #include "tools/gn/scheduler.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/tool.h"
- #include "tools/gn/toolchain.h"
-@@ -486,10 +487,10 @@ bool Target::GetOutputFilesForSource(con
- outputs->clear();
- *computed_tool_type = Tool::kToolNone;
-
-- SourceFile::Type file_type = source.type();
-- if (file_type == SourceFile::SOURCE_UNKNOWN)
-+ SourceFileType file_type = GetSourceFileType(source);
-+ if (file_type == SOURCE_UNKNOWN)
- return false;
-- if (file_type == SourceFile::SOURCE_O) {
-+ if (file_type == SOURCE_O) {
- // Object files just get passed to the output and not compiled.
- outputs->push_back(OutputFile(settings()->build_settings(), source));
- return true;
---- a/tools/gn/tools/gn/tool.cc
-+++ b/tools/gn/tools/gn/tool.cc
-@@ -261,27 +261,27 @@ std::unique_ptr<Tool> Tool::CreateTool(c
- }
-
- // static
--const char* Tool::GetToolTypeForSourceType(SourceFile::Type type) {
-+const char* Tool::GetToolTypeForSourceType(SourceFileType type) {
- switch (type) {
-- case SourceFile::SOURCE_C:
-+ case SOURCE_C:
- return CTool::kCToolCc;
-- case SourceFile::SOURCE_CPP:
-+ case SOURCE_CPP:
- return CTool::kCToolCxx;
-- case SourceFile::SOURCE_M:
-+ case SOURCE_M:
- return CTool::kCToolObjC;
-- case SourceFile::SOURCE_MM:
-+ case SOURCE_MM:
- return CTool::kCToolObjCxx;
-- case SourceFile::SOURCE_ASM:
-- case SourceFile::SOURCE_S:
-+ case SOURCE_ASM:
-+ case SOURCE_S:
- return CTool::kCToolAsm;
-- case SourceFile::SOURCE_RC:
-+ case SOURCE_RC:
- return CTool::kCToolRc;
-- case SourceFile::SOURCE_UNKNOWN:
-- case SourceFile::SOURCE_H:
-- case SourceFile::SOURCE_O:
-- case SourceFile::SOURCE_DEF:
-- case SourceFile::SOURCE_GO:
-- case SourceFile::SOURCE_RS:
-+ case SOURCE_UNKNOWN:
-+ case SOURCE_H:
-+ case SOURCE_O:
-+ case SOURCE_DEF:
-+ case SOURCE_GO:
-+ case SOURCE_RS:
- return kToolNone;
- default:
- NOTREACHED();
---- a/tools/gn/tools/gn/tool.h
-+++ b/tools/gn/tools/gn/tool.h
-@@ -12,7 +12,7 @@
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
--#include "tools/gn/source_file.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
-
-@@ -171,7 +171,7 @@ class Tool {
- Toolchain* toolchain,
- Err* err);
-
-- static const char* GetToolTypeForSourceType(SourceFile::Type type);
-+ static const char* GetToolTypeForSourceType(SourceFileType type);
- static const char* GetToolTypeForTargetFinalOutput(const Target* target);
-
- protected:
---- a/tools/gn/tools/gn/toolchain.cc
-+++ b/tools/gn/tools/gn/toolchain.cc
-@@ -88,16 +88,16 @@ void Toolchain::ToolchainSetupComplete()
- setup_complete_ = true;
- }
-
--const Tool* Toolchain::GetToolForSourceType(SourceFile::Type type) const {
-+const Tool* Toolchain::GetToolForSourceType(SourceFileType type) const {
- return GetTool(Tool::GetToolTypeForSourceType(type));
- }
-
--const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFile::Type type) const {
-+const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFileType type) const {
- return GetToolAsC(Tool::GetToolTypeForSourceType(type));
- }
-
- const GeneralTool* Toolchain::GetToolForSourceTypeAsGeneral(
-- SourceFile::Type type) const {
-+ SourceFileType type) const {
- return GetToolAsGeneral(Tool::GetToolTypeForSourceType(type));
- }
-
---- a/tools/gn/tools/gn/toolchain.h
-+++ b/tools/gn/tools/gn/toolchain.h
-@@ -12,6 +12,7 @@
- #include "tools/gn/item.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_type.h"
- #include "tools/gn/tool.h"
- #include "tools/gn/value.h"
-@@ -87,9 +88,9 @@ class Toolchain : public Item {
- }
-
- // Returns the tool for compiling the given source file type.
-- const Tool* GetToolForSourceType(SourceFile::Type type) const;
-- const CTool* GetToolForSourceTypeAsC(SourceFile::Type type) const;
-- const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFile::Type type) const;
-+ const Tool* GetToolForSourceType(SourceFileType type) const;
-+ const CTool* GetToolForSourceTypeAsC(SourceFileType type) const;
-+ const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFileType type) const;
-
- // Returns the tool that produces the final output for the given target type.
- // This isn't necessarily the tool you would expect. For copy target, this
---- a/tools/gn/tools/gn/visual_studio_writer.cc
-+++ b/tools/gn/tools/gn/visual_studio_writer.cc
-@@ -24,6 +24,7 @@
- #include "tools/gn/label_pattern.h"
- #include "tools/gn/parse_tree.h"
- #include "tools/gn/path_output.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/standard_out.h"
- #include "tools/gn/target.h"
- #include "tools/gn/variables.h"
diff --git a/revert-gn-4980.patch b/revert-gn-4980.patch
deleted file mode 100644
index fe550e9..0000000
--- a/revert-gn-4980.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-Description: revert https://gn.googlesource.com/gn/+/8730b0feb6b991fa47368566501ab9ccfb453c92, which breaks the chromium build
-
---- a/tools/gn/tools/gn/binary_target_generator.cc
-+++ b/tools/gn/tools/gn/binary_target_generator.cc
-@@ -68,38 +68,6 @@ void BinaryTargetGenerator::DoRun() {
- return;
- }
-
--bool BinaryTargetGenerator::FillSources() {
-- bool ret = TargetGenerator::FillSources();
-- for (std::size_t i = 0; i < target_->sources().size(); ++i) {
-- const auto& source = target_->sources()[i];
-- switch (source.type()) {
-- case SourceFile::SOURCE_CPP:
-- case SourceFile::SOURCE_H:
-- case SourceFile::SOURCE_C:
-- case SourceFile::SOURCE_M:
-- case SourceFile::SOURCE_MM:
-- case SourceFile::SOURCE_S:
-- case SourceFile::SOURCE_ASM:
-- case SourceFile::SOURCE_O:
-- // These are allowed.
-- break;
-- case SourceFile::SOURCE_RC:
-- case SourceFile::SOURCE_DEF:
-- case SourceFile::SOURCE_RS:
-- case SourceFile::SOURCE_GO:
-- case SourceFile::SOURCE_UNKNOWN:
-- case SourceFile::SOURCE_NUMTYPES:
-- *err_ =
-- Err(scope_->GetValue(variables::kSources, true)->list_value()[i],
-- std::string("Only source, header, and object files belong in "
-- "the sources of a ") +
-- Target::GetStringForOutputType(target_->output_type()) +
-- ". " + source.value() + " is not one of the valid types.");
-- }
-- }
-- return ret;
--}
--
- bool BinaryTargetGenerator::FillCompleteStaticLib() {
- if (target_->output_type() == Target::STATIC_LIBRARY) {
- const Value* value = scope_->GetValue(variables::kCompleteStaticLib, true);
---- a/tools/gn/tools/gn/binary_target_generator.h
-+++ b/tools/gn/tools/gn/binary_target_generator.h
-@@ -22,7 +22,6 @@ class BinaryTargetGenerator : public Tar
-
- protected:
- void DoRun() override;
-- bool FillSources() override;
-
- private:
- bool FillCompleteStaticLib();
---- a/tools/gn/tools/gn/source_dir.cc
-+++ b/tools/gn/tools/gn/source_dir.cc
-@@ -98,10 +98,10 @@ SourceFile SourceDir::ResolveRelativeFil
- return ret;
-
- const std::string& input_string = p.string_value();
-- if (!ValidateResolveInput<std::string>(true, p, input_string, err))
-+ if (!ValidateResolveInput<std::string>(true, p, input_string, err)) {
- return ret;
--
-- ret.SetValue(ResolveRelative(input_string, value_, true, source_root));
-+ }
-+ ret.value_ = ResolveRelative(input_string, value_, true, source_root);
- return ret;
- }
-
---- a/tools/gn/tools/gn/source_file.cc
-+++ b/tools/gn/tools/gn/source_file.cc
-@@ -55,19 +55,18 @@ SourceFile::Type GetSourceFileType(const
- SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
-
- SourceFile::SourceFile(const base::StringPiece& p)
-- : value_(p.data(), p.size()) {
-+ : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
-- type_ = GetSourceFileType(value_);
- }
-
--SourceFile::SourceFile(SwapIn, std::string* value) {
-+SourceFile::SourceFile(SwapIn, std::string* value)
-+ : type_(GetSourceFileType(*value)) {
- value_.swap(*value);
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
-- type_ = GetSourceFileType(value_);
- }
-
- SourceFile::~SourceFile() = default;
-@@ -93,8 +92,3 @@ SourceDir SourceFile::GetDir() const {
- base::FilePath SourceFile::Resolve(const base::FilePath& source_root) const {
- return ResolvePath(value_, true, source_root);
- }
--
--void SourceFile::SetValue(const std::string& value) {
-- value_ = value;
-- type_ = GetSourceFileType(value_);
--}
---- a/tools/gn/tools/gn/source_file.h
-+++ b/tools/gn/tools/gn/source_file.h
-@@ -97,16 +97,11 @@ class SourceFile {
- return value_ < other.value_;
- }
-
-- void swap(SourceFile& other) {
-- value_.swap(other.value_);
-- std::swap(type_, other.type_);
-- }
-+ void swap(SourceFile& other) { value_.swap(other.value_); }
-
- private:
- friend class SourceDir;
-
-- void SetValue(const std::string& value);
--
- std::string value_;
- Type type_;
-
---- a/tools/gn/tools/gn/target_generator.h
-+++ b/tools/gn/tools/gn/target_generator.h
-@@ -47,7 +47,7 @@ class TargetGenerator {
-
- const BuildSettings* GetBuildSettings() const;
-
-- virtual bool FillSources();
-+ bool FillSources();
- bool FillPublic();
- bool FillConfigs();
- bool FillOutputs(bool allow_substitutions);
commit 8c4c53d9b3dbf8e4272b8f7c01cbf5241f658f82
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Jul 24 20:14:22 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/chromium.spec b/chromium.spec
index a741cda..de018ef 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -165,7 +165,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3770.100
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1926,6 +1926,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Jul 24 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 75.0.3770.100-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Tue Jul 2 2019 Tom Callaway <spot(a)fedoraproject.org> - 75.0.3770.100-3
- apply upstream fix to resolve issue where it is dangerous to post a
task with a RenderProcessHost pointer because the RenderProcessHost
4 years, 6 months
Architecture specific change in rpms/chromium.git
by githook-noreply@fedoraproject.org
The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=51e320816...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=3c9581069...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=5a0168685...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=e9192241d...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=f7aa602c5...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=1ef42a21d....
Change:
-%ifarch x86_64
+%ifarch %{ix86}
+%ifarch %{ix86}
-%ifarch x86_64
+%ifarch %{ix86}
-%ifarch x86_64
Thanks.
Full change:
============
commit ff01f5a7525845f12836c9a70bb9d1821a76b5ea
Merge: 286dfc8 77f7b18
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:02:13 2019 -0400
merge fix
commit 77f7b18d5f5f7fc1abe87f2704a3e1fc453a9f5d
Merge: e7f437f 5a0ab75
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:00:23 2019 -0400
merge fix
commit 5a0ab7571f0c7dd5eb02385589150ab3c958bfe3
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 08:57:05 2019 -0400
last bit of fixes
diff --git a/chromium-77-clang.patch b/chromium-77-clang.patch
new file mode 100644
index 0000000..a57b5a4
--- /dev/null
+++ b/chromium-77-clang.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-78-revert-noexcept-r1.patch b/chromium-78-revert-noexcept-r1.patch
new file mode 100644
index 0000000..408d618
--- /dev/null
+++ b/chromium-78-revert-noexcept-r1.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-78.0.3904.70-base-gcc-no-alignas.patch b/chromium-78.0.3904.70-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..4856c36
--- /dev/null
+++ b/chromium-78.0.3904.70-base-gcc-no-alignas.patch
@@ -0,0 +1,68 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
+--- a/third_party/protobuf/src/google/protobuf/arena.h
++++ b/third_party/protobuf/src/google/protobuf/arena.h
+@@ -245,7 +245,7 @@ struct ArenaOptions {
+ // well as protobuf container types like RepeatedPtrField and Map. The protocol
+ // is internal to protobuf and is not guaranteed to be stable. Non-proto types
+ // should not rely on this protocol.
+-class PROTOBUF_EXPORT alignas(8) Arena final {
++class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
+ public:
+ // Arena constructor taking custom options. See ArenaOptions below for
+ // descriptions of the options available.
+--- a/third_party/protobuf/src/google/protobuf/port_def.inc
++++ b/third_party/protobuf/src/google/protobuf/port_def.inc
+@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
+ #undef IN
+ #endif // _MSC_VER
+
++// Specify memory alignment for structs, classes, etc.
++// Use like:
++// class PROTOBUF_ALIGNAS(16) MyClass { ... }
++// PROTOBUF_ALIGNAS(16) int array[4];
++//
++// In most places you can use the C++11 keyword "alignas", which is preferred.
++//
++// But compilers have trouble mixing __attribute__((...)) syntax with
++// alignas(...) syntax.
++//
++// Doesn't work in clang or gcc:
++// struct alignas(16) __attribute__((packed)) S { char c; };
++// Works in clang but not gcc:
++// struct __attribute__((packed)) alignas(16) S2 { char c; };
++// Works in clang and gcc:
++// struct alignas(16) S3 { char c; } __attribute__((packed));
++//
++// There are also some attributes that must be specified *before* a class
++// definition: visibility (used for exporting functions/classes) is one of
++// these attributes. This means that it is not possible to use alignas() with a
++// class that is marked as exported.
++#if defined(_MSC_VER)
++#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
++#elif defined(__GNUC__)
++#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
++#else
++#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
++#endif
++
+ #if defined(__clang__)
+ #pragma clang diagnostic push
+ // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
+--- a/third_party/protobuf/src/google/protobuf/port_undef.inc
++++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
+@@ -80,6 +80,7 @@
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
++#undef PROTOBUF_ALIGNAS
diff --git a/chromium-78.0.3904.70-v8-tracedreference-fix.patch b/chromium-78.0.3904.70-v8-tracedreference-fix.patch
new file mode 100644
index 0000000..789bdd0
--- /dev/null
+++ b/chromium-78.0.3904.70-v8-tracedreference-fix.patch
@@ -0,0 +1,302 @@
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc.v8-tracedreference-fix 2019-10-21 15:06:42.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc 2019-10-23 14:30:25.679541652 -0400
+@@ -173,8 +173,9 @@ class GC_PLUGIN_IGNORE(
+ uint16_t class_id) override;
+
+ // v8::EmbedderHeapTracer::TracedGlobalHandleVisitor override.
+- void VisitTracedGlobalHandle(
+- const v8::TracedGlobal<v8::Value>& value) override;
++ void VisitTracedReference(
++ const v8::TracedReference<v8::Value>& value) override;
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) override;
+
+ // Visitor overrides.
+ void VisitRoot(void*, TraceDescriptor, const base::Location&) final;
+@@ -508,8 +509,8 @@ void V8EmbedderGraphBuilder::VisitPersis
+ }
+ }
+
+-void V8EmbedderGraphBuilder::VisitTracedGlobalHandle(
+- const v8::TracedGlobal<v8::Value>& value) {
++void V8EmbedderGraphBuilder::VisitTracedReference(
++ const v8::TracedReference<v8::Value>& value) {
+ const uint16_t class_id = value.WrapperClassId();
+ if (class_id != WrapperTypeInfo::kNodeClassId &&
+ class_id != WrapperTypeInfo::kObjectClassId)
+@@ -517,6 +518,11 @@ void V8EmbedderGraphBuilder::VisitTraced
+ VisitPersistentHandleInternal(value.As<v8::Object>().Get(isolate_), class_id);
+ }
+
++void V8EmbedderGraphBuilder::VisitTracedGlobalHandle(
++ const v8::TracedGlobal<v8::Value>&) {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++}
++
+ void V8EmbedderGraphBuilder::VisitPersistentHandle(
+ v8::Persistent<v8::Value>* value,
+ uint16_t class_id) {
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc.v8-tracedreference-fix 2019-10-21 15:06:42.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc 2019-10-23 14:30:25.683541568 -0400
+@@ -260,7 +260,11 @@ class DOMWrapperForwardingVisitor final
+ VisitHandle(value, class_id);
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ VisitHandle(&value, value.WrapperClassId());
+ }
+
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h 2019-10-23 14:30:25.685541526 -0400
+@@ -229,6 +229,11 @@ class DOMDataStore {
+ DOMWorldWrapperReference(v8::Isolate* isolate, v8::Local<v8::Object> handle)
+ : TraceWrapperV8Reference(isolate, handle) {}
+
++ ~DOMWorldWrapperReference() {
++ // Destruction of a reference should clear it immediately.
++ Clear();
++ }
++
+ // Move support without write barrier.
+ DOMWorldWrapperReference(DOMWorldWrapperReference&& other)
+ : TraceWrapperV8Reference() {
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h 2019-10-23 14:30:25.687541484 -0400
+@@ -161,6 +161,11 @@ class PLATFORM_EXPORT ScriptWrappable
+ return main_world_wrapper_.NewLocal(isolate);
+ }
+
++ static_assert(
++ std::is_trivially_destructible<
++ TraceWrapperV8Reference<v8::Object>>::value,
++ "TraceWrapperV8Reference<v8::Object> should be trivially destructible.");
++
+ TraceWrapperV8Reference<v8::Object> main_world_wrapper_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScriptWrappable);
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h 2019-10-23 14:30:25.688541463 -0400
+@@ -11,15 +11,6 @@
+ #include "third_party/blink/renderer/platform/heap/unified_heap_marking_visitor.h"
+ #include "v8/include/v8.h"
+
+-namespace v8 {
+-
+-template <typename T>
+-struct TracedGlobalTrait<v8::TracedGlobal<T>> {
+- static constexpr bool kRequiresExplicitDestruction = false;
+-};
+-
+-} // namespace v8
+-
+ namespace blink {
+
+ /**
+@@ -50,8 +41,8 @@ class TraceWrapperV8Reference {
+
+ bool IsEmpty() const { return handle_.IsEmpty(); }
+ void Clear() { handle_.Reset(); }
+- ALWAYS_INLINE const v8::TracedGlobal<T>& Get() const { return handle_; }
+- ALWAYS_INLINE v8::TracedGlobal<T>& Get() { return handle_; }
++ ALWAYS_INLINE const v8::TracedReference<T>& Get() const { return handle_; }
++ ALWAYS_INLINE v8::TracedReference<T>& Get() { return handle_; }
+
+ template <typename S>
+ const TraceWrapperV8Reference<S>& Cast() const {
+@@ -124,7 +115,7 @@ class TraceWrapperV8Reference {
+ UnifiedHeapMarkingVisitor::WriteBarrier(UnsafeCast<v8::Value>());
+ }
+
+- v8::TracedGlobal<T> handle_;
++ v8::TracedReference<T> handle_;
+ };
+
+ } // namespace blink
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h 2019-10-23 14:30:25.689541442 -0400
+@@ -122,7 +122,7 @@ struct WrapperTypeInfo {
+ wrapper->SetWrapperClassId(wrapper_class_id);
+ }
+
+- void ConfigureWrapper(v8::TracedGlobal<v8::Object>* wrapper) const {
++ void ConfigureWrapper(v8::TracedReference<v8::Object>* wrapper) const {
+ wrapper->SetWrapperClassId(wrapper_class_id);
+ }
+
+@@ -177,7 +177,7 @@ inline T* GetInternalField(const v8::Per
+ }
+
+ template <typename T, int offset>
+-inline T* GetInternalField(const v8::TracedGlobal<v8::Object>& global) {
++inline T* GetInternalField(const v8::TracedReference<v8::Object>& global) {
+ DCHECK_LT(offset, v8::Object::InternalFieldCount(global));
+ return reinterpret_cast<T*>(
+ v8::Object::GetAlignedPointerFromInternalField(global, offset));
+@@ -198,7 +198,7 @@ inline ScriptWrappable* ToScriptWrappabl
+ }
+
+ inline ScriptWrappable* ToScriptWrappable(
+- const v8::TracedGlobal<v8::Object>& wrapper) {
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<ScriptWrappable, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+@@ -219,7 +219,8 @@ inline void* ToUntypedWrappable(const v8
+ return GetInternalField<void, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+-inline void* ToUntypedWrappable(const v8::TracedGlobal<v8::Object>& wrapper) {
++inline void* ToUntypedWrappable(
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<void, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+@@ -233,7 +234,7 @@ inline const WrapperTypeInfo* ToWrapperT
+ }
+
+ inline const WrapperTypeInfo* ToWrapperTypeInfo(
+- const v8::TracedGlobal<v8::Object>& wrapper) {
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<WrapperTypeInfo, kV8DOMWrapperTypeIndex>(wrapper);
+ }
+
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc 2019-10-23 14:30:25.693541359 -0400
+@@ -1451,11 +1451,15 @@ class ClearReferencesInDeadObjectsVisito
+ value->Reset();
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ // TODO(mlippautz): Avoid const_cast after changing the API to allow
+- // modificaton of the TracedGlobal handle.
+- if (InDeadObject(&const_cast<v8::TracedGlobal<v8::Value>&>(value)))
+- const_cast<v8::TracedGlobal<v8::Value>&>(value).Reset();
++ // modificaton of the handle.
++ if (InDeadObject(&const_cast<v8::TracedReference<v8::Value>&>(value)))
++ const_cast<v8::TracedReference<v8::Value>&>(value).Reset();
+ }
+
+ private:
+@@ -1584,11 +1588,15 @@ class UnpoisonHandlesVisitor final
+ VisitSlot(value, sizeof(v8::Persistent<v8::Value>));
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ // TODO(mlippautz): Avoid const_cast after changing the API to allow
+- // modificaton of the TracedGlobal handle.
+- VisitSlot(&const_cast<v8::TracedGlobal<v8::Value>&>(value),
+- sizeof(v8::TracedGlobal<v8::Value>));
++ // modificaton of the handle.
++ VisitSlot(&const_cast<v8::TracedReference<v8::Value>&>(value),
++ sizeof(v8::TracedReference<v8::Value>));
+ }
+
+ private:
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc 2019-10-23 14:32:34.722840885 -0400
+@@ -147,16 +147,19 @@ bool UnifiedHeapController::IsTracingDon
+ return is_tracing_done_;
+ }
+
+-bool UnifiedHeapController::IsRootForNonTracingGCInternal(
+- const v8::TracedGlobal<v8::Value>& handle) {
++namespace {
++
++bool IsRootForNonTracingGCInternal(
++ const v8::TracedReference<v8::Value>& handle) {
+ const uint16_t class_id = handle.WrapperClassId();
+- // Stand-alone TracedGlobal reference or kCustomWrappableId. Keep as root as
++ // Stand-alone reference or kCustomWrappableId. Keep as root as
+ // we don't know better.
+ if (class_id != WrapperTypeInfo::kNodeClassId &&
+ class_id != WrapperTypeInfo::kObjectClassId)
+ return true;
+
+- const v8::TracedGlobal<v8::Object>& traced = handle.As<v8::Object>();
++ const v8::TracedReference<v8::Object>& traced =
++ handle.template As<v8::Object>();
+ if (ToWrapperTypeInfo(traced)->IsActiveScriptWrappable() &&
+ ToScriptWrappable(traced)->HasPendingActivity()) {
+ return true;
+@@ -169,8 +172,10 @@ bool UnifiedHeapController::IsRootForNon
+ return false;
+ }
+
++} // namespace
++
+ void UnifiedHeapController::ResetHandleInNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
++ const v8::TracedReference<v8::Value>& handle) {
+ const uint16_t class_id = handle.WrapperClassId();
+ // Only consider handles that have not been treated as roots, see
+ // IsRootForNonTracingGCInternal.
+@@ -178,15 +183,21 @@ void UnifiedHeapController::ResetHandleI
+ class_id != WrapperTypeInfo::kObjectClassId)
+ return;
+
+- const v8::TracedGlobal<v8::Object>& traced = handle.As<v8::Object>();
++ const v8::TracedReference<v8::Object>& traced = handle.As<v8::Object>();
+ ToScriptWrappable(traced)->UnsetWrapperIfAny();
+ }
+
+ bool UnifiedHeapController::IsRootForNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
++ const v8::TracedReference<v8::Value>& handle) {
+ return IsRootForNonTracingGCInternal(handle);
+ }
+
++bool UnifiedHeapController::IsRootForNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ return false;
++}
++
+ void UnifiedHeapController::ReportBufferedAllocatedSizeIfPossible() {
+ DCHECK(base::FeatureList::IsEnabled(
+ blink::features::kBlinkHeapUnifiedGCScheduling));
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h 2019-10-23 14:30:25.695541317 -0400
+@@ -45,8 +45,9 @@ class PLATFORM_EXPORT UnifiedHeapControl
+ void RegisterV8References(const std::vector<std::pair<void*, void*>>&) final;
+ bool AdvanceTracing(double) final;
+ bool IsTracingDone() final;
++ bool IsRootForNonTracingGC(const v8::TracedReference<v8::Value>&) final;
+ bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>&) final;
+- void ResetHandleInNonTracingGC(const v8::TracedGlobal<v8::Value>&) final;
++ void ResetHandleInNonTracingGC(const v8::TracedReference<v8::Value>&) final;
+
+ ThreadState* thread_state() const { return thread_state_; }
+
+@@ -59,9 +60,6 @@ class PLATFORM_EXPORT UnifiedHeapControl
+ void DecreaseAllocatedSpace(size_t) final {}
+
+ private:
+- static bool IsRootForNonTracingGCInternal(
+- const v8::TracedGlobal<v8::Value>& handle);
+-
+ void ReportBufferedAllocatedSizeIfPossible();
+
+ ThreadState* const thread_state_;
diff --git a/chromium.spec b/chromium.spec
index 764e85d..c03e832 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -55,15 +55,15 @@
# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
-# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
+# for i in `find . -name "*.so" | sort`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
# for RHEL7, append libfontconfig to the end
# make sure there is not a trailing | at the end of the list
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
+%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libEGL|libGLESv2|libvk_swiftshader|libfontconfig
%else
-%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
+%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libEGL|libGLESv2|libvk_swiftshader
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -209,7 +209,8 @@ Patch53: chromium-78.0.3904.70-unbundle-zlib.patch
# Needs to be submitted..
Patch54: chromium-77.0.3865.75-gcc-include-memory.patch
# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
-Patch55: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch55: chromium-78.0.3904.70-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
Patch56: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
@@ -230,6 +231,14 @@ Patch63: chromium-78-pm-crash.patch
Patch64: chromium-78-protobuf-export.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-78-include.patch
+# https://dev.gentoo.org/~floppym/dist/chromium-78-revert-noexcept-r1.patch.gz
+Patch66: chromium-78-revert-noexcept-r1.patch
+# https://chromium.googlesource.com/chromium/src/+/9d01bb7f93ba4837b4430417...
+Patch67: chromium-78.0.3904.70-v8-tracedreference-fix.patch
+# https://chromium.googlesource.com/v8/v8/+/3677468397fa7f9fad9bbd71e9fb312...
+Patch68: v8-implement-tracedreference.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch69: chromium-77-clang.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -759,6 +768,10 @@ udev.
%patch63 -p1 -b .pm-crash
%patch64 -p1 -b .protobuf-export
%patch65 -p1 -b .missing-includes
+%patch66 -p1 -b .gentoo-revert-noexcept
+%patch67 -p1 -b .implement-TraceWrapperV8Reference-without-destructor
+%patch68 -p1 -b .v8-implement-tracedreference
+%patch69 -p1 -b .clang-supports-location-builtins
# Fedora branded user agent
%if 0%{?fedora}
@@ -992,6 +1005,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/cros_system_api' \
'third_party/dav1d' \
'third_party/dawn' \
+ 'third_party/depot_tools' \
'third_party/devscripts' \
'third_party/dom_distiller_js' \
'third_party/emoji-segmenter' \
@@ -1076,6 +1090,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/pffft' \
'third_party/ply' \
'third_party/polymer' \
+ 'third_party/private-join-and-compute' \
'third_party/protobuf' \
'third_party/protobuf/third_party/six' \
'third_party/pyjson5' \
diff --git a/v8-implement-tracedreference.patch b/v8-implement-tracedreference.patch
new file mode 100644
index 0000000..7dc7487
--- /dev/null
+++ b/v8-implement-tracedreference.patch
@@ -0,0 +1,796 @@
+diff -up chromium-78.0.3904.70/v8/include/v8.h.implement-tracedreference chromium-78.0.3904.70/v8/include/v8.h
+--- chromium-78.0.3904.70/v8/include/v8.h.implement-tracedreference 2019-10-24 08:58:26.185640117 -0400
++++ chromium-78.0.3904.70/v8/include/v8.h 2019-10-24 09:18:33.719546481 -0400
+@@ -96,6 +96,10 @@ template <class T>
+ class Global;
+ template <class T>
+ class TracedGlobal;
++template <class T>
++class TracedReference;
++template <class T>
++class TracedReferenceBase;
+ template<class K, class V, class T> class PersistentValueMap;
+ template <class K, class V, class T>
+ class PersistentValueMapBase;
+@@ -281,7 +285,8 @@ class Local {
+ V8_INLINE static Local<T> New(Isolate* isolate, Local<T> that);
+ V8_INLINE static Local<T> New(Isolate* isolate,
+ const PersistentBase<T>& that);
+- V8_INLINE static Local<T> New(Isolate* isolate, const TracedGlobal<T>& that);
++ V8_INLINE static Local<T> New(Isolate* isolate,
++ const TracedReferenceBase<T>& that);
+
+ private:
+ friend class Utils;
+@@ -311,7 +316,13 @@ class Local {
+ template <class F>
+ friend class ReturnValue;
+ template <class F>
++ friend class Traced;
++ template <class F>
+ friend class TracedGlobal;
++ template <class F>
++ friend class TracedReferenceBase;
++ template <class F>
++ friend class TracedReference;
+
+ explicit V8_INLINE Local(T* that) : val_(that) {}
+ V8_INLINE static Local<T> New(Isolate* isolate, T* that);
+@@ -792,22 +803,10 @@ template <class T>
+ using UniquePersistent = Global<T>;
+
+ /**
+- * Trait specifying behavior of |TracedGlobal<T>|.
++ * Deprecated. Use |TracedReference<T>| instead.
+ */
+ template <typename T>
+-struct TracedGlobalTrait {
+- /**
+- * Specifies whether |TracedGlobal<T>| should clear its handle on destruction.
+- *
+- * V8 will *not* clear the embedder-side memory of the handle. The embedder is
+- * expected to report all |TracedGlobal<T>| handles through
+- * |EmbedderHeapTracer| upon garabge collection.
+- *
+- * See |EmbedderHeapTracer::IsRootForNonTracingGC| for handling with
+- * non-tracing GCs in V8.
+- */
+- static constexpr bool kRequiresExplicitDestruction = true;
+-};
++struct TracedGlobalTrait {};
+
+ /**
+ * A traced handle with copy and move semantics. The handle is to be used
+@@ -820,15 +819,131 @@ struct TracedGlobalTrait {
+ * |v8::EmbedderHeapTracer::IsRootForNonTracingGC()| whether the handle should
+ * be treated as root or not.
+ *
+- * For destruction semantics see |TracedGlobalTrait<T>|.
++ * Note that the base class cannot be instantiated itself. Choose from
++ * - TracedGlobal
++ * - TracedReference
+ */
+ template <typename T>
+-class TracedGlobal {
++class TracedReferenceBase {
+ public:
+ /**
++ * Returns true if this TracedReferenceBase is empty, i.e., has not been
++ * assigned an object.
++ */
++ bool IsEmpty() const { return val_ == nullptr; }
++
++ /**
++ * If non-empty, destroy the underlying storage cell. |IsEmpty| will return
++ * true after this call.
++ */
++ V8_INLINE void Reset();
++
++ /**
++ * Construct a Local<T> from this handle.
++ */
++ Local<T> Get(Isolate* isolate) const { return Local<T>::New(isolate, *this); }
++
++ template <class S>
++ V8_INLINE bool operator==(const TracedReferenceBase<S>& that) const {
++ internal::Address* a = reinterpret_cast<internal::Address*>(val_);
++ internal::Address* b = reinterpret_cast<internal::Address*>(that.val_);
++ if (a == nullptr) return b == nullptr;
++ if (b == nullptr) return false;
++ return *a == *b;
++ }
++
++ template <class S>
++ V8_INLINE bool operator==(const Local<S>& that) const {
++ internal::Address* a = reinterpret_cast<internal::Address*>(val_);
++ internal::Address* b = reinterpret_cast<internal::Address*>(that.val_);
++ if (a == nullptr) return b == nullptr;
++ if (b == nullptr) return false;
++ return *a == *b;
++ }
++
++ template <class S>
++ V8_INLINE bool operator!=(const TracedReferenceBase<S>& that) const {
++ return !operator==(that);
++ }
++
++ template <class S>
++ V8_INLINE bool operator!=(const Local<S>& that) const {
++ return !operator==(that);
++ }
++
++ /**
++ * Assigns a wrapper class ID to the handle.
++ */
++ V8_INLINE void SetWrapperClassId(uint16_t class_id);
++
++ /**
++ * Returns the class ID previously assigned to this handle or 0 if no class ID
++ * was previously assigned.
++ */
++ V8_INLINE uint16_t WrapperClassId() const;
++
++ /**
++ * Adds a finalization callback to the handle. The type of this callback is
++ * similar to WeakCallbackType::kInternalFields, i.e., it will pass the
++ * parameter and the first two internal fields of the object.
++ *
++ * The callback is then supposed to reset the handle in the callback. No
++ * further V8 API may be called in this callback. In case additional work
++ * involving V8 needs to be done, a second callback can be scheduled using
++ * WeakCallbackInfo<void>::SetSecondPassCallback.
++ */
++ V8_INLINE void SetFinalizationCallback(
++ void* parameter, WeakCallbackInfo<void>::Callback callback);
++
++ template <class S>
++ V8_INLINE TracedReferenceBase<S>& As() const {
++ return reinterpret_cast<TracedReferenceBase<S>&>(
++ const_cast<TracedReferenceBase<T>&>(*this));
++ }
++
++ private:
++ enum DestructionMode { kWithDestructor, kWithoutDestructor };
++
++ /**
++ * An empty TracedReferenceBase without storage cell.
++ */
++ TracedReferenceBase() = default;
++
++ V8_INLINE static T* New(Isolate* isolate, T* that, void* slot,
++ DestructionMode destruction_mode);
++
++ T* val_ = nullptr;
++
++ friend class EmbedderHeapTracer;
++ template <typename F>
++ friend class Local;
++ friend class Object;
++ template <typename F>
++ friend class TracedGlobal;
++ template <typename F>
++ friend class TracedReference;
++ template <typename F>
++ friend class ReturnValue;
++};
++
++/**
++ * A traced handle with destructor that clears the handle. For more details see
++ * TracedReferenceBase.
++ */
++template <typename T>
++class TracedGlobal : public TracedReferenceBase<T> {
++ public:
++ using TracedReferenceBase<T>::Reset;
++
++ /**
++ * Destructor resetting the handle.
++ */
++ ~TracedGlobal() { this->Reset(); }
++
++ /**
+ * An empty TracedGlobal without storage cell.
+ */
+- TracedGlobal() = default;
++ TracedGlobal() : TracedReferenceBase<T>() {}
+
+ /**
+ * Construct a TracedGlobal from a Local.
+@@ -837,8 +952,9 @@ class TracedGlobal {
+ * pointing to the same object.
+ */
+ template <class S>
+- TracedGlobal(Isolate* isolate, Local<S> that)
+- : val_(New(isolate, *that, &val_)) {
++ TracedGlobal(Isolate* isolate, Local<S> that) : TracedReferenceBase<T>() {
++ this->val_ = this->New(isolate, that.val_, &this->val_,
++ TracedReferenceBase<T>::kWithDestructor);
+ TYPE_CHECK(T, S);
+ }
+
+@@ -905,121 +1021,126 @@ class TracedGlobal {
+ V8_INLINE TracedGlobal& operator=(const TracedGlobal<S>& rhs);
+
+ /**
+- * Returns true if this TracedGlobal is empty, i.e., has not been assigned an
+- * object.
+- */
+- bool IsEmpty() const { return val_ == nullptr; }
+-
+- /**
+- * If non-empty, destroy the underlying storage cell. |IsEmpty| will return
+- * true after this call.
+- */
+- V8_INLINE void Reset();
+-
+- /**
+ * If non-empty, destroy the underlying storage cell and create a new one with
+ * the contents of other if other is non empty
+ */
+ template <class S>
+ V8_INLINE void Reset(Isolate* isolate, const Local<S>& other);
+
+- /**
+- * Construct a Local<T> from this handle.
+- */
+- Local<T> Get(Isolate* isolate) const { return Local<T>::New(isolate, *this); }
+-
+ template <class S>
+ V8_INLINE TracedGlobal<S>& As() const {
+ return reinterpret_cast<TracedGlobal<S>&>(
+ const_cast<TracedGlobal<T>&>(*this));
+ }
++};
+
+- template <class S>
+- V8_INLINE bool operator==(const TracedGlobal<S>& that) const {
+- internal::Address* a = reinterpret_cast<internal::Address*>(**this);
+- internal::Address* b = reinterpret_cast<internal::Address*>(*that);
+- if (a == nullptr) return b == nullptr;
+- if (b == nullptr) return false;
+- return *a == *b;
+- }
++/**
++ * A traced handle without destructor that clears the handle. The embedder needs
++ * to ensure that the handle is not accessed once the V8 object has been
++ * reclaimed. This can happen when the handle is not passed through the
++ * EmbedderHeapTracer. For more details see TracedReferenceBase.
++ */
++template <typename T>
++class TracedReference : public TracedReferenceBase<T> {
++ public:
++ using TracedReferenceBase<T>::Reset;
++
++ /**
++ * An empty TracedReference without storage cell.
++ */
++ TracedReference() : TracedReferenceBase<T>() {}
+
++ /**
++ * Construct a TracedReference from a Local.
++ *
++ * When the Local is non-empty, a new storage cell is created
++ * pointing to the same object.
++ */
+ template <class S>
+- V8_INLINE bool operator==(const Local<S>& that) const {
+- internal::Address* a = reinterpret_cast<internal::Address*>(**this);
+- internal::Address* b = reinterpret_cast<internal::Address*>(*that);
+- if (a == nullptr) return b == nullptr;
+- if (b == nullptr) return false;
+- return *a == *b;
++ TracedReference(Isolate* isolate, Local<S> that) : TracedReferenceBase<T>() {
++ this->val_ = this->New(isolate, that.val_, &this->val_,
++ TracedReferenceBase<T>::kWithoutDestructor);
++ TYPE_CHECK(T, S);
+ }
+
+- template <class S>
+- V8_INLINE bool operator!=(const TracedGlobal<S>& that) const {
+- return !operator==(that);
++ /**
++ * Move constructor initializing TracedReference from an
++ * existing one.
++ */
++ V8_INLINE TracedReference(TracedReference&& other) {
++ // Forward to operator=.
++ *this = std::move(other);
+ }
+
+- template <class S>
+- V8_INLINE bool operator!=(const Local<S>& that) const {
+- return !operator==(that);
++ /**
++ * Move constructor initializing TracedReference from an
++ * existing one.
++ */
++ template <typename S>
++ V8_INLINE TracedReference(TracedReference<S>&& other) {
++ // Forward to operator=.
++ *this = std::move(other);
+ }
+
+ /**
+- * Assigns a wrapper class ID to the handle.
++ * Copy constructor initializing TracedReference from an
++ * existing one.
+ */
+- V8_INLINE void SetWrapperClassId(uint16_t class_id);
++ V8_INLINE TracedReference(const TracedReference& other) {
++ // Forward to operator=;
++ *this = other;
++ }
+
+ /**
+- * Returns the class ID previously assigned to this handle or 0 if no class ID
+- * was previously assigned.
++ * Copy constructor initializing TracedReference from an
++ * existing one.
+ */
+- V8_INLINE uint16_t WrapperClassId() const;
++ template <typename S>
++ V8_INLINE TracedReference(const TracedReference<S>& other) {
++ // Forward to operator=;
++ *this = other;
++ }
+
+ /**
+- * Adds a finalization callback to the handle. The type of this callback is
+- * similar to WeakCallbackType::kInternalFields, i.e., it will pass the
+- * parameter and the first two internal fields of the object.
+- *
+- * The callback is then supposed to reset the handle in the callback. No
+- * further V8 API may be called in this callback. In case additional work
+- * involving V8 needs to be done, a second callback can be scheduled using
+- * WeakCallbackInfo<void>::SetSecondPassCallback.
++ * Move assignment operator initializing TracedGlobal from an existing one.
+ */
+- V8_INLINE void SetFinalizationCallback(
+- void* parameter, WeakCallbackInfo<void>::Callback callback);
++ V8_INLINE TracedReference& operator=(TracedReference&& rhs);
+
+- private:
+- // Wrapping type used when clearing on destruction is required.
+- struct WrappedForDestruction {
+- T* value;
+-
+- explicit WrappedForDestruction(T* val) : value(val) {}
+- ~WrappedForDestruction();
+- operator T*() const { return value; }
+- T* operator*() const { return value; }
+- T* operator->() const { return value; }
+- WrappedForDestruction& operator=(const WrappedForDestruction& other) {
+- value = other.value;
+- return *this;
+- }
+- WrappedForDestruction& operator=(T* val) {
+- value = val;
+- return *this;
+- }
+- };
++ /**
++ * Move assignment operator initializing TracedGlobal from an existing one.
++ */
++ template <class S>
++ V8_INLINE TracedReference& operator=(TracedReference<S>&& rhs);
+
+- V8_INLINE static T* New(Isolate* isolate, T* that, void* slot);
++ /**
++ * Copy assignment operator initializing TracedGlobal from an existing one.
++ *
++ * Note: Prohibited when |other| has a finalization callback set through
++ * |SetFinalizationCallback|.
++ */
++ V8_INLINE TracedReference& operator=(const TracedReference& rhs);
+
+- T* operator*() const { return this->val_; }
++ /**
++ * Copy assignment operator initializing TracedGlobal from an existing one.
++ *
++ * Note: Prohibited when |other| has a finalization callback set through
++ * |SetFinalizationCallback|.
++ */
++ template <class S>
++ V8_INLINE TracedReference& operator=(const TracedReference<S>& rhs);
+
+- typename std::conditional<
+- TracedGlobalTrait<TracedGlobal<T>>::kRequiresExplicitDestruction,
+- WrappedForDestruction, T*>::type val_{nullptr};
++ /**
++ * If non-empty, destroy the underlying storage cell and create a new one with
++ * the contents of other if other is non empty
++ */
++ template <class S>
++ V8_INLINE void Reset(Isolate* isolate, const Local<S>& other);
+
+- friend class EmbedderHeapTracer;
+- template <typename F>
+- friend class Local;
+- friend class Object;
+- template <typename F>
+- friend class ReturnValue;
++ template <class S>
++ V8_INLINE TracedReference<S>& As() const {
++ return reinterpret_cast<TracedReference<S>&>(
++ const_cast<TracedReference<T>&>(*this));
++ }
+ };
+
+ /**
+@@ -3640,8 +3761,9 @@ class V8_EXPORT Object : public Value {
+ return object.val_->InternalFieldCount();
+ }
+
+- /** Same as above, but works for TracedGlobal. */
+- V8_INLINE static int InternalFieldCount(const TracedGlobal<Object>& object) {
++ /** Same as above, but works for TracedReferenceBase. */
++ V8_INLINE static int InternalFieldCount(
++ const TracedReferenceBase<Object>& object) {
+ return object.val_->InternalFieldCount();
+ }
+
+@@ -3666,7 +3788,7 @@ class V8_EXPORT Object : public Value {
+
+ /** Same as above, but works for TracedGlobal. */
+ V8_INLINE static void* GetAlignedPointerFromInternalField(
+- const TracedGlobal<Object>& object, int index) {
++ const TracedReferenceBase<Object>& object, int index) {
+ return object.val_->GetAlignedPointerFromInternalField(index);
+ }
+
+@@ -3956,7 +4078,7 @@ class ReturnValue {
+ template <typename S>
+ V8_INLINE void Set(const Global<S>& handle);
+ template <typename S>
+- V8_INLINE void Set(const TracedGlobal<S>& handle);
++ V8_INLINE void Set(const TracedReferenceBase<S>& handle);
+ template <typename S>
+ V8_INLINE void Set(const Local<S> handle);
+ // Fast primitive setters
+@@ -7376,7 +7498,8 @@ class V8_EXPORT EmbedderHeapTracer {
+ class V8_EXPORT TracedGlobalHandleVisitor {
+ public:
+ virtual ~TracedGlobalHandleVisitor() = default;
+- virtual void VisitTracedGlobalHandle(const TracedGlobal<Value>& value) = 0;
++ virtual void VisitTracedGlobalHandle(const TracedGlobal<Value>& handle) {}
++ virtual void VisitTracedReference(const TracedReference<Value>& handle) {}
+ };
+
+ /**
+@@ -7414,7 +7537,7 @@ class V8_EXPORT EmbedderHeapTracer {
+ virtual void RegisterV8References(
+ const std::vector<std::pair<void*, void*> >& embedder_fields) = 0;
+
+- void RegisterEmbedderReference(const TracedGlobal<v8::Value>& ref);
++ void RegisterEmbedderReference(const TracedReferenceBase<v8::Value>& ref);
+
+ /**
+ * Called at the beginning of a GC cycle.
+@@ -7475,32 +7598,35 @@ class V8_EXPORT EmbedderHeapTracer {
+ *
+ * If this returns false, then V8 may decide that the object referred to by
+ * such a handle is reclaimed. In that case:
+- * - No action is required if handles are used with destructors.
+- * - When run without destructors (by specializing
+- * |TracedGlobalTrait::kRequiresExplicitDestruction|) V8 calls
+- * |ResetHandleInNonTracingGC|.
+- *
+- * Note that the |handle| is different from the |TracedGlobal<T>| handle that
+- * the embedder holds for retaining the object. The embedder may use
+- * |TracedGlobal<T>::WrapperClassId()| to distinguish cases where it wants
+- * handles to be treated as roots from not being treated as roots.
++ * - No action is required if handles are used with destructors, i.e., by just
++ * using |TracedGlobal|.
++ * - When run without destructors, i.e., by using
++ * |TracedReference|, V8 calls |ResetHandleInNonTracingGC|.
++ *
++ * Note that the |handle| is different from the handle that the embedder holds
++ * for retaining the object. The embedder may use |WrapperClassId()| to
++ * distinguish cases where it wants handles to be treated as roots from not
++ * being treated as roots.
+ */
+ virtual bool IsRootForNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
+- return true;
+- }
++ const v8::TracedReference<v8::Value>& handle);
++ virtual bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>& handle);
+
+ /**
+ * Used in combination with |IsRootForNonTracingGC|. Called by V8 when an
+ * object that is backed by a handle is reclaimed by a non-tracing garbage
+ * collection. It is up to the embedder to reset the original handle.
+ *
+- * Note that the |handle| is different from the |TracedGlobal<T>| handle that
+- * the embedder holds for retaining the object. It is up to the embedder to
+- * find the orignal |TracedGlobal<T>| handle via the object or class id.
++ * Note that the |handle| is different from the handle that the embedder holds
++ * for retaining the object. It is up to the embedder to find the original
++ * handle via the object or class id.
+ */
+ virtual void ResetHandleInNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {}
++ const v8::TracedReference<v8::Value>& handle);
++ V8_DEPRECATE_SOON(
++ "Use TracedReference version when not requiring destructors.",
++ virtual void ResetHandleInNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle));
+
+ /*
+ * Called by the embedder to immediately perform a full garbage collection.
+@@ -9103,8 +9229,12 @@ class V8_EXPORT V8 {
+ template <class T>
+ friend class Maybe;
+ template <class T>
++ friend class TracedReferenceBase;
++ template <class T>
+ friend class TracedGlobal;
+ template <class T>
++ friend class TracedReference;
++ template <class T>
+ friend class WeakCallbackInfo;
+ template <class T> friend class Eternal;
+ template <class T> friend class PersistentBase;
+@@ -9975,7 +10105,7 @@ Local<T> Local<T>::New(Isolate* isolate,
+ }
+
+ template <class T>
+-Local<T> Local<T>::New(Isolate* isolate, const TracedGlobal<T>& that) {
++Local<T> Local<T>::New(Isolate* isolate, const TracedReferenceBase<T>& that) {
+ return New(isolate, that.val_);
+ }
+
+@@ -10156,26 +10286,20 @@ Global<T>& Global<T>::operator=(Global<S
+ }
+
+ template <class T>
+-TracedGlobal<T>::WrappedForDestruction::~WrappedForDestruction() {
+- if (value == nullptr) return;
+- V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(value));
+- value = nullptr;
+-}
+-
+-template <class T>
+-T* TracedGlobal<T>::New(Isolate* isolate, T* that, void* slot) {
++T* TracedReferenceBase<T>::New(Isolate* isolate, T* that, void* slot,
++ DestructionMode destruction_mode) {
+ if (that == nullptr) return nullptr;
+ internal::Address* p = reinterpret_cast<internal::Address*>(that);
+ return reinterpret_cast<T*>(V8::GlobalizeTracedReference(
+ reinterpret_cast<internal::Isolate*>(isolate), p,
+ reinterpret_cast<internal::Address*>(slot),
+- TracedGlobalTrait<TracedGlobal<T>>::kRequiresExplicitDestruction));
++ destruction_mode == kWithDestructor));
+ }
+
+ template <class T>
+-void TracedGlobal<T>::Reset() {
++void TracedReferenceBase<T>::Reset() {
+ if (IsEmpty()) return;
+- V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(**this));
++ V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(val_));
+ val_ = nullptr;
+ }
+
+@@ -10185,7 +10309,8 @@ void TracedGlobal<T>::Reset(Isolate* iso
+ TYPE_CHECK(T, S);
+ Reset();
+ if (other.IsEmpty()) return;
+- this->val_ = New(isolate, other.val_, &val_);
++ this->val_ = this->New(isolate, other.val_, &this->val_,
++ TracedReferenceBase<T>::kWithDestructor);
+ }
+
+ template <class T>
+@@ -10233,28 +10358,83 @@ TracedGlobal<T>& TracedGlobal<T>::operat
+ }
+
+ template <class T>
+-void TracedGlobal<T>::SetWrapperClassId(uint16_t class_id) {
++template <class S>
++void TracedReference<T>::Reset(Isolate* isolate, const Local<S>& other) {
++ TYPE_CHECK(T, S);
++ Reset();
++ if (other.IsEmpty()) return;
++ this->val_ = this->New(isolate, other.val_, &this->val_,
++ TracedReferenceBase<T>::kWithoutDestructor);
++}
++
++template <class T>
++template <class S>
++TracedReference<T>& TracedReference<T>::operator=(TracedReference<S>&& rhs) {
++ TYPE_CHECK(T, S);
++ *this = std::move(rhs.template As<T>());
++ return *this;
++}
++
++template <class T>
++template <class S>
++TracedReference<T>& TracedReference<T>::operator=(
++ const TracedReference<S>& rhs) {
++ TYPE_CHECK(T, S);
++ *this = rhs.template As<T>();
++ return *this;
++}
++
++template <class T>
++TracedReference<T>& TracedReference<T>::operator=(TracedReference&& rhs) {
++ if (this != &rhs) {
++ this->Reset();
++ if (rhs.val_ != nullptr) {
++ this->val_ = rhs.val_;
++ V8::MoveTracedGlobalReference(
++ reinterpret_cast<internal::Address**>(&rhs.val_),
++ reinterpret_cast<internal::Address**>(&this->val_));
++ rhs.val_ = nullptr;
++ }
++ }
++ return *this;
++}
++
++template <class T>
++TracedReference<T>& TracedReference<T>::operator=(const TracedReference& rhs) {
++ if (this != &rhs) {
++ this->Reset();
++ if (rhs.val_ != nullptr) {
++ V8::CopyTracedGlobalReference(
++ reinterpret_cast<const internal::Address* const*>(&rhs.val_),
++ reinterpret_cast<internal::Address**>(&this->val_));
++ }
++ }
++ return *this;
++}
++
++template <class T>
++void TracedReferenceBase<T>::SetWrapperClassId(uint16_t class_id) {
+ typedef internal::Internals I;
+ if (IsEmpty()) return;
+- internal::Address* obj = reinterpret_cast<internal::Address*>(**this);
++ internal::Address* obj = reinterpret_cast<internal::Address*>(val_);
+ uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
+ *reinterpret_cast<uint16_t*>(addr) = class_id;
+ }
+
+ template <class T>
+-uint16_t TracedGlobal<T>::WrapperClassId() const {
++uint16_t TracedReferenceBase<T>::WrapperClassId() const {
+ typedef internal::Internals I;
+ if (IsEmpty()) return 0;
+- internal::Address* obj = reinterpret_cast<internal::Address*>(**this);
++ internal::Address* obj = reinterpret_cast<internal::Address*>(val_);
+ uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
+ return *reinterpret_cast<uint16_t*>(addr);
+ }
+
+ template <class T>
+-void TracedGlobal<T>::SetFinalizationCallback(
++void TracedReferenceBase<T>::SetFinalizationCallback(
+ void* parameter, typename WeakCallbackInfo<void>::Callback callback) {
+- V8::SetFinalizationCallbackTraced(
+- reinterpret_cast<internal::Address*>(**this), parameter, callback);
++ V8::SetFinalizationCallbackTraced(reinterpret_cast<internal::Address*>(val_),
++ parameter, callback);
+ }
+
+ template <typename T>
+@@ -10273,12 +10453,12 @@ void ReturnValue<T>::Set(const Global<S>
+
+ template <typename T>
+ template <typename S>
+-void ReturnValue<T>::Set(const TracedGlobal<S>& handle) {
++void ReturnValue<T>::Set(const TracedReferenceBase<S>& handle) {
+ TYPE_CHECK(T, S);
+ if (V8_UNLIKELY(handle.IsEmpty())) {
+ *value_ = GetDefaultValue();
+ } else {
+- *value_ = *reinterpret_cast<internal::Address*>(*handle);
++ *value_ = *reinterpret_cast<internal::Address*>(handle.val_);
+ }
+ }
+
+diff -up chromium-78.0.3904.70/v8/src/api/api.cc.implement-tracedreference chromium-78.0.3904.70/v8/src/api/api.cc
+--- chromium-78.0.3904.70/v8/src/api/api.cc.implement-tracedreference 2019-10-24 09:18:56.712105100 -0400
++++ chromium-78.0.3904.70/v8/src/api/api.cc 2019-10-24 09:20:17.428555637 -0400
+@@ -10346,11 +10346,12 @@ void EmbedderHeapTracer::DecreaseAllocat
+ }
+
+ void EmbedderHeapTracer::RegisterEmbedderReference(
+- const TracedGlobal<v8::Value>& ref) {
++ const TracedReferenceBase<v8::Value>& ref) {
+ if (ref.IsEmpty()) return;
+
+ i::Heap* const heap = reinterpret_cast<i::Isolate*>(isolate_)->heap();
+- heap->RegisterExternallyReferencedObject(reinterpret_cast<i::Address*>(*ref));
++ heap->RegisterExternallyReferencedObject(
++ reinterpret_cast<i::Address*>(ref.val_));
+ }
+
+ void EmbedderHeapTracer::IterateTracedGlobalHandles(
+@@ -10360,6 +10361,26 @@ void EmbedderHeapTracer::IterateTracedGl
+ isolate->global_handles()->IterateTracedNodes(visitor);
+ }
+
++bool EmbedderHeapTracer::IsRootForNonTracingGC(
++ const v8::TracedReference<v8::Value>& handle) {
++ return true;
++}
++
++bool EmbedderHeapTracer::IsRootForNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ return true;
++}
++
++void EmbedderHeapTracer::ResetHandleInNonTracingGC(
++ const v8::TracedReference<v8::Value>& handle) {
++ UNREACHABLE();
++}
++
++void EmbedderHeapTracer::ResetHandleInNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ UNREACHABLE();
++}
++
+ namespace internal {
+
+ const size_t HandleScopeImplementer::kEnteredContextsOffset =
+diff -up chromium-78.0.3904.70/v8/src/handles/global-handles.cc.implement-tracedreference chromium-78.0.3904.70/v8/src/handles/global-handles.cc
+--- chromium-78.0.3904.70/v8/src/handles/global-handles.cc.implement-tracedreference 2019-10-24 09:20:39.954123225 -0400
++++ chromium-78.0.3904.70/v8/src/handles/global-handles.cc 2019-10-24 09:21:45.911857072 -0400
+@@ -901,8 +901,13 @@ void GlobalHandles::IdentifyWeakUnmodifi
+ DCHECK(node->is_root());
+ if (is_unmodified(node->location())) {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+- node->set_root(tracer->IsRootForNonTracingGC(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value)));
++ if (node->has_destructor()) {
++ node->set_root(tracer->IsRootForNonTracingGC(
++ *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value)));
++ } else {
++ node->set_root(tracer->IsRootForNonTracingGC(
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value)));
++ }
+ }
+ }
+ }
+@@ -990,7 +995,7 @@ void GlobalHandles::IterateYoungWeakUnmo
+ } else {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+ tracer->ResetHandleInNonTracingGC(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value));
+ DCHECK(!node->IsInUse());
+ }
+
+@@ -1271,8 +1276,13 @@ void GlobalHandles::IterateTracedNodes(
+ for (TracedNode* node : *traced_nodes_) {
+ if (node->IsInUse()) {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+- visitor->VisitTracedGlobalHandle(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ if (node->has_destructor()) {
++ visitor->VisitTracedGlobalHandle(
++ *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ } else {
++ visitor->VisitTracedReference(
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value));
++ }
+ }
+ }
+ }
+diff -up chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h.implement-tracedreference chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h
+--- chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h.implement-tracedreference 2019-10-24 09:22:03.664519559 -0400
++++ chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h 2019-10-24 09:22:45.197729964 -0400
+@@ -57,7 +57,12 @@ class V8_EXPORT_PRIVATE LocalEmbedderHea
+ bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>& handle) {
+ return !InUse() || remote_tracer_->IsRootForNonTracingGC(handle);
+ }
+- void ResetHandleInNonTracingGC(const v8::TracedGlobal<v8::Value>& handle) {
++
++ bool IsRootForNonTracingGC(const v8::TracedReference<v8::Value>& handle) {
++ return !InUse() || remote_tracer_->IsRootForNonTracingGC(handle);
++ }
++
++ void ResetHandleInNonTracingGC(const v8::TracedReference<v8::Value>& handle) {
+ // Resetting is only called when IsRootForNonTracingGC returns false which
+ // can only happen the EmbedderHeapTracer is set on API level.
+ DCHECK(InUse());
commit 5d755bc2f71af8bed245840799ff57636a192074
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 13:09:01 2019 -0400
fix issue in my manual patch, apply other gentoo 78 fixes
diff --git a/chromium-78-gcc-noexcept.patch b/chromium-78-gcc-noexcept.patch
new file mode 100644
index 0000000..8ddb53f
--- /dev/null
+++ b/chromium-78-gcc-noexcept.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/chromium-78-include.patch b/chromium-78-include.patch
new file mode 100644
index 0000000..3db38ea
--- /dev/null
+++ b/chromium-78-include.patch
@@ -0,0 +1,40 @@
+From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001
+From: David Landell <landell(a)vewd.com>
+Date: Fri, 13 Sep 2019 12:24:13 +0000
+Subject: [PATCH] Add missing include for unique_ptr
+
+Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137
+Reviewed-by: Henrik Bostrm <hbos(a)chromium.org>
+Commit-Queue: Henrik Bostrm <hbos(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696355}
+---
+
+diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
+index 959440f..c3fd542 100644
+--- a/third_party/blink/public/platform/web_rtc_rtp_source.h
++++ b/third_party/blink/public/platform/web_rtc_rtp_source.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+
++#include <memory>
++
+ #include "base/optional.h"
+ #include "third_party/blink/public/platform/web_common.h"
+
+Missing include due to reverting ProfileManagerObserver
+---
+
+diff --git a/chrome/browser/web_applications/extensions/bookmark_app_util.cc b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
+index ee4b70a..b31e5f5 100644
+--- a/chrome/browser/web_applications/extensions/bookmark_app_util.cc
++++ b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
+@@ -7,6 +7,7 @@
+ #include "base/strings/string_piece.h"
+ #include "base/values.h"
+ #include "chrome/browser/extensions/extension_service.h"
++#include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/web_applications/components/app_registrar.h"
+ #include "chrome/browser/web_applications/components/web_app_provider_base.h"
+ #include "chrome/common/chrome_features.h"
diff --git a/chromium-78-pm-crash.patch b/chromium-78-pm-crash.patch
new file mode 100644
index 0000000..ada2661
--- /dev/null
+++ b/chromium-78-pm-crash.patch
@@ -0,0 +1,43 @@
+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}
+---
+
+diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
+index b60df76d..7d02af7 100644
+--- a/chrome/browser/profiles/profile_manager.h
++++ b/chrome/browser/profiles/profile_manager.h
+@@ -409,6 +409,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
+@@ -450,8 +454,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
diff --git a/chromium-78-protobuf-export.patch b/chromium-78-protobuf-export.patch
new file mode 100644
index 0000000..ddb9e80
--- /dev/null
+++ b/chromium-78-protobuf-export.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
+index b5b193c..4434854 100644
+--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
++++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
+@@ -804,7 +804,7 @@ class StringTypeHandler {
+ // RepeatedPtrField is like RepeatedField, but used for repeated strings or
+ // Messages.
+ template <typename Element>
+-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
++class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+ public:
+ RepeatedPtrField();
+ explicit RepeatedPtrField(Arena* arena);
diff --git a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
index 6ffe580..cb436ec 100644
--- a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
+++ b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
@@ -1,7 +1,7 @@
diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst chromium-78.0.3904.70/net/dns/dns_util.cc
---- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-23 11:21:55.805646136 -0400
-+++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 11:23:52.693140706 -0400
-@@ -139,11 +139,11 @@ struct DohUpgradeEntry {
+--- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-21 15:06:38.000000000 -0400
++++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 12:55:27.886546918 -0400
+@@ -139,12 +139,12 @@ struct DohUpgradeEntry {
const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
};
@@ -11,10 +11,12 @@ diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst
// DohProviderId histogram suffix list in
// tools/metrics/histograms/histograms.xml.
- static const base::NoDestructor<std::vector<const DohUpgradeEntry>>
+- upgradable_servers({
+ static const base::NoDestructor<std::vector<DohUpgradeEntry>>
- upgradable_servers({
++ upgradable_servers(std::initializer_list<DohUpgradeEntry>{
DohUpgradeEntry(
"CleanBrowsingAdult",
+ {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>
std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers(
const std::vector<IPEndPoint>& dns_servers,
diff --git a/chromium.spec b/chromium.spec
index bfa6fe8..764e85d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -222,6 +222,14 @@ Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
# https://chromium.googlesource.com/chromium/src/+/f4c3c329588b78af63aad8b4...
Patch61: chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch62: chromium-78-gcc-noexcept.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch63: chromium-78-pm-crash.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch64: chromium-78-protobuf-export.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-78-include.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -747,6 +755,10 @@ udev.
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
%patch60 -p1 -b .gcc-sizet
%patch61 -p1 -b .gcc-DohUpgradeEntry-nonconst
+%patch62 -p1 -b .gcc-v8-noexcept
+%patch63 -p1 -b .pm-crash
+%patch64 -p1 -b .protobuf-export
+%patch65 -p1 -b .missing-includes
# Fedora branded user agent
%if 0%{?fedora}
commit dd5dd20f917b27c6596de8344b9553ad545e71bb
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 12:02:13 2019 -0400
preserve third_party/catapult/tracing/third_party/jpeg-js, add another upstream gcc fix
diff --git a/chromium.spec b/chromium.spec
index 3f62331..bfa6fe8 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -220,6 +220,8 @@ Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
# https://chromium.googlesource.com/chromium/src/+/9662ec844017690d5fd56bf0...
Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/f4c3c329588b78af63aad8b4...
+Patch61: chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -744,6 +746,7 @@ udev.
%patch58 -p1 -b .gcc-invalid-pragma
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
%patch60 -p1 -b .gcc-sizet
+%patch61 -p1 -b .gcc-DohUpgradeEntry-nonconst
# Fedora branded user agent
%if 0%{?fedora}
@@ -962,6 +965,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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' \
commit e4b93e833781790c8f0a03f103354e7ee8b97245
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 11:26:02 2019 -0400
another gcc fix from upstream
diff --git a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
new file mode 100644
index 0000000..6ffe580
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
@@ -0,0 +1,47 @@
+diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst chromium-78.0.3904.70/net/dns/dns_util.cc
+--- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-23 11:21:55.805646136 -0400
++++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 11:23:52.693140706 -0400
+@@ -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>
+ 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::DnsOverHttpsServe
+ 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) {
commit d3e96e671b46f81f9fa7d5bd17631e7f06199b83
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 11:19:54 2019 -0400
more 78 fixes
diff --git a/chromium-78.0.3904.70-gcc-sizet-fix.patch b/chromium-78.0.3904.70-gcc-sizet-fix.patch
new file mode 100644
index 0000000..b95b0ed
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-sizet-fix.patch
@@ -0,0 +1,20 @@
+diff -up chromium-78.0.3904.70/base/containers/intrusive_heap.h.gcc-sizet chromium-78.0.3904.70/base/containers/intrusive_heap.h
+--- chromium-78.0.3904.70/base/containers/intrusive_heap.h.gcc-sizet 2019-10-23 11:02:56.767907986 -0400
++++ chromium-78.0.3904.70/base/containers/intrusive_heap.h 2019-10-23 11:04:58.317351636 -0400
+@@ -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;
diff --git a/chromium.spec b/chromium.spec
index 675a54b..3f62331 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -218,6 +218,8 @@ Patch57: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
# https://chromium.googlesource.com/chromium/src/+/2db67d40ef766c63a7389686...
Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
+# https://chromium.googlesource.com/chromium/src/+/9662ec844017690d5fd56bf0...
+Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -741,6 +743,7 @@ udev.
%patch57 -p1 -b .gcc-fix-zlib-symbol-visibility
%patch58 -p1 -b .gcc-invalid-pragma
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
+%patch60 -p1 -b .gcc-sizet
# Fedora branded user agent
%if 0%{?fedora}
@@ -903,7 +906,7 @@ ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
'base/third_party/cityhash' \
- 'base/third_party/dmg_fp' \
+ 'base/third_party/double_conversion' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
'base/third_party/libevent' \
commit 6944f231efaf722f2d99cae67145721be2eb8826
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 10:20:43 2019 -0400
initial v78 commit, note, NOT READY FOR BUILD YET
diff --git a/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch b/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
deleted file mode 100644
index d071e81..0000000
--- a/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h
---- chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 2019-01-08 13:27:25.193614727 -0500
-+++ chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h 2019-01-08 13:27:35.161392234 -0500
-@@ -1231,7 +1231,7 @@ typedef unsigned long int ulong;
- "d"(LSS_SYSCALL_ARG(parent_tidptr)),
- "r"(LSS_SYSCALL_ARG(newtls)),
- "r"(LSS_SYSCALL_ARG(child_tidptr))
-- : "rsp", "memory", "r8", "r10", "r11", "rcx");
-+ : "memory", "r8", "r10", "r11", "rcx");
- }
- LSS_RETURN(int, __res);
- }
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
deleted file mode 100644
index cc91d1e..0000000
--- a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
---- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
-+++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
-@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
- DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
- };
-
--class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
-- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
-+class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
-+ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
- : public CSSPropertyValueSet {
- public:
- ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
deleted file mode 100644
index 64532df..0000000
--- a/chromium-76.0.3809.100-vtable-symbol-undefined.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
---- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
-+++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
-@@ -18,6 +18,7 @@
- #include "net/quic/crypto/proof_verifier_chromium.h"
- #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
- #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
-+#include "net/quic/platform/impl/quic_flags_impl.cc"
-
- DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
- certificate_file,
diff --git a/chromium-77.0.3865.120-silence-outdated-build-noise.patch b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
index 22e1e78..f2d4735 100644
--- a/chromium-77.0.3865.120-silence-outdated-build-noise.patch
+++ b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
@@ -32,7 +32,7 @@ index 432e3789eced0..07850fdf80cd7 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/google/google_brand.h"
#include "chrome/common/chrome_switches.h"
-@@ -74,6 +75,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
+@@ -73,6 +74,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
// The number of days after which we identify a build/install as outdated.
constexpr base::TimeDelta kOutdatedBuildAge = base::TimeDelta::FromDays(12 * 7);
@@ -47,13 +47,14 @@ index 432e3789eced0..07850fdf80cd7 100644
// Return the string that was passed as a value for the
// kCheckForUpdateIntervalSec switch.
std::string CmdLineInterval() {
-@@ -403,6 +412,9 @@ bool UpgradeDetectorImpl::DetectOutdated
- if (base::IsMachineExternallyManaged())
+@@ -406,6 +415,10 @@ bool UpgradeDetectorImpl::DetectOutdated
return false;
+ }
#endif
+
+ if (!ShouldDetectOutdatedBuilds())
+ return false;
++
}
base::Time network_time;
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
deleted file mode 100644
index 82e2958..0000000
--- a/chromium-77.0.3865.75-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
-@@ -21,6 +21,7 @@
- #include "components/version_info/version_info.h"
- #include "content/public/common/content_switches.h"
- #include "content/public/common/user_agent.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerFreezeQUICUaBrowsertest,
- ::testing::Values(true, false));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -50,6 +52,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -79,6 +82,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
-@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
-@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
-@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
-@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
-+++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
---- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
-@@ -36,6 +36,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
---- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/remote.h"
- #include "mojo/public/cpp/bindings/self_owned_receiver.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -115,6 +118,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
- #include "net/ftp/ftp_auth_cache.h"
- #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
- true /* was_cached */, true /* is_navigation */);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
---- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
---- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
-@@ -239,15 +239,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -300,6 +291,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -311,6 +311,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
deleted file mode 100644
index 6d77299..0000000
--- a/chromium-77.0.3865.75-gcc-abstract-class.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 26 Jul 2019 16:48:06 +0000
-Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
-
-The method UploadForDeepScanning gets a Request as parameter. But Request is an
-abstract class, so GCC will not allow that declaration (polimorphycs should be
-passed by reference). Use std::unique_ptr so BinaryUploadService can assume
-ownership.
-
-Bug: 819294
-Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
-Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#681333}
----
-
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-index 6430c89..4e90487 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-@@ -10,7 +10,7 @@
- namespace safe_browsing {
-
- void BinaryUploadService::UploadForDeepScanning(
-- BinaryUploadService::Request request) {
-+ std::unique_ptr<BinaryUploadService::Request> request) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- NOTREACHED();
- }
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-index d2dfd83..9b6f395 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-@@ -5,6 +5,8 @@
- #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
- #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
-
-+#include <memory>
-+
- #include "base/callback.h"
- #include "components/safe_browsing/proto/webprotect.pb.h"
-
-@@ -40,6 +42,7 @@
- public:
- // |callback| will run on the UI thread.
- explicit Request(Callback callback);
-+ virtual ~Request() = default;
- Request(const Request&) = delete;
- Request& operator=(const Request&) = delete;
-
-@@ -67,7 +70,7 @@
- // Upload the given file contents for deep scanning. The results will be
- // returned asynchronously by calling |request|'s |callback|. This must be
- // called on the UI thread.
-- void UploadForDeepScanning(Request request);
-+ void UploadForDeepScanning(std::unique_ptr<Request> request);
- };
-
- } // namespace safe_browsing
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
deleted file mode 100644
index 55d78d1..0000000
--- a/chromium-77.0.3865.75-harfbuzz-subset.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Mon, 29 Jul 2019 10:54:28 +0000
-Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
-
-When building HarfBuzz as part of Chromium, there is a single source set
-with all the files we need in the build.
-
-Upstream HarfBuzz, on the other hand, produces a few different libraries:
-harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
-true, we were only looking for (and using) harfbuzz.pc with pkg-config even
-though we also use symbols from libharfbuzz-subset.so. This resulted in
-errors when linking:
-
- ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
- SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
-
-as reported in
-https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
-
-Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
-Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#681760}
----
-
-diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
-index 37d8e33..72013eb1d 100644
---- a/third_party/harfbuzz-ng/BUILD.gn
-+++ b/third_party/harfbuzz-ng/BUILD.gn
-@@ -16,7 +16,10 @@
- "//third_party:freetype_harfbuzz",
- "//third_party/freetype:freetype_source",
- ]
-- packages = [ "harfbuzz" ]
-+ packages = [
-+ "harfbuzz",
-+ "harfbuzz-subset",
-+ ]
- }
- } else {
- config("harfbuzz_config") {
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
deleted file mode 100644
index 3ac1770..0000000
--- a/chromium-77.0.3865.75-missing-limits.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
-From: Dave Tapuska <dtapuska(a)chromium.org>
-Date: Mon, 12 Aug 2019 22:30:13 +0000
-Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
-
-Some configurations fail to build, limits should have been included.
-
-BUG=992832
-
-Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
-Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
-Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
-Cr-Commit-Position: refs/heads/master@{#686214}
----
-
-diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
-index 384566a..68d83e1 100644
---- a/third_party/blink/renderer/platform/exported/web_time_range.cc
-+++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
-@@ -31,6 +31,7 @@
- #include "third_party/blink/public/platform/web_time_range.h"
-
- #include <cmath>
-+#include <limits>
-
- namespace blink {
-
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
deleted file mode 100644
index d6c45ad..0000000
--- a/chromium-77.0.3865.75-unbundle-zlib.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
-From: Your Name <you(a)example.com>
-Date: Fri, 28 Jun 2019 15:56:23 +0000
-Subject: [PATCH] update zlib
-
----
- third_party/perfetto/gn/BUILD.gn | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
-index c951f5f..297eee3 100644
---- a/third_party/perfetto/gn/BUILD.gn
-+++ b/third_party/perfetto/gn/BUILD.gn
-@@ -200,7 +200,7 @@ group("zlib") {
- "//buildtools:zlib",
- ]
- } else if (build_with_chromium) {
-- public_configs = [ "//third_party/zlib:zlib_config" ]
-+ public_configs = [ "//third_party/zlib:system_zlib" ]
- public_deps = [
- "//third_party/zlib",
- ]
---
-2.21.0
-
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
deleted file mode 100644
index f921f1a..0000000
--- a/chromium-77.0.3865.90-linked-hash-set.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
-From: Jeremy Roman <jbroman(a)chromium.org>
-Date: Wed, 07 Aug 2019 13:26:48 +0000
-Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
-
-Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
-
-Bug: 980025
-Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
-Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#684731}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-index 0efc8fb..90063cb 100644
---- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
-+++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-@@ -133,6 +133,10 @@
-
- struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
- STATIC_ONLY(FontCacheKeyTraits);
-+
-+ // std::string's empty state need not be zero in all implementations,
-+ // and it is held within FontFaceCreationParams.
-+ static const bool kEmptyValueIsZero = false;
- };
-
- } // namespace blink
-diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-index b35b6e9..77e524c 100644
---- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-+++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-@@ -146,6 +146,11 @@
- LinkedHashSetNodeBase* next)
- : LinkedHashSetNodeBase(prev, next), value_(value) {}
-
-+ LinkedHashSetNode(ValueArg&& value,
-+ LinkedHashSetNodeBase* prev,
-+ LinkedHashSetNodeBase* next)
-+ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
-+
- LinkedHashSetNode(LinkedHashSetNode&& other)
- : LinkedHashSetNodeBase(std::move(other)),
- value_(std::move(other.value_)) {}
-@@ -445,10 +450,13 @@
-
- // The slot is empty when the next_ field is zero so it's safe to zero
- // the backing.
-- static const bool kEmptyValueIsZero = true;
-+ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
-
- static const bool kHasIsEmptyValueFunction = true;
- static bool IsEmptyValue(const Node& node) { return !node.next_; }
-+ static Node EmptyValue() {
-+ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
-+ }
-
- static const int kDeletedValue = -1;
-
-diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-index 4c3f899..cd1be00 100644
---- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-+++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-@@ -487,6 +487,7 @@
- };
-
- struct Complicated {
-+ Complicated() : Complicated(0) {}
- Complicated(int value) : simple_(value) { objects_constructed_++; }
-
- Complicated(const Complicated& other) : simple_(other.simple_) {
-@@ -495,9 +496,6 @@
-
- Simple simple_;
- static int objects_constructed_;
--
-- private:
-- Complicated() = delete;
- };
-
- int Complicated::objects_constructed_ = 0;
-@@ -731,4 +729,45 @@
-
- } // anonymous namespace
-
-+// A unit type which objects to its state being initialized wrong.
-+struct InvalidZeroValue {
-+ InvalidZeroValue() = default;
-+ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
-+ ~InvalidZeroValue() { CHECK(ok_); }
-+ bool IsHashTableDeletedValue() const { return deleted_; }
-+
-+ bool ok_ = true;
-+ bool deleted_ = false;
-+};
-+
-+template <>
-+struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
-+ static const bool kEmptyValueIsZero = false;
-+};
-+
-+template <>
-+struct DefaultHash<InvalidZeroValue> {
-+ struct Hash {
-+ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
-+ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
-+ return true;
-+ }
-+ };
-+};
-+
-+template <typename Set>
-+class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
-+
-+using InvalidZeroValueSetTypes =
-+ testing::Types<ListHashSet<InvalidZeroValue>,
-+ ListHashSet<InvalidZeroValue, 1>,
-+ LinkedHashSet<InvalidZeroValue>>;
-+TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
-+
-+TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
-+ using Set = TypeParam;
-+ Set set;
-+ set.insert(InvalidZeroValue());
-+}
-+
- } // namespace WTF
diff --git a/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch b/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
new file mode 100644
index 0000000..eb0efbd
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
@@ -0,0 +1,16 @@
+diff -up chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc.invalid-pragma chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc
+--- chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc.invalid-pragma 2019-10-23 10:00:41.361932768 -0400
++++ chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc 2019-10-23 10:02:09.778100948 -0400
+@@ -7,9 +7,10 @@
+ // AFDO can mess with them. Better not to use AFDO there. This is a
+ // temporary hack. We will add a mechanism in the build system to
+ // avoid using -fauto-profile for tcmalloc files.
+-#if !defined(__clang__) && (defined(OS_CHROMEOS) || __GNUC__ > 5)
++#if !defined(__clang__) && \
++ (defined(OS_CHROMEOS) || (__GNUC__ > 5 && __GNUC__ < 7))
+ // Note that this option only seems to be available in the chromeos GCC 4.9
+-// toolchain, and stock GCC 5 and up.
++// toolchain, and stock GCC 5 upto 7.
+ #pragma GCC optimize ("no-auto-profile")
+ #endif
+
diff --git a/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch b/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
new file mode 100644
index 0000000..e5502cf
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
@@ -0,0 +1,12 @@
+diff -up chromium-78.0.3904.70/base/logging.h.constexpr chromium-78.0.3904.70/base/logging.h
+--- chromium-78.0.3904.70/base/logging.h.constexpr 2019-10-23 10:06:53.434313793 -0400
++++ chromium-78.0.3904.70/base/logging.h 2019-10-23 10:07:17.490853038 -0400
+@@ -530,7 +530,7 @@ BASE_EXPORT extern std::ostream* g_swall
+ class CheckOpResult {
+ public:
+ // |message| must be non-null if and only if the check failed.
+- CheckOpResult(std::string* message) : message_(message) {}
++ constexpr CheckOpResult(std::string* message) : message_(message) {}
+ // Returns true if the check succeeded.
+ operator bool() const { return !message_; }
+ // Returns the message.
diff --git a/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch b/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
new file mode 100644
index 0000000..6785b09
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
@@ -0,0 +1,24 @@
+diff -up chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+--- chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:16.153251961 -0400
++++ chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2019-10-23 08:58:36.896862347 -0400
+@@ -1486,7 +1486,7 @@ struct kernel_stat {
+ "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+ "r"(LSS_SYSCALL_ARG(newtls)),
+ "r"(LSS_SYSCALL_ARG(child_tidptr))
+- : "rsp", "memory", "r8", "r10", "r11", "rcx");
++ : "memory", "r8", "r10", "r11", "rcx");
+ }
+ LSS_RETURN(int, __res);
+ }
+diff -up chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h
+--- chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:59.623435488 -0400
++++ chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h 2019-10-23 08:59:16.113125772 -0400
+@@ -1485,7 +1485,7 @@ struct kernel_stat {
+ "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+ "r"(LSS_SYSCALL_ARG(newtls)),
+ "r"(LSS_SYSCALL_ARG(child_tidptr))
+- : "rsp", "memory", "r8", "r10", "r11", "rcx");
++ : "memory", "r8", "r10", "r11", "rcx");
+ }
+ LSS_RETURN(int, __res);
+ }
diff --git a/chromium-78.0.3904.70-unbundle-zlib.patch b/chromium-78.0.3904.70-unbundle-zlib.patch
new file mode 100644
index 0000000..155990e
--- /dev/null
+++ b/chromium-78.0.3904.70-unbundle-zlib.patch
@@ -0,0 +1,12 @@
+diff -up chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn
+--- chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib 2019-10-23 09:25:44.419884187 -0400
++++ chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn 2019-10-23 09:29:53.553442745 -0400
+@@ -276,7 +276,7 @@ if (enable_perfetto_trace_processor || e
+ "//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-78.0.3904.70-vtable-symbol-undefined.patch b/chromium-78.0.3904.70-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..13751a2
--- /dev/null
+++ b/chromium-78.0.3904.70-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-10-23 09:12:08.754351798 -0400
++++ chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-10-23 09:19:28.278431430 -0400
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(
+ bool,
diff --git a/chromium.spec b/chromium.spec
index 8994527..675a54b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -154,15 +154,15 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 77
+%global majorversion 78
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.120
-Release: 4%{?dist}
+Version: %{majorversion}.0.3904.70
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -191,7 +191,7 @@ Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
Patch11: chromium-widevine-other-locations.patch
# Try to fix version.py for Rawhide
@@ -200,34 +200,24 @@ Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# In GCC one can't use alignas() for exported classes
-# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch51: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
-# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch54: chromium-77.0.3865.75-certificate-transparency.patch
+Patch52: chromium-78.0.3904.70-vtable-symbol-undefined.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch53: chromium-78.0.3904.70-unbundle-zlib.patch
# Needs to be submitted..
-Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+Patch54: chromium-77.0.3865.75-gcc-include-memory.patch
# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
-Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
-# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
-# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
-# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch60: chromium-77.0.3865.75-missing-limits.patch
-# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
-Patch61: chromium-77.0.3865.90-linked-hash-set.patch
+Patch55: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
-Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
+Patch56: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
-Patch63: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
-
+Patch57: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
+# https://chromium.googlesource.com/chromium/src/+/7358ea985cb496fa7fd1a526...
+Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
+# https://chromium.googlesource.com/chromium/src/+/2db67d40ef766c63a7389686...
+Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -742,19 +732,15 @@ udev.
# Short term fixes (usually gcc and backports)
%patch50 -p1 -b .gettid-fix
-%patch51 -p1 -b .gcc-no-alignas-and-export
-%patch52 -p1 -b .gcc-remoting-constexpr
-%patch53 -p1 -b .vtable-symbol-undefined
-%patch54 -p1 -b .certificate-transparency
-%patch55 -p1 -b .unbundle-zlib
-%patch56 -p1 -b .gcc-include-memory
-%patch57 -p1 -b .base-gcc-no-alignas
-%patch58 -p1 -b .harfbuzz-subset
-%patch59 -p1 -b .gcc-abstract-class
-%patch60 -p1 -b .missing-limits
-%patch61 -p1 -b .linked-hash-set
-%patch62 -p1 -b .silence-outdated-build-noise
-%patch63 -p1 -b .gcc-fix-zlib-symbol-visibility
+%patch51 -p1 -b .gcc-remoting-constexpr
+%patch52 -p1 -b .vtable-symbol-undefined
+%patch53 -p1 -b .unbundle-zlib
+%patch54 -p1 -b .gcc-include-memory
+%patch55 -p1 -b .base-gcc-no-alignas
+%patch56 -p1 -b .silence-outdated-build-noise
+%patch57 -p1 -b .gcc-fix-zlib-symbol-visibility
+%patch58 -p1 -b .gcc-invalid-pragma
+%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
# Fedora branded user agent
%if 0%{?fedora}
@@ -1669,6 +1655,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 23 2019 Tom Callaway <spot(a)fedoraproject.org> - 78.0.3904.80-1
+- update to 78.0.3904.80
+
* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-4
- upstream fix for zlib symbol exports with gcc
diff --git a/sources b/sources
index 978a610..c18b1d0 100644
--- a/sources
+++ b/sources
@@ -18,3 +18,4 @@ SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb874
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
+SHA512 (chromium-78.0.3904.70-clean.tar.xz) = f702bc3c084a69adc81f47300d00f0b8cf46ee721dbb4986bfc5ba7fc95129172d021da0514350fe77591a209ec050307eead8e9bf309b70e46eb26d29d88509
commit 5cbc3dd135bf2caa310a6cfafd85a72f5b89f959
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 11:03:38 2019 -0400
upstream fix for zlib symbol exports with gcc
diff --git a/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
new file mode 100644
index 0000000..47fd97d
--- /dev/null
+++ b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
@@ -0,0 +1,36 @@
+From 9c3aed099b010a75594a0efd523774c4c9a5e3d2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=BCri=20Valdmann?= <juri.valdmann(a)qt.io>
+Date: Tue, 15 Oct 2019 12:10:55 +0000
+Subject: [PATCH] GCC: Fix zlib symbol visibility macro
+
+GCC parses the function __attribute__ syntax a bit differently from Clang,
+associating the attribute with the return type instead of the function if the
+return type is a pointer. This leads to certain zlib symbols, such as
+Cr_z_zError, to fail to be properly exported from the shared library. Fix by
+using ZEXTERN instead of ZEXPORT for the attribute which works the same for both
+GCC and Clang.
+
+Bug: 819294
+Change-Id: I5707d1b0627a503df08df9ac0bb65fda69453989
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1859788
+Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
+Reviewed-by: Nico Weber <thakis(a)chromium.org>
+Commit-Queue: Nico Weber <thakis(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#705917}
+---
+ third_party/zlib/chromeconf.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/zlib/chromeconf.h b/third_party/zlib/chromeconf.h
+index e9aa3867d8512..666093d696a58 100644
+--- a/third_party/zlib/chromeconf.h
++++ b/third_party/zlib/chromeconf.h
+@@ -13,7 +13,7 @@
+ #define ZEXTERN __declspec(dllimport)
+ #endif
+ #elif defined(ZLIB_IMPLEMENTATION)
+-#define ZEXPORT __attribute__((visibility("default")))
++#define ZEXTERN __attribute__((visibility("default")))
+ #endif
+ #endif
+
diff --git a/chromium.spec b/chromium.spec
index f6a5873..8994527 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -225,6 +225,9 @@ Patch60: chromium-77.0.3865.75-missing-limits.patch
Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
+# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
+Patch63: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
+
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -751,6 +754,7 @@ udev.
%patch60 -p1 -b .missing-limits
%patch61 -p1 -b .linked-hash-set
%patch62 -p1 -b .silence-outdated-build-noise
+%patch63 -p1 -b .gcc-fix-zlib-symbol-visibility
# Fedora branded user agent
%if 0%{?fedora}
@@ -1665,6 +1669,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-4
+- upstream fix for zlib symbol exports with gcc
+
* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-3
- silence outdated build noise (bz1745745)
commit 0854e9758c9420c45e377c98ee8193c6086dd4be
Merge: 527091e 35b2732
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 09:41:25 2019 -0400
merge fix
commit 35b2732605020b2627e971ef38a6cb1cd0a4adf6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 09:40:03 2019 -0400
silence outdated build noise (bz1745745)
diff --git a/chromium-77.0.3865.120-silence-outdated-build-noise.patch b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
new file mode 100644
index 0000000..22e1e78
--- /dev/null
+++ b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
@@ -0,0 +1,59 @@
+From e79d9d0e06b825d2e62b38db03248c0e6ceec7e4 Mon Sep 17 00:00:00 2001
+From: Greg Thompson <grt(a)chromium.org>
+Date: Sat, 5 Oct 2019 03:47:05 +0000
+Subject: [PATCH] Only detect outdated builds on Google Chrome.
+
+Prior to https://crrev.com/643864, they weren't detected for Chromium on
+account of the way google_brand worked. That CL changed behavior and
+accidentally started showing the outdated build bubble for Linux
+Chromium users.
+
+BUG=1010592
+
+Change-Id: I069ac36166e2ae720d58b1b9aa85605792be8684
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1841635
+Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
+Reviewed-by: Lei Zhang <thestig(a)chromium.org>
+Commit-Queue: Greg Thompson <grt(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#703131}
+---
+ .../upgrade_detector/upgrade_detector_impl.cc | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+index 432e3789eced0..07850fdf80cd7 100644
+--- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
++++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+@@ -31,6 +31,7 @@
+ #include "base/time/default_tick_clock.h"
+ #include "base/time/tick_clock.h"
+ #include "base/time/time.h"
++#include "build/branding_buildflags.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/google/google_brand.h"
+ #include "chrome/common/chrome_switches.h"
+@@ -74,6 +75,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
+ // The number of days after which we identify a build/install as outdated.
+ constexpr base::TimeDelta kOutdatedBuildAge = base::TimeDelta::FromDays(12 * 7);
+
++constexpr bool ShouldDetectOutdatedBuilds() {
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
++ return true;
++#else // BUILDFLAG(GOOGLE_CHROME_BRANDING)
++ return false;
++#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
++}
++
+ // Return the string that was passed as a value for the
+ // kCheckForUpdateIntervalSec switch.
+ std::string CmdLineInterval() {
+@@ -403,6 +412,9 @@ bool UpgradeDetectorImpl::DetectOutdated
+ if (base::IsMachineExternallyManaged())
+ return false;
+ #endif
++
++ if (!ShouldDetectOutdatedBuilds())
++ return false;
+ }
+
+ base::Time network_time;
diff --git a/chromium.spec b/chromium.spec
index a3aba32..f6a5873 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -223,6 +223,8 @@ Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
Patch60: chromium-77.0.3865.75-missing-limits.patch
# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
Patch61: chromium-77.0.3865.90-linked-hash-set.patch
+# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
+Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -748,6 +750,7 @@ udev.
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
%patch61 -p1 -b .linked-hash-set
+%patch62 -p1 -b .silence-outdated-build-noise
# Fedora branded user agent
%if 0%{?fedora}
@@ -1662,6 +1665,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-3
+- silence outdated build noise (bz1745745)
+
* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
- fix node handling for EPEL-8
commit 527091eafb9fc8e8a1a8ae1aac53d19a929156b5
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:18:40 2019 -0400
merge epel8 changes
diff --git a/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
new file mode 100644
index 0000000..ff6c523
--- /dev/null
+++ b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -0,0 +1,10 @@
+diff -up chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 chromium-76.0.3809.132/components/os_crypt/features.gni
+--- chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 2019-09-06 17:08:01.242314126 -0400
++++ chromium-76.0.3809.132/components/os_crypt/features.gni 2019-09-06 17:08:10.139134707 -0400
+@@ -7,5 +7,5 @@ import("//build/config/ui.gni")
+ declare_args() {
+ # Whether to use libgnome-keyring (deprecated by libsecret).
+ # See http://crbug.com/466975 and http://crbug.com/355223.
+- use_gnome_keyring = is_desktop_linux && use_glib
++ use_gnome_keyring = false
+ }
diff --git a/chromium.spec b/chromium.spec
index 6083fe2..a3aba32 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -198,7 +198,6 @@ Patch11: chromium-widevine-other-locations.patch
Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
# Add "Fedora" to the user agent string
Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
-
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
@@ -239,6 +238,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
+# Apply these patches to work around EPEL8 issues
+Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
# For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm
@@ -270,8 +272,8 @@ Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-
Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf
Source17: GardinerModBug.ttf
Source18: GardinerModCat.ttf
-# RHEL needs newer nodejs
-%if 0%{?rhel}
+# RHEL 7 needs newer nodejs
+%if 0%{?rhel} == 7
Source19: node-v8.9.1-linux-x64.tar.gz
%endif
@@ -289,9 +291,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
@@ -319,7 +318,9 @@ BuildRequires: minizip-compat-devel
BuildRequires: minizip-devel
%endif
# RHEL 7's nodejs is too old
-%if 0%{?fedora}
+%if 0%{?rhel} == 7
+# Use bundled.
+%else
BuildRequires: nodejs
%endif
BuildRequires: nss-devel >= 3.26
@@ -434,7 +435,9 @@ BuildRequires: re2-devel >= 20160401
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
+%if 0%{?rhel} < 8
BuildRequires: pkgconfig(gnome-keyring-1)
+%endif
# remote desktop needs this
BuildRequires: pam-devel
BuildRequires: systemd
@@ -442,7 +445,7 @@ BuildRequires: systemd
%if %{freeworld}
# dont need fonts for this
%else
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf
Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic...
Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf
@@ -455,12 +458,15 @@ Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.t
Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic...
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
-Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
-Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
%else
BuildRequires: google-croscore-arimo-fonts
BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
+BuildRequires: google-croscore-tinos-fonts
+%endif
+%if 0%{?rhel} == 7
+Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
+Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
+%else
BuildRequires: google-noto-sans-cjk-jp-fonts
BuildRequires: lohit-gurmukhi-fonts
%endif
@@ -516,7 +522,7 @@ Provides: chromium-libs = %{version}-%{release}
Obsoletes: chromium-libs <= %{version}-%{release}
%endif
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
ExclusiveArch: x86_64 i686
%else
ExclusiveArch: x86_64 i686 aarch64
@@ -767,6 +773,10 @@ udev.
%patch205 -p1 -b .pulseaudioapichange
%endif
+%if 0%{?rhel} == 8
+%patch300 -p1 -b .disblegnomekeyring
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
@@ -797,7 +807,7 @@ rm -rf MuktiNarrow0.94
cp %{SOURCE16} .
cp %{SOURCE17} .
cp %{SOURCE18} .
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
cp %{SOURCE100} .
cp %{SOURCE101} .
cp %{SOURCE102} .
@@ -810,14 +820,17 @@ cp %{SOURCE108} .
cp %{SOURCE109} .
cp %{SOURCE110} .
cp %{SOURCE111} .
+%else
+cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
+%endif
+%if 0%{?rhel} == 7
tar xf %{SOURCE112}
mv lohit-gurmukhi-ttf-2.91.2/Lohit-Gurmukhi.ttf .
rm -rf lohit-gurmukhi-ttf-2.91.2
unzip %{SOURCE113}
%else
-cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf .
cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf .
%endif
@@ -849,6 +862,9 @@ CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"'
%if %{?use_jumbo}
CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8'
%endif
+%if 0%{?rhel} == 8
+CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
@@ -880,7 +896,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_
CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
export CHROMIUM_HEADLESS_GN_DEFINES
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
pushd third_party/node/linux
tar xf %{SOURCE19}
mv node-v8.9.1-linux-x64 node-linux-x64
@@ -1646,9 +1662,18 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
+- fix node handling for EPEL-8
+
* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
- Update to 77.0.3865.120
+* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
+- enable aarch64 for EPEL-8
+
+* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
+- spec cleanups and changes to make EPEL8 try to build
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
commit e4f20afdcc3e2ad605003c6cdc2ce7b0aaabc6af
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:14:29 2019 -0400
fix node handling for EPEL-8, merge changes from 120
diff --git a/chromium.spec b/chromium.spec
index 4f78c67..a3aba32 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -161,8 +161,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 4%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1662,6 +1662,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
+- fix node handling for EPEL-8
+
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
- enable aarch64 for EPEL-8
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit a5557a189a12aa8c2654787bd6dbb367211ccdfe
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:09:08 2019 -0400
fix node handling
diff --git a/chromium.spec b/chromium.spec
index a5cf1bf..4f78c67 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -272,8 +272,8 @@ Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-
Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf
Source17: GardinerModBug.ttf
Source18: GardinerModCat.ttf
-# RHEL needs newer nodejs
-%if 0%{?rhel}
+# RHEL 7 needs newer nodejs
+%if 0%{?rhel} == 7
Source19: node-v8.9.1-linux-x64.tar.gz
%endif
@@ -318,7 +318,9 @@ BuildRequires: minizip-compat-devel
BuildRequires: minizip-devel
%endif
# RHEL 7's nodejs is too old
-%if 0%{?fedora}
+%if 0%{?rhel} == 7
+# Use bundled.
+%else
BuildRequires: nodejs
%endif
BuildRequires: nss-devel >= 3.26
@@ -894,7 +896,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_
CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
export CHROMIUM_HEADLESS_GN_DEFINES
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
pushd third_party/node/linux
tar xf %{SOURCE19}
mv node-v8.9.1-linux-x64 node-linux-x64
commit e7f437fd182ccfa4ac99976f5bb810b93a0cd998
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index ff76b24..0b74407 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,8 +157,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1635,6 +1635,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit c4d9ecbb70f00e1510c3b752a8443ea974b41e67
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit e67a39d749de4beb65ff66eb76d899da5e1de4b2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index 1542845..6083fe2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -161,8 +161,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1646,6 +1646,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit 78eda85f26a14e5dceb6c667850cd6b930bf26bf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit e29905e4b9a9c57e4dad84e2572912d2cf1a1e4b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Oct 10 08:42:35 2019 -0400
enable aarch64 for EPEL-8
diff --git a/chromium.spec b/chromium.spec
index 5d75c4c..a5cf1bf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -520,7 +520,7 @@ Provides: chromium-libs = %{version}-%{release}
Obsoletes: chromium-libs <= %{version}-%{release}
%endif
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
ExclusiveArch: x86_64 i686
%else
ExclusiveArch: x86_64 i686 aarch64
@@ -1660,6 +1660,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
+- enable aarch64 for EPEL-8
+
* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
commit 9f278441f32523a894c98970d5fe0b8da3fa3572
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 14:15:13 2019 -0400
drop explicit BR: gnome-keyring-devel
diff --git a/chromium.spec b/chromium.spec
index 96c8f36..5d75c4c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,9 +291,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
commit f7aa602c50e32afa459f34444a03f40bb7e111a2
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 12:48:48 2019 -0400
here we go again
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..366c139
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,165 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 81982e2..96c8f36 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -45,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -54,17 +61,15 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
@@ -118,9 +123,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
@@ -133,13 +138,6 @@ BuildRequires: libicu-devel >= 5.4
%global pulseaudioapichange 0
%endif
-# RHEL 8 doesn't have minizip
-%if 0%{?rhel} == 8
-%global bundleminizip 1
-%else
-%global bundleminizip 0
-%endif
-
### 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.
@@ -156,156 +154,80 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
-Name: chromium%{chromium_channel}%{?freeworld:-libs-media-freeworld}
-Summary: Chromium media libraries built with all possible codecs
+Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
-Summary: A WebKit (Blink) powered web browser
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.90
Release: 3%{?dist}
+Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
@@ -318,7 +240,6 @@ Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
-Patch301: chromium-76.0.3809.132-chromedriver-zlib-fix.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -370,12 +291,15 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
+%if 0%{?fedora} <= 27
+BuildRequires: gnome-keyring-devel
+%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -391,15 +315,11 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel
-%if %{bundleminizip}
-# We're using the bundle, baby.
-%else
%if 0%{?fedora} >= 30
BuildRequires: minizip-compat-devel
%else
BuildRequires: minizip-devel
%endif
-%endif
# RHEL 7's nodejs is too old
%if 0%{?fedora}
BuildRequires: nodejs
@@ -540,9 +460,9 @@ Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldIt
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
%else
-BuildRequires: google-croscore-arimo-fonts
-BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
+BuildRequires: google-croscore-arimo-fonts
+BuildRequires: google-croscore-cousine-fonts
+BuildRequires: google-croscore-tinos-fonts
%endif
%if 0%{?rhel} == 7
Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
@@ -633,7 +553,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -703,36 +623,18 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
-%if %{freeworld}
-Provides: chromium-libs-media = %{version}-%{release}
-Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}
-Requires(post): %{_sbindir}/update-alternatives
-Requires(preun): %{_sbindir}/update-alternatives
-
-%description
-Chromium media libraries built with all possible codecs. Chromium is an
-open-source web browser, powered by WebKit (Blink). This package replaces
-the default chromium-libs-media package, which is limited in what it
-can include.
-%else
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
-%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
# Chromium needs an explicit Requires: minizip-compat
# We put it here to cover headless too.
-%if %{bundleminizip}
-# Using the bundle. No Requires needed.
-%else
%if 0%{?fedora} >= 30
Requires: minizip-compat%{_isa}
%else
Requires: minizip%{_isa}
%endif
-%endif
%description common
%{summary}.
@@ -749,6 +651,19 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld}
+%package -n chromium-libs-media-freeworld
+Summary: Chromium media libraries built with all possible codecs
+Provides: chromium-libs-media = %{version}-%{release}
+Provides: chromium-libs-media%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/update-alternatives
+
+%description -n chromium-libs-media-freeworld
+Chromium media libraries built with all possible codecs. Chromium is an
+open-source web browser, powered by WebKit (Blink). This package replaces
+the default chromium-libs-media package, which is limited in what it
+can include.
%else
%package libs-media
Summary: Shared libraries used by the chromium media subsystem
@@ -807,80 +722,46 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%if %{bundleminizip}
-# Leave zlib mangling in place
-%else
-%patch18 -p1 -b .nozmangle
-%endif
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
-%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
+# Feature specific patches
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -897,10 +778,6 @@ udev.
%patch300 -p1 -b .disblegnomekeyring
%endif
-%if %{bundleminizip}
-%patch301 -p1 -b .chromedriver-zlib
-%endif
-
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
@@ -1162,9 +1039,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/mesa' \
'third_party/metrics_proto' \
-%if %{bundleminizip}
- 'third_party/minizip' \
-%endif
'third_party/modp_b64' \
'third_party/nasm' \
'third_party/node' \
@@ -1173,7 +1047,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
@@ -1218,6 +1094,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
@@ -1311,12 +1188,8 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else
re2 \
%endif
-%if %{bundleminizip}
- yasm
-%else
yasm \
zlib
-%endif
# fix arm gcc
sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn
@@ -1341,18 +1214,18 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1372,33 +1245,31 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
-%if 0%{?build_remoting_app}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%endif
-popd
-
-%endif
-
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
%install
rm -rf %{buildroot}
@@ -1406,7 +1277,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1435,9 +1306,12 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
+%if 0
+cp -a protoc pyproto %{buildroot}%{chromium_path}
+%endif
%ifarch x86_64 i686 aarch64
cp -a swiftshader %{buildroot}%{chromium_path}
%endif
@@ -1479,7 +1353,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1515,12 +1389,8 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
@@ -1549,8 +1419,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
@@ -1588,7 +1456,7 @@ if st and st.type == "link" then
end
%if %{freeworld}
-%posttrans
+%posttrans -n chromium-libs-media-freeworld
%{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
@@ -1599,7 +1467,7 @@ end
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
-%preun
+%preun -n chromium-libs-media-freeworld
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld
@@ -1660,6 +1528,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/swiftshader/
%endif
%dir %{chromium_path}/PepperFlash/
+%if 0
+%{chromium_path}/protoc
+%endif
# %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/
@@ -1769,9 +1640,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
%files -n chromedriver
%doc AUTHORS
@@ -1783,7 +1651,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared}
%if %{freeworld}
-%files
+%files -n chromium-libs-media-freeworld
%else
%files libs-media
%endif
@@ -1795,9 +1663,23 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
-* Fri Sep 6 2019 Tom Callaway <spot(a)fedoraproject.org> - 76.0.3809.132-3
+* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
-- freeworld changes from Nicolas Chauvet
+
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
diff --git a/sources b/sources
index 2d38a7c..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit 58128e168f2cad680db52f8be0d98a2bbd85b556
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 930b750..ff76b24 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -158,7 +158,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -218,6 +218,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -730,6 +732,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1632,6 +1635,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 67e04f35f09abe468100109658f02b424c59286c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e6a6f88..930b750 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1388,8 +1388,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 3c95810693ba39059f8b50d3d59b713c0df0fd87
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index c41439f..e6a6f88 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,114 +164,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -757,60 +704,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1287,6 +1214,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit 3eaa3be79d851bec300e909dcb9093bd045f3964
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 7fe074d..c41439f 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1256,7 +1256,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 51e320816fc4959c841fc78bb7ef205c79024064
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index 38d8c20..7fe074d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -298,16 +277,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -415,24 +384,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -865,11 +816,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -898,101 +844,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1063,9 +914,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1227,9 +1076,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0
@@ -1460,20 +1306,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1511,10 +1345,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1596,12 +1426,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1742,12 +1566,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1861,11 +1679,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit 47afdc42ed500067d2e4cc5b3df8295c0e08eac6
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 6b2691a..38d8c20 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -862,8 +862,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 0f0792f310ed8f54ca8bf6b73f6c020253dc5f54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index a37d653..1542845 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -222,6 +222,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -739,6 +741,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1643,6 +1646,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 6aa7bda96ed4de25260acb5a9e907d5ff1fa1368
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e426495..a37d653 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1399,8 +1399,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 5a0168685de2184cd3ce9b36a80febe22a738e54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index 4fa3d44..e426495 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -168,114 +168,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -766,60 +713,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1298,6 +1225,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit d8b8fc10a9d2bc16fbdc802ba975b68bc5f4d97b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 25eb383..4fa3d44 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1267,7 +1267,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 1ef42a21dcf51442af1b6830c71b060258844ef5
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index a2538f0..25eb383 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -302,16 +281,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -419,24 +388,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -874,11 +825,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -907,101 +853,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1072,9 +923,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1236,9 +1085,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0%{?bundlepylibs}
@@ -1471,20 +1317,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1522,10 +1356,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1607,12 +1437,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1753,12 +1577,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1872,11 +1690,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit a2942aa1bba73adf0d336548aea65e3830f172ef
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 7a0d711..a2538f0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -871,8 +871,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 2a431ec174c08be608abec360a4fb191aa9464e4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 2b39cea..6b2691a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -178,8 +178,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit c8786bde9b73d933dab3ea7f6c581461882d9c45
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 10a2ce3a34eeaa2c0a4286cd682bd448e0f0c727
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 38911e2..2b39cea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -296,7 +296,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit 06cf3b0691efe622951e72292af48063622b40c7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 5491e4c..7a0d711 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -182,8 +182,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1902,6 +1902,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit c510174e57208c85a6fe9add725046fa4233abf4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 1a179e7d6a6aa7376e3b286bffa6901c66716294
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 87d6b6c..5491e4c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -300,7 +300,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit de3e9b33bbe4855083c5bb26f7e779b7fda87d8b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 496b922..38911e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -179,7 +179,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1891,6 +1891,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit ce1cd8e39484eefc8575db11fcc6c4b3ebceef43
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 6967dc4..87d6b6c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -183,7 +183,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1902,6 +1902,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit dd3c28c89ec41f3999f065bab972221f5316b87a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index d2436e2..496b922 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit fa69419940e71be5ae2632b759bd664c1a3e8def
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 843f1a0..6967dc4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit be307c8f4d884cb12958bb7bc62eb591fcaea35b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index 799b55b..d2436e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1634,8 +1634,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit f68b7de9c099cd6540f657e6df3d7bccf7ff914b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 760805e..799b55b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -288,6 +288,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -853,6 +855,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit d544c78407eac8efb67088cde61ccd4eba574658
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index 625d74d..760805e 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1403,17 +1410,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1433,34 +1440,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1470,7 +1479,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1499,7 +1508,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1550,7 +1559,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1593,7 +1602,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit d0e5893874a5394bcf62cbb090dd7245a080c245
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 4a74346..625d74d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -843,6 +845,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit a159083f2bffc5638c2bc82df2b5187c6b2b6408
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index 277fcfe..4a74346 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1234,6 +1234,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit 5316414f65248b78db5678e60a797f2cea4dc493
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index b959409..277fcfe 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -277,6 +277,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -362,7 +364,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -624,7 +626,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -840,6 +842,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit 4287667b770213af574b8adb5d22f919a5c63fca
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index dca072c..b959409 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1872,6 +1872,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit a9b565084b2825a476563c1d40597038e8d18971
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index 328b149..dca072c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1277,6 +1277,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit b10ed01ae7f394478f8abea46a1227b93933c576
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index a6daffc..328b149 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -275,6 +275,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -837,6 +839,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit ce1cdf147b4faa3545fb1f783fed82712f601144
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 129f8b9..a6daffc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -262,9 +262,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -834,7 +831,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 670a5ef5afc89028d89ec7486261805cefbd1626
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index 980a57d..129f8b9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,9 +133,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit 1dabe8d36679bcd36e5488c42a5f148a6100f872
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index 92e6b78..980a57d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -276,6 +276,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -838,6 +840,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit aa41a1de67e23ce345062d1753d1f6b3c3d7fad8
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit 3534908954173e8207dd19ecc36b19eb5666ecb7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 62d330423a8d7a7ba17fdbee6966abbc76707a4a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index 440ec40..92e6b78 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1230,6 +1230,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 6e6dfd56f09be0eb1bd8c1e180b5db4b517958af
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index a943ad5..440ec40 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -274,6 +274,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -835,6 +837,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 782a626758b49d8cedf4c7d485190c817455e136
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 877f8f7..a943ad5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -164,14 +164,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -211,20 +211,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -232,7 +232,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -260,43 +260,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -305,7 +273,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,7 +814,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -861,23 +829,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1466,6 +1419,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit 7fc281321af19c13b81aeaa367d93b7681482b00
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index a198ddf..843f1a0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1645,8 +1645,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 4d35c8a98356aedecd1f0fe80534a454f93ecf6d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 5dec1f7..a198ddf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -292,6 +292,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -862,6 +864,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit 578228ae99ca125111d573ee5ff5c7cca67264ee
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index d874dd5..5dec1f7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1414,17 +1421,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1444,34 +1451,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1481,7 +1490,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1510,7 +1519,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1561,7 +1570,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1604,7 +1613,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit 63ccbdcf58d947939423cf78126866370e0f78ba
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 522df10..d874dd5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -283,6 +283,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -852,6 +854,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit 057d9fcd01bff959156616a47f0c13409dc6ecaf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index 8039cd0..522df10 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1243,6 +1243,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit dc2f301520eb0151967763d129a425fa0a509ada
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index dd3fbaf..8039cd0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -281,6 +281,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -366,7 +368,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -633,7 +635,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -849,6 +851,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit ecb75dee3259ac4e802881ab69b036fa7019d553
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index bfbc930..dd3fbaf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -176,7 +176,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1883,6 +1883,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit fb22c7a5e910b0d702d8c8cace78936eff63eccc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index 636aaab..bfbc930 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1286,6 +1286,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit 8ed36c4625d4090e87a85bf5368f82289664d77f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index 008873e..636aaab 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,6 +848,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit 63945f4efd038b18f3556b766e01ce17012d8ece
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 102f14d..008873e 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -266,9 +266,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -843,7 +840,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 1a11ef1abaf843579269cb7f1a60aceb6b50b023
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index f8a9800..102f14d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -137,9 +137,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit d08e680fa760fa174b8940428aafbf62cef21c50
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index 4b20549..f8a9800 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -280,6 +280,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -847,6 +849,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit 5e3b7f3e899c48fbabcf95b19bc275a629a0e871
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit 2cfc18c994143ce77664104024315e6056e4371e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 1b0a93bc239d9ee125a0356f974176ef82bafeb3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index cc79386..4b20549 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1239,6 +1239,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 8458f58818dc3548cdaec285bd680ff9c84f9f46
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index a2d54e4..cc79386 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -278,6 +278,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -844,6 +846,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 892e596886b085085ee7b974404746d408db7cda
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 1471b94..a2d54e4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -168,14 +168,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -215,20 +215,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -236,7 +236,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -264,43 +264,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -309,7 +277,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -855,7 +823,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -870,23 +838,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1477,6 +1430,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit a0c0e33b0a2dc8f2eeba8711bd86c7c6eacfa943
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 16:58:00 2019 -0400
take two
diff --git a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
index 7ab46d8..f8b44d0 100644
--- a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
+++ b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
@@ -1,11 +1,11 @@
diff -up chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn
--- chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme 2019-09-10 15:53:02.871463568 -0400
-+++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 15:53:33.057824836 -0400
-@@ -197,6 +197,7 @@ source_set("automation_client_lib") {
- "//services/network/public/cpp",
++++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 16:57:32.281112323 -0400
+@@ -319,6 +319,7 @@ executable("chromedriver") {
+ "//net/server:http_server",
+ "//net/traffic_annotation:test_support",
"//services/network/public/mojom",
- "//third_party/blink/public:buildflags",
+ "//third_party/zlib",
- "//third_party/zlib:minizip",
- "//third_party/zlib/google:zip",
- "//ui/accessibility:ax_enums_mojo",
+ ]
+ }
+
commit 7f0ec73cb7f97bea9a276d1e9d33c40557338c1a
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 15:55:16 2019 -0400
trying this
diff --git a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
new file mode 100644
index 0000000..7ab46d8
--- /dev/null
+++ b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn
+--- chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme 2019-09-10 15:53:02.871463568 -0400
++++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 15:53:33.057824836 -0400
+@@ -197,6 +197,7 @@ source_set("automation_client_lib") {
+ "//services/network/public/cpp",
+ "//services/network/public/mojom",
+ "//third_party/blink/public:buildflags",
++ "//third_party/zlib",
+ "//third_party/zlib:minizip",
+ "//third_party/zlib/google:zip",
+ "//ui/accessibility:ax_enums_mojo",
diff --git a/chromium.spec b/chromium.spec
index fd6a3ea..81982e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -316,8 +316,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
-# Apply this patches to work around EPEL8 issues
+# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+Patch301: chromium-76.0.3809.132-chromedriver-zlib-fix.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -896,6 +897,10 @@ udev.
%patch300 -p1 -b .disblegnomekeyring
%endif
+%if %{bundleminizip}
+%patch301 -p1 -b .chromedriver-zlib
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
commit f53529c22595c5f8492df88b4f8b39875a168321
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 13:28:28 2019 -0400
re-enable zlib mangling in bundleminizip conditional case
diff --git a/chromium.spec b/chromium.spec
index 5b07016..fd6a3ea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -823,7 +823,11 @@ udev.
%patch15 -p1 -b .system-clang
%patch16 -p1 -b .noprefix
%patch17 -p1 -b .nomangle
+%if %{bundleminizip}
+# Leave zlib mangling in place
+%else
%patch18 -p1 -b .nozmangle
+%endif
%patch19 -p1 -b .pathfix
%patch20 -p1 -b .nogccoptmath
%patch21 -p1 -b .gcc5-r3
commit 71ab9fa61df4d55acdef90769e8f9238c38cbce7
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Sep 9 07:54:13 2019 -0400
use bundled zlib here (ugh)
diff --git a/chromium.spec b/chromium.spec
index 9c12951..5b07016 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1302,8 +1302,12 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else
re2 \
%endif
+%if %{bundleminizip}
+ yasm
+%else
yasm \
zlib
+%endif
# fix arm gcc
sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn
commit 1964554c88c8e379f9ceb934337f0fff260cbfba
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 17:10:21 2019 -0400
force disable use_gnome_keyring
diff --git a/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
new file mode 100644
index 0000000..ff6c523
--- /dev/null
+++ b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -0,0 +1,10 @@
+diff -up chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 chromium-76.0.3809.132/components/os_crypt/features.gni
+--- chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 2019-09-06 17:08:01.242314126 -0400
++++ chromium-76.0.3809.132/components/os_crypt/features.gni 2019-09-06 17:08:10.139134707 -0400
+@@ -7,5 +7,5 @@ import("//build/config/ui.gni")
+ declare_args() {
+ # Whether to use libgnome-keyring (deprecated by libsecret).
+ # See http://crbug.com/466975 and http://crbug.com/355223.
+- use_gnome_keyring = is_desktop_linux && use_glib
++ use_gnome_keyring = false
+ }
diff --git a/chromium.spec b/chromium.spec
index 9bdec57..9c12951 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -316,6 +316,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
+# Apply this patches to work around EPEL8 issues
+Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
# For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm
@@ -885,6 +888,10 @@ udev.
%patch205 -p1 -b .pulseaudioapichange
%endif
+%if 0%{?rhel} == 8
+%patch300 -p1 -b .disblegnomekeyring
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
commit c76cbbc3b06ce1008fca84278d3653896474b7b2
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 16:40:41 2019 -0400
conditionalize minizip bundling since rhel 8 does not have it
diff --git a/chromium.spec b/chromium.spec
index d2a573a..9bdec57 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,6 +133,13 @@ BuildRequires: libicu-devel >= 5.4
%global pulseaudioapichange 0
%endif
+# RHEL 8 doesn't have minizip
+%if 0%{?rhel} == 8
+%global bundleminizip 1
+%else
+%global bundleminizip 0
+%endif
+
### 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.
@@ -380,11 +387,15 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel
+%if %{bundleminizip}
+# We're using the bundle, baby.
+%else
%if 0%{?fedora} >= 30
BuildRequires: minizip-compat-devel
%else
BuildRequires: minizip-devel
%endif
+%endif
# RHEL 7's nodejs is too old
%if 0%{?fedora}
BuildRequires: nodejs
@@ -709,11 +720,15 @@ Chromium is an open-source web browser, powered by WebKit (Blink).
Summary: Files needed for both the headless_shell and full Chromium
# Chromium needs an explicit Requires: minizip-compat
# We put it here to cover headless too.
+%if %{bundleminizip}
+# Using the bundle. No Requires needed.
+%else
%if 0%{?fedora} >= 30
Requires: minizip-compat%{_isa}
%else
Requires: minizip%{_isa}
%endif
+%endif
%description common
%{summary}.
@@ -1131,6 +1146,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/mesa' \
'third_party/metrics_proto' \
+%if %{bundleminizip}
+ 'third_party/minizip' \
+%endif
'third_party/modp_b64' \
'third_party/nasm' \
'third_party/node' \
commit 911f7b2ea074e200c79a66dc07f57c3b39df4fbd
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 16:10:38 2019 -0400
disable gnome-keyring
diff --git a/chromium.spec b/chromium.spec
index b870100..d2a573a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -955,6 +955,9 @@ CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"'
%if %{?use_jumbo}
CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8'
%endif
+%if 0%{?rhel} == 8
+CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
commit e9192241d8d4cd7fc33052dcb2d9a1ebf95cdaa6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 10:44:11 2019 -0400
lots of spec cleanups, support for epel8, remove nacl for good, apply freeworld fixes
diff --git a/chromium.spec b/chromium.spec
index 1471b94..b870100 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,25 +70,6 @@
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -171,13 +152,14 @@ BuildRequires: libicu-devel >= 5.4
%global majorversion 76
%if %{freeworld}
-Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
+Name: chromium%{chromium_channel}%{?freeworld:-libs-media-freeworld}
+Summary: Chromium media libraries built with all possible codecs
%else
Name: chromium%{chromium_channel}
+Summary: A WebKit (Blink) powered web browser
%endif
Version: %{majorversion}.0.3809.132
-Release: 2%{?dist}
-Summary: A WebKit (Blink) powered web browser
+Release: 3%{?dist}
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -318,16 +300,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-76.0.3809.100-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -387,9 +359,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
@@ -435,24 +404,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -550,7 +501,9 @@ BuildRequires: re2-devel >= 20160401
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
+%if 0%{?rhel} < 8
BuildRequires: pkgconfig(gnome-keyring-1)
+%endif
# remote desktop needs this
BuildRequires: pam-devel
BuildRequires: systemd
@@ -558,7 +511,7 @@ BuildRequires: systemd
%if %{freeworld}
# dont need fonts for this
%else
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf
Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic...
Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf
@@ -571,12 +524,15 @@ Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.t
Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic...
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
+%else
+BuildRequires: google-croscore-arimo-fonts
+BuildRequires: google-croscore-cousine-fonts
+BuildRequires: google-croscore-tinos-fonts
+%endif
+%if 0%{?rhel} == 7
Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
%else
-BuildRequires: google-croscore-arimo-fonts
-BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
BuildRequires: google-noto-sans-cjk-jp-fonts
BuildRequires: lohit-gurmukhi-fonts
%endif
@@ -732,8 +688,22 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
+%if %{freeworld}
+Provides: chromium-libs-media = %{version}-%{release}
+Provides: chromium-libs-media%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/update-alternatives
+
+%description
+Chromium media libraries built with all possible codecs. Chromium is an
+open-source web browser, powered by WebKit (Blink). This package replaces
+the default chromium-libs-media package, which is limited in what it
+can include.
+%else
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
+%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
@@ -760,19 +730,6 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld}
-%package -n chromium-libs-media-freeworld
-Summary: Chromium media libraries built with all possible codecs
-Provides: chromium-libs-media = %{version}-%{release}
-Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}
-Requires(post): %{_sbindir}/update-alternatives
-Requires(preun): %{_sbindir}/update-alternatives
-
-%description -n chromium-libs-media-freeworld
-Chromium media libraries built with all possible codecs. Chromium is an
-open-source web browser, powered by WebKit (Blink). This package replaces
-the default chromium-libs-media package, which is limited in what it
-can include.
%else
%package libs-media
Summary: Shared libraries used by the chromium media subsystem
@@ -901,12 +858,6 @@ udev.
%patch58 -R -p1
%endif
-# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -935,101 +886,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1044,7 +900,7 @@ rm -rf MuktiNarrow0.94
cp %{SOURCE16} .
cp %{SOURCE17} .
cp %{SOURCE18} .
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
cp %{SOURCE100} .
cp %{SOURCE101} .
cp %{SOURCE102} .
@@ -1057,14 +913,17 @@ cp %{SOURCE108} .
cp %{SOURCE109} .
cp %{SOURCE110} .
cp %{SOURCE111} .
+%else
+cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
+%endif
+%if 0%{?rhel} == 7
tar xf %{SOURCE112}
mv lohit-gurmukhi-ttf-2.91.2/Lohit-Gurmukhi.ttf .
rm -rf lohit-gurmukhi-ttf-2.91.2
unzip %{SOURCE113}
%else
-cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf .
cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf .
%endif
@@ -1100,9 +959,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1264,9 +1121,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0%{?bundlepylibs}
@@ -1494,10 +1348,8 @@ pushd remoting
# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
%endif
-%endif
popd
%endif
@@ -1544,14 +1396,7 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{target}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
-%if 0
-cp -a protoc pyproto %{buildroot}%{chromium_path}
-%endif
%ifarch x86_64 i686 aarch64
cp -a swiftshader %{buildroot}%{chromium_path}
%endif
@@ -1630,10 +1475,8 @@ ln -s system-auth chrome-remote-desktop
popd
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
-%endif
%if %{build_headless}
pushd %{headlesstarget}
@@ -1704,7 +1547,7 @@ if st and st.type == "link" then
end
%if %{freeworld}
-%posttrans -n chromium-libs-media-freeworld
+%posttrans
%{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
@@ -1715,7 +1558,7 @@ end
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
-%preun -n chromium-libs-media-freeworld
+%preun
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld
@@ -1775,16 +1618,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
-%if 0
-%{chromium_path}/protoc
-%endif
# %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/
@@ -1895,10 +1729,8 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
%{chromium_path}/remoting_client_plugin_newlib.*
%endif
-%endif
%files -n chromedriver
%doc AUTHORS
@@ -1910,7 +1742,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared}
%if %{freeworld}
-%files -n chromium-libs-media-freeworld
+%files
%else
%files libs-media
%endif
@@ -1922,6 +1754,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 6 2019 Tom Callaway <spot(a)fedoraproject.org> - 76.0.3809.132-3
+- spec cleanups and changes to make EPEL8 try to build
+- freeworld changes from Nicolas Chauvet
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit 67061b489484edb1d5e87b3551ed72695fbaafce
Merge: 2c4faae f341b67
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Sep 5 16:58:58 2019 -0400
Merge branch 'master' into epel8
commit 2c4faaedb3611d1d5cbf09d7e277a7586b1e9084
Author: Gwyn Ciesla <gwync(a)protonmail.com>
Date: Thu Sep 5 15:46:11 2019 -0500
"Adding package.cfg file"
diff --git a/package.cfg b/package.cfg
new file mode 100644
index 0000000..66ea79d
--- /dev/null
+++ b/package.cfg
@@ -0,0 +1,2 @@
+[koji]
+targets = epel8 epel8-playground
\ No newline at end of file
commit 82c3fb0c11b8125b95e298f467ccc77d9f3bafa4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit f341b670a040a236cc836e45e0de0e9e3361cb50
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit be81360432cb7ef6251b4f39a0b164e04b33c044
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit da8d872e924923bdd1d8c7eae0ace87bba8c0309
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit bc006359dd8cff1a6890d7791885e572914f8642
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index cbc4fa4..877f8f7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -172,7 +172,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -304,6 +304,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -879,6 +881,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1908,6 +1911,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit 41c22993b3320f535a33080157da4f49f69bf69e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index 8e251b9..1471b94 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -176,7 +176,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -308,6 +308,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -888,6 +890,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1919,6 +1922,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit 9bb933dc67b7e0b2051c0f48ef3783365b86fc8b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Aug 29 16:22:39 2019 -0400
update chromium-latest.py to Python3
diff --git a/chromium-latest.py b/chromium-latest.py
index 87889ad..5af8628 100755
--- a/chromium-latest.py
+++ b/chromium-latest.py
@@ -1,5 +1,5 @@
-#!/usr/bin/python
-# Copyright 2010,2015-2016 Tom Callaway <tcallawa(a)redhat.com>
+#!/usr/bin/python3
+# Copyright 2010,2015-2019 Tom Callaway <tcallawa(a)redhat.com>
# Copyright 2013-2016 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -32,9 +32,9 @@ import hashlib
import locale
import os
import shutil
-import StringIO
+import io
import sys
-import urllib
+import urllib.request, urllib.parse, urllib.error
chromium_url = "http://commondatastorage.googleapis.com/chromium-browser-official/"
@@ -59,22 +59,22 @@ def dlProgress(count, blockSize, totalSize):
def delete_chromium_dir(ch_dir):
full_dir = "%s/%s" % (latest_dir, ch_dir)
- print 'Deleting %s ' % full_dir
+ print('Deleting %s ' % full_dir)
if os.path.isdir(full_dir):
shutil.rmtree(full_dir)
- print '[DONE]'
+ print('[DONE]')
else:
- print '[NOT FOUND]'
+ print('[NOT FOUND]')
def delete_chromium_files(files):
full_path = "%s/%s" % (latest_dir, files)
- print 'Deleting ' + full_path + ' ',
+ print('Deleting ' + full_path + ' ', end=' ')
for filename in glob.glob(full_path):
- print 'Deleting ' + filename + ' ',
+ print('Deleting ' + filename + ' ', end=' ')
os.remove(filename)
- print '[DONE]'
+ print('[DONE]')
def check_omahaproxy(channel="stable"):
@@ -82,20 +82,20 @@ def check_omahaproxy(channel="stable"):
version = 0
status_url = "http://omahaproxy.appspot.com/all?os=linux&channel=" + channel
- usock = urllib.urlopen(status_url)
- status_dump = usock.read()
+ usock = urllib.request.urlopen(status_url)
+ status_dump = usock.read().decode('utf-8')
usock.close()
- status_list = StringIO.StringIO(status_dump)
+ status_list = io.StringIO(status_dump)
status_reader = list(csv.reader(status_list, delimiter=','))
linux_channels = [s for s in status_reader if "linux" in s]
linux_channel = [s for s in linux_channels if channel in s]
version = linux_channel[0][2]
if version == 0:
- print 'I could not find the latest %s build. Bailing out.' % channel
+ print('I could not find the latest %s build. Bailing out.' % channel)
sys.exit(1)
else:
- print 'Latest Chromium Version on %s at %s is %s' % (channel, status_url, version)
+ print('Latest Chromium Version on %s at %s is %s' % (channel, status_url, version))
return version
@@ -119,27 +119,27 @@ def download_file_and_compare_hashes(file_to_download):
# Let's make sure we haven't already downloaded it.
tarball_local_file = "./%s" % file_to_download
if os.path.isfile(tarball_local_file):
- print "%s already exists!" % file_to_download
+ print("%s already exists!" % file_to_download)
else:
path = '%s%s' % (chromium_url, file_to_download)
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, file_to_download, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, file_to_download, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if (info["Content-Type"] != "application/x-tar"):
- print 'Chromium tarballs for %s are not on servers.' % file_to_download
+ print('Chromium tarballs for %s are not on servers.' % file_to_download)
remove_file_if_exists (file_to_download)
sys.exit(1)
hashes_local_file = "./%s" % hashes_file
if not os.path.isfile(hashes_local_file):
path = '%s%s' % (chromium_url, hashes_file)
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, hashes_file, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, hashes_file, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if os.path.isfile(hashes_local_file):
with open(hashes_local_file, "r") as input_file:
@@ -149,12 +149,12 @@ def download_file_and_compare_hashes(file_to_download):
for block in iter(lambda: f.read(65536), b""):
md5.update(block)
if (md5sum == md5.hexdigest()):
- print "MD5 matches for %s!" % file_to_download
+ print("MD5 matches for %s!" % file_to_download)
else:
- print "MD5 mismatch for %s!" % file_to_download
+ print("MD5 mismatch for %s!" % file_to_download)
sys.exit(1)
else:
- print "Cannot compare hashes for %s!" % file_to_download
+ print("Cannot compare hashes for %s!" % file_to_download)
def download_version(version):
@@ -175,16 +175,16 @@ def nacl_versions(version):
for line in myfile:
name, var = line.partition("=")[::2]
myvars[name] = var
- print "nacl-binutils commit: %s" % myvars["NACL_BINUTILS_COMMIT"]
- print "nacl-gcc commit: %s" % myvars["NACL_GCC_COMMIT"]
- print "nacl-newlib commit: %s" % myvars["NACL_NEWLIB_COMMIT"]
+ print("nacl-binutils commit: %s" % myvars["NACL_BINUTILS_COMMIT"])
+ print("nacl-gcc commit: %s" % myvars["NACL_GCC_COMMIT"])
+ print("nacl-newlib commit: %s" % myvars["NACL_NEWLIB_COMMIT"])
# Parse GIT_REVISIONS dict from toolchain_build.py
sys.path.append(os.path.abspath(chrome_dir + "/native_client/toolchain_build"))
from toolchain_build import GIT_REVISIONS
- print "nacl-arm-binutils commit: %s" % GIT_REVISIONS['binutils']['rev']
- print "nacl-arm-gcc commit: %s" % GIT_REVISIONS['gcc']['rev']
+ print("nacl-arm-binutils commit: %s" % GIT_REVISIONS['binutils']['rev'])
+ print("nacl-arm-gcc commit: %s" % GIT_REVISIONS['gcc']['rev'])
def download_chrome_latest_rpm(arch):
@@ -197,15 +197,15 @@ def download_chrome_latest_rpm(arch):
# Let's make sure we haven't already downloaded it.
if os.path.isfile("./%s" % chrome_rpm):
- print "%s already exists!" % chrome_rpm
+ print("%s already exists!" % chrome_rpm)
else:
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, chrome_rpm, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, chrome_rpm, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if (info["Content-Type"] != "binary/octet-stream" and info["Content-Type"] != "application/x-redhat-package-manager"):
- print 'Chrome %s rpms are not on servers.' % version_string
+ print('Chrome %s rpms are not on servers.' % version_string)
remove_file_if_exists (chrome_rpm)
sys.exit(1)
@@ -274,7 +274,7 @@ if __name__ == '__main__':
version_string = "dev"
elif (not (args.stable or args.beta or args.dev)):
if (not args.version):
- print 'No version specified, downloading STABLE'
+ print('No version specified, downloading STABLE')
args.stable = True
chromium_version = args.version if args.version else check_omahaproxy(version_string)
@@ -284,7 +284,7 @@ if __name__ == '__main__':
if args.chrome:
if args.version:
- print 'You cannot specify a Chrome RPM version!'
+ print('You cannot specify a Chrome RPM version!')
sys.exit(1)
latest = 'google-chrome-%s_current_i386' % version_string
download_chrome_latest_rpm("i386")
@@ -303,11 +303,11 @@ if __name__ == '__main__':
shutil.rmtree(latest_dir)
if os.path.isdir(latest_dir):
- print "%s already exists, perhaps %s has already been unpacked?" % (latest_dir, latest)
+ print("%s already exists, perhaps %s has already been unpacked?" % (latest_dir, latest))
else:
- print "Unpacking %s into %s, please wait." % (latest, latest_dir)
+ print("Unpacking %s into %s, please wait." % (latest, latest_dir))
if (os.system("tar -xJf %s" % latest) != 0):
- print "%s is possibly corrupted, exiting." % (latest)
+ print("%s is possibly corrupted, exiting." % (latest))
sys.exit(1)
if (args.naclvers):
@@ -334,11 +334,11 @@ if __name__ == '__main__':
if (args.ffmpegclean):
print("Cleaning ffmpeg from proprietary things...")
os.system("./clean_ffmpeg.sh %s %d" % (latest_dir, 0 if args.ffmpegarm else 1))
- print "Done!"
+ print("Done!")
if (not args.prep):
- print "Compressing cleaned tree, please wait..."
+ print("Compressing cleaned tree, please wait...")
os.chdir(chromium_root_dir)
os.system("tar --exclude=\.svn -cf - chromium-%s | xz -9 -T 0 -f > %s" % (chromium_version, chromium_clean_xz_file))
- print "Finished!"
+ print("Finished!")
commit 8b5c622431489da2ed177d880f7fddd66e8967d2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:56:12 2019 +0200
Add an updated patch that was missed
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..73db4d4
--- /dev/null
+++ b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
@@ -0,0 +1,21 @@
+diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
+--- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
+@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
+ "application/x-protobuf",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
commit b82b0a31dd6fca01269e15e1262ee63551753142
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:13:54 2019 +0200
Update to 76.0.3809.132
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 587abf3..0000000
--- a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 19:46:55 +0000
-Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
-
-Use brace-list notation to wrap the already existing brace-list for
-initializing the flat-set. This resolves an ambiguous instantiation
-in GCC.
-
-Bug: 819294
-Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
-Reviewed-by: Matt Menke <mmenke(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666401}
----
-
-diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
-index 30999c0..60a03f6 100644
---- a/services/network/cross_origin_read_blocking.cc
-+++ b/services/network/cross_origin_read_blocking.cc
-@@ -211,7 +211,7 @@
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -224,7 +224,7 @@
- "application/x-www-form-urlencoded",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium.spec b/chromium.spec
index c961abc..cbc4fa4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -171,7 +171,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.100
+Version: %{majorversion}.0.3809.132
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -280,7 +280,7 @@ Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
@@ -1908,6 +1908,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
+- Update to 76.0.3809.132
+
* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
- Update to 76.0.3809.100
diff --git a/sources b/sources
index b7a420d..2d38a7c 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
+SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
commit fc327721ea71add7014b3a415a52b0c58f1606de
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 26 14:40:26 2019 +0200
Another noexec fix for EL7
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 99593f7..407f8de 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -18,7 +18,7 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
switch (icon_type_) {
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
Swap(&other);
}
@@ -28,9 +28,18 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc
Swap(&other);
return *this;
}
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
@@ -143,7 +143,7 @@ class QueryResults {
~QueryResults();
@@ -40,6 +49,15 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.
void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
commit e39b8894d22437395e67a474b9b4addd5ef616e2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 13:48:03 2019 +0200
Another el7 noexcept change
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 054d42e..99593f7 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -1,6 +1,6 @@
diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
provider_id_(provider_id) {}
@@ -16,11 +16,33 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
bool MediaSink::IsMaybeCloudSink() const {
switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
PolicyMap::Entry::~Entry() = default;
@@ -31,8 +53,8 @@ diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-
PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
Entry copy;
diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
default;
@@ -52,8 +74,8 @@ diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.e
bool AccountInfo::IsEmpty() const {
return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
@@ -64,8 +86,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
@@ -19,7 +19,7 @@ struct CoreAccountId {
~CoreAccountId();
@@ -76,8 +98,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept
// Those implicit constructor and conversion operator allow to
// progressively migrate the code to use this struct. Removing
diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
const GPUInfo::GPUDevice& other) = default;
commit aaab3d4ed48f25ec94e1169d61281ab3ceef5d31
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 11:01:37 2019 +0200
More el7 fixes
Merge the previously committed change in to the el7-noexcept patch and
revert another change that is needed on Fedora, but breaking the build
on EL7.
diff --git a/chromium-75.0.3770.100-el7-fix-noexcept.patch b/chromium-75.0.3770.100-el7-fix-noexcept.patch
deleted file mode 100644
index eaba072..0000000
--- a/chromium-75.0.3770.100-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc
---- chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-06-18 11:47:55.000000000 -0400
-+++ chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc 2019-06-20 10:17:27.440446569 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-75.0.3770.100/components/policy/core/common/policy_map.cc
---- chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-06-18 11:48:01.000000000 -0400
-+++ chromium-75.0.3770.100/components/policy/core/common/policy_map.cc 2019-06-20 10:17:27.444446463 -0400
-@@ -31,7 +31,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-75.0.3770.100/components/signin/core/browser/account_info.cc
---- chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-06-20 10:17:27.444446463 -0400
-+++ chromium-75.0.3770.100/components/signin/core/browser/account_info.cc 2019-06-20 10:19:17.959532865 -0400
-@@ -51,7 +51,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-diff -up chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept chromium-75.0.3770.100/gpu/config/gpu_info.cc
---- chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept 2019-06-18 11:48:10.000000000 -0400
-+++ chromium-75.0.3770.100/gpu/config/gpu_info.cc 2019-06-20 10:17:27.445446437 -0400
-@@ -181,7 +181,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 09fccf6..0000000
--- a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
-@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
--
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
-@@ -19,7 +19,6 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
new file mode 100644
index 0000000..054d42e
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -0,0 +1,89 @@
+diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+@@ -19,7 +19,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
diff --git a/chromium.spec b/chromium.spec
index e09a0ac..c961abc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -310,9 +310,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
-# el7 only patch as it doesn't like on of the operator= change in patch59
-Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+Patch102: chromium-76.0.3809.100-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -887,7 +885,8 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
+# Revert patch58 because it's breaking the build on el7
+%patch58 -R -p1
%endif
# Feature specific patches
commit af4746e6db6857279053ac789cb8fe0fe8af4b88
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 07:54:57 2019 +0200
Fix the EL7 build as it doesn't like part of the upstream GCC patch
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..09fccf6
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,23 @@
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
+@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
+-
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
+@@ -19,7 +19,6 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
diff --git a/chromium.spec b/chromium.spec
index 8a246b7..e09a0ac 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -311,6 +311,8 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+# el7 only patch as it doesn't like on of the operator= change in patch59
+Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -885,6 +887,7 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
+%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
%endif
# Feature specific patches
commit ec9d075ebbacdd8fa116137d33f073fa37713b54
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 26 19:17:48 2019 +0200
Use bundled Python 2 libraries during build
This removes the dependency on a small stack of Python 2 libraries.
There is a %global flag to control this, however only markupsafe is handled
differently when %bundlepylibs is set, other libraries seem to have been bundled
already.
diff --git a/chromium.spec b/chromium.spec
index cbc4fa4..8e251b9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -105,6 +105,10 @@ BuildRequires: libicu-devel >= 5.4
# 2017-06-08.
%global bundlelibxml 1
+# 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
+
# Chromium used to break on wayland, hidpi, and colors with gtk3 enabled.
# Hopefully it does not anymore.
%global gtk3 1
@@ -515,8 +519,11 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: python2-devel
-%if 0%{?fedora} > 27
+BuildRequires: /usr/bin/python2
+%if 0%{?bundlepylibs}
+# Using bundled bits, do nothing.
+%else
+%if 0%{?fedora}
BuildRequires: python2-beautifulsoup4
BuildRequires: python2-beautifulsoup
BuildRequires: python2-html5lib
@@ -530,6 +537,8 @@ BuildRequires: python-markupsafe
BuildRequires: python-ply
%endif
BuildRequires: python2-simplejson
+BuildRequires: python2-devel
+%endif
%if 0%{?bundlere2}
# Using bundled bits, do nothing.
%else
@@ -1257,7 +1266,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/lss' \
'third_party/lzma_sdk' \
-%if 0
+%if 0%{?bundlepylibs}
'third_party/markupsafe' \
%endif
'third_party/mesa' \
@@ -1345,10 +1354,12 @@ build/linux/unbundle/remove_bundled_libraries.py \
'v8/third_party/inspector_protocol' \
--do-remove
+%if ! 0%{?bundlepylibs}
# Look, I don't know. This package is spit and chewing gum. Sorry.
rm -rf third_party/markupsafe
ln -s %{python2_sitearch}/markupsafe third_party/markupsafe
# We should look on removing other python2 packages as well i.e. ply
+%endif
# Fix hardcoded path in remoting code
sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/daemon_controller_delegate_linux.cc
commit 5039438024ac562fb0db46dc2c07c76ead8daa0c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:56:12 2019 +0200
Add an updated patch that was missed
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..73db4d4
--- /dev/null
+++ b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
@@ -0,0 +1,21 @@
+diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
+--- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
+@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
+ "application/x-protobuf",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
commit 937790beb5adc1bcd8c978d0e60d064afc9ad318
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:13:54 2019 +0200
Update to 76.0.3809.132
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 587abf3..0000000
--- a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 19:46:55 +0000
-Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
-
-Use brace-list notation to wrap the already existing brace-list for
-initializing the flat-set. This resolves an ambiguous instantiation
-in GCC.
-
-Bug: 819294
-Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
-Reviewed-by: Matt Menke <mmenke(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666401}
----
-
-diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
-index 30999c0..60a03f6 100644
---- a/services/network/cross_origin_read_blocking.cc
-+++ b/services/network/cross_origin_read_blocking.cc
-@@ -211,7 +211,7 @@
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -224,7 +224,7 @@
- "application/x-www-form-urlencoded",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium.spec b/chromium.spec
index c961abc..cbc4fa4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -171,7 +171,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.100
+Version: %{majorversion}.0.3809.132
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -280,7 +280,7 @@ Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
@@ -1908,6 +1908,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
+- Update to 76.0.3809.132
+
* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
- Update to 76.0.3809.100
diff --git a/sources b/sources
index b7a420d..2d38a7c 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
+SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
commit 77fd050dd942221c6dd0e8b09183bf3319e1fdfd
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 26 14:40:26 2019 +0200
Another noexec fix for EL7
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 99593f7..407f8de 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -18,7 +18,7 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
switch (icon_type_) {
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
Swap(&other);
}
@@ -28,9 +28,18 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc
Swap(&other);
return *this;
}
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
@@ -143,7 +143,7 @@ class QueryResults {
~QueryResults();
@@ -40,6 +49,15 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.
void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
commit 2f9ffec1c569135a8630d144cb0c4e833e55aabf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 13:48:03 2019 +0200
Another el7 noexcept change
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 054d42e..99593f7 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -1,6 +1,6 @@
diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
provider_id_(provider_id) {}
@@ -16,11 +16,33 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
bool MediaSink::IsMaybeCloudSink() const {
switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
PolicyMap::Entry::~Entry() = default;
@@ -31,8 +53,8 @@ diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-
PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
Entry copy;
diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
default;
@@ -52,8 +74,8 @@ diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.e
bool AccountInfo::IsEmpty() const {
return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
@@ -64,8 +86,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
@@ -19,7 +19,7 @@ struct CoreAccountId {
~CoreAccountId();
@@ -76,8 +98,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept
// Those implicit constructor and conversion operator allow to
// progressively migrate the code to use this struct. Removing
diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
const GPUInfo::GPUDevice& other) = default;
commit 250b15f9a2ed573472abda7e6cc642f2c3372167
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 11:01:37 2019 +0200
More el7 fixes
Merge the previously committed change in to the el7-noexcept patch and
revert another change that is needed on Fedora, but breaking the build
on EL7.
diff --git a/chromium-75.0.3770.100-el7-fix-noexcept.patch b/chromium-75.0.3770.100-el7-fix-noexcept.patch
deleted file mode 100644
index eaba072..0000000
--- a/chromium-75.0.3770.100-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc
---- chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-06-18 11:47:55.000000000 -0400
-+++ chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc 2019-06-20 10:17:27.440446569 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-75.0.3770.100/components/policy/core/common/policy_map.cc
---- chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-06-18 11:48:01.000000000 -0400
-+++ chromium-75.0.3770.100/components/policy/core/common/policy_map.cc 2019-06-20 10:17:27.444446463 -0400
-@@ -31,7 +31,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-75.0.3770.100/components/signin/core/browser/account_info.cc
---- chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-06-20 10:17:27.444446463 -0400
-+++ chromium-75.0.3770.100/components/signin/core/browser/account_info.cc 2019-06-20 10:19:17.959532865 -0400
-@@ -51,7 +51,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-diff -up chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept chromium-75.0.3770.100/gpu/config/gpu_info.cc
---- chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept 2019-06-18 11:48:10.000000000 -0400
-+++ chromium-75.0.3770.100/gpu/config/gpu_info.cc 2019-06-20 10:17:27.445446437 -0400
-@@ -181,7 +181,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 09fccf6..0000000
--- a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
-@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
--
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
-@@ -19,7 +19,6 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
new file mode 100644
index 0000000..054d42e
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -0,0 +1,89 @@
+diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+@@ -19,7 +19,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
diff --git a/chromium.spec b/chromium.spec
index e09a0ac..c961abc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -310,9 +310,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
-# el7 only patch as it doesn't like on of the operator= change in patch59
-Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+Patch102: chromium-76.0.3809.100-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -887,7 +885,8 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
+# Revert patch58 because it's breaking the build on el7
+%patch58 -R -p1
%endif
# Feature specific patches
commit fcd18a8550ce791c6826f2ccbabb31ffef32a923
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 07:54:57 2019 +0200
Fix the EL7 build as it doesn't like part of the upstream GCC patch
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..09fccf6
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,23 @@
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
+@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
+-
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
+@@ -19,7 +19,6 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
diff --git a/chromium.spec b/chromium.spec
index 8a246b7..e09a0ac 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -311,6 +311,8 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+# el7 only patch as it doesn't like on of the operator= change in patch59
+Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -885,6 +887,7 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
+%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
%endif
# Feature specific patches
commit 32351d81ff14bde0babcab29de22c9c28d8a53d7
Author: Nicolas Chauvet <kwizart(a)gmail.com>
Date: Fri Aug 23 18:15:28 2019 +0200
Clean-up gitignore using wildcard
diff --git a/.gitignore b/.gitignore
index 2bfdc54..06de94b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,51 +1,7 @@
/chromium-52.0.2743.75-clean.tar.xz
/depot_tools.git-master.tar.gz
/policy_templates.zip
-/chromium-52.0.2743.82-clean.tar.xz
-/chromium-52.0.2743.116-clean.tar.xz
-/chromium-53.0.2785.92-clean.tar.xz
-/chromium-53.0.2785.101-clean.tar.xz
-/chromium-53.0.2785.113-clean.tar.xz
-/chromium-53.0.2785.116-clean.tar.xz
-/chromium-53.0.2785.143-clean.tar.xz
-/chromium-54.0.2840.59-clean.tar.xz
-/chromium-54.0.2840.71-clean.tar.xz
-/chromium-54.0.2840.90-clean.tar.xz
-/chromium-54.0.2840.100.tar.xz
-/chromium-54.0.2840.100-clean.tar.xz
-/chromium-55.0.2883.75-clean.tar.xz
-/chromium-55.0.2883.87-clean.tar.xz
-/chromium-56.0.2924.87-clean.tar.xz
-/chromium-57.0.2987.110-clean.tar.xz
-/chromium-57.0.2987.133-clean.tar.xz
-/chromium-58.0.3029.81-clean.tar.xz
-/chromium-58.0.3029.110-clean.tar.xz
-/chromium-59.0.3071.86-clean.tar.xz
-/chromium-59.0.3071.104-clean.tar.xz
-/chromium-59.0.3071.109-clean.tar.xz
-/chromium-59.0.3071.115-clean.tar.xz
-/chromium-59.0.3071.109-freetype.tar.bz2
-/chromium-60.0.3112.90-clean.tar.xz
-/chromium-60.0.3112.101-clean.tar.xz
-/chromium-60.0.3112.113-clean.tar.xz
-/chromium-60.0.3112.113.tar.xz
-/chromium-61.0.3163.79-clean.tar.xz
-/chromium-61.0.3163.100-clean.tar.xz
-/chromium-62.0.3202.75-clean.tar.xz
-/chromium-62.0.3202.89-clean.tar.xz
-/chromium-63.0.3239.84-clean.tar.xz
-/chromium-63.0.3239.108-clean.tar.xz
-/chromium-64.0.3282.119-clean.tar.xz
-/chromium-64.0.3282.140-clean.tar.xz
-/chromium-64.0.3282.167-clean.tar.xz
-/chromium-64.0.3282.186-clean.tar.xz
-/chromium-65.0.3325.146-clean.tar.xz
-/chromium-65.0.3325.162-clean.tar.xz
-/chromium-65.0.3325.181-clean.tar.xz
-/chromium-66.0.3359.139-clean.tar.xz
-/chromium-66.0.3359.170-clean.tar.xz
-/chromium-66.0.3359.181-clean.tar.xz
-/chromium-67.0.3396.62-clean.tar.xz
+/chromium-*.tar.xz
/gelasio.zip
/MuktiNarrow-0.94.tar.bz2
/NotoSansCJKjp-hinted.zip
@@ -62,23 +18,5 @@
/Tinos-Bold.ttf
/Tinos-Italic.ttf
/Tinos-Regular.ttf
-/chromium-67.0.3396.79-clean.tar.xz
-/chromium-67.0.3396.87-clean.tar.xz
-/chromium-67.0.3396.99-clean.tar.xz
-/chromium-68.0.3440.106-clean.tar.xz
/Ahem.ttf
-/chromium-69.0.3497.92-clean.tar.xz
-/chromium-69.0.3497.100-clean.tar.xz
-/chromium-70.0.3538.77-clean.tar.xz
-/chromium-70.0.3538.110-clean.tar.xz
-/chromium-71.0.3578.98-clean.tar.xz
/node-v8.9.1-linux-x64.tar.gz
-/chromium-72.0.3626.121-clean.tar.xz
-/chromium-73.0.3683.75-clean.tar.xz
-/chromium-73.0.3683.86-clean.tar.xz
-/chromium-73.0.3683.103-clean.tar.xz
-/chromium-74.0.3729.169-clean.tar.xz
-/chromium-75.0.3770.80-clean.tar.xz
-/chromium-75.0.3770.90-clean.tar.xz
-/chromium-75.0.3770.100-clean.tar.xz
-/chromium-76.0.3809.100-clean.tar.xz
commit cae7041976921f250979d79a53cd227247927c18
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 21 13:51:11 2019 +0200
Update the list of private libraries and remove a pak file that was removed
diff --git a/chromium.spec b/chromium.spec
index e06bcdd..8a246b7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -54,9 +54,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
%else
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -1753,7 +1753,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chrome_*.pak
%{chromium_path}/resources.pak
%{chromium_path}/icudtl.dat
-%{chromium_path}/views_mus_resources.pak
%{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh
%{chromium_path}/MEIPreload/
commit 53c822f6be8f1d5140bb2be4d122e936f096a9a9
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 22:07:44 2019 +0200
Fix the previously uploaded patch
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
index c59702f..aec3107 100644
--- a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -12,13 +12,13 @@ diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-conste
MessageTracker::MessageTracker() = default;
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
---- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
@@ -36,7 +36,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
-- static constexpr base::TimeDelta kCleanupInterval;
+- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::TimeDelta::FromMinutes(2);
commit c55af60ffa59e4d4fc75644982db695826c58f54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 21:36:06 2019 +0200
Fix the build of remoting_all target
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
new file mode 100644
index 0000000..c59702f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -0,0 +1,27 @@
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
+@@ -9,8 +9,7 @@
+ namespace remoting {
+
+ // static
+-const base::TimeDelta MessageTracker::kCleanupInterval =
+- base::TimeDelta::FromMinutes(2);
++constexpr base::TimeDelta MessageTracker::kCleanupInterval;
+
+ MessageTracker::MessageTracker() = default;
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
+@@ -36,7 +36,8 @@ class MessageTracker final {
+
+ // All IDs older than now - kCleanupInterval will be eventually removed, but
+ // they are not guaranteed to be immediately removed after the interval.
+- static constexpr base::TimeDelta kCleanupInterval;
++ static constexpr base::TimeDelta kCleanupInterval =
++ base::TimeDelta::FromMinutes(2);
+
+ void RemoveExpiredIds();
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..64532df
--- /dev/null
+++ b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
++++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
+ certificate_file,
diff --git a/chromium.spec b/chromium.spec
index f003849..e06bcdd 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -297,10 +297,13 @@ Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
-# TBD - need to submit it
-# In GCC one can't use alignas() for exported classes (as described in
-# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+# In GCC one can't use alignas() for exported classes
+# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+# Needs to be submitted..
+Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
+Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -874,6 +877,8 @@ udev.
%patch59 -p1 -b .gcc-accountinfo-move-noexcept
%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
+%patch62 -p1 -b .gcc-remoting-constexpr
+%patch63 -p1 -b .vtable-symbol-undefined
# EPEL specific patches
%if 0%{?rhel} == 7
commit ba2f198b9f3f9f682f22b035452537a6236294d1
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 16 13:58:53 2019 +0200
//third_party dependency missing for remoting
diff --git a/chromium.spec b/chromium.spec
index de9e05b..f003849 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1207,6 +1207,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/google_trust_services' \
'third_party/googletest' \
'third_party/glslang' \
'third_party/grpc' \
commit 1196d0d541965da13ee93b40cae1dc08167faab5
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 21:14:35 2019 +0200
Backport and create more of the GCC fixes
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..5f45a8f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,53 @@
+From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 18:38:12 +0200
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
+
+AccountInfo declares them as noexcept and uses default implementation,
+so all its members (including AccountId) should be noexcept. But AccountId
+is not noexcept. To fix it we just need to make CoreAccountId move
+operator/assign operator noexcept.
+
+Bug: 819294
+Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
+---
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d808082..12eefe3 100644
+--- a/google_apis/gaia/core_account_id.cc
++++ b/google_apis/gaia/core_account_id.cc
+@@ -6,8 +6,16 @@
+
+ CoreAccountId::CoreAccountId() = default;
+
++CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
++
++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::~CoreAccountId() = default;
+
++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
++
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
+index 5ea602a..c2d1911 100644
+--- a/google_apis/gaia/core_account_id.h
++++ b/google_apis/gaia/core_account_id.h
+@@ -14,8 +14,13 @@
+ // for design and tracking).
+ struct CoreAccountId {
+ CoreAccountId();
++ CoreAccountId(const CoreAccountId&);
++ CoreAccountId(CoreAccountId&&) noexcept;
+ ~CoreAccountId();
+
++ CoreAccountId& operator=(const CoreAccountId&);
++ CoreAccountId& operator=(CoreAccountId&&) noexcept;
++
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+ // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
new file mode 100644
index 0000000..2876de4
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
@@ -0,0 +1,42 @@
+From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 10:27:19 +0200
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+
+In GCC, build is failing because history::QueryURLResult declares its move
+assignment operator as noexcept using default implementation. That requires
+its members to provide a move assignment operator that is noexcept too.
+
+But URLRow was missing noexcept declaration in move assignment operator (even
+though it was providing noexcept to its move constructor).
+
+Bug: 819294
+Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
+---
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd..aec0101 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) = default;
++URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
+index 8f6f9cf..31a1ef8 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@
+
+ virtual ~URLRow();
+ URLRow& operator=(const URLRow& other);
+- URLRow& operator=(URLRow&& other);
++ URLRow& operator=(URLRow&& other) noexcept;
+
+ URLID id() const { return id_; }
+
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
new file mode 100644
index 0000000..cc91d1e
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -0,0 +1,14 @@
+diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
+--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
++++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
+@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
+ DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
+ };
+
+-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
+- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
++class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
++ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
+ : public CSSPropertyValueSet {
+ public:
+ ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
new file mode 100644
index 0000000..ad40bb9
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
@@ -0,0 +1,36 @@
+From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 22:01:03 +0200
+Subject: [PATCH] IWYU: ThemeService requires NativeTheme
+
+As ThemeService referes to NativeTheme through a ScopedObserver,
+the full declaration is required.
+
+Bug: 819294
+Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
+---
+
+diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
+index d65388e2..23dc86d 100644
+--- a/chrome/browser/themes/theme_service.cc
++++ b/chrome/browser/themes/theme_service.cc
+@@ -54,7 +54,6 @@
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/native_theme/common_theme.h"
+-#include "ui/native_theme/native_theme.h"
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+ #include "base/scoped_observer.h"
+diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
+index 6c79c72..f93dc0d 100644
+--- a/chrome/browser/themes/theme_service.h
++++ b/chrome/browser/themes/theme_service.h
+@@ -25,6 +25,7 @@
+ #include "extensions/buildflags/buildflags.h"
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
++#include "ui/native_theme/native_theme.h"
+ #include "ui/native_theme/native_theme_observer.h"
+
+ class BrowserThemePack;
diff --git a/chromium.spec b/chromium.spec
index 64e3243..de9e05b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,6 +291,16 @@ Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
+# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
+Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
+Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
+Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+# TBD - need to submit it
+# In GCC one can't use alignas() for exported classes (as described in
+# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -860,6 +870,10 @@ udev.
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
%patch57 -p1 -b .gcc-initialization-order
+%patch58 -p1 -b .gcc-history-move-noexcept
+%patch59 -p1 -b .gcc-accountinfo-move-noexcept
+%patch60 -p1 -b .gcc-themeservice-includes
+%patch61 -p1 -b .gcc-no-alignas-and-export
# EPEL specific patches
%if 0%{?rhel} == 7
commit b01a0be49606614662f2dc0a5c7cc018c14b2ecf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:10:04 2019 +0200
Upload the new cleaned tarball with aarch64 sources
Previously I forgot to pass the --ffmpegarm while generating the
tarball.
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index e190296..2f27435 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,7 +216,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
- libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index d6d53e4..b7a420d 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
commit 170da1572c9fbe5224d94a9835b423cfa17fe7ae
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:03:49 2019 +0200
Backport another upstream build fix
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
new file mode 100644
index 0000000..3bf394f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-initialization-order.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
+
+XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
+same order of the declaration. GCC fails because of that.
+
+Bug: 819294
+Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
+Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd4..0aa6892 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@
+
+ XSetWindowAttributes swa = {
+ .background_pixmap = 0,
+- .bit_gravity = NorthWestGravity,
+- .colormap = g_colormap,
+ .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
+ .border_pixel = 0,
++ .bit_gravity = NorthWestGravity,
++ .colormap = g_colormap,
+ };
+ auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
+ if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium.spec b/chromium.spec
index f91b60b..64e3243 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -289,6 +289,8 @@ Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
+Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -857,6 +859,7 @@ udev.
%patch54 -p1 -b .gcc-feature-policy-parser
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
+%patch57 -p1 -b .gcc-initialization-order
# EPEL specific patches
%if 0%{?rhel} == 7
commit f31a3b1f0c9d88610827a22cbd6cbc8661a9a85f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:22:37 2019 +0200
Update the Pulseaudio's pa_operation_get_state() signature
Missed it while updating the Pulseaudio signatures.
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
index 37d3dfa..d4e2b46 100644
--- a/chromium-76.0.3809.100-pulse-api-change.patch
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -1,7 +1,7 @@
-diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
---- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
-+++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
-@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200
+@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info
pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
@@ -10,6 +10,11 @@ diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change ch
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+-pa_operation_state_t pa_operation_get_state(pa_operation* o);
++pa_operation_state_t pa_operation_get_state(const pa_operation* o);
+ void pa_context_unref(pa_context* c);
+ void pa_operation_unref(pa_operation* o);
+ int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
int pa_stream_disconnect(pa_stream* s);
int pa_stream_drop(pa_stream *p);
commit 923b51d3f2c64069f49e4f19405f4e7f5462cb45
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:17:42 2019 +0200
Add missing ffmpeg file on aarch64
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..e190296 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,6 +216,7 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
+ libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index 4e53fd1..d6d53e4 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
commit b2aa2214697a15ff6df60d075910c42368111147
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 16:52:41 2019 +0200
Pulseaudio changed the API in 12.99 and we need to adapt the signatures
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
new file mode 100644
index 0000000..37d3dfa
--- /dev/null
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -0,0 +1,42 @@
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
+@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+ pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
+ pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
+ pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
+-pa_context_state_t pa_context_get_state(pa_context* c);
++pa_context_state_t pa_context_get_state(const pa_context* c);
+ pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
+ pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
+ void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
+ int pa_stream_disconnect(pa_stream* s);
+ int pa_stream_drop(pa_stream *p);
+ pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
+-uint32_t pa_stream_get_device_index(pa_stream* s);
++uint32_t pa_stream_get_device_index(const pa_stream* s);
+ int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
+-pa_stream_state_t pa_stream_get_state(pa_stream* p);
++pa_stream_state_t pa_stream_get_state(const pa_stream* p);
+ pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
+ pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
+ pa_proplist* pa_proplist_new(void);
+-int pa_proplist_contains(pa_proplist* p, const char* key);
++int pa_proplist_contains(const pa_proplist* p, const char* key);
+ void pa_proplist_free(pa_proplist* p);
+-const char* pa_proplist_gets(pa_proplist* p, const char* key);
++const char* pa_proplist_gets(const pa_proplist* p, const char* key);
+ int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
+-size_t pa_stream_readable_size(pa_stream *p);
++size_t pa_stream_readable_size(const pa_stream *p);
+ int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
+ void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
+ void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
+ int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
+ void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
+ void pa_stream_unref(pa_stream* s);
+-int pa_context_errno(pa_context *c);
++int pa_context_errno(const pa_context *c);
+ const char* pa_strerror(int error);
+ pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
diff --git a/chromium.spec b/chromium.spec
index bf6bdcb..f91b60b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -141,6 +141,13 @@ BuildRequires: libicu-devel >= 5.4
%global bundleharfbuzz 0
%endif
+# Pulseaudio changed the API a little in 12.99.1
+%if 0%{?fedora} > 30
+%global pulseaudioapichange 1
+%else
+%global pulseaudioapichange 0
+%endif
+
### 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.
@@ -306,6 +313,8 @@ Patch202: enable-vaapi.patch
Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+# Pulseaudio changed the API a little in 12.99.1
+Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -491,7 +500,6 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: pulseaudio-libs-devel
BuildRequires: python2-devel
%if 0%{?fedora} > 27
BuildRequires: python2-beautifulsoup4
@@ -871,6 +879,9 @@ udev.
%endif
%endif
+%if 0%{?pulseaudioapichange}
+%patch205 -p1 -b .pulseaudioapichange
+%endif
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
commit a848ba49241b8d9360d50f2be4660b070679bc4b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Aug 14 09:52:16 2019 -0400
loosen dependency on chromium-libs in freeworld build
diff --git a/chromium.spec b/chromium.spec
index 0d575b1..bf6bdcb 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -730,7 +730,7 @@ Shared libraries used by chromium (and chrome-remote-desktop).
Summary: Chromium media libraries built with all possible codecs
Provides: chromium-libs-media = %{version}-%{release}
Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives
commit 081e6e7deb9f6a686ff904567f5097b1a87d9b75
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:41:23 2019 +0200
third_party/boringssl/linux-x86_64/crypto/third_party/sike needs to be preserved
diff --git a/chromium.spec b/chromium.spec
index f23664a..0d575b1 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1137,7 +1137,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/boringssl/src/third_party/sike' \
- 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike' \
+ 'third_party/boringssl/linux-aarch64/crypto/third_party/sike' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
commit 6338de1419172f50e62e210ac3c70d2490902c4a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:38:35 2019 +0200
third_party/openscreen need to be preserved
diff --git a/chromium.spec b/chromium.spec
index 383bfa9..f23664a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1232,6 +1232,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
+ 'third_party/openscreen' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
commit 333adfcd3829e396207f60316598909ba36b7f8e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 14:38:51 2019 +0200
Backport more build fixes from upstream
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..587abf3
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
+
+Use brace-list notation to wrap the already existing brace-list for
+initializing the flat-set. This resolves an ambiguous instantiation
+in GCC.
+
+Bug: 819294
+Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
+Reviewed-by: Matt Menke <mmenke(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c0..60a03f6 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -224,7 +224,7 @@
+ "application/x-www-form-urlencoded",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
new file mode 100644
index 0000000..0dbffd5
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
@@ -0,0 +1,76 @@
+From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 19:44:58 +0200
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
+
+Compilation fails because we are declaring ParseValueForFuzzer as friend method,
+but we are declaring it is in anonymous namespace. Moving to global namespace
+still fails (in this case in Clang).
+
+So final solution is making it a public static method of FeaturePolicyParser.
+
+Bug: 819294
+Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
+---
+
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+index 3b7f4a9..eaee409 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+@@ -317,6 +317,13 @@
+ return value;
+ }
+
++void FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType feature_type,
++ const WTF::String& value_string) {
++ bool ok;
++ ParseValueForType(feature_type, value_string, &ok);
++}
++
+ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
+ const ParsedFeaturePolicy& policy) {
+ return std::any_of(policy.begin(), policy.end(),
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+index fd25d90..36af405 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+@@ -16,9 +16,6 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+
+-// Forward declare for friendship.
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
+-
+ namespace blink {
+
+ class Document;
+@@ -79,8 +76,9 @@
+ const FeatureNameMap& feature_names,
+ ExecutionContext* execution_context = nullptr);
+
++ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
++
+ private:
+- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
+ static PolicyValue GetFallbackValueForFeature(
+ mojom::FeaturePolicyFeature feature);
+ static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+index 7f8e6aa..53350e43 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+@@ -23,9 +23,9 @@
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ static blink::BlinkFuzzerTestSupport test_support =
+ blink::BlinkFuzzerTestSupport();
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
+- WTF::String(data, size));
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
+- WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
+ return 0;
+ }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
new file mode 100644
index 0000000..26bba05
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+
+Other HasFraction methods as in PhysicalUnit are declared already
+constexpr and using it. It breaks GCC build.
+
+Bug: 819294.
+Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
+Reviewed-by: vmpstr <vmpstr(a)chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986..b6dbc76 100644
+--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
+@@ -202,7 +202,9 @@
+ return value_ > 0 ? LayoutUnit() : *this;
+ }
+
+- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
++ constexpr bool HasFraction() const {
++ return RawValue() % kFixedPointDenominator;
++ }
+
+ LayoutUnit Fraction() const {
+ // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
new file mode 100644
index 0000000..1d4b90f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+
+Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
+build because of that. Move the template specializations out of RunInfo declaration
+in shape_result_inline_headeres.h to fix the GCC build issue.
+
+Bug: 819294
+Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+index 76ee6091..c14d3a0 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+@@ -251,37 +251,6 @@
+ template <bool has_non_zero_glyph_offsets>
+ struct iterator final {};
+
+- // For non-zero glyph offset array
+- template <>
+- struct iterator<true> final {
+- // The constructor for ShapeResult
+- explicit iterator(const GlyphOffsetArray& array)
+- : pointer(array.storage_.get()) {
+- DCHECK(pointer);
+- }
+-
+- // The constructor for ShapeResultView
+- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
+- DCHECK(pointer);
+- }
+-
+- GlyphOffset operator*() const { return *pointer; }
+- void operator++() { ++pointer; }
+-
+- const GlyphOffset* pointer;
+- };
+-
+- // For zero glyph offset array
+- template <>
+- struct iterator<false> final {
+- explicit iterator(const GlyphOffsetArray& array) {
+- DCHECK(!array.HasStorage());
+- }
+- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
+- GlyphOffset operator*() const { return GlyphOffset(); }
+- void operator++() {}
+- };
+-
+ template <bool has_non_zero_glyph_offsets>
+ iterator<has_non_zero_glyph_offsets> GetIterator() const {
+ return iterator<has_non_zero_glyph_offsets>(*this);
+@@ -495,6 +464,37 @@
+ float width_;
+ };
+
++// For non-zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
++ // The constructor for ShapeResult
++ explicit iterator(const GlyphOffsetArray& array)
++ : pointer(array.storage_.get()) {
++ DCHECK(pointer);
++ }
++
++ // The constructor for ShapeResultView
++ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
++ DCHECK(pointer);
++ }
++
++ GlyphOffset operator*() const { return *pointer; }
++ void operator++() { ++pointer; }
++
++ const GlyphOffset* pointer;
++};
++
++// For zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
++ explicit iterator(const GlyphOffsetArray& array) {
++ DCHECK(!array.HasStorage());
++ }
++ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
++ GlyphOffset operator*() const { return GlyphOffset(); }
++ void operator++() {}
++};
++
+ // Find the range of HarfBuzzRunGlyphData for the specified character index
+ // range. This function uses binary search twice, hence O(2 log n).
+ inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
new file mode 100644
index 0000000..98789d9
--- /dev/null
+++ b/chromium-76.0.3809.100-quiche-compile-fix.patch
@@ -0,0 +1,225 @@
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
+@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
+ std::string TransportParameterIdToString(
+ TransportParameters::TransportParameterId param_id) {
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ return "original_connection_id";
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ return "idle_timeout";
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ return "stateless_reset_token";
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ return "max_packet_size";
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ return "initial_max_data";
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ return "initial_max_stream_data_bidi_local";
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ return "initial_max_stream_data_bidi_remote";
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ return "initial_max_stream_data_uni";
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ return "initial_max_streams_bidi";
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ return "initial_max_streams_uni";
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ return "ack_delay_exponent";
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ return "max_ack_delay";
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ return "disable_migration";
+- case kPreferredAddress:
++ case TransportParameters::kPreferredAddress:
+ return "preferred_address";
+- case kGoogleQuicParam:
++ case TransportParameters::kGoogleQuicParam:
+ return "google";
+- case kGoogleQuicVersion:
++ case TransportParameters::kGoogleQuicVersion:
+ return "google-version";
+ }
+ return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
+@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
+ CBB original_connection_id_param;
+ if (!in.original_connection_id.IsEmpty()) {
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
+ !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
+ !CBB_add_bytes(
+ &original_connection_id_param,
+@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
+ if (!in.stateless_reset_token.empty()) {
+ DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
+ !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
+ !CBB_add_bytes(&stateless_reset_token_param,
+ in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
+
+ // disable_migration
+ if (in.disable_migration) {
+- if (!CBB_add_u16(¶ms, kDisableMigration) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
+ !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
+ QUIC_BUG << "Failed to write disable_migration for " << in;
+ return false;
+@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
+ QUIC_BUG << "Bad lengths " << *in.preferred_address;
+ return false;
+ }
+- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
+ !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
+ !CBB_add_bytes(
+ &preferred_address_params,
+@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
+ if (in.google_quic_params) {
+ const QuicData& serialized_google_quic_params =
+ in.google_quic_params->GetSerialized();
+- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
+ !CBB_add_bytes(&google_quic_params,
+ reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
+
+ // Google-specific version extension.
+ CBB google_version_params;
+- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
+ !CBB_add_u32(&google_version_params, in.version)) {
+ QUIC_BUG << "Failed to write Google version extension for " << in;
+@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
+ }
+ bool parse_success = true;
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ if (!out->original_connection_id.IsEmpty()) {
+ QUIC_DLOG(ERROR) << "Received a second original connection ID";
+ return false;
+@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
+ CBS_len(&value));
+ }
+ break;
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
+ break;
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ if (!out->stateless_reset_token.empty()) {
+ QUIC_DLOG(ERROR) << "Received a second stateless reset token";
+ return false;
+@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
+ out->stateless_reset_token.assign(CBS_data(&value),
+ CBS_data(&value) + CBS_len(&value));
+ break;
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ parse_success = out->max_packet_size.ReadFromCbs(&value);
+ break;
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ parse_success = out->initial_max_data.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ parse_success =
+ out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ parse_success =
+ out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
+ break;
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
+ break;
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ parse_success = out->max_ack_delay.ReadFromCbs(&value);
+ break;
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ if (out->disable_migration) {
+ QUIC_DLOG(ERROR) << "Received a second disable migration";
+ return false;
+@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
+ }
+ out->disable_migration = true;
+ break;
+- case kPreferredAddress: {
++ case TransportParameters::kPreferredAddress: {
+ uint16_t ipv4_port, ipv6_port;
+ in_addr ipv4_address;
+ in6_addr ipv6_address;
+@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
+ QuicMakeUnique<TransportParameters::PreferredAddress>(
+ preferred_address);
+ } break;
+- case kGoogleQuicParam: {
++ case TransportParameters::kGoogleQuicParam: {
+ if (out->google_quic_params) {
+ QUIC_DLOG(ERROR) << "Received a second Google parameter";
+ return false;
+@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
+ reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
+ out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
+ } break;
+- case kGoogleQuicVersion: {
++ case TransportParameters::kGoogleQuicVersion: {
+ if (!CBS_get_u32(&value, &out->version)) {
+ QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
+ return false;
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-#include <string>
+-
+ #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
+
++#include <cstring>
++#include <string>
++#include <vector>
++
+ namespace quic {
+
+ namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
new file mode 100644
index 0000000..5e392e6
--- /dev/null
+++ b/chromium-76.0.3809.100-throttling-dead-beef.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 06 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+
+We are setting kAlive and kDead values assigning values that
+are bigger than the maximum signed int32. It is better to use
+uint32_t in this case.
+
+Bug: 819294
+Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4..3c6f87b 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@
+
+ // TODO(https://crbug.com/960874): Debugging code to try and shed some light
+ // on why the owned maps are invalid.
+- enum class Liveness : int32_t {
++ enum class Liveness : uint32_t {
+ kAlive = 0xCA11AB13,
+ kDead = 0xDEADBEEF,
+ };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
new file mode 100644
index 0000000..a392971
--- /dev/null
+++ b/chromium-76.0.3809.100-weak-ptr-no-except.patch
@@ -0,0 +1,66 @@
+From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 18 Jul 2019 14:26:11 +0200
+Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
+
+A GCC build regression has happened on DisjointRangeLockManager, as its move
+operator and constructor were declared noexcept. This was failing because the
+default implementation depended on base::WeakPtr, that did not provide
+noexcept declaration for them.
+
+So make base::WeakPtr noexcept.
+
+Bug: 819294
+Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
+---
+
+diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
+index 64fd499..0efcc44 100644
+--- a/base/memory/weak_ptr.cc
++++ b/base/memory/weak_ptr.cc
+@@ -46,7 +46,7 @@
+
+ WeakReference::~WeakReference() = default;
+
+-WeakReference::WeakReference(WeakReference&& other) = default;
++WeakReference::WeakReference(WeakReference&& other) noexcept = default;
+
+ WeakReference::WeakReference(const WeakReference& other) = default;
+
+diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
+index 72b5f1f..ccd22fd13 100644
+--- a/base/memory/weak_ptr.h
++++ b/base/memory/weak_ptr.h
+@@ -116,9 +116,9 @@
+ explicit WeakReference(const scoped_refptr<Flag>& flag);
+ ~WeakReference();
+
+- WeakReference(WeakReference&& other);
++ WeakReference(WeakReference&& other) noexcept;
+ WeakReference(const WeakReference& other);
+- WeakReference& operator=(WeakReference&& other) = default;
++ WeakReference& operator=(WeakReference&& other) noexcept = default;
+ WeakReference& operator=(const WeakReference& other) = default;
+
+ bool IsValid() const;
+@@ -153,9 +153,9 @@
+ ~WeakPtrBase();
+
+ WeakPtrBase(const WeakPtrBase& other) = default;
+- WeakPtrBase(WeakPtrBase&& other) = default;
++ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
+ WeakPtrBase& operator=(const WeakPtrBase& other) = default;
+- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
++ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
+
+ void reset() {
+ ref_ = internal::WeakReference();
+@@ -236,7 +236,7 @@
+ ptr_ = reinterpret_cast<uintptr_t>(t);
+ }
+ template <typename U>
+- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
++ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
+ // Need to cast from U* to T* to do pointer adjustment in case of multiple
+ // inheritance. This also enforces the "U is a T" rule.
+ T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium.spec b/chromium.spec
index 602b236..383bfa9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -268,6 +268,20 @@ Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
+# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
+Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
+Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
+# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
+Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
+Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
+Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
+Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
+Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -828,6 +842,13 @@ udev.
%patch47 -p1 -b .gcc-vulkan
%patch48 -p1 -b .gcc-cc-no-except
%patch49 -p1 -b .gcc-net-fetcher
+%patch50 -p1 -b .quiche-compile-fix
+%patch51 -p1 -b .throttling-dead-beef
+%patch52 -p1 -b .gcc-ambigous-instantiation
+%patch53 -p1 -b .weak-ptr-no-except
+%patch54 -p1 -b .gcc-feature-policy-parser
+%patch55 -p1 -b .gcc-hasfraction-constexpr
+%patch56 -p1 -b .gcc-move-explicit-initialization
# EPEL specific patches
%if 0%{?rhel} == 7
commit 02877cca954a9e0168139293baedef66fd483257
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 21 13:51:11 2019 +0200
Update the list of private libraries and remove a pak file that was removed
diff --git a/chromium.spec b/chromium.spec
index e06bcdd..8a246b7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -54,9 +54,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
%else
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -1753,7 +1753,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chrome_*.pak
%{chromium_path}/resources.pak
%{chromium_path}/icudtl.dat
-%{chromium_path}/views_mus_resources.pak
%{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh
%{chromium_path}/MEIPreload/
commit 234bd983cba301fe205f7b9c924fd5acbbf415c4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 22:07:44 2019 +0200
Fix the previously uploaded patch
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
index c59702f..aec3107 100644
--- a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -12,13 +12,13 @@ diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-conste
MessageTracker::MessageTracker() = default;
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
---- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
@@ -36,7 +36,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
-- static constexpr base::TimeDelta kCleanupInterval;
+- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::TimeDelta::FromMinutes(2);
commit 05ed80ce7ee4f1c18ac322cf720e62d21ec15bbc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 21:36:06 2019 +0200
Fix the build of remoting_all target
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
new file mode 100644
index 0000000..c59702f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -0,0 +1,27 @@
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
+@@ -9,8 +9,7 @@
+ namespace remoting {
+
+ // static
+-const base::TimeDelta MessageTracker::kCleanupInterval =
+- base::TimeDelta::FromMinutes(2);
++constexpr base::TimeDelta MessageTracker::kCleanupInterval;
+
+ MessageTracker::MessageTracker() = default;
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
+@@ -36,7 +36,8 @@ class MessageTracker final {
+
+ // All IDs older than now - kCleanupInterval will be eventually removed, but
+ // they are not guaranteed to be immediately removed after the interval.
+- static constexpr base::TimeDelta kCleanupInterval;
++ static constexpr base::TimeDelta kCleanupInterval =
++ base::TimeDelta::FromMinutes(2);
+
+ void RemoveExpiredIds();
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..64532df
--- /dev/null
+++ b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
++++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
+ certificate_file,
diff --git a/chromium.spec b/chromium.spec
index f003849..e06bcdd 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -297,10 +297,13 @@ Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
-# TBD - need to submit it
-# In GCC one can't use alignas() for exported classes (as described in
-# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+# In GCC one can't use alignas() for exported classes
+# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+# Needs to be submitted..
+Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
+Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -874,6 +877,8 @@ udev.
%patch59 -p1 -b .gcc-accountinfo-move-noexcept
%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
+%patch62 -p1 -b .gcc-remoting-constexpr
+%patch63 -p1 -b .vtable-symbol-undefined
# EPEL specific patches
%if 0%{?rhel} == 7
commit f32de4175a201b0ba68395cf00dec837e06d6079
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 16 13:58:53 2019 +0200
//third_party dependency missing for remoting
diff --git a/chromium.spec b/chromium.spec
index de9e05b..f003849 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1207,6 +1207,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/google_trust_services' \
'third_party/googletest' \
'third_party/glslang' \
'third_party/grpc' \
commit 6ab36cdf55a4aa71200853ab75f3532831f1adab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 21:14:35 2019 +0200
Backport and create more of the GCC fixes
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..5f45a8f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,53 @@
+From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 18:38:12 +0200
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
+
+AccountInfo declares them as noexcept and uses default implementation,
+so all its members (including AccountId) should be noexcept. But AccountId
+is not noexcept. To fix it we just need to make CoreAccountId move
+operator/assign operator noexcept.
+
+Bug: 819294
+Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
+---
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d808082..12eefe3 100644
+--- a/google_apis/gaia/core_account_id.cc
++++ b/google_apis/gaia/core_account_id.cc
+@@ -6,8 +6,16 @@
+
+ CoreAccountId::CoreAccountId() = default;
+
++CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
++
++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::~CoreAccountId() = default;
+
++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
++
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
+index 5ea602a..c2d1911 100644
+--- a/google_apis/gaia/core_account_id.h
++++ b/google_apis/gaia/core_account_id.h
+@@ -14,8 +14,13 @@
+ // for design and tracking).
+ struct CoreAccountId {
+ CoreAccountId();
++ CoreAccountId(const CoreAccountId&);
++ CoreAccountId(CoreAccountId&&) noexcept;
+ ~CoreAccountId();
+
++ CoreAccountId& operator=(const CoreAccountId&);
++ CoreAccountId& operator=(CoreAccountId&&) noexcept;
++
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+ // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
new file mode 100644
index 0000000..2876de4
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
@@ -0,0 +1,42 @@
+From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 10:27:19 +0200
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+
+In GCC, build is failing because history::QueryURLResult declares its move
+assignment operator as noexcept using default implementation. That requires
+its members to provide a move assignment operator that is noexcept too.
+
+But URLRow was missing noexcept declaration in move assignment operator (even
+though it was providing noexcept to its move constructor).
+
+Bug: 819294
+Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
+---
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd..aec0101 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) = default;
++URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
+index 8f6f9cf..31a1ef8 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@
+
+ virtual ~URLRow();
+ URLRow& operator=(const URLRow& other);
+- URLRow& operator=(URLRow&& other);
++ URLRow& operator=(URLRow&& other) noexcept;
+
+ URLID id() const { return id_; }
+
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
new file mode 100644
index 0000000..cc91d1e
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -0,0 +1,14 @@
+diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
+--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
++++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
+@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
+ DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
+ };
+
+-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
+- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
++class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
++ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
+ : public CSSPropertyValueSet {
+ public:
+ ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
new file mode 100644
index 0000000..ad40bb9
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
@@ -0,0 +1,36 @@
+From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 22:01:03 +0200
+Subject: [PATCH] IWYU: ThemeService requires NativeTheme
+
+As ThemeService referes to NativeTheme through a ScopedObserver,
+the full declaration is required.
+
+Bug: 819294
+Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
+---
+
+diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
+index d65388e2..23dc86d 100644
+--- a/chrome/browser/themes/theme_service.cc
++++ b/chrome/browser/themes/theme_service.cc
+@@ -54,7 +54,6 @@
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/native_theme/common_theme.h"
+-#include "ui/native_theme/native_theme.h"
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+ #include "base/scoped_observer.h"
+diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
+index 6c79c72..f93dc0d 100644
+--- a/chrome/browser/themes/theme_service.h
++++ b/chrome/browser/themes/theme_service.h
+@@ -25,6 +25,7 @@
+ #include "extensions/buildflags/buildflags.h"
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
++#include "ui/native_theme/native_theme.h"
+ #include "ui/native_theme/native_theme_observer.h"
+
+ class BrowserThemePack;
diff --git a/chromium.spec b/chromium.spec
index 64e3243..de9e05b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,6 +291,16 @@ Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
+# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
+Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
+Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
+Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+# TBD - need to submit it
+# In GCC one can't use alignas() for exported classes (as described in
+# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -860,6 +870,10 @@ udev.
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
%patch57 -p1 -b .gcc-initialization-order
+%patch58 -p1 -b .gcc-history-move-noexcept
+%patch59 -p1 -b .gcc-accountinfo-move-noexcept
+%patch60 -p1 -b .gcc-themeservice-includes
+%patch61 -p1 -b .gcc-no-alignas-and-export
# EPEL specific patches
%if 0%{?rhel} == 7
commit cfc50a59ed81324387d036954e96c08805d4f25a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:10:04 2019 +0200
Upload the new cleaned tarball with aarch64 sources
Previously I forgot to pass the --ffmpegarm while generating the
tarball.
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index e190296..2f27435 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,7 +216,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
- libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index d6d53e4..b7a420d 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
commit 453dfe1db369095fe7f201737409eb6ff0829790
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:03:49 2019 +0200
Backport another upstream build fix
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
new file mode 100644
index 0000000..3bf394f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-initialization-order.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
+
+XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
+same order of the declaration. GCC fails because of that.
+
+Bug: 819294
+Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
+Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd4..0aa6892 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@
+
+ XSetWindowAttributes swa = {
+ .background_pixmap = 0,
+- .bit_gravity = NorthWestGravity,
+- .colormap = g_colormap,
+ .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
+ .border_pixel = 0,
++ .bit_gravity = NorthWestGravity,
++ .colormap = g_colormap,
+ };
+ auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
+ if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium.spec b/chromium.spec
index f91b60b..64e3243 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -289,6 +289,8 @@ Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
+Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -857,6 +859,7 @@ udev.
%patch54 -p1 -b .gcc-feature-policy-parser
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
+%patch57 -p1 -b .gcc-initialization-order
# EPEL specific patches
%if 0%{?rhel} == 7
commit 4376be3d5fd00f265b236e6bc9a7814e0b8dfa24
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:22:37 2019 +0200
Update the Pulseaudio's pa_operation_get_state() signature
Missed it while updating the Pulseaudio signatures.
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
index 37d3dfa..d4e2b46 100644
--- a/chromium-76.0.3809.100-pulse-api-change.patch
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -1,7 +1,7 @@
-diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
---- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
-+++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
-@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200
+@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info
pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
@@ -10,6 +10,11 @@ diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change ch
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+-pa_operation_state_t pa_operation_get_state(pa_operation* o);
++pa_operation_state_t pa_operation_get_state(const pa_operation* o);
+ void pa_context_unref(pa_context* c);
+ void pa_operation_unref(pa_operation* o);
+ int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
int pa_stream_disconnect(pa_stream* s);
int pa_stream_drop(pa_stream *p);
commit a491a863e2af05db76391aec32b831d00342a716
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:17:42 2019 +0200
Add missing ffmpeg file on aarch64
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..e190296 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,6 +216,7 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
+ libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index 4e53fd1..d6d53e4 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
commit 8b12346860ef33607fa96d2ed9e4b0014889345c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 16:52:41 2019 +0200
Pulseaudio changed the API in 12.99 and we need to adapt the signatures
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
new file mode 100644
index 0000000..37d3dfa
--- /dev/null
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -0,0 +1,42 @@
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
+@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+ pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
+ pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
+ pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
+-pa_context_state_t pa_context_get_state(pa_context* c);
++pa_context_state_t pa_context_get_state(const pa_context* c);
+ pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
+ pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
+ void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
+ int pa_stream_disconnect(pa_stream* s);
+ int pa_stream_drop(pa_stream *p);
+ pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
+-uint32_t pa_stream_get_device_index(pa_stream* s);
++uint32_t pa_stream_get_device_index(const pa_stream* s);
+ int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
+-pa_stream_state_t pa_stream_get_state(pa_stream* p);
++pa_stream_state_t pa_stream_get_state(const pa_stream* p);
+ pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
+ pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
+ pa_proplist* pa_proplist_new(void);
+-int pa_proplist_contains(pa_proplist* p, const char* key);
++int pa_proplist_contains(const pa_proplist* p, const char* key);
+ void pa_proplist_free(pa_proplist* p);
+-const char* pa_proplist_gets(pa_proplist* p, const char* key);
++const char* pa_proplist_gets(const pa_proplist* p, const char* key);
+ int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
+-size_t pa_stream_readable_size(pa_stream *p);
++size_t pa_stream_readable_size(const pa_stream *p);
+ int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
+ void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
+ void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
+ int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
+ void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
+ void pa_stream_unref(pa_stream* s);
+-int pa_context_errno(pa_context *c);
++int pa_context_errno(const pa_context *c);
+ const char* pa_strerror(int error);
+ pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
diff --git a/chromium.spec b/chromium.spec
index bf6bdcb..f91b60b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -141,6 +141,13 @@ BuildRequires: libicu-devel >= 5.4
%global bundleharfbuzz 0
%endif
+# Pulseaudio changed the API a little in 12.99.1
+%if 0%{?fedora} > 30
+%global pulseaudioapichange 1
+%else
+%global pulseaudioapichange 0
+%endif
+
### 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.
@@ -306,6 +313,8 @@ Patch202: enable-vaapi.patch
Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+# Pulseaudio changed the API a little in 12.99.1
+Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -491,7 +500,6 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: pulseaudio-libs-devel
BuildRequires: python2-devel
%if 0%{?fedora} > 27
BuildRequires: python2-beautifulsoup4
@@ -871,6 +879,9 @@ udev.
%endif
%endif
+%if 0%{?pulseaudioapichange}
+%patch205 -p1 -b .pulseaudioapichange
+%endif
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
commit 6c1fd53b98f2b055fe077a77f604ce681272b4a4
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Aug 14 09:52:16 2019 -0400
loosen dependency on chromium-libs in freeworld build
diff --git a/chromium.spec b/chromium.spec
index 0d575b1..bf6bdcb 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -730,7 +730,7 @@ Shared libraries used by chromium (and chrome-remote-desktop).
Summary: Chromium media libraries built with all possible codecs
Provides: chromium-libs-media = %{version}-%{release}
Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives
commit 3f2dbf438203976abc9b0107bff6bdf3297c6fae
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:41:23 2019 +0200
third_party/boringssl/linux-x86_64/crypto/third_party/sike needs to be preserved
diff --git a/chromium.spec b/chromium.spec
index f23664a..0d575b1 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1137,7 +1137,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/boringssl/src/third_party/sike' \
- 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike' \
+ 'third_party/boringssl/linux-aarch64/crypto/third_party/sike' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
commit 481c90e3a6ad165906e4760ef4739d4cc10f1376
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:38:35 2019 +0200
third_party/openscreen need to be preserved
diff --git a/chromium.spec b/chromium.spec
index 383bfa9..f23664a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1232,6 +1232,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
+ 'third_party/openscreen' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
commit fcb9e6e6edba2dee44b4896fe6e94eabc5ab8009
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 14:38:51 2019 +0200
Backport more build fixes from upstream
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..587abf3
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
+
+Use brace-list notation to wrap the already existing brace-list for
+initializing the flat-set. This resolves an ambiguous instantiation
+in GCC.
+
+Bug: 819294
+Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
+Reviewed-by: Matt Menke <mmenke(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c0..60a03f6 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -224,7 +224,7 @@
+ "application/x-www-form-urlencoded",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
new file mode 100644
index 0000000..0dbffd5
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
@@ -0,0 +1,76 @@
+From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 19:44:58 +0200
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
+
+Compilation fails because we are declaring ParseValueForFuzzer as friend method,
+but we are declaring it is in anonymous namespace. Moving to global namespace
+still fails (in this case in Clang).
+
+So final solution is making it a public static method of FeaturePolicyParser.
+
+Bug: 819294
+Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
+---
+
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+index 3b7f4a9..eaee409 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+@@ -317,6 +317,13 @@
+ return value;
+ }
+
++void FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType feature_type,
++ const WTF::String& value_string) {
++ bool ok;
++ ParseValueForType(feature_type, value_string, &ok);
++}
++
+ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
+ const ParsedFeaturePolicy& policy) {
+ return std::any_of(policy.begin(), policy.end(),
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+index fd25d90..36af405 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+@@ -16,9 +16,6 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+
+-// Forward declare for friendship.
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
+-
+ namespace blink {
+
+ class Document;
+@@ -79,8 +76,9 @@
+ const FeatureNameMap& feature_names,
+ ExecutionContext* execution_context = nullptr);
+
++ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
++
+ private:
+- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
+ static PolicyValue GetFallbackValueForFeature(
+ mojom::FeaturePolicyFeature feature);
+ static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+index 7f8e6aa..53350e43 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+@@ -23,9 +23,9 @@
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ static blink::BlinkFuzzerTestSupport test_support =
+ blink::BlinkFuzzerTestSupport();
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
+- WTF::String(data, size));
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
+- WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
+ return 0;
+ }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
new file mode 100644
index 0000000..26bba05
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+
+Other HasFraction methods as in PhysicalUnit are declared already
+constexpr and using it. It breaks GCC build.
+
+Bug: 819294.
+Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
+Reviewed-by: vmpstr <vmpstr(a)chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986..b6dbc76 100644
+--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
+@@ -202,7 +202,9 @@
+ return value_ > 0 ? LayoutUnit() : *this;
+ }
+
+- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
++ constexpr bool HasFraction() const {
++ return RawValue() % kFixedPointDenominator;
++ }
+
+ LayoutUnit Fraction() const {
+ // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
new file mode 100644
index 0000000..1d4b90f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+
+Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
+build because of that. Move the template specializations out of RunInfo declaration
+in shape_result_inline_headeres.h to fix the GCC build issue.
+
+Bug: 819294
+Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+index 76ee6091..c14d3a0 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+@@ -251,37 +251,6 @@
+ template <bool has_non_zero_glyph_offsets>
+ struct iterator final {};
+
+- // For non-zero glyph offset array
+- template <>
+- struct iterator<true> final {
+- // The constructor for ShapeResult
+- explicit iterator(const GlyphOffsetArray& array)
+- : pointer(array.storage_.get()) {
+- DCHECK(pointer);
+- }
+-
+- // The constructor for ShapeResultView
+- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
+- DCHECK(pointer);
+- }
+-
+- GlyphOffset operator*() const { return *pointer; }
+- void operator++() { ++pointer; }
+-
+- const GlyphOffset* pointer;
+- };
+-
+- // For zero glyph offset array
+- template <>
+- struct iterator<false> final {
+- explicit iterator(const GlyphOffsetArray& array) {
+- DCHECK(!array.HasStorage());
+- }
+- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
+- GlyphOffset operator*() const { return GlyphOffset(); }
+- void operator++() {}
+- };
+-
+ template <bool has_non_zero_glyph_offsets>
+ iterator<has_non_zero_glyph_offsets> GetIterator() const {
+ return iterator<has_non_zero_glyph_offsets>(*this);
+@@ -495,6 +464,37 @@
+ float width_;
+ };
+
++// For non-zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
++ // The constructor for ShapeResult
++ explicit iterator(const GlyphOffsetArray& array)
++ : pointer(array.storage_.get()) {
++ DCHECK(pointer);
++ }
++
++ // The constructor for ShapeResultView
++ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
++ DCHECK(pointer);
++ }
++
++ GlyphOffset operator*() const { return *pointer; }
++ void operator++() { ++pointer; }
++
++ const GlyphOffset* pointer;
++};
++
++// For zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
++ explicit iterator(const GlyphOffsetArray& array) {
++ DCHECK(!array.HasStorage());
++ }
++ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
++ GlyphOffset operator*() const { return GlyphOffset(); }
++ void operator++() {}
++};
++
+ // Find the range of HarfBuzzRunGlyphData for the specified character index
+ // range. This function uses binary search twice, hence O(2 log n).
+ inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
new file mode 100644
index 0000000..98789d9
--- /dev/null
+++ b/chromium-76.0.3809.100-quiche-compile-fix.patch
@@ -0,0 +1,225 @@
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
+@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
+ std::string TransportParameterIdToString(
+ TransportParameters::TransportParameterId param_id) {
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ return "original_connection_id";
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ return "idle_timeout";
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ return "stateless_reset_token";
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ return "max_packet_size";
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ return "initial_max_data";
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ return "initial_max_stream_data_bidi_local";
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ return "initial_max_stream_data_bidi_remote";
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ return "initial_max_stream_data_uni";
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ return "initial_max_streams_bidi";
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ return "initial_max_streams_uni";
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ return "ack_delay_exponent";
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ return "max_ack_delay";
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ return "disable_migration";
+- case kPreferredAddress:
++ case TransportParameters::kPreferredAddress:
+ return "preferred_address";
+- case kGoogleQuicParam:
++ case TransportParameters::kGoogleQuicParam:
+ return "google";
+- case kGoogleQuicVersion:
++ case TransportParameters::kGoogleQuicVersion:
+ return "google-version";
+ }
+ return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
+@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
+ CBB original_connection_id_param;
+ if (!in.original_connection_id.IsEmpty()) {
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
+ !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
+ !CBB_add_bytes(
+ &original_connection_id_param,
+@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
+ if (!in.stateless_reset_token.empty()) {
+ DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
+ !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
+ !CBB_add_bytes(&stateless_reset_token_param,
+ in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
+
+ // disable_migration
+ if (in.disable_migration) {
+- if (!CBB_add_u16(¶ms, kDisableMigration) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
+ !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
+ QUIC_BUG << "Failed to write disable_migration for " << in;
+ return false;
+@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
+ QUIC_BUG << "Bad lengths " << *in.preferred_address;
+ return false;
+ }
+- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
+ !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
+ !CBB_add_bytes(
+ &preferred_address_params,
+@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
+ if (in.google_quic_params) {
+ const QuicData& serialized_google_quic_params =
+ in.google_quic_params->GetSerialized();
+- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
+ !CBB_add_bytes(&google_quic_params,
+ reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
+
+ // Google-specific version extension.
+ CBB google_version_params;
+- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
+ !CBB_add_u32(&google_version_params, in.version)) {
+ QUIC_BUG << "Failed to write Google version extension for " << in;
+@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
+ }
+ bool parse_success = true;
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ if (!out->original_connection_id.IsEmpty()) {
+ QUIC_DLOG(ERROR) << "Received a second original connection ID";
+ return false;
+@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
+ CBS_len(&value));
+ }
+ break;
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
+ break;
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ if (!out->stateless_reset_token.empty()) {
+ QUIC_DLOG(ERROR) << "Received a second stateless reset token";
+ return false;
+@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
+ out->stateless_reset_token.assign(CBS_data(&value),
+ CBS_data(&value) + CBS_len(&value));
+ break;
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ parse_success = out->max_packet_size.ReadFromCbs(&value);
+ break;
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ parse_success = out->initial_max_data.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ parse_success =
+ out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ parse_success =
+ out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
+ break;
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
+ break;
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ parse_success = out->max_ack_delay.ReadFromCbs(&value);
+ break;
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ if (out->disable_migration) {
+ QUIC_DLOG(ERROR) << "Received a second disable migration";
+ return false;
+@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
+ }
+ out->disable_migration = true;
+ break;
+- case kPreferredAddress: {
++ case TransportParameters::kPreferredAddress: {
+ uint16_t ipv4_port, ipv6_port;
+ in_addr ipv4_address;
+ in6_addr ipv6_address;
+@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
+ QuicMakeUnique<TransportParameters::PreferredAddress>(
+ preferred_address);
+ } break;
+- case kGoogleQuicParam: {
++ case TransportParameters::kGoogleQuicParam: {
+ if (out->google_quic_params) {
+ QUIC_DLOG(ERROR) << "Received a second Google parameter";
+ return false;
+@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
+ reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
+ out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
+ } break;
+- case kGoogleQuicVersion: {
++ case TransportParameters::kGoogleQuicVersion: {
+ if (!CBS_get_u32(&value, &out->version)) {
+ QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
+ return false;
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-#include <string>
+-
+ #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
+
++#include <cstring>
++#include <string>
++#include <vector>
++
+ namespace quic {
+
+ namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
new file mode 100644
index 0000000..5e392e6
--- /dev/null
+++ b/chromium-76.0.3809.100-throttling-dead-beef.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 06 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+
+We are setting kAlive and kDead values assigning values that
+are bigger than the maximum signed int32. It is better to use
+uint32_t in this case.
+
+Bug: 819294
+Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4..3c6f87b 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@
+
+ // TODO(https://crbug.com/960874): Debugging code to try and shed some light
+ // on why the owned maps are invalid.
+- enum class Liveness : int32_t {
++ enum class Liveness : uint32_t {
+ kAlive = 0xCA11AB13,
+ kDead = 0xDEADBEEF,
+ };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
new file mode 100644
index 0000000..a392971
--- /dev/null
+++ b/chromium-76.0.3809.100-weak-ptr-no-except.patch
@@ -0,0 +1,66 @@
+From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 18 Jul 2019 14:26:11 +0200
+Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
+
+A GCC build regression has happened on DisjointRangeLockManager, as its move
+operator and constructor were declared noexcept. This was failing because the
+default implementation depended on base::WeakPtr, that did not provide
+noexcept declaration for them.
+
+So make base::WeakPtr noexcept.
+
+Bug: 819294
+Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
+---
+
+diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
+index 64fd499..0efcc44 100644
+--- a/base/memory/weak_ptr.cc
++++ b/base/memory/weak_ptr.cc
+@@ -46,7 +46,7 @@
+
+ WeakReference::~WeakReference() = default;
+
+-WeakReference::WeakReference(WeakReference&& other) = default;
++WeakReference::WeakReference(WeakReference&& other) noexcept = default;
+
+ WeakReference::WeakReference(const WeakReference& other) = default;
+
+diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
+index 72b5f1f..ccd22fd13 100644
+--- a/base/memory/weak_ptr.h
++++ b/base/memory/weak_ptr.h
+@@ -116,9 +116,9 @@
+ explicit WeakReference(const scoped_refptr<Flag>& flag);
+ ~WeakReference();
+
+- WeakReference(WeakReference&& other);
++ WeakReference(WeakReference&& other) noexcept;
+ WeakReference(const WeakReference& other);
+- WeakReference& operator=(WeakReference&& other) = default;
++ WeakReference& operator=(WeakReference&& other) noexcept = default;
+ WeakReference& operator=(const WeakReference& other) = default;
+
+ bool IsValid() const;
+@@ -153,9 +153,9 @@
+ ~WeakPtrBase();
+
+ WeakPtrBase(const WeakPtrBase& other) = default;
+- WeakPtrBase(WeakPtrBase&& other) = default;
++ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
+ WeakPtrBase& operator=(const WeakPtrBase& other) = default;
+- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
++ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
+
+ void reset() {
+ ref_ = internal::WeakReference();
+@@ -236,7 +236,7 @@
+ ptr_ = reinterpret_cast<uintptr_t>(t);
+ }
+ template <typename U>
+- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
++ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
+ // Need to cast from U* to T* to do pointer adjustment in case of multiple
+ // inheritance. This also enforces the "U is a T" rule.
+ T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium.spec b/chromium.spec
index 602b236..383bfa9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -268,6 +268,20 @@ Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
+# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
+Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
+Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
+# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
+Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
+Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
+Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
+Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
+Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -828,6 +842,13 @@ udev.
%patch47 -p1 -b .gcc-vulkan
%patch48 -p1 -b .gcc-cc-no-except
%patch49 -p1 -b .gcc-net-fetcher
+%patch50 -p1 -b .quiche-compile-fix
+%patch51 -p1 -b .throttling-dead-beef
+%patch52 -p1 -b .gcc-ambigous-instantiation
+%patch53 -p1 -b .weak-ptr-no-except
+%patch54 -p1 -b .gcc-feature-policy-parser
+%patch55 -p1 -b .gcc-hasfraction-constexpr
+%patch56 -p1 -b .gcc-move-explicit-initialization
# EPEL specific patches
%if 0%{?rhel} == 7
commit 44822a9bb7a5f3e2bc958f6de38a66d12d964823
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 13 15:39:15 2019 +0200
Add more fixes
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
new file mode 100644
index 0000000..e4d754a
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-cc-no-except.patch
@@ -0,0 +1,105 @@
+From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 07 Jun 2019 09:50:11 +0000
+Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
+
+As LayerTreeHostImpl::UIResourceData move constructor is declared
+noexcept with default implementation, the move constructor of its
+members should also be noexcept. GCC will fail to build otherwise
+for mismatching noexcept declaration.
+
+We also set the move assignment operator.
+
+Bug: 819294
+Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667064}
+---
+
+diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
+index 2be2570..8426fa8 100644
+--- a/base/memory/shared_memory_mapping.cc
++++ b/base/memory/shared_memory_mapping.cc
+@@ -33,7 +33,7 @@
+
+ SharedMemoryMapping::SharedMemoryMapping() = default;
+
+-SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
++SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
+ : memory_(mapping.memory_),
+ size_(mapping.size_),
+ mapped_size_(mapping.mapped_size_),
+@@ -42,7 +42,7 @@
+ }
+
+ SharedMemoryMapping& SharedMemoryMapping::operator=(
+- SharedMemoryMapping&& mapping) {
++ SharedMemoryMapping&& mapping) noexcept {
+ Unmap();
+ memory_ = mapping.memory_;
+ size_ = mapping.size_;
+@@ -90,9 +90,9 @@
+
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+- ReadOnlySharedMemoryMapping&&) = default;
++ ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
+- ReadOnlySharedMemoryMapping&&) = default;
++ ReadOnlySharedMemoryMapping&&) noexcept = default;
+ ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
+ void* address,
+ size_t size,
+@@ -102,9 +102,9 @@
+
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+- WritableSharedMemoryMapping&&) = default;
++ WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
+- WritableSharedMemoryMapping&&) = default;
++ WritableSharedMemoryMapping&&) noexcept = default;
+ WritableSharedMemoryMapping::WritableSharedMemoryMapping(
+ void* address,
+ size_t size,
+diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
+index d9569af..2b8858e 100644
+--- a/base/memory/shared_memory_mapping.h
++++ b/base/memory/shared_memory_mapping.h
+@@ -32,8 +32,8 @@
+ SharedMemoryMapping();
+
+ // Move operations are allowed.
+- SharedMemoryMapping(SharedMemoryMapping&& mapping);
+- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
++ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
++ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
+
+ // Unmaps the region if the mapping is valid.
+ virtual ~SharedMemoryMapping();
+@@ -93,8 +93,9 @@
+ ReadOnlySharedMemoryMapping();
+
+ // Move operations are allowed.
+- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
+- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
++ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
++ ReadOnlySharedMemoryMapping& operator=(
++ ReadOnlySharedMemoryMapping&&) noexcept;
+
+ // Returns the base address of the mapping. This is read-only memory. This is
+ // page-aligned. This is nullptr for invalid instances.
+@@ -171,8 +172,9 @@
+ WritableSharedMemoryMapping();
+
+ // Move operations are allowed.
+- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
+- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
++ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
++ WritableSharedMemoryMapping& operator=(
++ WritableSharedMemoryMapping&&) noexcept;
+
+ // Returns the base address of the mapping. This is writable memory. This is
+ // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
new file mode 100644
index 0000000..bc0ed98
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-net-fetcher.patch
@@ -0,0 +1,63 @@
+From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 16:56:27 +0000
+Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
+
+GCC does not allow friendship declaration to anonymous namespace as done with Job
+object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
+makes RemoveJob method public, that was the only reason to make Job a friend.
+
+Error was:
+./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
+../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
+ delete_this = parent_->RemoveJob(this);
+ ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+ std::unique_ptr<Job> RemoveJob(Job* job);
+ ^~~~~~~~~
+../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
+../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
+ std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
+ ^
+../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
+ std::unique_ptr<Job> RemoveJob(Job* job);
+ ^~~~~~~~~
+
+Bug: 819294
+Change-Id: I3609f4558e570741395366de6a4cd40577d91450
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
+Commit-Queue: Eric Roman <eroman(a)chromium.org>
+Reviewed-by: Eric Roman <eroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668015}
+---
+
+diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
+index 11a1166..349c656 100644
+--- a/net/cert_net/cert_net_fetcher_impl.cc
++++ b/net/cert_net/cert_net_fetcher_impl.cc
+@@ -135,21 +135,19 @@
+ void Fetch(std::unique_ptr<RequestParams> request_params,
+ scoped_refptr<RequestCore> request);
+
++ // Removes |job| from the in progress jobs and transfers ownership to the
++ // caller.
++ std::unique_ptr<Job> RemoveJob(Job* job);
++
+ // Cancels outstanding jobs, which stops network requests and signals the
+ // corresponding RequestCores that the requests have completed.
+ void Shutdown();
+
+ private:
+- friend class Job;
+-
+ // Finds a job with a matching RequestPararms or returns nullptr if there was
+ // no match.
+ Job* FindJob(const RequestParams& params);
+
+- // Removes |job| from the in progress jobs and transfers ownership to the
+- // caller.
+- std::unique_ptr<Job> RemoveJob(Job* job);
+-
+ // The in-progress jobs. This set does not contain the job which is actively
+ // invoking callbacks (OnJobCompleted).
+ JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
new file mode 100644
index 0000000..cf93bce
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-vulkan.patch
@@ -0,0 +1,115 @@
+From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 17:39:38 +0000
+Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
+
+The notation for initialization of structs referring to its properties
+is invalid in C++. This is not accepted in GCC. It was making build
+fail in VulkanCommandBuffer.
+
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
+ .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
+ .subresourceRange.baseMipLevel = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
+ .subresourceRange.levelCount = 1,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
+ .subresourceRange.baseArrayLayer = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
+ .subresourceRange.layerCount = 1,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
+ .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
+ .imageSubresource.mipLevel = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
+ .imageSubresource.baseArrayLayer = 0,
+ ^
+./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
+ .imageSubresource.layerCount = 1,
+ ^
+Bug: 819294
+
+Change-Id: I999abece0c727e77964789183642ba62009c2c22
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Reviewed-by: Antoine Labour <piman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#668033}
+---
+
+diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
+index ba776e4..4f14c85 100644
+--- a/gpu/vulkan/vulkan_command_buffer.cc
++++ b/gpu/vulkan/vulkan_command_buffer.cc
+@@ -207,21 +207,20 @@
+ void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
+ VkImageLayout old_layout,
+ VkImageLayout new_layout) {
+- VkImageMemoryBarrier barrier = {
+- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
+- .srcAccessMask = GetAccessMask(old_layout),
+- .dstAccessMask = GetAccessMask(new_layout),
+- .oldLayout = old_layout,
+- .newLayout = new_layout,
+- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+- .image = image,
+- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+- .subresourceRange.baseMipLevel = 0,
+- .subresourceRange.levelCount = 1,
+- .subresourceRange.baseArrayLayer = 0,
+- .subresourceRange.layerCount = 1,
+- };
++ VkImageMemoryBarrier barrier = {};
++ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
++ barrier.srcAccessMask = GetAccessMask(old_layout);
++ barrier.dstAccessMask = GetAccessMask(new_layout);
++ barrier.oldLayout = old_layout;
++ barrier.newLayout = new_layout;
++ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
++ barrier.image = image;
++ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++ barrier.subresourceRange.baseMipLevel = 0;
++ barrier.subresourceRange.levelCount = 1;
++ barrier.subresourceRange.baseArrayLayer = 0;
++ barrier.subresourceRange.layerCount = 1;
+ vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
+ GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
+ nullptr, 1, &barrier);
+@@ -233,17 +232,16 @@
+ uint32_t buffer_height,
+ uint32_t width,
+ uint32_t height) {
+- VkBufferImageCopy region = {
+- .bufferOffset = 0,
+- .bufferRowLength = buffer_width,
+- .bufferImageHeight = buffer_height,
+- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
+- .imageSubresource.mipLevel = 0,
+- .imageSubresource.baseArrayLayer = 0,
+- .imageSubresource.layerCount = 1,
+- .imageOffset = {0, 0, 0},
+- .imageExtent = {width, height, 1},
+- };
++ VkBufferImageCopy region = {};
++ region.bufferOffset = 0;
++ region.bufferRowLength = buffer_width;
++ region.bufferImageHeight = buffer_height;
++ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
++ region.imageSubresource.mipLevel = 0;
++ region.imageSubresource.baseArrayLayer = 0;
++ region.imageSubresource.layerCount = 1;
++ region.imageOffset = {0, 0, 0};
++ region.imageExtent = {width, height, 1};
+ vkCmdCopyBufferToImage(command_buffer_, buffer, image,
+ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
+ }
diff --git a/chromium.spec b/chromium.spec
index 1d3a256..602b236 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -261,6 +261,13 @@ Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
+# Fix Vulkan compilation with gcc
+# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
+Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
+# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
+Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
+Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -818,6 +825,9 @@ udev.
%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
+%patch47 -p1 -b .gcc-vulkan
+%patch48 -p1 -b .gcc-cc-no-except
+%patch49 -p1 -b .gcc-net-fetcher
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1064,6 +1074,7 @@ ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
# Remove most of the bundled libraries. Libraries specified below (taken from
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
+ 'base/third_party/cityhash' \
'base/third_party/dmg_fp' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
@@ -1104,6 +1115,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/blink' \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
+ 'third_party/boringssl/src/third_party/sike' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
@@ -1229,6 +1242,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sinonjs' \
'third_party/skia' \
'third_party/skia/include/third_party/vulkan' \
+ 'third_party/skia/include/third_party/skcms' \
'third_party/skia/third_party/gif' \
'third_party/skia/third_party/skcms' \
'third_party/skia/third_party/vulkan' \
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index 76c73ae..f2225ea 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -41,9 +41,9 @@ def parse_sources(input_sources, output_sources, arch_not_arm):
append_sources (block[1], output_sources)
-def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
+def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
- with open(gyni_path, "r") as input_file:
+ with open(gni_path, "r") as input_file:
content = input_file.read().replace('\n', '')
output_sources = []
@@ -62,7 +62,7 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
limitations = ['ffmpeg_branding == "Chrome"', 'ffmpeg_branding == "ChromeOS"']
if ('use_linux_config' in condition) and not any(limitation in condition for limitation in limitations):
if (arch_not_arm):
- if ('x64' in condition) or ('x86' in condition):
+ if ('x64' in condition) or ('x86' in condition) or ('use_linux_config' in condition):
parse_sources (block[1], output_sources, arch_not_arm)
inserted = True
else:
@@ -79,4 +79,4 @@ def parse_ffmpeg_gyni_file(gyni_path, arch_not_arm):
if __name__ == "__main__":
path = "%s/third_party/ffmpeg/ffmpeg_generated.gni" % sys.argv[1]
- parse_ffmpeg_gyni_file (path, False if sys.argv[2] == "0" else True)
+ parse_ffmpeg_gni_file (path, False if sys.argv[2] == "0" else True)
diff --git a/sources b/sources
index 778c103..4e53fd1 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ad250b8cd0a01297fdff85c12a4dca85477cf027a68c0a9f7a3bc93b825772d17ddd062a89020ae954def781f19fe44beedb33ec8a86f3c12af290edb43d6ee9
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
commit 38e8f689d58c92e2a4ca9e95c8c9aa67718c5616
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 13 07:05:33 2019 +0200
Update to 76.0.3809.100
diff --git a/.gitignore b/.gitignore
index 61d44ef..2bfdc54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,3 +81,4 @@
/chromium-75.0.3770.80-clean.tar.xz
/chromium-75.0.3770.90-clean.tar.xz
/chromium-75.0.3770.100-clean.tar.xz
+/chromium-76.0.3809.100-clean.tar.xz
diff --git a/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch b/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
deleted file mode 100644
index d0b2484..0000000
--- a/chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx chromium-48.0.2564.116/device/usb/usb_context.cc
---- chromium-48.0.2564.116/device/usb/usb_context.cc.modern-libusbx 2016-02-24 10:21:10.534996028 -0500
-+++ chromium-48.0.2564.116/device/usb/usb_context.cc 2016-02-24 10:22:28.270499864 -0500
-@@ -57,7 +57,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-55.0.2883.75-cups22.patch b/chromium-55.0.2883.75-cups22.patch
deleted file mode 100644
index d1a2bf8..0000000
--- a/chromium-55.0.2883.75-cups22.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 chromium-52.0.2743.82/printing/backend/print_backend_cups.cc
---- chromium-52.0.2743.82/printing/backend/print_backend_cups.cc.cups22 2016-07-22 09:20:15.794340886 -0400
-+++ chromium-52.0.2743.82/printing/backend/print_backend_cups.cc 2016-07-22 09:20:26.338261197 -0400
-@@ -16,6 +16,7 @@
- #include "base/synchronization/lock.h"
- #include "base/values.h"
- #include "printing/backend/cups_helper.h"
-+#include <cups/ppd.h>
- #include "printing/backend/print_backend_consts.h"
- #include "url/gurl.h"
-
-diff -up chromium-52.0.2743.82/printing/BUILD.gn.cups22 chromium-52.0.2743.82/printing/BUILD.gn
---- chromium-52.0.2743.82/printing/BUILD.gn.cups22 2016-07-21 11:27:05.597507544 -0400
-+++ chromium-52.0.2743.82/printing/BUILD.gn 2016-07-21 14:36:45.574137758 -0400
-@@ -147,12 +147,13 @@ component("printing") {
- ],
- "trim string")
-
-- if (cups_version == "1.6" || cups_version == "1.7") {
-+ if (cups_version == "1.6" || cups_version == "1.7" || cups_version == "2.2") {
- cflags += [
- # CUPS 1.6 deprecated the PPD APIs, but we will stay with this
- # API for now as supported Linux and Mac OS'es are still using
- # older versions of CUPS. More info: crbug.com/226176
- "-Wno-deprecated-declarations",
-+ "-D_PPD_DEPRECATED=",
- # CUPS 1.7 deprecates httpConnectEncrypt(), see the mac section
- # below.
- ]
diff --git a/chromium-66.0.3359.117-missing-files.patch b/chromium-66.0.3359.117-missing-files.patch
deleted file mode 100644
index 746d56e..0000000
--- a/chromium-66.0.3359.117-missing-files.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py.missing 2018-04-19 09:51:46.165723235 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/__init__.py 2018-04-19 09:51:46.171723115 -0400
-@@ -0,0 +1,3 @@
-+# Copyright 2017 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.
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py.missing 2018-04-19 09:51:46.171723115 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter.py 2018-04-19 09:51:46.172723095 -0400
-@@ -0,0 +1,110 @@
-+# Copyright 2017 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.
-+# pylint: disable=import-error,print-statement,relative-import
-+import re
-+SPECIAL_TOKENS = [
-+ # This list should be sorted by length.
-+ 'CString',
-+ 'Float32',
-+ 'Float64',
-+ 'Base64',
-+ 'IFrame',
-+ 'Latin1',
-+ 'PlugIn',
-+ 'SQLite',
-+ 'Uint16',
-+ 'Uint32',
-+ 'WebGL2',
-+ 'ASCII',
-+ 'CType',
-+ 'DList',
-+ 'Int16',
-+ 'Int32',
-+ 'MPath',
-+ 'OList',
-+ 'TSpan',
-+ 'UList',
-+ 'UTF16',
-+ 'Uint8',
-+ 'WebGL',
-+ 'XPath',
-+ 'ETC1',
-+ 'HTML',
-+ 'Int8',
-+ 'S3TC',
-+ 'SPv2',
-+ 'UTF8',
-+ 'API',
-+ 'CSS',
-+ 'DOM',
-+ 'EXT',
-+ 'RTC',
-+ 'SVG',
-+ '2D',
-+ 'AX',
-+ 'V0',
-+ 'V8',
-+]
-+MATCHING_EXPRESSION = '((?:[A-Z][a-z]+)|[0-9]D?$)'
-+class SmartTokenizer(object):
-+ """Detects special cases that are not easily discernible without additional
-+ knowledge, such as recognizing that in SVGSVGElement, the first two SVGs
-+ are separate tokens, but WebGL is one token."""
-+ def __init__(self, name):
-+ self.remaining = name
-+ def tokenize(self):
-+ name = self.remaining
-+ tokens = []
-+ while len(name) > 0:
-+ matched_token = None
-+ for token in SPECIAL_TOKENS:
-+ if name.startswith(token):
-+ matched_token = token
-+ break
-+ if not matched_token:
-+ match = re.search(MATCHING_EXPRESSION, name)
-+ if not match:
-+ matched_token = name
-+ elif match.start(0) != 0:
-+ matched_token = name[:match.start(0)]
-+ else:
-+ matched_token = match.group(0)
-+ tokens.append(name[:len(matched_token)])
-+ name = name[len(matched_token):]
-+ return tokens
-+class NameStyleConverter(object):
-+ """Converts names from camelCase to various other styles.
-+ """
-+ def __init__(self, name):
-+ self.tokens = self.tokenize(name)
-+ def tokenize(self, name):
-+ tokenizer = SmartTokenizer(name)
-+ return tokenizer.tokenize()
-+ def to_snake_case(self):
-+ """Snake case is the file and variable name style per Google C++ Style
-+ Guide:
-+ https://google.github.io/styleguide/cppguide.html#Variable_Names
-+ Also known as the hacker case.
-+ https://en.wikipedia.org/wiki/Snake_case
-+ """
-+ return '_'.join([token.lower() for token in self.tokens])
-+ def to_upper_camel_case(self):
-+ """Upper-camel case is the class and function name style per
-+ Google C++ Style Guide:
-+ https://google.github.io/styleguide/cppguide.html#Function_Names
-+ Also known as the PascalCase.
-+ https://en.wikipedia.org/wiki/Camel_case.
-+ """
-+ return ''.join([token[0].upper() + token[1:] for token in self.tokens])
-+ def to_macro_case(self):
-+ """Macro case is the macro name style per Google C++ Style Guide:
-+ https://google.github.io/styleguide/cppguide.html#Macro_Names
-+ """
-+ return '_'.join([token.upper() for token in self.tokens])
-+ def to_all_cases(self):
-+ return {
-+ 'snake_case': self.to_snake_case(),
-+ 'upper_camel_case': self.to_upper_camel_case(),
-+ 'macro_case': self.to_macro_case(),
-+ }
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py.missing 2018-04-19 09:51:46.172723095 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/common/name_style_converter_test.py 2018-04-19 09:51:46.173723075 -0400
-@@ -0,0 +1,140 @@
-+# Copyright 2017 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.
-+# pylint: disable=import-error,print-statement,relative-import,protected-access
-+"""Unit tests for name_style_converter.py."""
-+import unittest
-+from name_style_converter import NameStyleConverter
-+from name_style_converter import SmartTokenizer
-+class SmartTokenizerTest(unittest.TestCase):
-+ def test_simple_cases(self):
-+ tokenizer = SmartTokenizer('foo')
-+ self.assertEqual(tokenizer.tokenize(), ['foo'])
-+ tokenizer = SmartTokenizer('fooBar')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar'])
-+ tokenizer = SmartTokenizer('fooBarBaz')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', 'Bar', 'Baz'])
-+ tokenizer = SmartTokenizer('Baz')
-+ self.assertEqual(tokenizer.tokenize(), ['Baz'])
-+ tokenizer = SmartTokenizer('')
-+ self.assertEqual(tokenizer.tokenize(), [])
-+ tokenizer = SmartTokenizer('FOO')
-+ self.assertEqual(tokenizer.tokenize(), ['FOO'])
-+ tokenizer = SmartTokenizer('foo2')
-+ self.assertEqual(tokenizer.tokenize(), ['foo', '2'])
-+ def test_tricky_cases(self):
-+ tokenizer = SmartTokenizer('XMLHttpRequest')
-+ self.assertEqual(tokenizer.tokenize(), ['XML', 'Http', 'Request'])
-+ tokenizer = SmartTokenizer('HTMLElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Element'])
-+ tokenizer = SmartTokenizer('WebGLRenderingContext')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['WebGL', 'Rendering', 'Context'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['Canvas', 'Rendering', 'Context', '2D'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2DAPITest')
-+ self.assertEqual(tokenizer.tokenize(),
-+ ['Canvas', 'Rendering', 'Context', '2D', 'API', 'Test'])
-+ tokenizer = SmartTokenizer('SVGSVGElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'SVG', 'Element'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D'])
-+ tokenizer = SmartTokenizer('CSSURLImageValue')
-+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'URL', 'Image', 'Value'])
-+ tokenizer = SmartTokenizer('CSSPropertyAPID')
-+ self.assertEqual(tokenizer.tokenize(), ['CSS', 'Property', 'API', 'D'])
-+ tokenizer = SmartTokenizer('AXARIAGridCell')
-+ self.assertEqual(tokenizer.tokenize(), ['AX', 'ARIA', 'Grid', 'Cell'])
-+ tokenizer = SmartTokenizer('CDATASection')
-+ self.assertEqual(tokenizer.tokenize(), ['CDATA', 'Section'])
-+ tokenizer = SmartTokenizer('ASCIICType')
-+ self.assertEqual(tokenizer.tokenize(), ['ASCII', 'CType'])
-+ tokenizer = SmartTokenizer('CString')
-+ self.assertEqual(tokenizer.tokenize(), ['CString'])
-+ tokenizer = SmartTokenizer('HTMLDListElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'DList', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLOListElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'OList', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLIFrameElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'IFrame', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLPlugInElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'PlugIn', 'Element'])
-+ # No special handling for OptGroup, FieldSet, and TextArea.
-+ tokenizer = SmartTokenizer('HTMLOptGroupElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Opt', 'Group', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLFieldSetElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Field', 'Set', 'Element'])
-+ tokenizer = SmartTokenizer('HTMLTextAreaElement')
-+ self.assertEqual(tokenizer.tokenize(), ['HTML', 'Text', 'Area', 'Element'])
-+ tokenizer = SmartTokenizer('Path2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Path', '2D'])
-+ tokenizer = SmartTokenizer('Point2D')
-+ self.assertEqual(tokenizer.tokenize(), ['Point', '2D'])
-+ tokenizer = SmartTokenizer('CanvasRenderingContext2DState')
-+ self.assertEqual(tokenizer.tokenize(), ['Canvas', 'Rendering', 'Context', '2D', 'State'])
-+ tokenizer = SmartTokenizer('RTCDTMFSender')
-+ self.assertEqual(tokenizer.tokenize(), ['RTC', 'DTMF', 'Sender'])
-+ tokenizer = SmartTokenizer('WebGLCompressedTextureS3TCsRGB')
-+ self.assertEqual(tokenizer.tokenize(), ['WebGL', 'Compressed', 'Texture', 'S3TC', 'sRGB'])
-+ tokenizer = SmartTokenizer('WebGL2CompressedTextureETC1')
-+ self.assertEqual(tokenizer.tokenize(), ['WebGL2', 'Compressed', 'Texture', 'ETC1'])
-+ tokenizer = SmartTokenizer('EXTsRGB')
-+ self.assertEqual(tokenizer.tokenize(), ['EXT', 'sRGB'])
-+ tokenizer = SmartTokenizer('SVGFEBlendElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'FE', 'Blend', 'Element'])
-+ tokenizer = SmartTokenizer('SVGMPathElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'MPath', 'Element'])
-+ tokenizer = SmartTokenizer('SVGTSpanElement')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'TSpan', 'Element'])
-+ tokenizer = SmartTokenizer('SVGURIReference')
-+ self.assertEqual(tokenizer.tokenize(), ['SVG', 'URI', 'Reference'])
-+ tokenizer = SmartTokenizer('UTF16TextIterator')
-+ self.assertEqual(tokenizer.tokenize(), ['UTF16', 'Text', 'Iterator'])
-+ tokenizer = SmartTokenizer('UTF8Decoder')
-+ self.assertEqual(tokenizer.tokenize(), ['UTF8', 'Decoder'])
-+ tokenizer = SmartTokenizer('Uint8Array')
-+ self.assertEqual(tokenizer.tokenize(), ['Uint8', 'Array'])
-+ tokenizer = SmartTokenizer('DOMWindowBase64')
-+ self.assertEqual(tokenizer.tokenize(), ['DOM', 'Window', 'Base64'])
-+ tokenizer = SmartTokenizer('TextCodecLatin1')
-+ self.assertEqual(tokenizer.tokenize(), ['Text', 'Codec', 'Latin1'])
-+ tokenizer = SmartTokenizer('V8BindingForCore')
-+ self.assertEqual(tokenizer.tokenize(), ['V8', 'Binding', 'For', 'Core'])
-+ tokenizer = SmartTokenizer('V8DOMRect')
-+ self.assertEqual(tokenizer.tokenize(), ['V8', 'DOM', 'Rect'])
-+ tokenizer = SmartTokenizer('V0InsertionPoint')
-+ self.assertEqual(tokenizer.tokenize(), ['V0', 'Insertion', 'Point'])
-+ tokenizer = SmartTokenizer('ShadowDOMV0Test')
-+ self.assertEqual(tokenizer.tokenize(), ['Shadow', 'DOM', 'V0', 'Test'])
-+ tokenizer = SmartTokenizer('ElementShadowV0')
-+ self.assertEqual(tokenizer.tokenize(), ['Element', 'Shadow', 'V0'])
-+ tokenizer = SmartTokenizer('StubChromeClientForSPv2')
-+ self.assertEqual(tokenizer.tokenize(), ['Stub', 'Chrome', 'Client', 'For', 'SPv2'])
-+ tokenizer = SmartTokenizer('SQLiteAuthorizer')
-+ self.assertEqual(tokenizer.tokenize(), ['SQLite', 'Authorizer'])
-+ tokenizer = SmartTokenizer('XPathEvaluator')
-+ self.assertEqual(tokenizer.tokenize(), ['XPath', 'Evaluator'])
-+ tokenizer = SmartTokenizer('IsXHTMLDocument')
-+ self.assertEqual(tokenizer.tokenize(), ['Is', 'XHTML', 'Document'])
-+ tokenizer = SmartTokenizer('Animation.idl')
-+ self.assertEqual(tokenizer.tokenize(), ['Animation', '.idl'])
-+class NameStyleConverterTest(unittest.TestCase):
-+ def test_snake_case(self):
-+ converter = NameStyleConverter('HTMLElement')
-+ self.assertEqual(converter.to_snake_case(), 'html_element')
-+ def test_upper_camel_case(self):
-+ converter = NameStyleConverter('someSuperThing')
-+ self.assertEqual(converter.to_upper_camel_case(), 'SomeSuperThing')
-+ converter = NameStyleConverter('SVGElement')
-+ self.assertEqual(converter.to_upper_camel_case(), 'SVGElement')
-+ def test_macro_case(self):
-+ converter = NameStyleConverter('WebGLBaz2D')
-+ self.assertEqual(converter.to_macro_case(), 'WEBGL_BAZ_2D')
-+ def test_all_cases(self):
-+ converter = NameStyleConverter('SVGScriptElement')
-+ self.assertEqual(converter.to_all_cases(), {
-+ 'snake_case': 'svg_script_element',
-+ 'upper_camel_case': 'SVGScriptElement',
-+ 'macro_case': 'SVG_SCRIPT_ELEMENT',
-+ })
-diff -up chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py
---- chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py.missing 2018-04-19 11:34:40.621293007 -0400
-+++ chromium-66.0.3359.117/third_party/blink/tools/blinkpy/__init__.py 2018-04-19 11:34:34.440413163 -0400
-@@ -0,0 +1,3 @@
-+# Copyright 2017 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.
diff --git a/chromium-73.0.3683.75-pipewire-cstring-fix.patch b/chromium-73.0.3683.75-pipewire-cstring-fix.patch
deleted file mode 100644
index ce8b70b..0000000
--- a/chromium-73.0.3683.75-pipewire-cstring-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-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-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
new file mode 100644
index 0000000..690f0f9
--- /dev/null
+++ b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
@@ -0,0 +1,15 @@
+diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
+--- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
++++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
+@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
+
+ void UsbContext::UsbEventHandler::Stop() {
+ base::subtle::Release_Store(&running_, 0);
++#ifdef LIBUSB_API_VERSION >= 0x01000105
++ libusb_interrupt_event_handler(context_);
++#else
+ libusb_interrupt_handle_event(context_);
++#endif
+ }
+
+ UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium.spec b/chromium.spec
index d734490..1d3a256 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -157,15 +157,15 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 75
+%global majorversion 76
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3770.100
-Release: 4%{?dist}
+Version: %{majorversion}.0.3809.100
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -176,10 +176,7 @@ Patch1: chromium-45.0.2454.101-linux-path-max.patch
Patch2: chromium-55.0.2883.75-addrfix.patch
Patch3: chromium-72.0.3626.121-notest.patch
# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
-# Ignore deprecations in cups 2.2
-# https://bugs.chromium.org/p/chromium/issues/detail?id=622493
-Patch5: chromium-55.0.2883.75-cups22.patch
+Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
Patch6: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
@@ -223,8 +220,6 @@ Patch23: chromium-65.0.3325.146-memcpy-fix.patch
Patch24: chromium-68.0.3440.106-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
-# Missing files in tarball
-Patch26: chromium-66.0.3359.117-missing-files.patch
# Do not use unrar code, it is non-free
Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
@@ -253,14 +248,8 @@ Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
Patch37: chromium-widevine-other-locations.patch
# Disable -fno-delete-null-pointer-checks
Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Add #include <cstring> to get pipewire code to build
-Patch39: chromium-73.0.3683.75-pipewire-cstring-fix.patch
-# gcc does not have __assume
-Patch40: chromium-75.0.3770.80-gcc-no-assume.patch
# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# https://chromium.googlesource.com/chromium/src/+/aeed4d1f15ce84a17ea0bc21...
-Patch42: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
@@ -272,8 +261,6 @@ Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# https://chromium.googlesource.com/chromium/src/+/00281713519dbd84b90d2996...
-Patch47: chromium-75.0.3770.100-git00281713.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -794,7 +781,6 @@ udev.
%patch2 -p1 -b .addrfix
%patch3 -p1 -b .notest
%patch4 -p1 -b .modern-libusbx
-%patch5 -p1 -b .cups22
%patch6 -p1 -b .sandboxpie
%patch7 -p1 -b .etc
%patch8 -p1 -b .gnsystem
@@ -815,7 +801,6 @@ udev.
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
%patch25 -p1 -b .aarch64fix
-%patch26 -p1 -b .missing-files
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -828,15 +813,11 @@ udev.
%patch36 -p1 -b .gcc9
%patch37 -p1 -b .widevine-other-locations
%patch38 -p1 -b .disable-ndnpc
-%patch39 -p1 -b .cstring-fix
-%patch40 -p1 -b .gcc-assume
%patch41 -p1 -b .SIOCGSTAMP
-%patch42 -p1 -b .gcc-dcheck_ne-fix
%patch43 -p1 -b .revert-daff6b
%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .git00281713
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1217,7 +1198,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
- 'third_party/openmax_dl' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
@@ -1260,7 +1240,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sqlite' \
'third_party/swiftshader' \
'third_party/swiftshader/third_party/subzero' \
- 'third_party/swiftshader/third_party/LLVM' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
'third_party/tcmalloc' \
@@ -1857,6 +1836,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
+- Update to 76.0.3809.100
+
* Wed Jul 24 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 75.0.3770.100-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
diff --git a/sources b/sources
index 5ba7f4f..778c103 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-75.0.3770.100-clean.tar.xz) = ee2fad215cf39edc572b4ecd040f1130e857e19a34e64fffb14a995ca325adc0b01d6e8bfae4f91c2fecd13ed018049e64fe2c2cc755502b8e3291698698512e
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ad250b8cd0a01297fdff85c12a4dca85477cf027a68c0a9f7a3bc93b825772d17ddd062a89020ae954def781f19fe44beedb33ec8a86f3c12af290edb43d6ee9
commit a77981312eab329555316eb924a841f7be09887e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 12 17:09:21 2019 +0200
Cleanup the patches
diff --git a/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch b/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch
deleted file mode 100644
index f73ded3..0000000
--- a/0001-vpx_sum_squares_2d_i16_neon-Make-s2-a-uint64x1_t.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Submitted
-
-GCC aarch64 build fix [this is actually a libvpx patch, not a Chromium one]
-
-Sent to: https://chromium-review.googlesource.com/c/webm/libvpx/+/1136449
-
-Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
----
-From c20bd394f18c47bf133b51d6a40399273c3f24e0 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 13 Jul 2018 14:29:09 +0200
-Subject: [PATCH] vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.
-
-This fixes the build with at least GCC 7.3, where it was previously failing
-with:
-
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon':
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:5: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
- s2 = vpaddl_u32(s1);
- ^~
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
- s2 = vpaddl_u32(s1);
- ^
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:81:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
- s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1));
- ^
-../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:84:24: error: incompatible type for argument 1 of 'vget_lane_u64'
- return vget_lane_u64(s2, 0);
- ^~
-
-The generated assembly was verified to remain identical with both GCC and
-LLVM.
-
-Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac
----
- vpx_dsp/arm/sum_squares_neon.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/vpx_dsp/arm/sum_squares_neon.c b/vpx_dsp/arm/sum_squares_neon.c
-index 8942ba83b..cfefad993 100644
---- a/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
-+++ b/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
-@@ -14,7 +14,7 @@
- #include "./vpx_dsp_rtcd.h"
-
- uint64_t vpx_sum_squares_2d_i16_neon(const int16_t *src, int stride, int size) {
-- int64x1_t s2;
-+ uint64x1_t s2;
-
- if (size == 4) {
- int16x4_t s[4];
---
-2.14.4
-
diff --git a/chromium-46.0.2490.71-notest.patch b/chromium-46.0.2490.71-notest.patch
deleted file mode 100644
index e4e3448..0000000
--- a/chromium-46.0.2490.71-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd
---- chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd.notest 2015-10-16 02:01:56.644149741 -0400
-+++ chromium-46.0.2490.71/chrome/test/data/webui_test_resources.grd 2015-10-16 02:02:36.217285227 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- </includes>
- </release>
- </grit>
diff --git a/chromium-52.0.2743.116-unset-madv_free.patch b/chromium-52.0.2743.116-unset-madv_free.patch
deleted file mode 100644
index 2867c79..0000000
--- a/chromium-52.0.2743.116-unset-madv_free.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
---- chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp.madv_free 2016-08-15 13:07:29.279655676 -0400
-+++ chromium-52.0.2743.116/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp 2016-08-15 13:08:38.447317416 -0400
-@@ -41,6 +41,11 @@
- #include <errno.h>
- #include <sys/mman.h>
-
-+#if OS(LINUX) && defined(MADV_FREE)
-+// Added in Linux 4.5, but it breaks the sandbox.
-+#undef MADV_FREE
-+#endif
-+
- #ifndef MADV_FREE
- #define MADV_FREE MADV_DONTNEED
- #endif
diff --git a/chromium-52.0.2743.82-arm-webrtc.patch b/chromium-52.0.2743.82-arm-webrtc.patch
deleted file mode 100644
index f1a6629..0000000
--- a/chromium-52.0.2743.82-arm-webrtc.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff -up chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc
---- chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc.armwebrtc 2016-08-03 09:30:53.922861020 +0200
-+++ chromium-52.0.2743.82/third_party/webrtc/system_wrappers/source/cpu_features.cc 2016-08-03 09:32:00.337498174 +0200
-@@ -18,6 +18,47 @@
-
- #include "webrtc/typedefs.h"
-
-+#include <elf.h>
-+#ifdef __arm__
-+#include <fcntl.h>
-+#include <unistd.h>
-+#include <linux/auxvec.h>
-+#include <asm/hwcap.h>
-+#endif
-+
-+#ifdef __arm__
-+uint64_t WebRtc_GetCPUFeaturesARM() {
-+ static bool detected = false;
-+ static uint64_t have_neon = 0;
-+
-+ int fd;
-+ Elf32_auxv_t auxv;
-+ unsigned int hwcaps;
-+
-+ if (!detected) {
-+ int fd;
-+ Elf32_auxv_t auxv;
-+ unsigned int hwcaps;
-+
-+ fd = open("/proc/self/auxv", O_RDONLY);
-+ if (fd >= 0) {
-+ while (read(fd, &auxv, sizeof(Elf32_auxv_t)) == sizeof(Elf32_auxv_t)) {
-+ if (auxv.a_type == AT_HWCAP) {
-+ have_neon = (auxv.a_un.a_val & HWCAP_NEON) ? kCPUFeatureNEON : 0;
-+ break;
-+ }
-+ }
-+ close (fd);
-+ } else {
-+ have_neon = 0;
-+ }
-+ detected = true;
-+ }
-+
-+ return 0 | have_neon; // others here as we need them
-+}
-+#endif
-+
- // No CPU feature is available => straight C path.
- int GetCPUInfoNoASM(CPUFeature feature) {
- (void)feature;
diff --git a/chromium-52.0.2743.82-master-prefs-path.patch b/chromium-52.0.2743.82-master-prefs-path.patch
deleted file mode 100644
index 6ddd26f..0000000
--- a/chromium-52.0.2743.82-master-prefs-path.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc
---- chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc.etc 2016-08-03 10:15:57.980692109 +0200
-+++ chromium-52.0.2743.82/chrome/browser/first_run/first_run_internal_linux.cc 2016-08-03 10:16:44.553325229 +0200
-@@ -19,9 +19,9 @@ bool IsOrganicFirstRun() {
-
- base::FilePath MasterPrefsPath() {
- // The standard location of the master prefs is next to the chrome binary.
-+ // ...but we patch it to use /etc/chromium
- base::FilePath master_prefs;
-- if (!PathService::Get(base::DIR_EXE, &master_prefs))
-- return base::FilePath();
-+ master_prefs = base::FilePath("/etc/chromium");
- return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
- }
-
diff --git a/chromium-55.0.2883.75-sandbox-pie.patch b/chromium-55.0.2883.75-sandbox-pie.patch
deleted file mode 100644
index 6aae0b0..0000000
--- a/chromium-55.0.2883.75-sandbox-pie.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie chromium-55.0.2883.75/sandbox/linux/BUILD.gn
---- chromium-55.0.2883.75/sandbox/linux/BUILD.gn.sandboxpie 2016-12-01 18:02:17.000000000 -0500
-+++ chromium-55.0.2883.75/sandbox/linux/BUILD.gn 2016-12-12 16:26:06.863426221 -0500
-@@ -279,11 +279,17 @@ if (is_linux) {
- # For ULLONG_MAX
- "-std=gnu99",
-
-+ "-fPIE",
-+
- # These files have a suspicious comparison.
- # TODO fix this and re-enable this warning.
- "-Wno-sign-compare",
- ]
-
-+ ldflags = [
-+ "-pie",
-+ ]
-+
- import("//build/config/compiler/compiler.gni")
- import("//build/config/sanitizers/sanitizers.gni")
- if (is_component_build || using_sanitizer) {
-@@ -293,7 +299,7 @@ if (is_linux) {
- # other flags that executable_config might have.
- configs -= [ "//build/config:executable_config" ]
- if (!use_gold) {
-- ldflags = [ "-Wl,--disable-new-dtags" ]
-+ ldflags += [ "-Wl,--disable-new-dtags" ]
- }
- }
-
diff --git a/chromium-56.0.2924.87-fpermissive.patch b/chromium-56.0.2924.87-fpermissive.patch
deleted file mode 100644
index be68cf9..0000000
--- a/chromium-56.0.2924.87-fpermissive.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn
---- chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn.permissive 2017-02-13 12:32:23.419665971 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/BUILD.gn 2017-02-13 12:33:16.146629190 -0500
-@@ -54,6 +54,9 @@ config("config") {
- cflags = []
- defines = []
-
-+ # error: there are no arguments to 'swapAnchor' that depend on a template parameter, so a declaration of 'swapAnchor' must be available [-fpermissive]
-+ cflags += [ "-fpermissive" ]
-+
- if (is_win) {
- cflags += [
- "/wd4305", # Truncation from 'type1' to 'type2'.
diff --git a/chromium-56.0.2924.87-gcc5.patch b/chromium-56.0.2924.87-gcc5.patch
deleted file mode 100644
index 902f92b..0000000
--- a/chromium-56.0.2924.87-gcc5.patch
+++ /dev/null
@@ -1,354 +0,0 @@
-diff -up chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc
---- chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc.gcc5 2017-02-01 21:03:47.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/cld_2/src/internal/cld_generated_cjk_uni_prop_80.cc 2017-02-09 10:38:38.319790897 -0500
-@@ -165,8 +165,8 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- // state[16 + 2] 0x000000 Byte 2 of 3 (relative offsets)
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
- X__,X__,X__,X__,X__,X__,X__,X__, X__,X__,X__,X__,X__,X__,X__,X__,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
---14,-14,-14,-14,-14,-14,-14,-14, -14,-14,-14,-14,-14,-14,-14,-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-+(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14, (uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,(uint8)-14,
-
- // state[17 + 2] 0x0031c0 Byte 3 of 3 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -259,10 +259,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229, 3,208, 0,229, 5, 233, 0,229,229,229,208,229,229,
-
- // state[32 + 2] 0x002000 Byte 2 of 3 (relative offsets)
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
---30,-30,-30,-30,-30,-30,-30,-30, -30,-30,-30,-30,-30,-30,-30,-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-+(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30, (uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,(uint8)-30,
-
- // state[33 + 2] 0x003780 Byte 3 of 3 (property)
- 229,208,229,229,208,229,229,229, 208,208,208,208,208, 4, 6,208,
-@@ -355,10 +355,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 228,229,229,229,229,233,233, 6, 208,229, 3,229,233, 6, 6, 0,
-
- // state[48 + 2] 0x001000 Byte 2 of 3 (relative offsets)
---46,-46,-46,-46,-42,-41,-40,-39, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
---46,-46,-46,-46,-46,-46,-46,-46, -46,-46,-46,-46,-46,-46,-46,-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-+(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46, (uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,(uint8)-46,
-
- // state[49 + 2] 0x003b40 Byte 3 of 3 (property)
- 6,227,208,233,208, 3, 3,208, 208,229, 0,229,233,219, 0, 6,
-@@ -451,10 +451,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,208,208,217,208,229,229, 229,229,208,217,208,229,229,229,
-
- // state[64 + 2] 0x003000 Byte 2 of 3 (relative offsets)
---54,-53,-52,-51,-50,-58,-49,-47, -62,-62,-62,-62,-62,-62,-62,-62,
---46,-45,-44,-43,-42,-41,-40,-39, -38,-37,-36,-35,-34,-33,-31,-30,
---29,-28,-27,-26,-25,-24,-23,-22, -21,-20,-19,-18,-17,-15,-14,-13,
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-54,(uint8)-53,(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-58,(uint8)-49,(uint8)-47, (uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,(uint8)-62,
-+(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39, (uint8)-38,(uint8)-37,(uint8)-36,(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,
-+(uint8)-29,(uint8)-28,(uint8)-27,(uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22, (uint8)-21,(uint8)-20,(uint8)-19,(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
-
- // state[65 + 2] 0x003f00 Byte 3 of 3 (property)
- 217,217,208, 3,208,217,208,208, 6,229,208,228,229,229,208,229,
-@@ -547,10 +547,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,208,229,229,208,229,233, 0, 208,208,229,208,227,229,229,229,
-
- // state[80 + 2] 0x004000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-- 38, 39, 40, 41, 42, 43, 44,-78, 45, 46, 47, 48, 49, 50, 51, 52,
-+ 38, 39, 40, 41, 42, 43, 44,(uint8)-78, 45, 46, 47, 48, 49, 50, 51, 52,
-
- // state[81 + 2] 0x0042c0 Byte 3 of 3 (property)
- 229, 0,229,229,229, 3, 4, 4, 229,229,229,229,208,229, 0,208,
-@@ -931,7 +931,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,142, 98, 28,117,206,212,212, 220, 15, 0,231,199,231,111, 28,
-
- // state[144 + 2] 0x005000 Byte 2 of 3 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -1315,7 +1315,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 16, 15,211,118, 0,231, 68,231, 0, 99,161, 0,115,221,144,140,
-
- // state[208 + 2] 0x006000 Byte 2 of 3 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -1699,7 +1699,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 119, 16, 51, 0, 0, 68,136, 72, 144,118, 87,201,191,136, 78,233,
-
- // state[272 + 2] 0x007000 Byte 2 of 3 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -2083,7 +2083,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 212,212, 0,126,140,220,220, 0, 0, 0,127,118,106, 0,199, 0,
-
- // state[336 + 2] 0x008000 Byte 2 of 3 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -2467,7 +2467,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0,122, 0,231,100,232, 0, 0, 117, 0,206,231, 0, 0,231, 0,
-
- // state[400 + 2] 0x009000 Byte 2 of 3 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-@@ -2851,10 +2851,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- // state[464 + 2] 0x00a000 Byte 2 of 3 (relative offsets)
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-- -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6, (uint8)-6,
-+ (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5, (uint8)-5,
-
- // state[465 + 2] 0x000080 Byte 2 of 2 (property)
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-@@ -2947,10 +2947,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208, 5, 6,208, 2, 0, 6, 6, 5,208,208,208, 6,
-
- // state[480 + 2] 0x00b000 Byte 2 of 3 (relative offsets)
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
---20,-20,-20,-20,-20,-20,-20,-20, -20,-20,-20,-20,-20,-20,-20,-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-+(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20, (uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,(uint8)-20,
-
- // state[481 + 2] 0x020100 Byte 4 of 4 (property)
- 2, 6, 5, 6, 5,229, 5,208, 208,208,208,208,208,208,208,229,
-@@ -3043,10 +3043,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5,208,208, 2, 229, 5, 5, 5, 5, 5, 6,208,
-
- // state[496 + 2] 0x00d000 Byte 2 of 3 (relative offsets)
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-35,-35,
---35,-35,-35,-35,-35,-35,-35,-35, -35,-35,-35,-35,-35,-35,-34,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
---33,-33,-33,-33,-33,-33,-33,-33, -33,-33,-33,-33,-33,-33,-33,-33,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,
-+(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35, (uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-35,(uint8)-34,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-+(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33, (uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,(uint8)-33,
-
- // state[497 + 2] 0x0204c0 Byte 4 of 4 (property)
- 2, 2, 5, 5, 5, 2,208, 2, 5, 5, 6,208,208, 5, 5, 5,
-@@ -3139,10 +3139,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 5, 5, 6, 6, 208,208, 2,208,208,208,208,208,
-
- // state[512 + 2] 0x00f000 Byte 2 of 3 (relative offsets)
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-47,-47,-47,
---47,-47,-47,-47,-46,-45,-44,-43, -42,-41,-44,-40,-47,-47,-47,-47,
---47,-47,-47,-47,-47,-47,-47,-47, -47,-47,-47,-47,-47,-39,-38,-37,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44,(uint8)-43, (uint8)-42,(uint8)-41,(uint8)-44,(uint8)-40,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,
-+(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47, (uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-47,(uint8)-39,(uint8)-38,(uint8)-37,
-
- // state[513 + 2] 0x020880 Byte 4 of 4 (property)
- 5, 5, 5, 6,208,208,208,208, 208,208, 5, 5, 6, 6,208,208,
-@@ -3235,10 +3235,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 6,208,218,208,208,208,218, 208, 6,227,229, 6, 6, 6,208,
-
- // state[528 + 2] 0x020000 Byte 3 of 4 (relative offsets)
---52,-51,-50,-49,-47,-46,-45,-44, -43,-42,-41,-40,-39,-38,-37,-36,
---35,-34,-33,-31,-30,-29,-28,-27, -26,-25,-24,-23,-22,-21,-20,-19,
---18,-17,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2,
-- -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-+(uint8)-52,(uint8)-51,(uint8)-50,(uint8)-49,(uint8)-47,(uint8)-46,(uint8)-45,(uint8)-44, (uint8)-43,(uint8)-42,(uint8)-41,(uint8)-40,(uint8)-39,(uint8)-38,(uint8)-37,(uint8)-36,
-+(uint8)-35,(uint8)-34,(uint8)-33,(uint8)-31,(uint8)-30,(uint8)-29,(uint8)-28,(uint8)-27, (uint8)-26,(uint8)-25,(uint8)-24,(uint8)-23,(uint8)-22,(uint8)-21,(uint8)-20,(uint8)-19,
-+(uint8)-18,(uint8)-17,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2,
-+ (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
-
- // state[529 + 2] 0x020c40 Byte 4 of 4 (property)
- 227, 5, 5, 5, 2, 2, 2, 2, 213, 2, 2, 2, 2, 2,208, 6,
-@@ -3427,7 +3427,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208,208,208,208,208,208,208, 208, 6, 6, 6, 6, 2, 5, 5,
-
- // state[560 + 2] 0x021000 Byte 3 of 4 (relative offsets)
---16,-15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
-+(uint8)-16,(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
-@@ -3811,7 +3811,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6, 6, 6, 5,208, 208,229,208,208, 5, 5, 5, 5,
-
- // state[624 + 2] 0x022000 Byte 3 of 4 (relative offsets)
---15,-14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1,
-+(uint8)-15,(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
-@@ -4195,7 +4195,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 4, 5,208,208,208,208, 208,208,229, 6, 5, 6, 6, 6,
-
- // state[688 + 2] 0x023000 Byte 3 of 4 (relative offsets)
---14,-13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2,
-+(uint8)-14,(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
-@@ -4579,7 +4579,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 6, 208,208,208,208,208,208, 6, 6,
-
- // state[752 + 2] 0x024000 Byte 3 of 4 (relative offsets)
---13,-12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3,
-+(uint8)-13,(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
-@@ -4963,7 +4963,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 6,229,
-
- // state[816 + 2] 0x025000 Byte 3 of 4 (relative offsets)
---12,-11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4,
-+(uint8)-12,(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
-@@ -5347,7 +5347,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 6, 6, 6, 5, 5, 5, 5, 6, 6, 6, 3, 6,229,208,208,229,
-
- // state[880 + 2] 0x026000 Byte 3 of 4 (relative offsets)
---11,-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5,
-+(uint8)-11,(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
-@@ -5731,7 +5731,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208, 6, 6,208,208,208,208,208, 6, 6, 6,216, 5, 5, 5, 5,
-
- // state[944 + 2] 0x027000 Byte 3 of 4 (relative offsets)
---10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6,
-+(uint8)-10, (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
-@@ -6115,7 +6115,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 6,208,208, 6, 6, 208,229,208,208,208, 5, 5, 5,
-
- // state[1008 + 2] 0x028000 Byte 3 of 4 (relative offsets)
-- -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7,
-+ (uint8)-9, (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
-@@ -6499,7 +6499,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 208,208, 5, 5, 6,208,208, 5, 208,208,208, 6,208, 6,208,208,
-
- // state[1072 + 2] 0x029000 Byte 3 of 4 (relative offsets)
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-@@ -6883,7 +6883,7 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 229,229,229,229,208,208,208,229, 208,208,208,229, 0,229,208,208,
-
- // state[1136 + 2] 0x02a000 Byte 3 of 4 (relative offsets)
-- -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
-@@ -7075,10 +7075,10 @@ X__,X__,X__,X__,X__,X__,X__,X__, X__,X__
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
-
- // state[1168 + 2] 0x02f000 Byte 3 of 4 (relative offsets)
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-- -8, -7, -6, -5, -4, -3, -2, -1, 1, -9, -9, -9, -9, -9, -9, -9,
-- -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-8, (uint8)-7, (uint8)-6, (uint8)-5, (uint8)-4, (uint8)-3, (uint8)-2, (uint8)-1, 1, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-+ (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9, (uint8)-9,
-
- // state[1169 + 2] 0x02fa00 Byte 4 of 4 (property)
- 217, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,217, 5, 5,
-diff -up chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2017-02-01 21:03:57.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2017-02-09 10:38:38.380789675 -0500
-@@ -265,7 +265,7 @@ interface WebGL2RenderingContextBase
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.h 2017-02-09 10:38:38.387789535 -0500
-@@ -49,7 +49,7 @@ class NodeFilter final : public GarbageC
- * to the value of NodeType for the equivalent node type.
- */
- enum {
-- kShowAll = 0xFFFFFFFF,
-+ kShowAll = 256 /* 0xFFFFFFFF */,
- kShowElement = 0x00000001,
- kShowAttribute = 0x00000002,
- kShowText = 0x00000004,
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/core/dom/NodeFilter.idl 2017-02-09 10:38:38.394789395 -0500
-@@ -30,7 +30,7 @@
- const unsigned short FILTER_SKIP = 3;
-
- // Constants for whatToShow
-- const unsigned long SHOW_ALL = 0xFFFFFFFF;
-+ const unsigned long SHOW_ALL = 256; // 0xFFFFFFFF
- const unsigned long SHOW_ELEMENT = 0x1;
- const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
- const unsigned long SHOW_TEXT = 0x4;
-diff -up chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
---- chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 2017-02-01 21:03:09.000000000 -0500
-+++ chromium-56.0.2924.87/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl 2017-02-09 11:07:32.828682863 -0500
-@@ -239,7 +239,7 @@ typedef unsigned long long GLuint64;
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-@@ -269,7 +269,7 @@ typedef unsigned long long GLuint64;
- const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;
- const GLenum MAX_ELEMENT_INDEX = 0x8D6B;
- const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
-- const GLint TIMEOUT_IGNORED = -1;
-+ const GLint TIMEOUT_IGNORED = 256;
-
- /* WebGL-specific enums */
- const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
diff --git a/chromium-59.0.3071.115-ucontext-fix.patch b/chromium-59.0.3071.115-ucontext-fix.patch
deleted file mode 100644
index 96bfadb..0000000
--- a/chromium-59.0.3071.115-ucontext-fix.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc.ucontextfix 2017-07-12 15:23:33.019591380 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc 2017-07-12 15:32:52.069197546 -0400
-@@ -36,19 +36,19 @@ namespace google_breakpad {
-
- // Minidump defines register structures which are different from the raw
- // structures which we get from the kernel. These are platform specific
--// functions to juggle the ucontext and user structures into minidump format.
-+// functions to juggle the ucontext_t and user structures into minidump format.
-
- #if defined(__i386__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_ESP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_EIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__x86_64)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RSP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__ARM_EABI__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- out->context_flags = MD_CONTEXT_ARM_FULL;
-
- out->iregs[0] = uc->uc_mcontext.arm_r0;
-@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__aarch64__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs) {
- out->context_flags = MD_CONTEXT_ARM64_FULL;
-
-@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawC
-
- #elif defined(__mips__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- #if _MIPS_SIM == _ABI64
- out->context_flags = MD_CONTEXT_MIPS64_FULL;
- #elif _MIPS_SIM == _ABIO32
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
---- chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.ucontextfix 2017-07-12 15:33:08.486806743 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h 2017-07-12 15:33:57.299644808 -0400
-@@ -39,23 +39,23 @@
-
- namespace google_breakpad {
-
--// Wraps platform-dependent implementations of accessors to ucontext structs.
-+// Wraps platform-dependent implementations of accessors to ucontext_t structs.
- struct UContextReader {
-- static uintptr_t GetStackPointer(const struct ucontext* uc);
-+ static uintptr_t GetStackPointer(const ucontext_t* uc);
-
-- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
-+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
-
-- // Juggle a arch-specific ucontext into a minidump format
-+ // Juggle a arch-specific ucontext_t into a minidump format
- // out: the minidump structure
- // info: the collection of register structures.
- #if defined(__i386__) || defined(__x86_64)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
- #elif defined(__aarch64__)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs);
- #else
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
- #endif
- };
-
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc.ucontextfix 2017-07-12 15:34:09.094364048 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.cc 2017-07-12 15:35:36.483283853 -0400
-@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int
- // Fill in all the holes in the struct to make Valgrind happy.
- memset(&g_crash_context_, 0, sizeof(g_crash_context_));
- memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
-- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
-+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
- #if defined(__aarch64__)
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
-@@ -450,9 +450,9 @@ bool ExceptionHandler::HandleSignal(int
- }
- #elif !defined(__ARM_EABI__) && !defined(__mips__)
- // FP state is not part of user ABI on ARM Linux.
-- // In case of MIPS Linux FP state is already part of struct ucontext
-+ // In case of MIPS Linux FP state is already part of ucontext_t
- // and 'float_state' is not a member of CrashContext.
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- if (uc_ptr->uc_mcontext.fpregs) {
- memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
- sizeof(g_crash_context_.float_state));
-@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDel
- // ExceptionHandler::HandleSignal().
- siginfo.si_code = SI_USER;
- siginfo.si_pid = getpid();
-- struct ucontext context;
-+ ucontext_t context;
- getcontext(&context);
- return HandleSignal(sig, &siginfo, &context);
- }
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h
---- chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h.ucontextfix 2017-07-12 15:35:48.559996380 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/handler/exception_handler.h 2017-07-12 15:36:32.615948562 -0400
-@@ -191,11 +191,11 @@ class ExceptionHandler {
- struct CrashContext {
- siginfo_t siginfo;
- pid_t tid; // the crashing thread.
-- struct ucontext context;
-+ ucontext_t context;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- // #ifdef this out because FP state is not part of user ABI for Linux ARM.
- // In case of MIPS Linux FP state is already part of struct
-- // ucontext so 'float_state' is not required.
-+ // ucontext_t so 'float_state' is not required.
- fpstate_t float_state;
- #endif
- };
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc.ucontextfix 2017-07-12 15:37:26.232674196 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/microdump_writer/microdump_writer.cc 2017-07-12 15:37:39.032369973 -0400
-@@ -579,7 +579,7 @@ class MicrodumpWriter {
-
- void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
-
-- const struct ucontext* const ucontext_;
-+ const ucontext_t* const ucontext_;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_;
- #endif
-diff -up chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.ucontextfix chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
---- chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc.ucontextfix 2017-07-12 15:37:54.041013246 -0400
-+++ chromium-59.0.3071.115/breakpad/src/client/linux/minidump_writer/minidump_writer.cc 2017-07-12 15:38:19.600405748 -0400
-@@ -1323,7 +1323,7 @@ class MinidumpWriter {
- const int fd_; // File descriptor where the minidum should be written.
- const char* path_; // Path to the file where the minidum should be written.
-
-- const struct ucontext* const ucontext_; // also from the signal handler
-+ const ucontext_t* const ucontext_; // also from the signal handler
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_; // ditto
- #endif
diff --git a/chromium-59.0.3071.86-ffmpeg-stdatomic.patch b/chromium-59.0.3071.86-ffmpeg-stdatomic.patch
deleted file mode 100644
index a512513..0000000
--- a/chromium-59.0.3071.86-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c
---- chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2017-06-07 17:15:24.993945430 -0400
-+++ chromium-59.0.3071.86/third_party/ffmpeg/libavutil/cpu.c 2017-06-07 17:18:41.625997601 -0400
-@@ -17,7 +17,13 @@
- */
-
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "cpu.h"
- #include "cpu_internal.h"
diff --git a/chromium-59.0.3071.86-nullfix.patch b/chromium-59.0.3071.86-nullfix.patch
deleted file mode 100644
index 20e9d18..0000000
--- a/chromium-59.0.3071.86-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.nullfix chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.nullfix 2017-06-05 15:03:01.000000000 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:32:43.531911624 -0400
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -91,6 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -136,6 +139,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -161,6 +165,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "mipsel-linux-gnu-readelf"
- nm = "mipsel-linux-gnu-nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-59.0.3071.86-system-clang.patch b/chromium-59.0.3071.86-system-clang.patch
deleted file mode 100644
index 458834b..0000000
--- a/chromium-59.0.3071.86-system-clang.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff -up chromium-59.0.3071.86/build/config/clang/clang.gni.system-clang chromium-59.0.3071.86/build/config/clang/clang.gni
---- chromium-59.0.3071.86/build/config/clang/clang.gni.system-clang 2017-06-11 20:57:07.327949687 -0400
-+++ chromium-59.0.3071.86/build/config/clang/clang.gni 2017-06-11 20:57:24.085620826 -0400
-@@ -9,5 +9,5 @@ declare_args() {
- # coding guidelines, etc. Only used when compiling with Clang.
- clang_use_chrome_plugins = is_clang && !is_nacl && !use_xcode_clang
-
-- clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+ clang_base_path = "/usr"
- }
diff --git a/chromium-60.0.3112.78-gn-system.patch b/chromium-60.0.3112.78-gn-system.patch
deleted file mode 100644
index 60489bb..0000000
--- a/chromium-60.0.3112.78-gn-system.patch
+++ /dev/null
@@ -1,221 +0,0 @@
-diff -up chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn
---- chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn 2017-07-31 10:38:25.879951641 -0400
-@@ -16,6 +16,10 @@ source_set("libjpeg") {
- libs = [ "jpeg" ]
- }
-
-+config("system_libjpeg") {
-+ defines = [ "USE_SYSTEM_LIBJPEG=1" ]
-+}
-+
- source_set("simd") {
- }
-
-diff -up chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libusb.gn
---- chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem 2017-07-31 10:38:25.880951622 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/libusb.gn 2017-07-31 10:38:25.879951641 -0400
-@@ -0,0 +1,24 @@
-+# Copyright 2016 The Chromium Authors. All rights reserved.
-+# Use of this source code is governed by a BSD-style license that can be
-+# found in the LICENSE file.
-+
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+
-+pkg_config("system_libusb") {
-+ packages = [ "libusb-1.0" ]
-+}
-+
-+shim_headers("libusb_shim") {
-+ root_path = "src/libusb"
-+ headers = [
-+ "libusb.h",
-+ ]
-+}
-+
-+source_set("libusb") {
-+ deps = [
-+ ":libusb_shim",
-+ ]
-+ public_configs = [ ":system_libusb" ]
-+}
-diff -up chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/opus.gn
---- chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/opus.gn 2017-07-31 10:38:25.880951622 -0400
-@@ -1,3 +1,164 @@
-+# Copyright 2016 The Chromium Authors. All rights reserved.
-+# Use of this source code is governed by a BSD-style license that can be
-+# found in the LICENSE file.
-+
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+import("//testing/test.gni")
-+
-+pkg_config("system_opus") {
-+ packages = [ "opus" ]
-+}
-+
-+shim_headers("opus_shim") {
-+ root_path = "src/include"
-+ headers = [
-+ "opus_custom.h",
-+ "opus_defines.h",
-+ "opus_multistream.h",
-+ "opus_types.h",
-+ "opus.h",
-+ ]
-+}
-+
-+source_set("opus") {
-+ deps = [
-+ ":opus_shim",
-+ ]
-+ public_configs = [ ":system_opus" ]
-+}
-+
-+config("opus_test_config") {
-+ include_dirs = [
-+ "src/celt",
-+ "src/silk",
-+ ]
-+
-+ if (is_win) {
-+ defines = [ "inline=__inline" ]
-+ }
-+ if (is_android) {
-+ libs = [ "log" ]
-+ }
-+ if (is_clang) {
-+ cflags = [ "-Wno-absolute-value" ]
-+ }
-+}
-+
-+executable("opus_compare") {
-+ sources = [
-+ "src/src/opus_compare.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ "//build/config/sanitizers:deps",
-+ "//build/win:default_exe_manifest",
-+ ]
-+}
-+
-+executable("opus_demo") {
-+ sources = [
-+ "src/src/opus_demo.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ "//build/config/sanitizers:deps",
-+ "//build/win:default_exe_manifest",
-+ ]
-+}
-+
-+test("test_opus_api") {
-+ sources = [
-+ "src/tests/test_opus_api.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+test("test_opus_encode") {
-+ sources = [
-+ "src/tests/test_opus_encode.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+# GN orders flags on a target before flags from configs. The default config
-+# adds -Wall, and this flag have to be after -Wall -- so they need to
-+# come from a config and can't be on the target directly.
-+config("test_opus_decode_config") {
-+ # test_opus_decode passes a null pointer to opus_decode() for an argument
-+ # marked as requiring a non-null value by the nonnull function attribute,
-+ # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
-+ # a compilation error if -Werror is specified.
-+ if (is_posix) {
-+ cflags = [ "-Wno-nonnull" ]
-+ }
-+}
-+
-+test("test_opus_decode") {
-+ sources = [
-+ "src/tests/test_opus_decode.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ":test_opus_decode_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
-+test("test_opus_padding") {
-+ sources = [
-+ "src/tests/test_opus_padding.c",
-+ ]
-+
-+ configs -= [ "//build/config/compiler:chromium_code" ]
-+ configs += [
-+ "//build/config/compiler:no_chromium_code",
-+ ":opus_test_config",
-+ ]
-+
-+ deps = [
-+ ":opus",
-+ ]
-+}
-+
- # Copyright 2017 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.
-diff -up chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py
---- chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem 2017-07-31 10:38:25.880951622 -0400
-+++ chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py 2017-07-31 10:39:58.067159914 -0400
-@@ -26,6 +26,7 @@ REPLACEMENTS = {
- 'libevent': 'base/third_party/libevent/BUILD.gn',
- 'libjpeg': 'build/secondary/third_party/libjpeg_turbo/BUILD.gn',
- 'libpng': 'third_party/libpng/BUILD.gn',
-+ 'libusb': 'third_party/libusb/BUILD.gn',
- 'libvpx': 'third_party/libvpx/BUILD.gn',
- 'libwebp': 'third_party/libwebp/BUILD.gn',
- 'libxml': 'third_party/libxml/BUILD.gn',
diff --git a/chromium-60.0.3112.78-last-commit-position.patch b/chromium-60.0.3112.78-last-commit-position.patch
deleted file mode 100644
index 7c26d9f..0000000
--- a/chromium-60.0.3112.78-last-commit-position.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit chromium-60.0.3112.78/tools/gn/BUILD.gn
---- chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit 2017-07-31 10:42:38.568041044 -0400
-+++ chromium-60.0.3112.78/tools/gn/BUILD.gn 2017-07-31 10:47:50.760974587 -0400
-@@ -268,7 +268,6 @@ executable("gn") {
-
- deps = [
- ":gn_lib",
-- ":last_commit_position",
- "//base",
- "//build/config:exe_and_shlib_deps",
- "//build/win:default_exe_manifest",
-diff -up chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit chromium-60.0.3112.78/tools/gn/gn_main.cc
---- chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit 2017-07-25 15:05:19.000000000 -0400
-+++ chromium-60.0.3112.78/tools/gn/gn_main.cc 2017-07-31 10:42:38.568041044 -0400
-@@ -12,13 +12,7 @@
- #include "tools/gn/standard_out.h"
- #include "tools/gn/switches.h"
-
--// Only the GN-generated build makes this header for now.
--// TODO(brettw) consider adding this if we need it in GYP.
--#if defined(GN_BUILD)
--#include "tools/gn/last_commit_position.h"
--#else
- #define LAST_COMMIT_POSITION "UNKNOWN"
--#endif
-
- namespace {
-
diff --git a/chromium-60.0.3112.78-no-zlib-mangle.patch b/chromium-60.0.3112.78-no-zlib-mangle.patch
deleted file mode 100644
index 4b90360..0000000
--- a/chromium-60.0.3112.78-no-zlib-mangle.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle chromium-60.0.3112.78/third_party/zlib/zconf.h
---- chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle 2017-08-04 10:45:17.509152089 -0400
-+++ chromium-60.0.3112.78/third_party/zlib/zconf.h 2017-08-04 10:45:30.451902380 -0400
-@@ -8,9 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names */
--#include "names.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-60.0.3112.90-vulkan-force-c99.patch b/chromium-60.0.3112.90-vulkan-force-c99.patch
deleted file mode 100644
index 881aa91..0000000
--- a/chromium-60.0.3112.90-vulkan-force-c99.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn.c99 chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn
---- chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn.c99 2017-08-14 10:40:48.028799820 -0400
-+++ chromium-60.0.3112.90/third_party/angle/src/vulkan_support/BUILD.gn 2017-08-14 10:41:43.054734910 -0400
-@@ -180,6 +180,7 @@ config("vulkan_internal_config") {
- cflags += [ "-Wno-ignored-attributes" ]
- }
- if (is_linux) {
-+ cflags += [ "-std=c99" ]
- defines += [
- "SYSCONFDIR=\"/etc\"",
- "FALLBACK_CONFIG_DIRS=\"/etc/xdg\"",
diff --git a/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch b/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch
deleted file mode 100644
index 12e88d2..0000000
--- a/chromium-61.0.3163.79-aarch64-glibc-2.26.90.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc 2017-09-12 10:12:25.375736650 -0400
-+++ chromium-61.0.3163.79/breakpad/src/client/linux/handler/exception_handler.cc 2017-09-12 10:14:42.339638321 -0400
-@@ -461,7 +461,7 @@ bool ExceptionHandler::HandleSignal(int
- #if defined(__aarch64__)
- ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
-- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
-+ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__glibc_reserved1;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
- memcpy(&g_crash_context_.float_state, fp_ptr,
- sizeof(g_crash_context_.float_state));
diff --git a/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch b/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch
deleted file mode 100644
index a8c7260..0000000
--- a/chromium-61.0.3163.79-fix-ffmpeg-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 2017-09-06 14:34:36.247232957 -0400
-+++ chromium-61.0.3163.79/third_party/ffmpeg/ffmpeg_generated.gni 2017-09-06 14:36:37.632892363 -0400
-@@ -537,7 +537,7 @@ if (use_linux_config && current_cpu == "
- ]
- }
-
--if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
-+if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chromium")) {
- ffmpeg_c_sources += [
- "libavcodec/aarch64/mpegaudiodsp_init.c",
- ]
diff --git a/chromium-61.0.3163.79-setopaque.patch b/chromium-61.0.3163.79-setopaque.patch
deleted file mode 100644
index b797d10..0000000
--- a/chromium-61.0.3163.79-setopaque.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-61.0.3163.79/cc/blink/web_layer_impl.h.setopaque chromium-61.0.3163.79/cc/blink/web_layer_impl.h
---- chromium-61.0.3163.79/cc/blink/web_layer_impl.h.setopaque 2017-09-06 13:55:45.454175023 -0400
-+++ chromium-61.0.3163.79/cc/blink/web_layer_impl.h 2017-09-06 13:58:02.395533936 -0400
-@@ -71,7 +71,7 @@ class CC_BLINK_EXPORT WebLayerImpl : pub
- bool IsRootForIsolatedGroup() override;
- void SetShouldHitTest(bool should_hit_test) override;
- bool ShouldHitTest() override;
-- void SetOpaque(bool opaque) override;
-+ CC_BLINK_EXPORT void SetOpaque(bool opaque) override;
- bool Opaque() const override;
- void SetPosition(const blink::WebFloatPoint& position) override;
- blink::WebFloatPoint GetPosition() const override;
diff --git a/chromium-62.0.3202.62-correct-cplusplus-check.patch b/chromium-62.0.3202.62-correct-cplusplus-check.patch
deleted file mode 100644
index 39f8580..0000000
--- a/chromium-62.0.3202.62-correct-cplusplus-check.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h.fix-cplusplus-conditional chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h
---- chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h.fix-cplusplus-conditional 2017-10-17 15:12:35.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/crc32c/src/include/crc32c/crc32c.h 2017-10-19 11:41:45.860279576 -0400
-@@ -38,6 +38,8 @@ inline uint32_t Crc32c(const std::string
- // Visual Studio provides a <string_view> header even in C++11 mode. When
- // included, the header issues an #error. (C1189)
- #if !defined(_MSC_VER) || __cplusplus >= 201703L
-+// GCC issues an #error if __cplusplus <= 201402L
-+#if defined(__GNUC__) && __cplusplus > 201402L
- #include <string_view>
-
- // Comptues the CRC32C of the bytes in the string_view.
-@@ -46,6 +48,7 @@ inline uint32_t Crc32c(const std::string
- string_view.size());
- }
-
-+#endif // defined(__GNUC__) && __cplusplus > 201402L
- #endif // !defined(_MSC_VER) || __cplusplus >= 201703L
- #endif // __has_include(<string_view>)
- #endif // defined(__has_include)
diff --git a/chromium-62.0.3202.62-dde535-gcc-fix.patch b/chromium-62.0.3202.62-dde535-gcc-fix.patch
deleted file mode 100644
index 378403a..0000000
--- a/chromium-62.0.3202.62-dde535-gcc-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc.dde535 chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc
---- chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc.dde535 2017-10-18 10:04:33.237966223 -0400
-+++ chromium-62.0.3202.62/services/resource_coordinator/resource_coordinator_service.cc 2017-10-18 10:05:00.442438694 -0400
-@@ -18,7 +18,8 @@ std::unique_ptr<service_manager::Service
- auto resource_coordinator_service =
- base::MakeUnique<ResourceCoordinatorService>();
-
-- return resource_coordinator_service;
-+ return std::unique_ptr<service_manager::Service>(
-+ resource_coordinator_service.release());
- }
-
- ResourceCoordinatorService::ResourceCoordinatorService()
diff --git a/chromium-62.0.3202.62-enable-mp3.patch b/chromium-62.0.3202.62-enable-mp3.patch
deleted file mode 100644
index 3ed9dbf..0000000
--- a/chromium-62.0.3202.62-enable-mp3.patch
+++ /dev/null
@@ -1,484 +0,0 @@
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/button-press.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/button-press
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/hit.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/hit
-diff -up chromium-62.0.3202.62/components/neterror/resources/sounds/score-reached.mp3 chromium-62.0.3202.62/components/neterror/resources/sounds/score-reached
-diff -up chromium-62.0.3202.62/media/base/mime_util_internal.cc.mp3 chromium-62.0.3202.62/media/base/mime_util_internal.cc
---- chromium-62.0.3202.62/media/base/mime_util_internal.cc.mp3 2017-10-17 15:10:44.000000000 -0400
-+++ chromium-62.0.3202.62/media/base/mime_util_internal.cc 2017-10-18 09:32:16.957562156 -0400
-@@ -266,15 +266,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -311,10 +315,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -920,7 +924,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -928,6 +931,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
-diff -up chromium-62.0.3202.62/media/formats/BUILD.gn.mp3 chromium-62.0.3202.62/media/formats/BUILD.gn
---- chromium-62.0.3202.62/media/formats/BUILD.gn.mp3 2017-10-17 15:10:45.000000000 -0400
-+++ chromium-62.0.3202.62/media/formats/BUILD.gn 2017-10-18 09:25:18.353676481 -0400
-@@ -17,6 +17,14 @@ source_set("formats") {
- "ac3/ac3_util.h",
- "common/offset_byte_queue.cc",
- "common/offset_byte_queue.h",
-+ "mpeg/adts_constants.cc",
-+ "mpeg/adts_constants.h",
-+ "mpeg/adts_stream_parser.cc",
-+ "mpeg/adts_stream_parser.h",
-+ "mpeg/mpeg1_audio_stream_parser.cc",
-+ "mpeg/mpeg1_audio_stream_parser.h",
-+ "mpeg/mpeg_audio_stream_parser_base.cc",
-+ "mpeg/mpeg_audio_stream_parser_base.h",
- "webm/webm_audio_client.cc",
- "webm/webm_audio_client.h",
- "webm/webm_cluster_parser.cc",
-@@ -78,14 +86,6 @@ source_set("formats") {
- "mp4/sample_to_group_iterator.h",
- "mp4/track_run_iterator.cc",
- "mp4/track_run_iterator.h",
-- "mpeg/adts_constants.cc",
-- "mpeg/adts_constants.h",
-- "mpeg/adts_stream_parser.cc",
-- "mpeg/adts_stream_parser.h",
-- "mpeg/mpeg1_audio_stream_parser.cc",
-- "mpeg/mpeg1_audio_stream_parser.h",
-- "mpeg/mpeg_audio_stream_parser_base.cc",
-- "mpeg/mpeg_audio_stream_parser_base.h",
- ]
- }
-
-diff -up chromium-62.0.3202.62/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test.mp3 chromium-62.0.3202.62/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h 2017-10-18 09:25:18.354676462 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h 2017-10-18 09:25:18.355676443 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h 2017-10-18 09:25:18.360676348 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/jrummell/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h 2017-10-18 09:25:18.360676348 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
---- chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 2017-10-18 09:05:31.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h 2017-10-18 09:25:18.361676329 -0400
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/chrome/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -542,7 +542,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -620,9 +620,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -968,7 +968,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1275,7 +1275,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2217,7 +2217,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-10-18 09:05:28.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/ffmpeg_generated.gni 2017-10-18 09:25:18.362676310 -0400
-@@ -182,17 +182,9 @@ if ((is_mac) || (is_win) || (use_linux_c
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_win) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm64") || (use_linux_config && current_cpu == "mipsel") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
-- "libavcodec/aac_ac3_parser.c",
-- "libavcodec/aac_parser.c",
-- "libavcodec/aacadtsdec.c",
-- "libavcodec/aacps_float.c",
-- "libavcodec/aacpsdsp_float.c",
-- "libavcodec/aacsbr.c",
-- "libavcodec/aactab.c",
- "libavcodec/ac3tab.c",
-- "libavcodec/autorename_libavcodec_aacdec.c",
- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
- "libavcodec/autorename_libavcodec_sbrdsp.c",
- "libavcodec/cbrt_data.c",
-@@ -210,7 +202,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
- "libavcodec/mpegaudiodsp_float.c",
- "libavcodec/sinewin.c",
- "libavcodec/sinewin_fixed.c",
-- "libavformat/aacdec.c",
- "libavformat/apetag.c",
- "libavformat/img2.c",
- "libavformat/mov.c",
-@@ -219,6 +210,20 @@ if ((current_cpu == "x64" && ffmpeg_bran
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+ ffmpeg_c_sources += [
-+ "libavcodec/aac_ac3_parser.c",
-+ "libavcodec/aac_parser.c",
-+ "libavcodec/aacadtsdec.c",
-+ "libavcodec/aacps_float.c",
-+ "libavcodec/aacpsdsp_float.c",
-+ "libavcodec/aacsbr.c",
-+ "libavcodec/aactab.c",
-+ "libavcodec/autorename_libavcodec_aacdec.c",
-+ "libavformat/aacdec.c",
-+ ]
-+}
-+
- if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
-@@ -322,15 +327,19 @@ if ((is_mac) || (is_win) || (use_linux_c
- if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/aacpsdsp_init.c",
-+ ]
-+ ffmpeg_yasm_sources += [
-+ "libavcodec/x86/aacpsdsp.asm",
-+ ]
-+}
-+
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86") || (is_win)) {
-+ ffmpeg_c_sources += [
- "libavcodec/x86/dct_init.c",
- "libavcodec/x86/mpegaudiodsp.c",
- "libavcodec/x86/sbrdsp_init.c",
- ]
--}
--
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_yasm_sources += [
-- "libavcodec/x86/aacpsdsp.asm",
- "libavcodec/x86/dct32.asm",
- "libavcodec/x86/imdct36.asm",
- "libavcodec/x86/sbrdsp.asm",
-diff -up chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c
---- chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-10-18 09:05:30.000000000 -0400
-+++ chromium-62.0.3202.62/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-10-18 09:25:18.362676310 -0400
-@@ -23,6 +23,7 @@
- #define USE_FIXED 0
-
- #include "aac.h"
-+#include "aacsbrdata.h"
- #include "config.h"
- #include "libavutil/attributes.h"
- #include "libavutil/intfloat.h"
-diff -up chromium-62.0.3202.62/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 chromium-62.0.3202.62/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart
-diff -up chromium-62.0.3202.62/tools/android/audio_focus_grabber/java/res/raw/ping.mp3 chromium-62.0.3202.62/tools/android/audio_focus_grabber/java/res/raw/ping
diff --git a/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch b/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch
deleted file mode 100644
index 7af702a..0000000
--- a/chromium-62.0.3202.62-epel7-no-nullptr-assignment-on-StructPtr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp.nonullptr chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp
---- chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp.nonullptr 2017-10-18 10:10:14.216353575 -0400
-+++ chromium-62.0.3202.62/third_party/WebKit/Source/platform/blob/BlobData.cpp 2017-10-18 10:10:23.657170980 -0400
-@@ -295,7 +295,7 @@ BlobDataHandle::BlobDataHandle(std::uniq
-
- size_t current_memory_population = 0;
- Vector<DataElementPtr> elements;
-- const DataElementPtr null_element = nullptr;
-+ const DataElementPtr null_element;
- BlobBytesProvider* last_bytes_provider = nullptr;
- RefPtr<WebTaskRunner> file_runner = Platform::Current()->FileTaskRunner();
-
diff --git a/chromium-62.0.3202.62-gcc-nc.patch b/chromium-62.0.3202.62-gcc-nc.patch
deleted file mode 100644
index 0a74d25..0000000
--- a/chromium-62.0.3202.62-gcc-nc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-62.0.3202.62/content/network/network_service_impl.cc.gcc-nc chromium-62.0.3202.62/content/network/network_service_impl.cc
---- chromium-62.0.3202.62/content/network/network_service_impl.cc.gcc-nc 2017-10-18 10:07:04.045041261 -0400
-+++ chromium-62.0.3202.62/content/network/network_service_impl.cc 2017-10-18 10:07:53.175088528 -0400
-@@ -90,6 +90,7 @@ NetworkServiceImpl::CreateNetworkContext
- base::MakeUnique<NetworkContext>(this, std::move(request),
- std::move(params), std::move(builder));
- *url_request_context = network_context->url_request_context();
-+ return std::unique_ptr<content::NetworkContext>(network_context.release());
- return network_context;
- }
-
diff --git a/chromium-62.0.3202.62-gcc7.patch b/chromium-62.0.3202.62-gcc7.patch
deleted file mode 100644
index 90d177d..0000000
--- a/chromium-62.0.3202.62-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2017-10-18 09:20:04.072765163 -0400
-+++ chromium-62.0.3202.62/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-10-18 09:21:40.156905187 -0400
-@@ -9,6 +9,7 @@
- #include "platform/graphics/WebGraphicsContext3DProviderWrapper.h"
- #include "platform/wtf/ThreadSpecific.h"
-
-+#include <functional>
- #include <memory>
-
- namespace blink {
diff --git a/chromium-62.0.3202.62-rvalue-fix.patch b/chromium-62.0.3202.62-rvalue-fix.patch
deleted file mode 100644
index 89197cd..0000000
--- a/chromium-62.0.3202.62-rvalue-fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -up chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc.another-rvalue-fix chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc
---- chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc.another-rvalue-fix 2017-10-18 10:15:58.855675480 -0400
-+++ chromium-62.0.3202.62/chrome/browser/ui/webui/settings/on_startup_handler.cc 2017-10-18 10:16:28.925093301 -0400
-@@ -77,7 +77,7 @@ std::unique_ptr<base::Value> OnStartupHa
- !extensions::ExtensionSystem::Get(profile_)
- ->management_policy()
- ->MustRemainEnabled(ntp_extension, nullptr));
-- return dict;
-+ return std::move(dict);
- }
-
- void OnStartupHandler::HandleGetNtpExtension(const base::ListValue* args) {
-diff -up chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc.another-rvalue-fix chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc
---- chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc.another-rvalue-fix 2017-10-18 10:15:16.408497853 -0400
-+++ chromium-62.0.3202.62/ui/views/animation/ink_drop_host_view.cc 2017-10-18 10:15:43.793967075 -0400
-@@ -305,7 +305,7 @@ std::unique_ptr<InkDropImpl> InkDropHost
- base::MakeUnique<InkDropImpl>(this, size());
- ink_drop->SetAutoHighlightMode(
- views::InkDropImpl::AutoHighlightMode::HIDE_ON_RIPPLE);
-- return ink_drop;
-+ return std:move(ink_drop);
- }
-
- std::unique_ptr<InkDropImpl>
-@@ -314,7 +314,7 @@ InkDropHostView::CreateDefaultFloodFillI
- InkDropHostView::CreateDefaultInkDropImpl();
- ink_drop->SetAutoHighlightMode(
- views::InkDropImpl::AutoHighlightMode::SHOW_ON_RIPPLE);
-- return ink_drop;
-+ return std:move(ink_drop);
- }
-
- } // namespace views
-diff -up chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc.another-rvalue-fix chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc
---- chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc.another-rvalue-fix 2017-10-18 10:14:18.054627919 -0400
-+++ chromium-62.0.3202.62/ui/views/controls/button/checkbox.cc 2017-10-18 10:14:42.265159378 -0400
-@@ -198,7 +198,7 @@ std::unique_ptr<InkDrop> Checkbox::Creat
- std::unique_ptr<InkDropImpl> ink_drop = CreateDefaultInkDropImpl();
- ink_drop->SetShowHighlightOnHover(false);
- ink_drop->SetAutoHighlightMode(InkDropImpl::AutoHighlightMode::NONE);
-- return ink_drop;
-+ return std::move(ink_drop);
- }
-
- std::unique_ptr<InkDropRipple> Checkbox::CreateInkDropRipple() const {
diff --git a/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch b/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
deleted file mode 100644
index 469d680..0000000
--- a/chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
---- chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.aarch64glibc 2017-12-12 09:56:24.469343868 -0500
-+++ chromium-63.0.3239.84/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2017-12-12 09:56:38.468071095 -0500
-@@ -461,7 +461,7 @@ bool ExceptionHandler::HandleSignal(int
- #if defined(__aarch64__)
- ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
-- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
-+ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__glibc_reserved1;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
- memcpy(&g_crash_context_.float_state, fp_ptr,
- sizeof(g_crash_context_.float_state));
diff --git a/chromium-63.0.3289.84-enable-mp3.patch b/chromium-63.0.3289.84-enable-mp3.patch
deleted file mode 100644
index 91a331a..0000000
--- a/chromium-63.0.3289.84-enable-mp3.patch
+++ /dev/null
@@ -1,485 +0,0 @@
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/button-press.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/button-press
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/hit.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/hit
-diff -up chromium-63.0.3239.84/components/neterror/resources/sounds/score-reached.mp3 chromium-63.0.3239.84/components/neterror/resources/sounds/score-reached
-diff -up chromium-63.0.3239.84/media/base/mime_util_internal.cc.mp3 chromium-63.0.3239.84/media/base/mime_util_internal.cc
---- chromium-63.0.3239.84/media/base/mime_util_internal.cc.mp3 2017-12-06 15:05:29.000000000 -0500
-+++ chromium-63.0.3239.84/media/base/mime_util_internal.cc 2017-12-07 10:52:02.472510232 -0500
-@@ -266,15 +266,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -311,10 +315,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -935,7 +939,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -943,6 +946,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
-diff -up chromium-63.0.3239.84/media/formats/BUILD.gn.mp3 chromium-63.0.3239.84/media/formats/BUILD.gn
---- chromium-63.0.3239.84/media/formats/BUILD.gn.mp3 2017-12-06 15:05:29.000000000 -0500
-+++ chromium-63.0.3239.84/media/formats/BUILD.gn 2017-12-07 10:52:02.473510212 -0500
-@@ -20,6 +20,14 @@ source_set("formats") {
- "ac3/ac3_util.h",
- "common/offset_byte_queue.cc",
- "common/offset_byte_queue.h",
-+ "mpeg/adts_constants.cc",
-+ "mpeg/adts_constants.h",
-+ "mpeg/adts_stream_parser.cc",
-+ "mpeg/adts_stream_parser.h",
-+ "mpeg/mpeg1_audio_stream_parser.cc",
-+ "mpeg/mpeg1_audio_stream_parser.h",
-+ "mpeg/mpeg_audio_stream_parser_base.cc",
-+ "mpeg/mpeg_audio_stream_parser_base.h",
- "webm/webm_audio_client.cc",
- "webm/webm_audio_client.h",
- "webm/webm_cluster_parser.cc",
-@@ -81,14 +89,6 @@ source_set("formats") {
- "mp4/sample_to_group_iterator.h",
- "mp4/track_run_iterator.cc",
- "mp4/track_run_iterator.h",
-- "mpeg/adts_constants.cc",
-- "mpeg/adts_constants.h",
-- "mpeg/adts_stream_parser.cc",
-- "mpeg/adts_stream_parser.h",
-- "mpeg/mpeg1_audio_stream_parser.cc",
-- "mpeg/mpeg1_audio_stream_parser.h",
-- "mpeg/mpeg_audio_stream_parser_base.cc",
-- "mpeg/mpeg_audio_stream_parser_base.h",
- ]
- }
-
-diff -up chromium-63.0.3239.84/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test.mp3 chromium-63.0.3239.84/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h 2017-12-07 11:08:41.116117073 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h 2017-12-07 11:09:23.602291820 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h 2017-12-07 11:09:49.945779754 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/chcunningham/chrome_root/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h 2017-12-07 11:10:25.513089579 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
---- chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h 2017-12-07 11:10:50.721599547 -0500
-@@ -1,7 +1,7 @@
- /* Automatically generated by configure - do not modify! */
- #ifndef FFMPEG_CONFIG_H
- #define FFMPEG_CONFIG_H
--#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic"
-+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl2 --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-autodetect --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/ssd/blink3/src/third_party/opus/src/include --disable-linux-perf --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-lto --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
- #define FFMPEG_LICENSE "LGPL version 2.1 or later"
- #define CONFIG_THIS_YEAR 2017
- #define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
-@@ -547,7 +547,7 @@
- #define CONFIG_FFPROBE 0
- #define CONFIG_FFSERVER 0
- #define CONFIG_FFMPEG 0
--#define CONFIG_DCT 0
-+#define CONFIG_DCT 1
- #define CONFIG_DWT 0
- #define CONFIG_ERROR_RESILIENCE 0
- #define CONFIG_FAAN 1
-@@ -626,9 +626,9 @@
- #define CONFIG_LZF 0
- #define CONFIG_ME_CMP 0
- #define CONFIG_MPEG_ER 0
--#define CONFIG_MPEGAUDIO 0
--#define CONFIG_MPEGAUDIODSP 0
--#define CONFIG_MPEGAUDIOHEADER 0
-+#define CONFIG_MPEGAUDIO 1
-+#define CONFIG_MPEGAUDIODSP 1
-+#define CONFIG_MPEGAUDIOHEADER 1
- #define CONFIG_MPEGVIDEO 0
- #define CONFIG_MPEGVIDEOENC 0
- #define CONFIG_MSS34DSP 0
-@@ -979,7 +979,7 @@
- #define CONFIG_MP1FLOAT_DECODER 0
- #define CONFIG_MP2_DECODER 0
- #define CONFIG_MP2FLOAT_DECODER 0
--#define CONFIG_MP3_DECODER 0
-+#define CONFIG_MP3_DECODER 1
- #define CONFIG_MP3FLOAT_DECODER 0
- #define CONFIG_MP3ADU_DECODER 0
- #define CONFIG_MP3ADUFLOAT_DECODER 0
-@@ -1292,7 +1292,7 @@
- #define CONFIG_MM_DEMUXER 0
- #define CONFIG_MMF_DEMUXER 0
- #define CONFIG_MOV_DEMUXER 0
--#define CONFIG_MP3_DEMUXER 0
-+#define CONFIG_MP3_DEMUXER 1
- #define CONFIG_MPC_DEMUXER 0
- #define CONFIG_MPC8_DEMUXER 0
- #define CONFIG_MPEGPS_DEMUXER 0
-@@ -2267,7 +2267,7 @@
- #define CONFIG_MJPEG_PARSER 0
- #define CONFIG_MLP_PARSER 0
- #define CONFIG_MPEG4VIDEO_PARSER 0
--#define CONFIG_MPEGAUDIO_PARSER 0
-+#define CONFIG_MPEGAUDIO_PARSER 1
- #define CONFIG_MPEGVIDEO_PARSER 0
- #define CONFIG_OPUS_PARSER 1
- #define CONFIG_PNG_PARSER 0
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-12-07 09:51:36.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni 2017-12-07 11:16:58.728447124 -0500
-@@ -183,17 +183,9 @@ if ((is_mac) || (is_win) || (use_linux_c
- ]
- }
-
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_win) || (use_linux_config && current_cpu == "arm" && arm_use_neon) || (use_linux_config && current_cpu == "arm") || (use_linux_config && current_cpu == "arm64") || (use_linux_config && current_cpu == "mipsel") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
-- "libavcodec/aac_ac3_parser.c",
-- "libavcodec/aac_parser.c",
-- "libavcodec/aacadtsdec.c",
-- "libavcodec/aacps_float.c",
-- "libavcodec/aacpsdsp_float.c",
-- "libavcodec/aacsbr.c",
-- "libavcodec/aactab.c",
- "libavcodec/ac3tab.c",
-- "libavcodec/autorename_libavcodec_aacdec.c",
- "libavcodec/autorename_libavcodec_mdct15.c",
- "libavcodec/autorename_libavcodec_mpegaudiodsp.c",
- "libavcodec/autorename_libavcodec_sbrdsp.c",
-@@ -211,7 +203,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
- "libavcodec/mpegaudiodsp_float.c",
- "libavcodec/sinewin.c",
- "libavcodec/sinewin_fixed.c",
-- "libavformat/aacdec.c",
- "libavformat/apetag.c",
- "libavformat/img2.c",
- "libavformat/mov.c",
-@@ -220,6 +211,20 @@ if ((current_cpu == "x64" && ffmpeg_bran
- ]
- }
-
-+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
-+ ffmpeg_c_sources += [
-+ "libavcodec/aac_ac3_parser.c",
-+ "libavcodec/aac_parser.c",
-+ "libavcodec/aacadtsdec.c",
-+ "libavcodec/aacps_float.c",
-+ "libavcodec/aacpsdsp_float.c",
-+ "libavcodec/aacsbr.c",
-+ "libavcodec/aactab.c",
-+ "libavcodec/autorename_libavcodec_aacdec.c",
-+ "libavformat/aacdec.c",
-+ ]
-+}
-+
- if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_mac) || (is_win) || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
-@@ -323,16 +328,20 @@ if ((is_mac) || (is_win) || (use_linux_c
- if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_c_sources += [
- "libavcodec/x86/aacpsdsp_init.c",
-+ ]
-+ ffmpeg_yasm_sources += [
-+ "libavcodec/x86/aacpsdsp.asm",
-+ ]
-+}
-+
-+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (use_linux_config && current_cpu == "x64") || (use_linux_config && current_cpu == "x86") || (is_win)) {
-+ ffmpeg_c_sources += [
- "libavcodec/x86/dct_init.c",
- "libavcodec/x86/mdct15_init.c",
- "libavcodec/x86/mpegaudiodsp.c",
- "libavcodec/x86/sbrdsp_init.c",
- ]
--}
--
--if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_win && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "x86" && ffmpeg_branding == "ChromeOS")) {
- ffmpeg_yasm_sources += [
-- "libavcodec/x86/aacpsdsp.asm",
- "libavcodec/x86/dct32.asm",
- "libavcodec/x86/imdct36.asm",
- "libavcodec/x86/mdct15.asm",
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c
---- chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-12-07 09:51:37.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-12-07 10:52:02.484509992 -0500
-@@ -23,6 +23,7 @@
- #define USE_FIXED 0
-
- #include "aac.h"
-+#include "aacsbrdata.h"
- #include "config.h"
- #include "libavutil/attributes.h"
- #include "libavutil/intfloat.h"
-diff -up chromium-63.0.3239.84/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 chromium-63.0.3239.84/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart
-diff -up chromium-63.0.3239.84/tools/android/audio_focus_grabber/java/res/raw/ping.mp3 chromium-63.0.3239.84/tools/android/audio_focus_grabber/java/res/raw/ping
diff --git a/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch b/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch
deleted file mode 100644
index 8df206b..0000000
--- a/chromium-63.0.3289.84-fix-ffmpeg-aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni
---- chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni.aarch64 2017-12-07 11:23:07.077290535 -0500
-+++ chromium-63.0.3239.84/third_party/ffmpeg/ffmpeg_generated.gni 2017-12-07 11:27:30.354175021 -0500
-@@ -541,7 +541,7 @@ if (use_linux_config && current_cpu == "
- ]
- }
-
--if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS")) {
-+if ((is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (use_linux_config && current_cpu == "arm64")) {
- ffmpeg_c_sources += [
- "libavcodec/aarch64/aacpsdsp_init_aarch64.c",
- "libavcodec/aarch64/mpegaudiodsp_init.c",
diff --git a/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch b/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch
deleted file mode 100644
index 9ca87ad..0000000
--- a/chromium-63.0.3289.84-fix-ft-hb-unbundle.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-63.0.3239.84/build/linux/unbundle/freetype.gn.fixunbundle chromium-63.0.3239.84/build/linux/unbundle/freetype.gn
---- chromium-63.0.3239.84/build/linux/unbundle/freetype.gn.fixunbundle 2017-12-07 12:07:48.652161826 -0500
-+++ chromium-63.0.3239.84/build/linux/unbundle/freetype.gn 2017-12-07 12:08:52.514919585 -0500
-@@ -117,6 +117,14 @@ source_set("freetype") {
- public_configs = [ ":freetype_config" ]
- }
-
-+source_set("freetype_source") {
-+ visibility = [ "//third_party:freetype_harfbuzz" ]
-+ deps = [
-+ ":freetype_shim",
-+ ]
-+ public_configs = [ ":freetype_config" ]
-+}
-+
- source_set("bootstrap_freetype_for_harfbuzz") {
- deps = [
- ":freetype_shim",
-diff -up chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn.fixunbundle chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn
---- chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn.fixunbundle 2017-12-07 12:09:57.057661738 -0500
-+++ chromium-63.0.3239.84/build/linux/unbundle/harfbuzz-ng.gn 2017-12-07 12:10:03.225541404 -0500
-@@ -24,6 +24,14 @@ group("harfbuzz-ng") {
- ]
- }
-
-+source_set("harfbuzz_source") {
-+ visibility = [ "//third_party:freetype_harfbuzz" ]
-+ deps = [
-+ ":harfbuzz_shim",
-+ ]
-+ public_configs = [ ":system_harfbuzz" ]
-+}
-+
- source_set("harfbuzz-ng-ft") {
- deps = [
- ":harfbuzz_shim",
diff --git a/chromium-63.0.3289.84-gcc-round-fix.patch b/chromium-63.0.3289.84-gcc-round-fix.patch
deleted file mode 100644
index 86d0a7e..0000000
--- a/chromium-63.0.3289.84-gcc-round-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc
---- chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2017-12-07 16:20:01.521717091 -0500
-+++ chromium-63.0.3239.84/third_party/webrtc/p2p/base/port.cc 2017-12-07 16:20:13.025491739 -0500
-@@ -11,6 +11,7 @@
- #include "p2p/base/port.h"
-
- #include <algorithm>
-+#include <cmath>
- #include <vector>
-
- #include "p2p/base/common.h"
diff --git a/chromium-63.0.3289.84-gcc5-r3.patch b/chromium-63.0.3289.84-gcc5-r3.patch
deleted file mode 100644
index 83c6911..0000000
--- a/chromium-63.0.3289.84-gcc5-r3.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-diff -up chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2017-12-06 15:05:28.000000000 -0500
-+++ chromium-63.0.3239.84/gpu/ipc/common/mailbox_struct_traits.h 2017-12-07 11:32:15.416636125 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2017-12-06 15:05:31.000000000 -0500
-+++ chromium-63.0.3239.84/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2017-12-07 11:32:15.422636011 -0500
-@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2017-12-07 11:32:15.429635877 -0500
-+++ chromium-63.0.3239.84/services/viz/public/cpp/compositing/quads_struct_traits.h 2017-12-07 11:34:00.081601880 -0500
-@@ -309,7 +309,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp
---- chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 2017-12-06 15:05:46.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/WebKit/Source/platform/exported/WebCORS.cpp 2017-12-07 11:32:15.430635859 -0500
-@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -512,7 +512,7 @@ WebString PreflightErrorString(const Pre
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -533,7 +533,7 @@ WebString RedirectErrorString(const Redi
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-diff -up chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2017-12-06 15:05:46.000000000 -0500
-+++ chromium-63.0.3239.84/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2017-12-07 11:32:15.408636277 -0500
-@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2017-12-07 11:32:15.409636258 -0500
-+++ chromium-63.0.3239.84/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-12-07 11:33:10.714561105 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <numeric>
- #include <vector>
-
diff --git a/chromium-63.0.3289.84-nolibc++.patch b/chromium-63.0.3289.84-nolibc++.patch
deleted file mode 100644
index 0d999c8..0000000
--- a/chromium-63.0.3289.84-nolibc++.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-63.0.3239.84/remoting/host/linux/BUILD.gn.nolibc++ chromium-63.0.3239.84/remoting/host/linux/BUILD.gn
---- chromium-63.0.3239.84/remoting/host/linux/BUILD.gn.nolibc++ 2017-12-07 11:55:43.173273434 -0500
-+++ chromium-63.0.3239.84/remoting/host/linux/BUILD.gn 2017-12-07 11:55:53.244077772 -0500
-@@ -62,11 +62,9 @@ if (enable_me2me_host) {
- if (is_component_build) {
- sources += [
- "$root_build_dir/libbase.so",
-- "$root_build_dir/libc++.so",
- ]
- deps += [
- "//base:base",
-- "//buildtools/third_party/libc++:libc++",
- ]
- }
- }
diff --git a/chromium-63.0.3289.84-setopaque.patch b/chromium-63.0.3289.84-setopaque.patch
deleted file mode 100644
index 8fb585a..0000000
--- a/chromium-63.0.3289.84-setopaque.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-63.0.3239.84/cc/blink/web_layer_impl.h.setopaque chromium-63.0.3239.84/cc/blink/web_layer_impl.h
---- chromium-63.0.3239.84/cc/blink/web_layer_impl.h.setopaque 2017-12-07 10:47:48.262446682 -0500
-+++ chromium-63.0.3239.84/cc/blink/web_layer_impl.h 2017-12-07 10:48:47.437298948 -0500
-@@ -67,7 +67,7 @@ class CC_BLINK_EXPORT WebLayerImpl : pub
- void SetIsRootForIsolatedGroup(bool root) override;
- bool IsRootForIsolatedGroup() override;
- void SetHitTestableWithoutDrawsContent(bool should_hit_test) override;
-- void SetOpaque(bool opaque) override;
-+ CC_BLINK_EXPORT void SetOpaque(bool opaque) override;
- bool Opaque() const override;
- void SetPosition(const blink::WebFloatPoint& position) override;
- blink::WebFloatPoint GetPosition() const override;
diff --git a/chromium-64.0.3282.119-enable-mp3.patch b/chromium-64.0.3282.119-enable-mp3.patch
deleted file mode 100644
index 849b5ee..0000000
--- a/chromium-64.0.3282.119-enable-mp3.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-64.0.3282.119/media/base/mime_util_internal.cc.mp3 chromium-64.0.3282.119/media/base/mime_util_internal.cc
---- chromium-64.0.3282.119/media/base/mime_util_internal.cc.mp3 2018-01-24 15:05:48.000000000 -0500
-+++ chromium-64.0.3282.119/media/base/mime_util_internal.cc 2018-01-25 11:18:12.354147726 -0500
-@@ -279,15 +279,19 @@ void MimeUtil::AddSupportedMediaFormats(
- CodecSet webm_codecs(webm_audio_codecs);
- webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet mp3_codecs{MP3};
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- const CodecSet aac{MPEG2_AAC, MPEG4_AAC};
-+#else
-+ const CodecSet aac{};
-+#endif
-+ CodecSet mp4_audio_codecs(aac);
-+ mp4_audio_codecs.emplace(MP3);
-
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- CodecSet avc_and_aac(aac);
- avc_and_aac.emplace(H264);
-
-- CodecSet mp4_audio_codecs(aac);
-- mp4_audio_codecs.emplace(MP3);
- mp4_audio_codecs.emplace(FLAC);
- #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
- mp4_audio_codecs.emplace(AC3);
-@@ -329,10 +333,10 @@ void MimeUtil::AddSupportedMediaFormats(
- AddContainerWithCodecs("application/ogg", ogg_codecs, false);
- AddContainerWithCodecs("audio/flac", implicit_codec, false);
-
--#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
- AddContainerWithCodecs("audio/mp3", implicit_codec, true);
- AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
-+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
- AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
- AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
- DCHECK(!mp4_video_codecs.empty());
-@@ -970,7 +974,6 @@ bool MimeUtil::IsCodecProprietary(Codec
- case INVALID_CODEC:
- case AC3:
- case EAC3:
-- case MP3:
- case MPEG2_AAC:
- case MPEG4_AAC:
- case H264:
-@@ -978,6 +981,7 @@ bool MimeUtil::IsCodecProprietary(Codec
- case DOLBY_VISION:
- return true;
-
-+ case MP3:
- case PCM:
- case VORBIS:
- case OPUS:
diff --git a/chromium-64.0.3282.119-gcc-constexpr-fix.patch b/chromium-64.0.3282.119-gcc-constexpr-fix.patch
deleted file mode 100644
index 57b63cd..0000000
--- a/chromium-64.0.3282.119-gcc-constexpr-fix.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h.gcc-constexpr 2018-01-25 15:50:16.971171007 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/StaticType.h 2018-01-25 15:51:14.158053914 -0500
-@@ -160,7 +160,7 @@ template <TBasicType basicType,
- TPrecision precision,
- TQualifier qualifier,
- unsigned char secondarySize>
--const TType *GetForVecMatHelper(unsigned char primarySize)
-+constexpr const TType *GetForVecMatHelper(unsigned char primarySize)
- {
- static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
- basicType == EbtBool,
-@@ -186,7 +186,7 @@ const TType *GetForVecMatHelper(unsigned
- template <TBasicType basicType,
- TPrecision precision = EbpUndefined,
- TQualifier qualifier = EvqGlobal>
--const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
-+constexpr const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
- {
- static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
- basicType == EbtBool,
-@@ -208,7 +208,7 @@ const TType *GetForVecMat(unsigned char
- }
-
- template <TBasicType basicType, TPrecision precision = EbpUndefined>
--const TType *GetForVec(TQualifier qualifier, unsigned char size)
-+constexpr const TType *GetForVec(TQualifier qualifier, unsigned char size)
- {
- switch (qualifier)
- {
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp.gcc-constexpr 2018-01-25 15:51:27.670790008 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/SymbolTable.cpp 2018-01-25 15:52:04.117077652 -0500
-@@ -189,7 +189,7 @@ TSymbolTable::~TSymbolTable()
- pop();
- }
-
--bool IsGenType(const TType *type)
-+constexpr bool IsGenType(const TType *type)
- {
- if (type)
- {
-@@ -201,7 +201,7 @@ bool IsGenType(const TType *type)
- return false;
- }
-
--bool IsVecType(const TType *type)
-+constexpr bool IsVecType(const TType *type)
- {
- if (type)
- {
-diff -up chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h.gcc-constexpr chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h
---- chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h.gcc-constexpr 2018-01-25 15:52:15.042864767 -0500
-+++ chromium-64.0.3282.119/third_party/angle/src/compiler/translator/Types.h 2018-01-25 15:52:56.763049389 -0500
-@@ -236,13 +236,13 @@ class TType
- {
- }
-
-- TBasicType getBasicType() const { return type; }
-+ constexpr TBasicType getBasicType() const { return type; }
- void setBasicType(TBasicType t);
-
- TPrecision getPrecision() const { return precision; }
- void setPrecision(TPrecision p) { precision = p; }
-
-- TQualifier getQualifier() const { return qualifier; }
-+ constexpr TQualifier getQualifier() const { return qualifier; }
- void setQualifier(TQualifier q) { qualifier = q; }
-
- bool isInvariant() const { return invariant; }
diff --git a/chromium-64.0.3282.119-gcc-round-fix.patch b/chromium-64.0.3282.119-gcc-round-fix.patch
deleted file mode 100644
index 465808c..0000000
--- a/chromium-64.0.3282.119-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc
---- chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-01-25 12:03:14.696443814 -0500
-+++ chromium-64.0.3282.119/third_party/webrtc/p2p/base/port.cc 2018-01-25 12:20:26.446448618 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <vector>
diff --git a/chromium-64.0.3282.119-gcc5-r3.patch b/chromium-64.0.3282.119-gcc5-r3.patch
deleted file mode 100644
index 3679ecf..0000000
--- a/chromium-64.0.3282.119-gcc5-r3.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -up chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-01-24 15:05:47.000000000 -0500
-+++ chromium-64.0.3282.119/gpu/ipc/common/mailbox_struct_traits.h 2018-01-25 11:58:48.251623423 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2018-01-24 15:05:51.000000000 -0500
-+++ chromium-64.0.3282.119/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2018-01-25 11:58:48.252623400 -0500
-@@ -137,7 +137,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-01-24 15:05:51.000000000 -0500
-+++ chromium-64.0.3282.119/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-01-25 11:58:48.252623400 -0500
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/exported/WebCORS.cpp.gcc5-r3 chromium-64.0.3282.119/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2018-01-24 15:06:11.000000000 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2018-01-25 11:58:48.253623376 -0500
-@@ -62,7 +62,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -93,11 +93,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-01-25 11:58:48.253623376 -0500
-+++ chromium-64.0.3282.119/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-01-25 12:01:28.769900550 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-64.0.3282.119-gcc5.patch b/chromium-64.0.3282.119-gcc5.patch
deleted file mode 100644
index 0fdc39f..0000000
--- a/chromium-64.0.3282.119-gcc5.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-01-25 11:07:27.179175007 -0500
-+++ chromium-64.0.3282.119/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-01-25 11:07:38.037925336 -0500
-@@ -263,7 +263,7 @@ interface WebGL2RenderingContextBase
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h.gcc5 2018-01-25 11:11:08.581962228 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.h 2018-01-25 11:11:24.062593478 -0500
-@@ -49,7 +49,7 @@ class NodeFilter final {
- * to the value of NodeType for the equivalent node type.
- */
- enum {
-- kShowAll = 0xFFFFFFFF,
-+ kShowAll = 256 /* 0xFFFFFFFF */,
- kShowElement = 0x00000001,
- kShowAttribute = 0x00000002,
- kShowText = 0x00000004,
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl
---- chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl.gcc5 2018-01-25 11:11:34.816335412 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/core/dom/NodeFilter.idl 2018-01-25 11:12:23.380171262 -0500
-@@ -27,7 +27,7 @@ callback interface NodeFilter {
- const unsigned short FILTER_SKIP = 3;
-
- // Constants for whatToShow
-- const unsigned long SHOW_ALL = 0xFFFFFFFF;
-+ const unsigned long SHOW_ALL = 256; // 0xFFFFFFFF
- const unsigned long SHOW_ELEMENT = 0x1;
- const unsigned long SHOW_ATTRIBUTE = 0x2; // historical
- const unsigned long SHOW_TEXT = 0x4;
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl
---- chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl.gcc5 2018-01-25 11:12:57.367363214 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.idl 2018-01-25 11:13:29.883590960 -0500
-@@ -241,7 +241,7 @@ typedef unsigned long long GLuint64;
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
-@@ -271,7 +271,7 @@ typedef unsigned long long GLuint64;
- const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;
- const GLenum MAX_ELEMENT_INDEX = 0x8D6B;
- const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
-- const GLint TIMEOUT_IGNORED = -1;
-+ const GLint TIMEOUT_IGNORED = 256;
-
- /* WebGL-specific enums */
- const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;
diff --git a/chromium-64.0.3282.119-gcc7.patch b/chromium-64.0.3282.119-gcc7.patch
deleted file mode 100644
index 7fe383e..0000000
--- a/chromium-64.0.3282.119-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2018-01-25 11:15:00.291466617 -0500
-+++ chromium-64.0.3282.119/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2018-01-25 11:16:36.159320291 -0500
-@@ -10,6 +10,7 @@
- #include "platform/wtf/Functional.h"
- #include "platform/wtf/ThreadSpecific.h"
-
-+#include <functional>
- #include <memory>
-
- namespace blink {
diff --git a/chromium-64.0.3282.119-memcpy-fix.patch b/chromium-64.0.3282.119-memcpy-fix.patch
deleted file mode 100644
index 39c3c25..0000000
--- a/chromium-64.0.3282.119-memcpy-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-01-26 15:04:44.708100850 -0500
-+++ chromium-64.0.3282.119/cc/paint/raw_memory_transfer_cache_entry.cc 2018-01-26 15:04:54.234915081 -0500
-@@ -3,6 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
-+#include <memory.h>
-
- namespace cc {
-
diff --git a/chromium-64.0.3282.167-gcc8-fabi11.patch b/chromium-64.0.3282.167-gcc8-fabi11.patch
deleted file mode 100644
index 5f0c527..0000000
--- a/chromium-64.0.3282.167-gcc8-fabi11.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py.fabi11 chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py
---- chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py.fabi11 2018-02-19 11:39:15.807713662 -0500
-+++ chromium-64.0.3282.167/tools/gn/bootstrap/bootstrap.py 2018-02-19 11:39:47.038070341 -0500
-@@ -336,6 +336,11 @@ def write_gn_ninja(path, root_gen_dir, o
- cflags = os.environ.get('CFLAGS', '').split()
- cflags_cc = os.environ.get('CXXFLAGS', '').split()
- ldflags = os.environ.get('LDFLAGS', '').split()
-+
-+ # Work around GCC8 bug gcc#84286
-+ cflags.extend(['-fabi-version=11'])
-+ cflags_cc.extend(['-fabi-version=11'])
-+
- include_dirs = [root_gen_dir, SRC_ROOT]
- libs = []
-
diff --git a/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch b/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch
deleted file mode 100644
index 6cf8ca8..0000000
--- a/chromium-65.0.3325.146-Fix-non-copyable-class-s-optional-move.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.noncopyable chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.noncopyable 2018-03-13 16:52:15.953729689 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 16:53:55.365792522 -0400
-@@ -45,6 +45,15 @@ struct OptionalStorageBase {
-
- // When T is not trivially destructible we must call its
- // destructor before deallocating its memory.
-+ // Note that this hides the (implicitly declared) move constructor, which
-+ // would be used for constexpr move constructor in OptionalStorage<T>.
-+ // It is needed iff T is trivially move constructible. However, the current
-+ // is_trivially_{copy,move}_constructible implementation requires
-+ // is_trivially_destructible (which looks a bug, cf:
-+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51452 and
-+ // http://cplusplus.github.io/LWG/lwg-active.html#2116), so it is not
-+ // necessary for this case at the moment. Please see also the destructor
-+ // comment in "is_trivially_destructible = true" specialization below.
- ~OptionalStorageBase() {
- if (!is_null_)
- value_.~T();
-@@ -78,9 +87,18 @@ struct OptionalStorageBase<T, true /* tr
- : is_null_(false), value_(std::forward<Args>(args)...) {}
-
- // When T is trivially destructible (i.e. its destructor does nothing) there
-- // is no need to call it. Explicitly defaulting the destructor means it's not
-- // user-provided. Those two together make this destructor trivial.
-- ~OptionalStorageBase() = default;
-+ // is no need to call it. Implicitly defined destructor is trivial, because
-+ // both members (bool and union containing only variants which are trivially
-+ // destructible) are trivially destructible.
-+ // Explicitly-defaulted destructor is also trivial, but do not use it here,
-+ // because it hides the implicit move constructor. It is needed to implement
-+ // constexpr move constructor in OptionalStorage iff T is trivially move
-+ // constructible. Note that, if T is trivially move constructible, the move
-+ // constructor of OptionalStorageBase<T> is also implicitly defined and it is
-+ // trivially move constructor. If T is not trivially move constructible,
-+ // "not declaring move constructor without destructor declaration" here means
-+ // "delete move constructor", which works because any move constructor of
-+ // OptionalStorage will not refer to it in that case.
-
- template <class... Args>
- void Init(Args&&... args) {
diff --git a/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch b/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
deleted file mode 100644
index dbdf68f..0000000
--- a/chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp.GetString 2018-03-13 22:54:27.262671113 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp 2018-03-13 22:55:47.722113713 -0400
-@@ -68,7 +68,7 @@ v8::Local<v8::Value> ToV8(const IDBKeyPa
- case IDBKeyPath::kNullType:
- return v8::Null(isolate);
- case IDBKeyPath::kStringType:
-- return V8String(isolate, value.String());
-+ return V8String(isolate, value.GetString());
- case IDBKeyPath::kArrayType:
- return ToV8(value.Array(), creation_context, isolate);
- }
-@@ -97,7 +97,7 @@ v8::Local<v8::Value> ToV8(const IDBKey*
- case IDBKey::kNumberType:
- return v8::Number::New(isolate, key->Number());
- case IDBKey::kStringType:
-- return V8String(isolate, key->String());
-+ return V8String(isolate, key->GetString());
- case IDBKey::kBinaryType:
- // https://w3c.github.io/IndexedDB/#convert-a-value-to-a-key
- return ToV8(DOMArrayBuffer::Create(key->Binary()), creation_context,
-@@ -379,7 +379,7 @@ static std::unique_ptr<IDBKey> CreateIDB
- }
-
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.String(),
-+ return CreateIDBKeyFromValueAndKeyPath(isolate, value, key_path.GetString(),
- exception_state);
- }
-
-@@ -483,7 +483,7 @@ bool InjectV8KeyIntoV8Value(v8::Isolate*
- DCHECK(isolate->InContext());
-
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
-+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
-
- // The conbination of a key generator and an empty key path is forbidden by
- // spec.
-@@ -569,7 +569,7 @@ bool CanInjectIDBKeyIntoScriptValue(v8::
- const IDBKeyPath& key_path) {
- IDB_TRACE("canInjectIDBKeyIntoScriptValue");
- DCHECK_EQ(key_path.GetType(), IDBKeyPath::kStringType);
-- Vector<String> key_path_elements = ParseKeyPath(key_path.String());
-+ Vector<String> key_path_elements = ParseKeyPath(key_path.GetString());
-
- if (!key_path_elements.size())
- return false;
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp.GetString 2018-03-13 22:56:04.041798217 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/exported/WebIDBKey.cpp 2018-03-13 22:56:22.481440993 -0400
-@@ -56,7 +56,7 @@ WebData WebIDBKeyView::Binary() const {
- }
-
- WebString WebIDBKeyView::String() const {
-- return private_->String();
-+ return private_->GetString();
- }
-
- double WebIDBKeyView::Date() const {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp.GetString 2018-03-13 22:56:36.028178758 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBDatabase.cpp 2018-03-13 22:56:58.846736831 -0400
-@@ -297,7 +297,7 @@ IDBObjectStore* IDBDatabase::createObjec
- }
-
- if (auto_increment && ((key_path.GetType() == IDBKeyPath::kStringType &&
-- key_path.String().IsEmpty()) ||
-+ key_path.GetString().IsEmpty()) ||
- key_path.GetType() == IDBKeyPath::kArrayType)) {
- exception_state.ThrowDOMException(
- kInvalidAccessError,
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h.GetString 2018-03-13 22:57:13.229458842 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKey.h 2018-03-13 22:57:38.633966776 -0400
-@@ -106,7 +106,7 @@ class MODULES_EXPORT IDBKey {
- return binary_;
- }
-
-- const String& String() const {
-+ const String& GetString() const {
- DCHECK_EQ(type_, kStringType);
- return string_;
- }
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h.GetString 2018-03-13 22:57:51.104725428 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/IDBKeyPath.h 2018-03-13 22:58:09.459369906 -0400
-@@ -65,7 +65,7 @@ class MODULES_EXPORT IDBKeyPath {
- return array_;
- }
-
-- const String& String() const {
-+ const String& GetString() const {
- DCHECK_EQ(type_, kStringType);
- return string_;
- }
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp.GetString chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp.GetString 2018-03-13 22:58:28.778995834 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/indexeddb/InspectorIndexedDBAgent.cpp 2018-03-13 22:58:45.044681364 -0400
-@@ -399,7 +399,7 @@ static std::unique_ptr<KeyPath> KeyPathF
- case IDBKeyPath::kStringType:
- key_path = KeyPath::create()
- .setType(KeyPath::TypeEnum::String)
-- .setString(idb_key_path.String())
-+ .setString(idb_key_path.GetString())
- .build();
- break;
- case IDBKeyPath::kArrayType: {
diff --git a/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch b/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch
deleted file mode 100644
index 8edc424..0000000
--- a/chromium-65.0.3325.146-GCC-PlaybackImageProvider-Settings-do-not-provide-co.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/raster/playback_image_provider.cc.pipcc chromium-65.0.3325.146/cc/raster/playback_image_provider.cc
---- chromium-65.0.3325.146/cc/raster/playback_image_provider.cc.pipcc 2018-03-13 22:47:00.271322726 -0400
-+++ chromium-65.0.3325.146/cc/raster/playback_image_provider.cc 2018-03-13 22:47:53.127300060 -0400
-@@ -92,7 +92,6 @@ PlaybackImageProvider::GetDecodedDrawIma
- }
-
- PlaybackImageProvider::Settings::Settings() = default;
--PlaybackImageProvider::Settings::Settings(const Settings& other) = default;
- PlaybackImageProvider::Settings::~Settings() = default;
-
- } // namespace cc
-diff -up chromium-65.0.3325.146/cc/raster/playback_image_provider.h.pipcc chromium-65.0.3325.146/cc/raster/playback_image_provider.h
---- chromium-65.0.3325.146/cc/raster/playback_image_provider.h.pipcc 2018-03-13 22:48:00.673153629 -0400
-+++ chromium-65.0.3325.146/cc/raster/playback_image_provider.h 2018-03-13 22:48:12.726920597 -0400
-@@ -20,7 +20,6 @@ class CC_EXPORT PlaybackImageProvider :
- public:
- struct CC_EXPORT Settings {
- Settings();
-- Settings(const Settings& other);
- ~Settings();
-
- // The set of image ids to skip during raster.
diff --git a/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch b/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
deleted file mode 100644
index 62124be..0000000
--- a/chromium-65.0.3325.146-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h.fulldecl chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h
---- chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h.fulldecl 2018-03-13 16:38:38.870652491 -0400
-+++ chromium-65.0.3325.146/services/preferences/tracked/pref_hash_filter.h 2018-03-13 16:39:02.691186647 -0400
-@@ -21,9 +21,9 @@
- #include "services/preferences/public/interfaces/preferences.mojom.h"
- #include "services/preferences/tracked/hash_store_contents.h"
- #include "services/preferences/tracked/interceptable_pref_filter.h"
-+#include "services/preferences/tracked/pref_hash_store.h"
- #include "services/preferences/tracked/tracked_preference.h"
-
--class PrefHashStore;
- class PrefService;
-
- namespace base {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.fulldecl chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.fulldecl 2018-03-13 16:39:13.787970233 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h 2018-03-13 16:39:42.614407235 -0400
-@@ -30,6 +30,7 @@
-
- #include <memory>
- #include "modules/webdatabase/DatabaseBasicTypes.h"
-+#include "modules/webdatabase/SQLError.h"
- #include "modules/webdatabase/SQLStatement.h"
- #include "modules/webdatabase/SQLStatementBackend.h"
- #include "modules/webdatabase/SQLTransactionStateMachine.h"
-@@ -41,7 +42,6 @@
- namespace blink {
-
- class Database;
--class SQLErrorData;
- class SQLiteTransaction;
- class SQLTransaction;
- class SQLTransactionBackend;
diff --git a/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch b/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
deleted file mode 100644
index 9c6f315..0000000
--- a/chromium-65.0.3325.146-GCC-explicitely-std-move-to-base-Optional-instead-of.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc.explicit-std-move chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc
---- chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc.explicit-std-move 2018-03-13 22:50:41.346043716 -0400
-+++ chromium-65.0.3325.146/content/browser/appcache/appcache_request_handler.cc 2018-03-13 22:51:21.428267583 -0400
-@@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubre
-
- SubresourceLoaderParams params;
- params.loader_factory_info = factory_ptr.PassInterface();
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void AppCacheRequestHandler::MaybeCreateSubresourceLoader(
-diff -up chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc.explicit-std-move chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc
---- chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc.explicit-std-move 2018-03-13 22:51:38.133943776 -0400
-+++ chromium-65.0.3325.146/content/browser/service_worker/service_worker_controllee_request_handler.cc 2018-03-13 22:51:57.658566347 -0400
-@@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::M
- controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle(
- provider_host_->controller());
- params.controller_service_worker_info = std::move(controller_info);
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
diff --git a/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index 809a321..0000000
--- a/chromium-65.0.3325.146-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h.fully-declare chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h.fully-declare 2018-03-13 23:02:13.989635567 -0400
-+++ chromium-65.0.3325.146/components/policy/core/browser/browser_policy_connector_base.h 2018-03-13 23:02:44.318048625 -0400
-@@ -12,13 +12,13 @@
- #include "base/macros.h"
- #include "base/optional.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch b/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch
deleted file mode 100644
index 9b4befe..0000000
--- a/chromium-65.0.3325.146-Implement-conditional-copy-move-ctors-assign-operato.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.conditional chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.conditional 2018-03-13 22:11:02.328058249 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:12:43.622098296 -0400
-@@ -266,6 +266,58 @@ class OptionalBase {
- OptionalStorage<T> storage_;
- };
-
-+// The following {Copy,Move}{Constructible,Assignable} structs are helpers to
-+// implement constructor/assign-operator overloading. Specifically, if T is
-+// is not movable but copyable, Optional<T>'s move constructor should not
-+// participate in overload resolution. This inheritance trick implements that.
-+template <bool is_copy_constructible>
-+struct CopyConstructible {};
-+
-+template <>
-+struct CopyConstructible<false> {
-+ constexpr CopyConstructible() = default;
-+ constexpr CopyConstructible(const CopyConstructible&) = delete;
-+ constexpr CopyConstructible(CopyConstructible&&) = default;
-+ CopyConstructible& operator=(const CopyConstructible&) = default;
-+ CopyConstructible& operator=(CopyConstructible&&) = default;
-+};
-+
-+template <bool is_move_constructible>
-+struct MoveConstructible {};
-+
-+template <>
-+struct MoveConstructible<false> {
-+ constexpr MoveConstructible() = default;
-+ constexpr MoveConstructible(const MoveConstructible&) = default;
-+ constexpr MoveConstructible(MoveConstructible&&) = delete;
-+ MoveConstructible& operator=(const MoveConstructible&) = default;
-+ MoveConstructible& operator=(MoveConstructible&&) = default;
-+};
-+
-+template <bool is_copy_assignable>
-+struct CopyAssignable {};
-+
-+template <>
-+struct CopyAssignable<false> {
-+ constexpr CopyAssignable() = default;
-+ constexpr CopyAssignable(const CopyAssignable&) = default;
-+ constexpr CopyAssignable(CopyAssignable&&) = default;
-+ CopyAssignable& operator=(const CopyAssignable&) = delete;
-+ CopyAssignable& operator=(CopyAssignable&&) = default;
-+};
-+
-+template <bool is_move_assignable>
-+struct MoveAssignable {};
-+
-+template <>
-+struct MoveAssignable<false> {
-+ constexpr MoveAssignable() = default;
-+ constexpr MoveAssignable(const MoveAssignable&) = default;
-+ constexpr MoveAssignable(MoveAssignable&&) = default;
-+ MoveAssignable& operator=(const MoveAssignable&) = default;
-+ MoveAssignable& operator=(MoveAssignable&&) = delete;
-+};
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -280,12 +332,18 @@ class OptionalBase {
- // - No exceptions are thrown, because they are banned from Chromium.
- // - All the non-members are in the 'base' namespace instead of 'std'.
- template <typename T>
--class Optional : public internal::OptionalBase<T> {
-+class Optional
-+ : public internal::OptionalBase<T>,
-+ public internal::CopyConstructible<std::is_copy_constructible<T>::value>,
-+ public internal::MoveConstructible<std::is_move_constructible<T>::value>,
-+ public internal::CopyAssignable<std::is_copy_constructible<T>::value &&
-+ std::is_copy_assignable<T>::value>,
-+ public internal::MoveAssignable<std::is_move_constructible<T>::value &&
-+ std::is_move_assignable<T>::value> {
- public:
- using value_type = T;
-
- // Defer default/copy/move constructor implementation to OptionalBase.
-- // TODO(hidehiko): Implement conditional enabling.
- constexpr Optional() = default;
- constexpr Optional(const Optional& other) = default;
- constexpr Optional(Optional&& other) = default;
-@@ -316,7 +374,6 @@ class Optional : public internal::Option
- ~Optional() = default;
-
- // Defer copy-/move- assign operator implementation to OptionalBase.
-- // TOOD(hidehiko): Implement conditional enabling.
- Optional& operator=(const Optional& other) = default;
- Optional& operator=(Optional&& other) = default;
-
diff --git a/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch b/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch
deleted file mode 100644
index 3214104..0000000
--- a/chromium-65.0.3325.146-Implement-converting-constructors-from-Optional-U.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.converting chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.converting 2018-03-13 22:31:05.248797490 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:33:10.826368771 -0400
-@@ -31,6 +31,10 @@ constexpr in_place_t in_place = {};
- // http://en.cppreference.com/w/cpp/utility/optional/nullopt
- constexpr nullopt_t nullopt(0);
-
-+// Forward declaration, which is refered by following helpers.
-+template <typename T>
-+class Optional;
-+
- namespace internal {
-
- template <typename T, bool = std::is_trivially_destructible<T>::value>
-@@ -220,6 +224,19 @@ class OptionalBase {
- constexpr explicit OptionalBase(in_place_t, Args&&... args)
- : storage_(in_place, std::forward<Args>(args)...) {}
-
-+ // Implementation of converting constructors.
-+ template <typename U>
-+ explicit OptionalBase(const OptionalBase<U>& other) {
-+ if (other.storage_.is_populated_)
-+ storage_.Init(other.storage_.value_);
-+ }
-+
-+ template <typename U>
-+ explicit OptionalBase(OptionalBase<U>&& other) {
-+ if (other.storage_.is_populated_)
-+ storage_.Init(std::move(other.storage_.value_));
-+ }
-+
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-@@ -263,6 +280,11 @@ class OptionalBase {
- storage_.is_populated_ = false;
- }
-
-+ // For implementing conversion, allow access to other typed OptionalBase
-+ // class.
-+ template <typename U>
-+ friend class OptionalBase;
-+
- OptionalStorage<T> storage_;
- };
-
-@@ -318,6 +340,20 @@ struct MoveAssignable<false> {
- MoveAssignable& operator=(MoveAssignable&&) = delete;
- };
-
-+// Helper to conditionally enable converting constructors.
-+template <typename T, typename U>
-+struct IsConvertibleFromOptional
-+ : std::integral_constant<
-+ bool,
-+ std::is_constructible<T, Optional<U>&>::value ||
-+ std::is_constructible<T, const Optional<U>&>::value ||
-+ std::is_constructible<T, Optional<U>&&>::value ||
-+ std::is_constructible<T, const Optional<U>&&>::value ||
-+ std::is_convertible<Optional<U>&, T>::value ||
-+ std::is_convertible<const Optional<U>&, T>::value ||
-+ std::is_convertible<Optional<U>&&, T>::value ||
-+ std::is_convertible<const Optional<U>&&, T>::value> {};
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -348,7 +384,47 @@ class Optional
- constexpr Optional(const Optional& other) = default;
- constexpr Optional(Optional&& other) = default;
-
-- constexpr Optional(nullopt_t) {}
-+ constexpr Optional(nullopt_t) {} // NOLINT(runtime/explicit)
-+
-+ // Converting copy constructor. "explicit" only if
-+ // std::is_convertible<const U&, T>::value is false. It is implemented by
-+ // declaring two almost same constructors, but that condition in enable_if_t
-+ // is different, so that either one is chosen, thanks to SFINAE.
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, const U&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ std::is_convertible<const U&, T>::value,
-+ bool> = false>
-+ Optional(const Optional<U>& other) : internal::OptionalBase<T>(other) {}
-+
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, const U&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ !std::is_convertible<const U&, T>::value,
-+ bool> = false>
-+ explicit Optional(const Optional<U>& other)
-+ : internal::OptionalBase<T>(other) {}
-+
-+ // Converting move constructor. Similar to converting copy constructor,
-+ // declaring two (explicit and non-explicit) constructors.
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, U&&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ Optional(Optional<U>&& other) : internal::OptionalBase<T>(std::move(other)) {}
-+
-+ template <
-+ typename U,
-+ std::enable_if_t<std::is_constructible<T, U&&>::value &&
-+ !internal::IsConvertibleFromOptional<T, U>::value &&
-+ !std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ explicit Optional(Optional<U>&& other)
-+ : internal::OptionalBase<T>(std::move(other)) {}
-
- constexpr Optional(const T& value)
- : internal::OptionalBase<T>(in_place, value) {}
diff --git a/chromium-65.0.3325.146-Implement-value-forward-constructor.patch b/chromium-65.0.3325.146-Implement-value-forward-constructor.patch
deleted file mode 100644
index db727d8..0000000
--- a/chromium-65.0.3325.146-Implement-value-forward-constructor.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.vforward chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.vforward 2018-03-13 22:35:46.383359966 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:37:48.724992995 -0400
-@@ -354,6 +354,10 @@ struct IsConvertibleFromOptional
- std::is_convertible<Optional<U>&&, T>::value ||
- std::is_convertible<const Optional<U>&&, T>::value> {};
-
-+// Forward compatibility for C++20.
-+template <typename T>
-+using RemoveCvRefT = std::remove_cv_t<std::remove_reference_t<T>>;
-+
- } // namespace internal
-
- // base::Optional is a Chromium version of the C++17 optional class:
-@@ -367,6 +371,13 @@ struct IsConvertibleFromOptional
- // - 'constexpr' might be missing in some places for reasons specified locally.
- // - No exceptions are thrown, because they are banned from Chromium.
- // - All the non-members are in the 'base' namespace instead of 'std'.
-+//
-+// Note that T cannot have a constructor T(Optional<T>) etc. Optional<T> checks
-+// T's constructor (specifically via IsConvertibleFromOptional), and in the
-+// check whether T can be constructible from Optional<T>, which is recursive
-+// so it does not work. As of Feb 2018, std::optional C++17 implementation in
-+// both clang and gcc has same limitation. MSVC SFINAE looks to have different
-+// behavior, but anyway it reports an error, too.
- template <typename T>
- class Optional
- : public internal::OptionalBase<T>,
-@@ -426,12 +437,6 @@ class Optional
- explicit Optional(Optional<U>&& other)
- : internal::OptionalBase<T>(std::move(other)) {}
-
-- constexpr Optional(const T& value)
-- : internal::OptionalBase<T>(in_place, value) {}
--
-- constexpr Optional(T&& value)
-- : internal::OptionalBase<T>(in_place, std::move(value)) {}
--
- template <class... Args>
- constexpr explicit Optional(in_place_t, Args&&... args)
- : internal::OptionalBase<T>(in_place, std::forward<Args>(args)...) {}
-@@ -447,6 +452,30 @@ class Optional
- Args&&... args)
- : internal::OptionalBase<T>(in_place, il, std::forward<Args>(args)...) {}
-
-+ // Forward value constructor. Similar to converting constructors,
-+ // conditionally explicit.
-+ template <
-+ typename U = value_type,
-+ std::enable_if_t<
-+ std::is_constructible<T, U&&>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, in_place_t>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ constexpr Optional(U&& value)
-+ : internal::OptionalBase<T>(in_place, std::forward<U>(value)) {}
-+
-+ template <
-+ typename U = value_type,
-+ std::enable_if_t<
-+ std::is_constructible<T, U&&>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, in_place_t>::value &&
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ !std::is_convertible<U&&, T>::value,
-+ bool> = false>
-+ constexpr explicit Optional(U&& value)
-+ : internal::OptionalBase<T>(in_place, std::forward<U>(value)) {}
-+
- ~Optional() = default;
-
- // Defer copy-/move- assign operator implementation to OptionalBase.
diff --git a/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch b/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch
deleted file mode 100644
index f9c4503..0000000
--- a/chromium-65.0.3325.146-Update-non-copy-non-move-assign-operators.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.ncnm chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.ncnm 2018-03-13 22:40:11.743226276 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:44:30.948211358 -0400
-@@ -240,37 +240,37 @@ class OptionalBase {
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-- if (!other.storage_.is_populated_) {
-- FreeIfNeeded();
-- return *this;
-- }
--
-- InitOrAssign(other.storage_.value_);
-+ CopyAssign(other);
- return *this;
- }
-
- OptionalBase& operator=(OptionalBase&& other) {
-- if (!other.storage_.is_populated_) {
-- FreeIfNeeded();
-- return *this;
-- }
--
-- InitOrAssign(std::move(other.storage_.value_));
-+ MoveAssign(std::move(other));
- return *this;
- }
-
-- void InitOrAssign(const T& value) {
-- if (!storage_.is_populated_)
-- storage_.Init(value);
-+ template <typename U>
-+ void CopyAssign(const OptionalBase<U>& other) {
-+ if (other.storage_.is_populated_)
-+ InitOrAssign(other.storage_.value_);
- else
-- storage_.value_ = value;
-+ FreeIfNeeded();
- }
-
-- void InitOrAssign(T&& value) {
-- if (!storage_.is_populated_)
-- storage_.Init(std::move(value));
-+ template <typename U>
-+ void MoveAssign(OptionalBase<U>&& other) {
-+ if (other.storage_.is_populated_)
-+ InitOrAssign(std::move(other.storage_.value_));
-+ else
-+ FreeIfNeeded();
-+ }
-+
-+ template <typename U>
-+ void InitOrAssign(U&& value) {
-+ if (storage_.is_populated_)
-+ storage_.value_ = std::forward<U>(value);
- else
-- storage_.value_ = std::move(value);
-+ storage_.Init(std::forward<U>(value));
- }
-
- void FreeIfNeeded() {
-@@ -340,7 +340,7 @@ struct MoveAssignable<false> {
- MoveAssignable& operator=(MoveAssignable&&) = delete;
- };
-
--// Helper to conditionally enable converting constructors.
-+// Helper to conditionally enable converting constructors and assign operators.
- template <typename T, typename U>
- struct IsConvertibleFromOptional
- : std::integral_constant<
-@@ -354,6 +354,16 @@ struct IsConvertibleFromOptional
- std::is_convertible<Optional<U>&&, T>::value ||
- std::is_convertible<const Optional<U>&&, T>::value> {};
-
-+template <typename T, typename U>
-+struct IsAssignableFromOptional
-+ : std::integral_constant<
-+ bool,
-+ IsConvertibleFromOptional<T, U>::value ||
-+ std::is_assignable<T&, Optional<U>&>::value ||
-+ std::is_assignable<T&, const Optional<U>&>::value ||
-+ std::is_assignable<T&, Optional<U>&&>::value ||
-+ std::is_assignable<T&, const Optional<U>&&>::value> {};
-+
- // Forward compatibility for C++20.
- template <typename T>
- using RemoveCvRefT = std::remove_cv_t<std::remove_reference_t<T>>;
-@@ -487,14 +497,42 @@ class Optional
- return *this;
- }
-
-- template <class U>
-- typename std::enable_if<std::is_same<std::decay_t<U>, T>::value,
-- Optional&>::type
-+ // Perfect-forwarded assignment.
-+ template <typename U>
-+ std::enable_if_t<
-+ !std::is_same<internal::RemoveCvRefT<U>, Optional<T>>::value &&
-+ std::is_constructible<T, U>::value &&
-+ std::is_assignable<T&, U>::value &&
-+ (!std::is_scalar<T>::value ||
-+ !std::is_same<std::decay_t<U>, T>::value),
-+ Optional&>
- operator=(U&& value) {
- InitOrAssign(std::forward<U>(value));
- return *this;
- }
-
-+// Copy assign the state of other.
-+ template <typename U>
-+ std::enable_if_t<!internal::IsAssignableFromOptional<T, U>::value &&
-+ std::is_constructible<T, const U&>::value &&
-+ std::is_assignable<T&, const U&>::value,
-+ Optional&>
-+ operator=(const Optional<U>& other) {
-+ CopyAssign(other);
-+ return *this;
-+ }
-+
-+ // Move assign the state of other.
-+ template <typename U>
-+ std::enable_if_t<!internal::IsAssignableFromOptional<T, U>::value &&
-+ std::is_constructible<T, U>::value &&
-+ std::is_assignable<T&, U>::value,
-+ Optional&>
-+ operator=(Optional<U>&& other) {
-+ MoveAssign(std::move(other));
-+ return *this;
-+ }
-+
- constexpr const T* operator->() const {
- DCHECK(storage_.is_populated_);
- return &value();
-@@ -606,8 +644,10 @@ class Optional
- private:
- // Accessing template base class's protected member needs explicit
- // declaration to do so.
-+ using internal::OptionalBase<T>::CopyAssign;
- using internal::OptionalBase<T>::FreeIfNeeded;
- using internal::OptionalBase<T>::InitOrAssign;
-+ using internal::OptionalBase<T>::MoveAssign;
- using internal::OptionalBase<T>::storage_;
- };
-
diff --git a/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch b/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch
deleted file mode 100644
index 8aaea85..0000000
--- a/chromium-65.0.3325.146-Use-affirmative-expression-in-base-Optional.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.affirmative chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.affirmative 2018-03-13 22:27:29.451969704 -0400
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-13 22:27:57.031436045 -0400
-@@ -41,7 +41,7 @@ struct OptionalStorageBase {
-
- template <class... Args>
- constexpr explicit OptionalStorageBase(in_place_t, Args&&... args)
-- : is_null_(false), value_(std::forward<Args>(args)...) {}
-+ : is_populated_(true), value_(std::forward<Args>(args)...) {}
-
- // When T is not trivially destructible we must call its
- // destructor before deallocating its memory.
-@@ -55,18 +55,18 @@ struct OptionalStorageBase {
- // necessary for this case at the moment. Please see also the destructor
- // comment in "is_trivially_destructible = true" specialization below.
- ~OptionalStorageBase() {
-- if (!is_null_)
-+ if (is_populated_)
- value_.~T();
- }
-
- template <class... Args>
- void Init(Args&&... args) {
-- DCHECK(is_null_);
-+ DCHECK(!is_populated_);
- ::new (&value_) T(std::forward<Args>(args)...);
-- is_null_ = false;
-+ is_populated_ = true;
- }
-
-- bool is_null_ = true;
-+ bool is_populated_ = false;
- union {
- // |empty_| exists so that the union will always be initialized, even when
- // it doesn't contain a value. Union members must be initialized for the
-@@ -84,7 +84,7 @@ struct OptionalStorageBase<T, true /* tr
-
- template <class... Args>
- constexpr explicit OptionalStorageBase(in_place_t, Args&&... args)
-- : is_null_(false), value_(std::forward<Args>(args)...) {}
-+ : is_populated_(true), value_(std::forward<Args>(args)...) {}
-
- // When T is trivially destructible (i.e. its destructor does nothing) there
- // is no need to call it. Implicitly defined destructor is trivial, because
-@@ -102,12 +102,12 @@ struct OptionalStorageBase<T, true /* tr
-
- template <class... Args>
- void Init(Args&&... args) {
-- DCHECK(is_null_);
-+ DCHECK(!is_populated_);
- ::new (&value_) T(std::forward<Args>(args)...);
-- is_null_ = false;
-+ is_populated_ = true;
- }
-
-- bool is_null_ = true;
-+ bool is_populated_ = false;
- union {
- // |empty_| exists so that the union will always be initialized, even when
- // it doesn't contain a value. Union members must be initialized for the
-@@ -133,7 +133,7 @@ struct OptionalStorage : OptionalStorage
-
- // Accessing the members of template base class requires explicit
- // declaration.
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
-
-@@ -145,12 +145,12 @@ struct OptionalStorage : OptionalStorage
- OptionalStorage() = default;
-
- OptionalStorage(const OptionalStorage& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(other.value_);
- }
-
- OptionalStorage(OptionalStorage&& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(std::move(other.value_));
- }
- };
-@@ -160,7 +160,7 @@ struct OptionalStorage<T,
- true /* trivially copy constructible */,
- false /* trivially move constructible */>
- : OptionalStorageBase<T> {
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
- using OptionalStorageBase<T>::OptionalStorageBase;
-@@ -169,7 +169,7 @@ struct OptionalStorage<T,
- OptionalStorage(const OptionalStorage& other) = default;
-
- OptionalStorage(OptionalStorage&& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(std::move(other.value_));
- }
- };
-@@ -179,7 +179,7 @@ struct OptionalStorage<T,
- false /* trivially copy constructible */,
- true /* trivially move constructible */>
- : OptionalStorageBase<T> {
-- using OptionalStorageBase<T>::is_null_;
-+ using OptionalStorageBase<T>::is_populated_;
- using OptionalStorageBase<T>::value_;
- using OptionalStorageBase<T>::Init;
- using OptionalStorageBase<T>::OptionalStorageBase;
-@@ -188,7 +188,7 @@ struct OptionalStorage<T,
- OptionalStorage(OptionalStorage&& other) = default;
-
- OptionalStorage(const OptionalStorage& other) {
-- if (!other.is_null_)
-+ if (other.is_populated_)
- Init(other.value_);
- }
- };
-@@ -223,7 +223,7 @@ class OptionalBase {
- ~OptionalBase() = default;
-
- OptionalBase& operator=(const OptionalBase& other) {
-- if (other.storage_.is_null_) {
-+ if (!other.storage_.is_populated_) {
- FreeIfNeeded();
- return *this;
- }
-@@ -233,7 +233,7 @@ class OptionalBase {
- }
-
- OptionalBase& operator=(OptionalBase&& other) {
-- if (other.storage_.is_null_) {
-+ if (!other.storage_.is_populated_) {
- FreeIfNeeded();
- return *this;
- }
-@@ -243,24 +243,24 @@ class OptionalBase {
- }
-
- void InitOrAssign(const T& value) {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- storage_.Init(value);
- else
- storage_.value_ = value;
- }
-
- void InitOrAssign(T&& value) {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- storage_.Init(std::move(value));
- else
- storage_.value_ = std::move(value);
- }
-
- void FreeIfNeeded() {
-- if (storage_.is_null_)
-+ if (!storage_.is_populated_)
- return;
- storage_.value_.~T();
-- storage_.is_null_ = true;
-+ storage_.is_populated_ = false;
- }
-
- OptionalStorage<T> storage_;
-@@ -334,12 +334,12 @@ class Optional : public internal::Option
- }
-
- constexpr const T* operator->() const {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return &value();
- }
-
- constexpr T* operator->() {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return &value();
- }
-
-@@ -351,27 +351,27 @@ class Optional : public internal::Option
-
- constexpr T&& operator*() && { return std::move(value()); }
-
-- constexpr explicit operator bool() const { return !storage_.is_null_; }
-+ constexpr explicit operator bool() const { return storage_.is_populated_; }
-
-- constexpr bool has_value() const { return !storage_.is_null_; }
-+ constexpr bool has_value() const { return storage_.is_populated_; }
-
- constexpr T& value() & {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return storage_.value_;
- }
-
- constexpr const T& value() const & {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return storage_.value_;
- }
-
- constexpr T&& value() && {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return std::move(storage_.value_);
- }
-
- constexpr const T&& value() const && {
-- DCHECK(!storage_.is_null_);
-+ DCHECK(storage_.is_populated_);
- return std::move(storage_.value_);
- }
-
-@@ -382,8 +382,9 @@ class Optional : public internal::Option
- // "T must be copy constructible");
- static_assert(std::is_convertible<U, T>::value,
- "U must be convertible to T");
-- return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
-- : value();
-+ return storage_.is_populated_
-+ ? value()
-+ : static_cast<T>(std::forward<U>(default_value));
- }
-
- template <class U>
-@@ -393,26 +394,27 @@ class Optional : public internal::Option
- // "T must be move constructible");
- static_assert(std::is_convertible<U, T>::value,
- "U must be convertible to T");
-- return storage_.is_null_ ? static_cast<T>(std::forward<U>(default_value))
-- : std::move(value());
-+ return storage_.is_populated_
-+ ? std::move(value())
-+ : static_cast<T>(std::forward<U>(default_value));
- }
-
- void swap(Optional& other) {
-- if (storage_.is_null_ && other.storage_.is_null_)
-+ if (!storage_.is_populated_ && !other.storage_.is_populated_)
- return;
-
-- if (storage_.is_null_ != other.storage_.is_null_) {
-- if (storage_.is_null_) {
-- storage_.Init(std::move(other.storage_.value_));
-- other.FreeIfNeeded();
-- } else {
-+ if (storage_.is_populated_ != other.storage_.is_populated_) {
-+ if (storage_.is_populated_) {
- other.storage_.Init(std::move(storage_.value_));
- FreeIfNeeded();
-+ } else {
-+ storage_.Init(std::move(other.storage_.value_));
-+ other.FreeIfNeeded();
- }
- return;
- }
-
-- DCHECK(!storage_.is_null_ && !other.storage_.is_null_);
-+ DCHECK(storage_.is_populated_ && other.storage_.is_populated_);
- using std::swap;
- swap(**this, *other);
- }
diff --git a/chromium-65.0.3325.146-gcc5-r3.patch b/chromium-65.0.3325.146-gcc5-r3.patch
deleted file mode 100644
index ab74a35..0000000
--- a/chromium-65.0.3325.146-gcc5-r3.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff -up chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-03-06 18:04:32.000000000 -0500
-+++ chromium-65.0.3325.146/gpu/ipc/common/mailbox_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
---- chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 2018-03-06 18:04:37.000000000 -0500
-+++ chromium-65.0.3325.146/services/viz/public/cpp/compositing/filter_operation_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -138,7 +138,7 @@ struct StructTraits<viz::mojom::FilterOp
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
-diff -up chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-03-06 18:04:37.000000000 -0500
-+++ chromium-65.0.3325.146/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-03-07 10:42:07.198179638 -0500
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 2018-03-06 18:05:06.000000000 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h 2018-03-07 10:48:53.996093882 -0500
-@@ -62,7 +62,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(length),
- data_(data),
- data_length_(length),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -93,11 +93,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
-diff -up chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-03-06 18:06:09.000000000 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-03-07 10:42:07.199179616 -0500
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-65.0.3325.146-gcc7.patch b/chromium-65.0.3325.146-gcc7.patch
deleted file mode 100644
index 4f2b46c..0000000
--- a/chromium-65.0.3325.146-gcc7.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2018-03-07 10:34:48.783900894 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2018-03-07 10:35:44.885638503 -0500
-@@ -5,6 +5,7 @@
- #ifndef SharedGpuContext_h
- #define SharedGpuContext_h
-
-+#include <functional>
- #include <memory>
- #include "base/callback.h"
- #include "base/memory/weak_ptr.h"
diff --git a/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch b/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch
deleted file mode 100644
index 241dfb5..0000000
--- a/chromium-65.0.3325.146-workaround-gcc7-is_trivially_copy_constructable-failure.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -up chromium-65.0.3325.146/base/optional.h.784732 chromium-65.0.3325.146/base/optional.h
---- chromium-65.0.3325.146/base/optional.h.784732 2018-03-07 13:40:00.103579631 -0500
-+++ chromium-65.0.3325.146/base/optional.h 2018-03-07 13:41:08.950323996 -0500
-@@ -9,6 +9,7 @@
- #include <utility>
-
- #include "base/logging.h"
-+#include "base/template_util.h"
-
- namespace base {
-
-@@ -106,7 +107,7 @@ struct OptionalStorageBase<T, true /* tr
- // compiler generated constexpr {copy,move} constructors). Note that
- // placement-new is prohibited in constexpr.
- template <typename T,
-- bool = std::is_trivially_copy_constructible<T>::value,
-+ bool = is_trivially_copy_constructible<T>::value,
- bool = std::is_trivially_move_constructible<T>::value>
- struct OptionalStorage : OptionalStorageBase<T> {
- // This is no trivially {copy,move} constructible case. Other cases are
-diff -up chromium-65.0.3325.146/base/template_util.h.784732 chromium-65.0.3325.146/base/template_util.h
---- chromium-65.0.3325.146/base/template_util.h.784732 2018-03-07 13:41:19.479131969 -0500
-+++ chromium-65.0.3325.146/base/template_util.h 2018-03-07 13:42:41.308639551 -0500
-@@ -10,6 +10,7 @@
- #include <iterator>
- #include <type_traits>
- #include <utility>
-+#include <vector>
-
- #include "build/build_config.h"
-
-@@ -127,6 +128,23 @@ template <class T>
- using is_trivially_copyable = std::is_trivially_copyable<T>;
- #endif
-
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<std::vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+template <typename T>
-+struct is_trivially_copy_constructible
-+ : std::is_trivially_copy_constructible<T> {};
-+
-+template <typename... T>
-+struct is_trivially_copy_constructible<std::vector<T...>> : std::false_type {};
-+#else
-+// Otherwise use std::is_trivially_copy_constructible as is.
-+template <typename T>
-+using is_trivially_copy_constructible = std::is_trivially_copy_constructible<T>;
-+#endif
-+
- } // namespace base
-
- #undef CR_USE_FALLBACKS_FOR_GCC_WITH_LIBCXX
diff --git a/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch b/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch
deleted file mode 100644
index 8b5ff7f..0000000
--- a/chromium-65.0.3325.146-wtf-oilpan-Remove-GC-checks-from-WTF-Optional-T.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h.oilpan chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h.oilpan 2018-03-13 16:45:40.613426445 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/heap/TraceTraits.h 2018-03-13 16:45:49.946244905 -0400
-@@ -18,6 +18,7 @@
- #include "platform/wtf/HashTable.h"
- #include "platform/wtf/LinkedHashSet.h"
- #include "platform/wtf/ListHashSet.h"
-+#include "platform/wtf/Optional.h"
- #include "platform/wtf/TypeTraits.h"
-
- namespace blink {
-@@ -325,6 +326,23 @@ class TraceTrait<std::pair<T, U>> {
- }
- };
-
-+// While using Optional<T> with garbage-collected types is generally disallowed
-+// by the OptionalGarbageCollected check in blink_gc_plugin, garbage-collected
-+// containers such as HeapVector are allowed and need to be traced.
-+template <typename T>
-+class TraceTrait<WTF::Optional<T>> {
-+ STATIC_ONLY(TraceTrait);
-+
-+ public:
-+ template <typename VisitorDispatcher>
-+ static void Trace(VisitorDispatcher visitor, WTF::Optional<T>* optional) {
-+ if (*optional != WTF::nullopt) {
-+ TraceIfEnabled<T, WTF::IsTraceable<T>::value>::Trace(visitor,
-+ optional->value());
-+ }
-+ }
-+};
-+
- // If eager tracing leads to excessively deep |trace()| call chains (and
- // the system stack usage that this brings), the marker implementation will
- // switch to using an explicit mark stack. Recursive and deep object graphs
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.oilpan chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.oilpan 2018-03-13 16:46:01.683015951 -0400
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h 2018-03-13 16:46:51.632043375 -0400
-@@ -7,20 +7,15 @@
-
- #include "base/optional.h"
- #include "platform/wtf/TemplateUtil.h"
--#include "platform/wtf/TypeTraits.h"
-
- namespace WTF {
-
- // WTF::Optional is base::Optional. See base/optional.h for documentation.
- //
- // A clang plugin enforces that garbage collected types are not allocated
--// outside of the heap, similarly we enforce that one doesn't create garbage
--// collected types nested inside an Optional.
-+// outside of the heap. GC containers such as HeapVector are allowed though.
- template <typename T>
--using Optional =
-- typename std::enable_if<!IsGarbageCollectedType<T>::value ||
-- IsPersistentReferenceType<T>::value,
-- base::Optional<T>>::type;
-+using Optional = base::Optional<T>;
-
- constexpr base::nullopt_t nullopt = base::nullopt;
- constexpr base::in_place_t in_place = base::in_place;
diff --git a/chromium-65.0.3325.146-wtf-vector-fix.patch b/chromium-65.0.3325.146-wtf-vector-fix.patch
deleted file mode 100644
index e4bfeba..0000000
--- a/chromium-65.0.3325.146-wtf-vector-fix.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS.jdp 2018-03-07 13:54:42.653286576 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/DEPS 2018-03-07 13:55:00.973903591 -0500
-@@ -16,6 +16,7 @@ include_rules = [
- "+base/process/process_metrics.h",
- "+base/rand_util.h",
- "+base/strings",
-+ "+base/template_util.h",
- "+base/threading/thread_checker.h",
- "+base/time/time.h",
- "+base/tuple.h",
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h.jdp 2018-03-07 13:56:29.053062331 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/Optional.h 2018-03-07 13:56:36.595904651 -0500
-@@ -6,6 +6,7 @@
- #define Optional_h
-
- #include "base/optional.h"
-+#include "platform/wtf/TemplateUtil.h"
- #include "platform/wtf/TypeTraits.h"
-
- namespace WTF {
-diff -up chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.jdp chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h
---- chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.jdp 2018-03-07 13:56:47.356679702 -0500
-+++ chromium-65.0.3325.146/third_party/WebKit/Source/platform/wtf/TemplateUtil.h 2018-03-07 13:57:41.769542223 -0500
-@@ -0,0 +1,28 @@
-+// Copyright 2018 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.
-+
-+#ifndef TemplateUtil_h
-+#define TemplateUtil_h
-+
-+#include "base/template_util.h"
-+#include "platform/wtf/Vector.h"
-+
-+namespace base {
-+
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<WTF::Vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+//
-+// It completes the declaration in base/template_util.h that was provided
-+// for std::vector
-+template <typename T>
-+struct is_trivially_copy_constructible<WTF::Vector<T>> : std::false_type {};
-+#endif
-+
-+} // namespace base
-+
-+#endif // TemplateUtil_h
-+
diff --git a/chromium-65.0.3325.162-boolfix.patch b/chromium-65.0.3325.162-boolfix.patch
deleted file mode 100644
index a27f3a8..0000000
--- a/chromium-65.0.3325.162-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-03-15 13:07:54.999428755 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-03-15 13:08:21.270794252 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-03-15 13:07:09.680523296 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/associated_interface_request.h 2018-03-15 13:07:44.429684037 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h
---- chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-03-15 13:08:33.494499025 -0400
-+++ chromium-65.0.3325.162/mojo/public/cpp/bindings/interface_request.h 2018-03-15 13:10:39.218462546 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-65.0.3325.162-epel7-stdc++.patch b/chromium-65.0.3325.162-epel7-stdc++.patch
deleted file mode 100644
index ee2066b..0000000
--- a/chromium-65.0.3325.162-epel7-stdc++.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 chromium-65.0.3325.162/build/config/posix/BUILD.gn
---- chromium-65.0.3325.162/build/config/posix/BUILD.gn.epel7 2018-03-20 16:14:42.425926323 -0400
-+++ chromium-65.0.3325.162/build/config/posix/BUILD.gn 2018-03-20 16:15:10.150152245 -0400
-@@ -74,6 +74,8 @@ config("runtime_library") {
- "rt",
- ]
- }
-+ } else {
-+ libs += [ "stdc++" ]
- }
-
- if (!is_mac && !is_ios && sysroot != "") {
diff --git a/chromium-65.0.3325.162-skia-aarch64-buildfix.patch b/chromium-65.0.3325.162-skia-aarch64-buildfix.patch
deleted file mode 100644
index e48346c..0000000
--- a/chromium-65.0.3325.162-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp
---- chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix 2018-03-15 15:27:35.201345844 -0400
-+++ chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp 2018-03-15 15:31:30.471777400 -0400
-@@ -666,7 +666,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch b/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
deleted file mode 100644
index 36ade41..0000000
--- a/chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h.gcc-full-decl chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h
---- chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h.gcc-full-decl 2018-04-25 16:29:52.372692179 -0400
-+++ chromium-66.0.3359.117/services/preferences/tracked/pref_hash_filter.h 2018-04-25 16:31:15.698058409 -0400
-@@ -21,9 +21,9 @@
- #include "services/preferences/public/mojom/preferences.mojom.h"
- #include "services/preferences/tracked/hash_store_contents.h"
- #include "services/preferences/tracked/interceptable_pref_filter.h"
-+#include "services/preferences/tracked/pref_hash_store.h"
- #include "services/preferences/tracked/tracked_preference.h"
-
--class PrefHashStore;
- class PrefService;
-
- namespace base {
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.gcc-full-decl chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h.gcc-full-decl 2018-04-17 21:05:12.000000000 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/modules/webdatabase/SQLTransactionBackend.h 2018-04-25 16:29:52.373692159 -0400
-@@ -30,6 +30,7 @@
-
- #include <memory>
- #include "modules/webdatabase/DatabaseBasicTypes.h"
-+#include "modules/webdatabase/SQLError.h"
- #include "modules/webdatabase/SQLStatement.h"
- #include "modules/webdatabase/SQLStatementBackend.h"
- #include "modules/webdatabase/SQLTransactionStateMachine.h"
-@@ -41,7 +42,6 @@
- namespace blink {
-
- class Database;
--class SQLErrorData;
- class SQLiteTransaction;
- class SQLTransaction;
- class SQLTransactionBackend;
diff --git a/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch b/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
deleted file mode 100644
index cb68934..0000000
--- a/chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc.flatsetfix chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc
---- chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc.flatsetfix 2018-04-30 14:22:23.997461566 -0400
-+++ chromium-66.0.3359.117/chrome/browser/supervised_user/supervised_user_url_filter.cc 2018-04-30 14:22:51.867920383 -0400
-@@ -368,7 +368,7 @@ SupervisedUserURLFilter::GetFilteringBeh
-
- // Allow navigations to whitelisted origins (currently families.google.com).
- static const base::NoDestructor<base::flat_set<GURL>> kWhitelistedOrigins(
-- {GURL(kFamiliesUrl).GetOrigin()});
-+ base::flat_set<GURL>({GURL(kFamiliesUrl).GetOrigin()}));
- if (base::ContainsKey(*kWhitelistedOrigins, effective_url.GetOrigin()))
- return ALLOW;
-
diff --git a/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch b/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
deleted file mode 100644
index 09c5b82..0000000
--- a/chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider.cc.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider.cc
---- chromium-66.0.3359.117/cc/raster/playback_image_provider.cc.copycon 2018-04-23 13:22:43.109126071 -0400
-+++ chromium-66.0.3359.117/cc/raster/playback_image_provider.cc 2018-04-23 13:23:55.761704938 -0400
-@@ -20,7 +20,7 @@ void UnrefImageFromCache(DrawImage draw_
- PlaybackImageProvider::PlaybackImageProvider(
- ImageDecodeCache* cache,
- const gfx::ColorSpace& target_color_space,
-- base::Optional<Settings> settings)
-+ base::Optional<Settings>&& settings)
- : cache_(cache),
- target_color_space_(target_color_space),
- settings_(std::move(settings)) {
-@@ -70,7 +70,10 @@ PlaybackImageProvider::GetDecodedDrawIma
- }
-
- PlaybackImageProvider::Settings::Settings() = default;
--PlaybackImageProvider::Settings::Settings(const Settings& other) = default;
-+PlaybackImageProvider::Settings::Settings(PlaybackImageProvider::Settings&&) =
-+ default;
- PlaybackImageProvider::Settings::~Settings() = default;
-+PlaybackImageProvider::Settings& PlaybackImageProvider::Settings::operator=(
-+ PlaybackImageProvider::Settings&&) = default;
-
- } // namespace cc
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider.h.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider.h
---- chromium-66.0.3359.117/cc/raster/playback_image_provider.h.copycon 2018-04-23 13:24:07.699471148 -0400
-+++ chromium-66.0.3359.117/cc/raster/playback_image_provider.h 2018-04-23 13:24:57.080506348 -0400
-@@ -20,8 +20,10 @@ class CC_EXPORT PlaybackImageProvider :
- public:
- struct CC_EXPORT Settings {
- Settings();
-- Settings(const Settings& other);
-+ Settings(const Settings&) = delete;
-+ Settings(Settings&&);
- ~Settings();
-+ Settings& operator=(Settings&&);
-
- // The set of image ids to skip during raster.
- PaintImageIdFlatSet images_to_skip;
-@@ -34,7 +36,7 @@ class CC_EXPORT PlaybackImageProvider :
- // If no settings are provided, all images are skipped during rasterization.
- PlaybackImageProvider(ImageDecodeCache* cache,
- const gfx::ColorSpace& target_color_space,
-- base::Optional<Settings> settings);
-+ base::Optional<Settings>&& settings);
- ~PlaybackImageProvider() override;
-
- PlaybackImageProvider(PlaybackImageProvider&& other);
-diff -up chromium-66.0.3359.117/cc/raster/playback_image_provider_unittest.cc.copycon chromium-66.0.3359.117/cc/raster/playback_image_provider_unittest.cc
diff --git a/chromium-66.0.3359.117-gcc-optional-move-fixes.patch b/chromium-66.0.3359.117-gcc-optional-move-fixes.patch
deleted file mode 100644
index 80df7d0..0000000
--- a/chromium-66.0.3359.117-gcc-optional-move-fixes.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -up chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc.gccomove chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc
---- chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc.gccomove 2018-04-23 12:53:32.419477463 -0400
-+++ chromium-66.0.3359.117/content/browser/appcache/appcache_request_handler.cc 2018-04-23 12:54:02.497887258 -0400
-@@ -639,7 +639,7 @@ AppCacheRequestHandler::MaybeCreateSubre
-
- SubresourceLoaderParams params;
- params.loader_factory_info = factory_ptr.PassInterface();
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void AppCacheRequestHandler::MaybeCreateSubresourceLoader(
-diff -up chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc.gccomove chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc
---- chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc.gccomove 2018-04-23 12:54:16.614610083 -0400
-+++ chromium-66.0.3359.117/content/browser/service_worker/service_worker_controllee_request_handler.cc 2018-04-23 12:54:38.401182827 -0400
-@@ -271,7 +271,7 @@ ServiceWorkerControlleeRequestHandler::M
- controller_info->object_info = provider_host_->GetOrCreateServiceWorkerHandle(
- provider_host_->controller());
- params.controller_service_worker_info = std::move(controller_info);
-- return params;
-+ return base::Optional<SubresourceLoaderParams>(std::move(params));
- }
-
- void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
-diff -up chromium-66.0.3359.117/device/fido/device_response_converter.cc.gccomove chromium-66.0.3359.117/device/fido/device_response_converter.cc
---- chromium-66.0.3359.117/device/fido/device_response_converter.cc.gccomove 2018-04-23 12:54:51.452926482 -0400
-+++ chromium-66.0.3359.117/device/fido/device_response_converter.cc 2018-04-23 12:55:24.248283058 -0400
-@@ -121,7 +121,7 @@ base::Optional<AuthenticatorGetAssertion
- response.SetNumCredentials(it->second.GetUnsigned());
- }
-
-- return response;
-+ return base::Optional<AuthenticatorGetAssertionResponse>(std::move(response));
- }
-
- base::Optional<AuthenticatorGetInfoResponse> ReadCTAPGetInfoResponse(
-@@ -241,7 +241,7 @@ base::Optional<AuthenticatorGetInfoRespo
- response.SetPinProtocols(std::move(supported_pin_protocols));
- }
-
-- return response;
-+ return base::Optional<AuthenticatorGetInfoResponse>(std::move(response));
- }
-
- } // namespace device
diff --git a/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch b/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
deleted file mode 100644
index b86c200..0000000
--- a/chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS.944404 2018-04-23 14:18:43.702116916 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/DEPS 2018-04-23 14:19:05.854680223 -0400
-@@ -16,6 +16,7 @@ include_rules = [
- "+base/process/process_metrics.h",
- "+base/rand_util.h",
- "+base/strings",
-+ "+base/template_util.h",
- "+base/threading/thread_checker.h",
- "+base/time/time.h",
- "+base/tuple.h",
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h.944404 2018-04-23 14:20:05.718499685 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/Optional.h 2018-04-23 14:20:18.165253615 -0400
-@@ -6,6 +6,7 @@
- #define Optional_h
-
- #include "base/optional.h"
-+#include "platform/wtf/TemplateUtil.h"
-
- namespace WTF {
-
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.944404 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h
---- chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h.944404 2018-04-23 14:20:31.660987877 -0400
-+++ chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/TemplateUtil.h 2018-04-23 14:21:40.276637297 -0400
-@@ -0,0 +1,27 @@
-+// Copyright 2018 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.
-+
-+#ifndef TemplateUtil_h
-+#define TemplateUtil_h
-+
-+#include "base/template_util.h"
-+#include "platform/wtf/Vector.h"
-+
-+namespace base {
-+
-+#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ <= 7
-+// Workaround for g++7 and earlier family.
-+// Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654, without this
-+// Optional<WTF::Vector<T>> where T is non-copyable causes a compile error.
-+// As we know it is not trivially copy constructible, explicitly declare so.
-+//
-+// It completes the declaration in base/template_util.h that was provided
-+// for std::vector
-+template <typename T>
-+struct is_trivially_copy_constructible<WTF::Vector<T>> : std::false_type {};
-+#endif
-+
-+} // namespace base
-+
-+#endif // TemplateUtil_h
diff --git a/chromium-66.0.3359.117-gcc5-r3.patch b/chromium-66.0.3359.117-gcc5-r3.patch
deleted file mode 100644
index 56abcf1..0000000
--- a/chromium-66.0.3359.117-gcc5-r3.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -up chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2018-04-17 21:04:33.000000000 -0400
-+++ chromium-66.0.3359.117/gpu/ipc/common/mailbox_struct_traits.h 2018-04-18 12:12:40.065663210 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-diff -up chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2018-04-17 21:04:43.000000000 -0400
-+++ chromium-66.0.3359.117/services/viz/public/cpp/compositing/quads_struct_traits.h 2018-04-18 12:12:40.067663160 -0400
-@@ -308,7 +308,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h.gcc5-r3 chromium-66.0.3359.117/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-diff -up chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2018-04-17 21:06:20.000000000 -0400
-+++ chromium-66.0.3359.117/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2018-04-18 12:12:40.068663134 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <numeric>
- #include <vector>
diff --git a/chromium-66.0.3359.117-nounrar.patch b/chromium-66.0.3359.117-nounrar.patch
deleted file mode 100644
index 67a517b..0000000
--- a/chromium-66.0.3359.117-nounrar.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn.nounrar chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn
---- chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn.nounrar 2018-04-25 12:17:13.858139109 -0400
-+++ chromium-66.0.3359.117/chrome/services/file_util/public/cpp/BUILD.gn 2018-04-25 12:19:53.639532053 -0400
-@@ -27,9 +27,9 @@ source_set("cpp") {
- }
-
- #TODO(crbug/750327): This dependency is here temporarily.
-- deps = [
-- "//third_party/unrar:unrar",
-- ]
-+ # deps = [
-+ # "//third_party/unrar:unrar",
-+ # ]
-
- public_deps += [ "//chrome/common/safe_browsing" ]
- }
diff --git a/chromium-66.0.3359.139-arm-init-fix.patch b/chromium-66.0.3359.139-arm-init-fix.patch
deleted file mode 100644
index 754af5b..0000000
--- a/chromium-66.0.3359.139-arm-init-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.139/skia/ext/convolver_neon.cc.arm-init-fix chromium-66.0.3359.139/skia/ext/convolver_neon.cc
---- chromium-66.0.3359.139/skia/ext/convolver_neon.cc.arm-init-fix 2018-05-05 10:07:03.624424987 -0400
-+++ chromium-66.0.3359.139/skia/ext/convolver_neon.cc 2018-05-05 10:07:45.417503001 -0400
-@@ -23,7 +23,7 @@ AccumRemainder(const unsigned char* pixe
- remainder[2] += coeff * pixels_left[i * 4 + 2];
- remainder[3] += coeff * pixels_left[i * 4 + 3];
- }
-- return {remainder[0], remainder[1], remainder[2], remainder[3]};
-+ return vld1q_s32(remainder);
- }
-
- // Convolves horizontally along a single row. The row data is given in
diff --git a/chromium-66.0.3359.170-gcc8-alignof.patch b/chromium-66.0.3359.170-gcc8-alignof.patch
deleted file mode 100644
index 0c2b356..0000000
--- a/chromium-66.0.3359.170-gcc8-alignof.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.170/mojo/public/c/system/macros.h.gcc8-alignof chromium-66.0.3359.170/mojo/public/c/system/macros.h
---- chromium-66.0.3359.170/mojo/public/c/system/macros.h.gcc8-alignof 2018-05-15 14:58:46.448912634 -0400
-+++ chromium-66.0.3359.170/mojo/public/c/system/macros.h 2018-05-15 14:58:52.041784613 -0400
-@@ -18,7 +18,13 @@
- #endif
-
- // Like the C++11 |alignof| operator.
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__) && __GNUC__ >= 8
-+// GCC 8 has changed the alignof operator to return the minimal alignment
-+// required by the target ABI, instead of the preferred alignment.
-+// This means that on 32-bit x86, it will return 4 instead of 8.
-+// Use __alignof__ instead to avoid this.
-+#define MOJO_ALIGNOF(type) __alignof__(type)
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNOF(type) alignof(type)
- #elif defined(__GNUC__)
- #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/chromium-67.0.3396.62-boolfix.patch b/chromium-67.0.3396.62-boolfix.patch
deleted file mode 100644
index d0ed189..0000000
--- a/chromium-67.0.3396.62-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-05-30 04:43:17.000000000 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-05-30 12:33:03.268912315 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-05-30 04:43:17.000000000 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/associated_interface_request.h 2018-05-30 12:33:03.269912294 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_; }
-+ explicit operator bool() const { return (bool) handle_; }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h
---- chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-05-30 12:33:03.270912274 -0400
-+++ chromium-67.0.3396.62/mojo/public/cpp/bindings/interface_request.h 2018-05-30 12:34:05.156637922 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch b/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch
deleted file mode 100644
index e19d726..0000000
--- a/chromium-67.0.3396.62-crashpad-aarch64-buildfix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S.aarch64fix chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
---- chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S.aarch64fix 2018-06-04 14:58:04.730083967 -0400
-+++ chromium-67.0.3396.62/third_party/crashpad/crashpad/util/misc/capture_context_linux.S 2018-06-04 14:58:24.896572816 -0400
-@@ -288,7 +288,7 @@ CAPTURECONTEXT_SYMBOL2:
- #elif defined(__aarch64__)
-
- // Zero out fault_address, which is unused.
-- str x31, [x0, #0xb0] // context->uc_mcontext.fault_address
-+ str xzr, [x0, #0xb0] // context->uc_mcontext.fault_address
-
- // Save general purpose registers in context->uc_mcontext.regs[i].
- // The original x0 can't be recovered.
-diff -up chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h
diff --git a/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch b/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
deleted file mode 100644
index 1aa5600..0000000
--- a/chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py.oldexec chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py
---- chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py.oldexec 2018-06-06 10:13:40.862084284 -0400
-+++ chromium-67.0.3396.62/tools/gn/bootstrap/bootstrap.py 2018-06-06 10:14:08.809490819 -0400
-@@ -112,7 +112,7 @@ def windows_prepare_toolchain(tempdir):
-
- _globals = {"__builtins__":None}
- _locals = {}
-- exec(response, _globals, _locals)
-+ exec response in _globals, _locals
-
- return _locals
-
diff --git a/chromium-67.0.3396.62-skia-aarch64-buildfix.patch b/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
deleted file mode 100644
index 6b37b08..0000000
--- a/chromium-67.0.3396.62-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-05-30 12:38:06.131467092 -0400
-+++ chromium-67.0.3396.62/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-05-30 12:38:39.861734819 -0400
-@@ -653,7 +653,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -673,7 +673,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-67.0.3396.87-fedora-user-agent.patch b/chromium-67.0.3396.87-fedora-user-agent.patch
deleted file mode 100644
index 8df304d..0000000
--- a/chromium-67.0.3396.87-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.87/content/common/user_agent.cc.fedora-user-agent chromium-67.0.3396.87/content/common/user_agent.cc
---- chromium-67.0.3396.87/content/common/user_agent.cc.fedora-user-agent 2018-06-25 16:01:48.092188102 -0400
-+++ chromium-67.0.3396.87/content/common/user_agent.cc 2018-06-25 16:02:42.634878954 -0400
-@@ -141,7 +141,7 @@ std::string getUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #else
diff --git a/chromium-67.0.3396.99-py2-bootstrap.patch b/chromium-67.0.3396.99-py2-bootstrap.patch
deleted file mode 100644
index b59c84b..0000000
--- a/chromium-67.0.3396.99-py2-bootstrap.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -up chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
---- chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-07-25 14:14:02.004886479 -0400
-+++ chromium-67.0.3396.99/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-07-25 14:15:30.167896461 -0400
-@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
-
- with tempfile.NamedTemporaryFile() as _:
- args = [
-- 'python',
-+ 'python2',
- rjsmin_path
- ]
- p = subprocess.Popen(args,
-@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
- 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 -up chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py.py2 chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py
---- chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py.py2 2018-07-24 16:58:53.372022183 -0400
-+++ chromium-67.0.3396.99/tools/gn/bootstrap/bootstrap.py 2018-07-24 17:00:03.200279816 -0400
-@@ -983,7 +983,7 @@ def build_gn_with_gn(temp_gn, build_dir,
- gn_gen_args = options.gn_gen_args or ''
- if not options.debug:
- gn_gen_args += ' is_debug=false'
-- cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args,
-+ cmd = [temp_gn, 'gen', '--script-executable=/usr/bin/python2', build_dir, '--args=%s' % gn_gen_args,
- "--root="+SRC_ROOT
- ]
- check_call(cmd)
-@@ -997,7 +997,7 @@ def build_gn_with_gn(temp_gn, build_dir,
- # build.ninja currently refers back to gn from the temporary directory.
- # Regenerate the build files using the gn we just built so that the reference
- # gets updated to "./gn".
-- cmd = [os.path.join(build_dir, 'gn'), 'gen', build_dir,
-+ cmd = [os.path.join(build_dir, 'gn'), 'gen', '--script-executable=/usr/bin/python2', build_dir,
- '--args=%s' % gn_gen_args]
- check_call(cmd)
-
diff --git a/chromium-68.0.3440.106-fedora-user-agent.patch b/chromium-68.0.3440.106-fedora-user-agent.patch
deleted file mode 100644
index 6c4cb82..0000000
--- a/chromium-68.0.3440.106-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent chromium-68.0.3440.106/content/common/user_agent.cc
---- chromium-68.0.3440.106/content/common/user_agent.cc.fedora-user-agent 2018-08-09 03:27:45.965769824 -0400
-+++ chromium-68.0.3440.106/content/common/user_agent.cc 2018-08-09 03:28:34.001586650 -0400
-@@ -135,7 +135,7 @@ std::string getUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-68.0.3440.106-fix-build-networking_private.patch b/chromium-68.0.3440.106-fix-build-networking_private.patch
deleted file mode 100644
index 787d3db..0000000
--- a/chromium-68.0.3440.106-fix-build-networking_private.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn.fixb chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn
---- chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn.fixb 2018-08-09 03:56:36.091622243 -0400
-+++ chromium-68.0.3440.106/extensions/browser/api/networking_private/BUILD.gn 2018-08-09 03:57:03.047001659 -0400
-@@ -61,7 +61,7 @@ source_set("networking_private") {
- ]
- deps += [ "//chromeos" ]
- } else {
-- not_needed(default_sources)
-+ not_needed([ "default_sources" ])
- sources = [
- "networking_private_stubs.cc",
- ]
diff --git a/chromium-68.0.3440.106-notest.patch b/chromium-68.0.3440.106-notest.patch
deleted file mode 100644
index c20a40e..0000000
--- a/chromium-68.0.3440.106-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd.notest chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd
---- chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd.notest 2018-08-09 03:08:33.953029806 -0400
-+++ chromium-68.0.3440.106/chrome/test/data/webui_test_resources.grd 2018-08-09 03:09:40.264567818 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- </includes>
- </release>
diff --git a/chromium-68.0.3440.84-cors-string.patch b/chromium-68.0.3440.84-cors-string.patch
deleted file mode 100644
index b724cd4..0000000
--- a/chromium-68.0.3440.84-cors-string.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 01d891fa0790950549c7bedb34edf869827a372e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 31 May 2018 17:03:37 +0000
-Subject: [PATCH] CORS legacy: add missing string include
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The cors_legacy.h file includes declarations using std::string, but
-it is not declared due to missing #include <string>.
-
-Also drop unneeded declarations in .cpp file.
-
-Change-Id: I00df799f84a6c3530c2f12f1e52d24c7d9bd6bfd
-Reviewed-on: https://chromium-review.googlesource.com/1080707
-Reviewed-by: Tom Sepez <tsepez(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#563282}
----
- services/network/public/cpp/cors/cors_legacy.cc | 2 --
- services/network/public/cpp/cors/cors_legacy.h | 1 +
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/services/network/public/cpp/cors/cors_legacy.cc b/services/network/public/cpp/cors/cors_legacy.cc
-index 8f32ac3be64e..f01af63619b5 100644
---- a/services/network/public/cpp/cors/cors_legacy.cc
-+++ b/services/network/public/cpp/cors/cors_legacy.cc
-@@ -5,8 +5,6 @@
- #include "services/network/public/cpp/cors/cors_legacy.h"
-
- #include <algorithm>
--#include <string>
--#include <vector>
-
- #include "url/gurl.h"
- #include "url/url_util.h"
-diff --git a/services/network/public/cpp/cors/cors_legacy.h b/services/network/public/cpp/cors/cors_legacy.h
-index d2cdf026ca3a..dc9295a92c47 100644
---- a/services/network/public/cpp/cors/cors_legacy.h
-+++ b/services/network/public/cpp/cors/cors_legacy.h
-@@ -5,6 +5,7 @@
- #ifndef SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
- #define SERVICES_NETWORK_PUBLIC_CPP_CORS_CORS_LEGACY_H_
-
-+#include <string>
- #include <vector>
-
- #include "base/component_export.h"
---
-2.17.1
-
diff --git a/chromium-68.0.3440.84-libjpeg.patch b/chromium-68.0.3440.84-libjpeg.patch
deleted file mode 100644
index 5354281..0000000
--- a/chromium-68.0.3440.84-libjpeg.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From c6b0194f7a4d9f494b2d51f46d2c332e2e5f4050 Mon Sep 17 00:00:00 2001
-From: Daniel Bratell <bratell(a)opera.com>
-Date: Mon, 28 May 2018 13:13:01 +0000
-Subject: [PATCH] Use the same libjpeg in all of blink/platform
-
-The normal libjpeg renames some symbols with macros so if its
-headers are included together with libjpeg-turbo's headers
-in the same translation unit, there will be an inconsistent
-renaming of libjpeg symbols. This happened in some extreme
-jumbo configuration and resulted in confising linker errors.
-
-This patch changes an include so that jpeglib.h becomes included
-the same way everywhere.
-
-Change-Id: I7f122d0919d58371bb40dc0097a766b857b9815e
-Reviewed-on: https://chromium-review.googlesource.com/1073423
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Commit-Queue: Daniel Bratell <bratell(a)opera.com>
-Cr-Commit-Position: refs/heads/master@{#562243}
----
- .../renderer/platform/image-encoders/image_encoder.cc | 11 +++++++++++
- .../renderer/platform/image-encoders/image_encoder.h | 2 --
- 2 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-index 0c7f14c7c0e4..4c450f5d6783 100644
---- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
-@@ -4,6 +4,17 @@
-
- #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
-
-+#include "build/build_config.h"
-+
-+#if defined(OS_WIN)
-+#include <basetsd.h> // Included before jpeglib.h because of INT32 clash
-+#endif // OS_WIN
-+#include <stdio.h> // Needed by jpeglib.h
-+
-+#include "jpeglib.h" // for JPEG_MAX_DIMENSION
-+
-+#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION
-+
- namespace blink {
-
- bool ImageEncoder::Encode(Vector<unsigned char>* dst,
-diff --git a/third_party/blink/renderer/platform/image-encoders/image_encoder.h b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-index 0d1460f34827..40306097d507 100644
---- a/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-+++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.h
-@@ -7,8 +7,6 @@
-
- #include "third_party/blink/renderer/platform/platform_export.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
--#include "third_party/libjpeg/jpeglib.h" // for JPEG_MAX_DIMENSION
--#include "third_party/libwebp/src/webp/encode.h" // for WEBP_MAX_DIMENSION
- #include "third_party/skia/include/core/SkStream.h"
- #include "third_party/skia/include/encode/SkJpegEncoder.h"
- #include "third_party/skia/include/encode/SkPngEncoder.h"
---
-2.17.1
-
diff --git a/chromium-68.0.3440.84-libwebp-shim.patch b/chromium-68.0.3440.84-libwebp-shim.patch
deleted file mode 100644
index cb387a4..0000000
--- a/chromium-68.0.3440.84-libwebp-shim.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/build/linux/unbundle/libwebp.gn b/build/linux/unbundle/libwebp.gn
-index ab92adecf400..12574d87be58 100644
---- a/build/linux/unbundle/libwebp.gn
-+++ b/build/linux/unbundle/libwebp.gn
-@@ -2,12 +2,34 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
-
-+import("//build/config/linux/pkg_config.gni")
-+import("//build/shim_headers.gni")
-+
-+pkg_config("system_libwebp") {
-+ packages = [
-+ "libwebp",
-+ "libwebpdemux",
-+ "libwebpmux",
-+ ]
-+}
-+
-+shim_headers("libwebp_shim") {
-+ root_path = "src"
-+ headers = [
-+ "webp/decode.h",
-+ "webp/demux.h",
-+ "webp/encode.h",
-+ "webp/mux.h",
-+ "webp/mux_types.h",
-+ "webp/types.h",
-+ ]
-+}
-+
- source_set("libwebp_webp") {
-- libs = [
-- "webp",
-- "webpdemux",
-- "webpmux",
-+ deps = [
-+ ":libwebp_shim",
- ]
-+ public_configs = [ ":system_libwebp" ]
- }
-
- group("libwebp") {
diff --git a/chromium-68.0.3440.84-move-unique-ptr.patch b/chromium-68.0.3440.84-move-unique-ptr.patch
deleted file mode 100644
index 2942a8f..0000000
--- a/chromium-68.0.3440.84-move-unique-ptr.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 56cb5f7da1025f6db869e840ed34d3b98b9ab899 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 29 May 2018 16:04:14 +0000
-Subject: [PATCH] GCC: do not std::move unique ptr of forward declared UrlIndex
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-GCC fails to resolve the size of UrlIndex, needed
-for moving a std::unique_ptr of UrlIndex. This is because
-moved is done on a forward-declared UrlIndex.
-
-To avoid the problem, move the call to std::move to the .cc
-file so the full declaration is available.
-
-Build error:
-../../buildtools/third_party/libc++/trunk/include/memory: In instantiation of void std::__1::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = bookmarks::UrlIndex]:
-../../buildtools/third_party/libc++/trunk/include/memory:2634:22: required from void std::__1::unique_ptr<_Tp, _Dp>::reset(std::__1::unique_ptr<_Tp, _Dp>::pointer) [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>; std::__1::unique_ptr<_Tp, _Dp>::pointer = bookmarks::UrlIndex*]
-../../buildtools/third_party/libc++/trunk/include/memory:2588:24: required from std::__1::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = bookmarks::UrlIndex; _Dp = std::__1::default_delete<bookmarks::UrlIndex>]
-../../components/bookmarks/browser/bookmark_storage.h:107:76: required from here
-../../buildtools/third_party/libc++/trunk/include/memory:2317:25: error: invalid application of sizeof to incomplete type bookmarks::UrlIndex
- static_assert(sizeof(_Tp) > 0,
-
-Bug: 819294
-Change-Id: I793a807c28e797aaa2e31d9c8b7e09fb6ca6b9e7
-Reviewed-on: https://chromium-review.googlesource.com/1071648
-Commit-Queue: Scott Violet <sky(a)chromium.org>
-Reviewed-by: Scott Violet <sky(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#562446}
----
- components/bookmarks/browser/bookmark_storage.cc | 4 ++++
- components/bookmarks/browser/bookmark_storage.h | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
-index 1633ba1df2a4..3ae0c62292e7 100644
---- a/components/bookmarks/browser/bookmark_storage.cc
-+++ b/components/bookmarks/browser/bookmark_storage.cc
-@@ -158,6 +158,10 @@ void BookmarkLoadDetails::CreateUrlIndex() {
- url_index_ = std::make_unique<UrlIndex>(std::move(root_node_));
- }
-
-+std::unique_ptr<UrlIndex> BookmarkLoadDetails::owned_url_index() {
-+ return std::move(url_index_);
-+}
-+
- BookmarkPermanentNode* BookmarkLoadDetails::CreatePermanentNode(
- BookmarkClient* client,
- BookmarkNode::Type type) {
-diff --git a/components/bookmarks/browser/bookmark_storage.h b/components/bookmarks/browser/bookmark_storage.h
-index 08df5bb65d83..0a1b1a1b65b9 100644
---- a/components/bookmarks/browser/bookmark_storage.h
-+++ b/components/bookmarks/browser/bookmark_storage.h
-@@ -104,7 +104,7 @@ class BookmarkLoadDetails {
- bool ids_reassigned() const { return ids_reassigned_; }
-
- void CreateUrlIndex();
-- std::unique_ptr<UrlIndex> owned_url_index() { return std::move(url_index_); }
-+ std::unique_ptr<UrlIndex> owned_url_index();
-
- private:
- // Creates one of the possible permanent nodes (bookmark bar node, other node
---
-2.17.1
-
diff --git a/chromium-69.0.3497.81-gcc8-alignof.patch b/chromium-69.0.3497.81-gcc8-alignof.patch
deleted file mode 100644
index 234b391..0000000
--- a/chromium-69.0.3497.81-gcc8-alignof.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof chromium-69.0.3497.81/mojo/public/c/system/macros.h
---- chromium-69.0.3497.81/mojo/public/c/system/macros.h.gcc8-alignof 2018-09-06 10:11:54.336432699 -0400
-+++ chromium-69.0.3497.81/mojo/public/c/system/macros.h 2018-09-06 10:13:56.555727572 -0400
-@@ -27,7 +27,13 @@
- (sizeof(void*) == 4 ? 32 : 0)
-
- // Like the C++11 |alignof| operator.
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__) && __GNUC__ >= 8
-+// GCC 8 has changed the alignof operator to return the minimal alignment
-+// required by the target ABI, instead of the preferred alignment.
-+// This means that on 32-bit x86, it will return 4 instead of 8.
-+// Use __alignof__ instead to avoid this.
-+#define MOJO_ALIGNOF(type) __alignof__(type)
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNOF(type) alignof(type)
- #elif defined(__GNUC__)
- #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/chromium-69.0.3497.81-norar.patch b/chromium-69.0.3497.81-norar.patch
deleted file mode 100644
index 9545b60..0000000
--- a/chromium-69.0.3497.81-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn
---- chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn.nounrar 2018-09-06 13:29:47.114511569 -0400
-+++ chromium-69.0.3497.81/chrome/common/safe_browsing/BUILD.gn 2018-09-06 13:29:47.120511452 -0400
-@@ -55,40 +55,6 @@ if (safe_browsing_mode == 1) {
- "//components/safe_browsing:csd_proto",
- ]
- }
--
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_protection_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
- }
-
- source_set("safe_browsing") {
-@@ -121,7 +87,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_protection_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS
---- chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS.nounrar 2018-09-06 13:29:47.119511472 -0400
-+++ chromium-69.0.3497.81/chrome/common/safe_browsing/DEPS 2018-09-06 13:29:47.116511530 -0400
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2018-09-07 10:10:42.286041744 -0400
-+++ chromium-69.0.3497.81/chrome/services/file_util/safe_archive_analyzer.cc 2018-09-07 10:11:14.934308285 -0400
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-69.0.3497.81-py2-bootstrap.patch b/chromium-69.0.3497.81-py2-bootstrap.patch
deleted file mode 100644
index 8a5db71..0000000
--- a/chromium-69.0.3497.81-py2-bootstrap.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
---- chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2018-09-06 10:45:17.919774145 -0400
-+++ chromium-69.0.3497.81/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2018-09-06 10:45:17.914774254 -0400
-@@ -58,7 +58,7 @@ def _MinifyJS(input_js):
-
- with tempfile.NamedTemporaryFile() as _:
- args = [
-- 'python',
-+ 'python2',
- rjsmin_path
- ]
- p = subprocess.Popen(args,
-@@ -177,7 +177,7 @@ def _MinifyCSS(css_text):
- 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 -up chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py.py2 chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py
---- chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py.py2 2018-09-06 10:44:42.225550561 -0400
-+++ chromium-69.0.3497.81/tools/gn/bootstrap/bootstrap.py 2018-09-06 13:06:24.251636231 -0400
-@@ -87,7 +87,7 @@ def main(argv):
- if not options.debug:
- gn_gen_args += ' is_debug=false'
- subprocess.check_call([
-- gn_path, 'gen', out_dir,
-+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
- '--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
- ])
-
diff --git a/chromium-69.0.3497.81-widevine-r2.patch b/chromium-69.0.3497.81-widevine-r2.patch
deleted file mode 100644
index a66a0fb..0000000
--- a/chromium-69.0.3497.81-widevine-r2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn.wvhack chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn
---- chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn.wvhack 2018-09-06 13:28:22.655272555 -0400
-+++ chromium-69.0.3497.81/third_party/widevine/cdm/BUILD.gn 2018-09-06 13:28:22.655272555 -0400
-@@ -11,7 +11,7 @@ import("//third_party/widevine/cdm/widev
- # Internal Cast builds set enable_widevine=true to bring in Widevine support.
- # TODO(xhwang): Support component updated CDM on other platforms and remove this
- # assert.
--assert(!enable_widevine || is_win || is_mac || is_chromecast,
-+assert(!enable_widevine || is_win || is_mac || is_chromecast || is_linux,
- "Component updated CDM only supported on Windows and Mac for now.")
-
- widevine_arch = current_cpu
-diff -up chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h.wvhack chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h
---- chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h.wvhack 2018-09-06 13:28:22.654272577 -0400
-+++ chromium-69.0.3497.81/third_party/widevine/cdm/stub/widevine_cdm_version.h 2018-09-06 13:28:22.654272577 -0400
-@@ -10,6 +10,7 @@
-
- #include "third_party/widevine/cdm/widevine_cdm_common.h"
-
-+#define WIDEVINE_CDM_VERSION_STRING "unknown"
- #define WIDEVINE_CDM_AVAILABLE
-
- #endif // WIDEVINE_CDM_VERSION_H_
diff --git a/chromium-70.0.3538.110-remove-sysroot-options.patch b/chromium-70.0.3538.110-remove-sysroot-options.patch
deleted file mode 100644
index 9eb99d1..0000000
--- a/chromium-70.0.3538.110-remove-sysroot-options.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py.sysrootfix chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py
---- chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py.sysrootfix 2018-11-26 13:40:19.324713204 -0500
-+++ chromium-70.0.3538.110/tools/gn/bootstrap/bootstrap.py 2018-11-26 13:40:43.199180888 -0500
-@@ -46,10 +46,6 @@ def main(argv):
- '--build-path',
- help='The directory in which to build gn, '
- 'relative to the src directory. (eg. out/Release)')
-- parser.add_option(
-- '--with-sysroot',
-- action='store_true',
-- help='Download and build with the Debian sysroot.')
- parser.add_option('-v', '--verbose', help='ignored')
- options, args = parser.parse_args(argv)
- if args:
-@@ -71,8 +67,6 @@ def main(argv):
- '--no-last-commit-position',
- '--out-path=' + gn_build_dir,
- ]
-- if not options.with_sysroot:
-- cmd.append('--no-sysroot')
- if options.debug:
- cmd.append('--debug')
- subprocess.check_call(cmd)
diff --git a/chromium-70.0.3538.77-harfbuzz2-fix.patch b/chromium-70.0.3538.77-harfbuzz2-fix.patch
deleted file mode 100644
index 2d5602d..0000000
--- a/chromium-70.0.3538.77-harfbuzz2-fix.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppymaster(a)gmail.com>
-Date: Sun, 21 Oct 2018 10:06:53 -0400
-Subject: [PATCH] blink: add 'const' modifier for harfbuzz hb_codepoint_t
- pointers
-
-This resolves a build failure against harfbuzz 2.0.
-
-Based on a patch by Alexandre Fierreira.
-
-Bug: https://bugs.gentoo.org/669034
----
- .../renderer/platform/fonts/shaping/harfbuzz_face.cc | 2 +-
- .../renderer/platform/fonts/skia/skia_text_metrics.cc | 9 +++++++--
- .../renderer/platform/fonts/skia/skia_text_metrics.h | 2 +-
- 3 files changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-index 8e7d91ca371f..e279a5876cb3 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_face.cc
-@@ -139,7 +139,7 @@ static hb_position_t HarfBuzzGetGlyphHorizontalAdvance(hb_font_t* hb_font,
- static void HarfBuzzGetGlyphHorizontalAdvances(hb_font_t* font,
- void* font_data,
- unsigned count,
-- hb_codepoint_t* first_glyph,
-+ const hb_codepoint_t* first_glyph,
- unsigned int glyph_stride,
- hb_position_t* first_advance,
- unsigned int advance_stride,
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-index 77ec6209fab9..9f9070921448 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.cc
-@@ -18,6 +18,11 @@ T* advance_by_byte_size(T* p, unsigned byte_size) {
- return reinterpret_cast<T*>(reinterpret_cast<uint8_t*>(p) + byte_size);
- }
-
-+template <class T>
-+T* advance_by_byte_size_const(T* p, unsigned byte_size) {
-+ return reinterpret_cast<T*>(reinterpret_cast<const uint8_t*>(p) + byte_size);
-+}
-+
- } // namespace
-
- SkiaTextMetrics::SkiaTextMetrics(const SkPaint* paint) : paint_(paint) {
-@@ -39,7 +44,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(hb_codepoint_t codepoint,
- }
-
- void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
-- hb_codepoint_t* glyphs,
-+ const hb_codepoint_t* glyphs,
- unsigned glyph_stride,
- hb_position_t* advances,
- unsigned advance_stride) {
-@@ -48,7 +53,7 @@ void SkiaTextMetrics::GetGlyphWidthForHarfBuzz(unsigned count,
- // array that copy them to a regular array.
- Vector<Glyph, 256> glyph_array(count);
- for (unsigned i = 0; i < count;
-- i++, glyphs = advance_by_byte_size(glyphs, glyph_stride)) {
-+ i++, glyphs = advance_by_byte_size_const(glyphs, glyph_stride)) {
- glyph_array[i] = *glyphs;
- }
- Vector<SkScalar, 256> sk_width_array(count);
-diff --git a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-index 787d8af0375a..3bc4407c641b 100644
---- a/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-+++ b/third_party/blink/renderer/platform/fonts/skia/skia_text_metrics.h
-@@ -19,7 +19,7 @@ class SkiaTextMetrics final {
-
- void GetGlyphWidthForHarfBuzz(hb_codepoint_t, hb_position_t* width);
- void GetGlyphWidthForHarfBuzz(unsigned count,
-- hb_codepoint_t* first_glyph,
-+ const hb_codepoint_t* first_glyph,
- unsigned glyph_stride,
- hb_position_t* first_advance,
- unsigned advance_stride);
---
-2.19.1
-
diff --git a/chromium-71-gcc-0.patch b/chromium-71-gcc-0.patch
deleted file mode 100644
index 711b827..0000000
--- a/chromium-71-gcc-0.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 65be571f6ac2f7942b4df9e50b24da517f829eec Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Mon, 15 Oct 2018 20:26:10 +0000
-Subject: [PATCH] google_util: Explicitly use std::initializer_list with
- base::NoDestructor
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Follow-up to ac53c5c53 ("Remove CR_DEFINE_STATIC_LOCAL from /components").
-Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
-base::NoDestructor<T<U>> and passing an initializer list of Us does not
-work if this is not done explicitly, as GCC incorrectly fails to determine
-which constructor overload to use:
-
- ../../components/google/core/common/google_util.cc: In function bool google_util::{anonymous}::IsCanonicalHostGoogleHostname(base::StringPiece, google_util::SubdomainPermission):
- ../../components/google/core/common/google_util.cc:120:24: error: call of overloaded NoDestructor(<brace-enclosed initializer list>) is ambiguous
- {GOOGLE_TLD_LIST});
-
-See also: https://chromium-review.googlesource.com/c/chromium/src/+/1170905
-
-Bug: 819294
-Change-Id: Ie1490b6646d7998d636c485769caabf56c1cf44c
-Reviewed-on: https://chromium-review.googlesource.com/c/1275854
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#599733}
----
- components/google/core/common/google_util.cc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
-index a44c84393820..7733848a0443 100644
---- a/components/google/core/common/google_util.cc
-+++ b/components/google/core/common/google_util.cc
-@@ -117,7 +117,7 @@ bool IsCanonicalHostGoogleHostname(base::StringPiece canonical_host,
- StripTrailingDot(&tld);
-
- static base::NoDestructor<std::set<std::string>> google_tlds(
-- {GOOGLE_TLD_LIST});
-+ std::initializer_list<std::string>({GOOGLE_TLD_LIST}));
- return base::ContainsKey(*google_tlds, tld.as_string());
- }
-
-@@ -132,7 +132,8 @@ bool IsGoogleSearchSubdomainUrl(const GURL& url) {
- StripTrailingDot(&host);
-
- static base::NoDestructor<std::set<std::string>> google_subdomains(
-- {"ipv4.google.com", "ipv6.google.com"});
-+ std::initializer_list<std::string>(
-+ {"ipv4.google.com", "ipv6.google.com"}));
-
- return base::ContainsKey(*google_subdomains, host.as_string());
- }
---
-2.19.1
-
diff --git a/chromium-71.0.3578.98-el7-fix-noexcept.patch b/chromium-71.0.3578.98-el7-fix-noexcept.patch
deleted file mode 100644
index 234f0a9..0000000
--- a/chromium-71.0.3578.98-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc.fix-noexcept chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc
---- chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc.fix-noexcept 2019-01-02 14:44:40.449801789 -0500
-+++ chromium-71.0.3578.98/chrome/common/media_router/media_sink.cc 2019-01-02 14:44:54.167481936 -0500
-@@ -24,7 +24,7 @@ MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::Equals(const MediaSink& other) const {
- return sink_id_ == other.sink_id_;
-diff -up chromium-71.0.3578.98/components/policy/core/common/policy_map.cc.fix-noexcept chromium-71.0.3578.98/components/policy/core/common/policy_map.cc
---- chromium-71.0.3578.98/components/policy/core/common/policy_map.cc.fix-noexcept 2019-01-02 12:06:10.867313533 -0500
-+++ chromium-71.0.3578.98/components/policy/core/common/policy_map.cc 2019-01-02 12:06:27.544980078 -0500
-@@ -18,7 +18,7 @@ PolicyMap::Entry::Entry() = default;
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-71.0.3578.98/components/signin/core/browser/account_info.cc.fix-noexcept chromium-71.0.3578.98/components/signin/core/browser/account_info.cc
---- chromium-71.0.3578.98/components/signin/core/browser/account_info.cc.fix-noexcept 2019-01-02 10:57:29.194710662 -0500
-+++ chromium-71.0.3578.98/components/signin/core/browser/account_info.cc 2019-01-02 10:58:57.829965474 -0500
-@@ -32,7 +32,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return account_id.empty() && email.empty() && gaia.empty() &&
-diff -up chromium-71.0.3578.98/gpu/config/gpu_info.cc.fix-noexcept chromium-71.0.3578.98/gpu/config/gpu_info.cc
---- chromium-71.0.3578.98/gpu/config/gpu_info.cc.fix-noexcept 2018-12-20 09:50:03.320449807 -0500
-+++ chromium-71.0.3578.98/gpu/config/gpu_info.cc 2018-12-20 09:50:25.768849091 -0500
-@@ -116,7 +116,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-71.0.3578.98-norar.patch b/chromium-71.0.3578.98-norar.patch
deleted file mode 100644
index 1259088..0000000
--- a/chromium-71.0.3578.98-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn
---- chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/common/safe_browsing/BUILD.gn 2018-12-14 11:44:52.172805635 -0500
-@@ -56,40 +56,6 @@ if (safe_browsing_mode == 1) {
- ]
- }
-
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_protection_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
--
- source_set("disk_image_type_sniffer_mac") {
- sources = [
- "disk_image_type_sniffer_mac.cc",
-@@ -136,7 +102,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_protection_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS.nounrar chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS
---- chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/common/safe_browsing/DEPS 2018-12-14 11:23:58.628142952 -0500
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2018-12-12 16:56:04.000000000 -0500
-+++ chromium-71.0.3578.98/chrome/services/file_util/safe_archive_analyzer.cc 2018-12-14 11:23:58.628142952 -0500
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-71.0.3578.98-remove-sysroot-options.patch b/chromium-71.0.3578.98-remove-sysroot-options.patch
deleted file mode 100644
index a9af73b..0000000
--- a/chromium-71.0.3578.98-remove-sysroot-options.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.sysrootfix chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py
---- chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py.sysrootfix 2018-12-14 12:52:04.144860836 -0500
-+++ chromium-71.0.3578.98/tools/gn/bootstrap/bootstrap.py 2018-12-14 12:57:54.791539599 -0500
-@@ -46,10 +46,6 @@ def main(argv):
- '--build-path',
- help='The directory in which to build gn, '
- 'relative to the src directory. (eg. out/Release)')
-- parser.add_option(
-- '--with-sysroot',
-- action='store_true',
-- help='Download and build with the Debian sysroot.')
- parser.add_option('-v', '--verbose', help='ignored')
- parser.add_option(
- '--skip-generate-buildfiles',
-@@ -76,8 +72,6 @@ def main(argv):
- '--no-last-commit-position',
- '--out-path=' + gn_build_dir,
- ]
-- if not options.with_sysroot:
-- cmd.append('--no-sysroot')
- if options.debug:
- cmd.append('--debug')
- subprocess.check_call(cmd)
diff --git a/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch b/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch
deleted file mode 100644
index 5b51e3d..0000000
--- a/chromium-71.0.3578.98-vaapi-libva1-compatibility.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc.va1compat chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc
---- chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc.va1compat 2018-12-17 15:07:48.158717055 -0500
-+++ chromium-71.0.3578.98/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc 2018-12-17 15:09:49.780316983 -0500
-@@ -38,6 +38,10 @@ enum VAJDADecoderFailure {
- VAJDA_DECODER_FAILURES_MAX,
- };
-
-+#ifndef VA_FOURCC_I420
-+#define VA_FOURCC_I420 VA_FOURCC('I', '4', '2', '0')
-+#endif
-+
- static void ReportToUMA(VAJDADecoderFailure failure) {
- UMA_HISTOGRAM_ENUMERATION("Media.VAJDA.DecoderFailure", failure,
- VAJDA_DECODER_FAILURES_MAX + 1);
diff --git a/chromium-72.0.3626.121-fix-va-check.patch b/chromium-72.0.3626.121-fix-va-check.patch
deleted file mode 100644
index aa0eb71..0000000
--- a/chromium-72.0.3626.121-fix-va-check.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc
---- chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc.fixvacheck 2019-03-10 14:54:38.744305074 -0400
-+++ chromium-72.0.3626.121/media/gpu/vaapi/vaapi_wrapper.cc 2019-03-10 14:55:34.383221574 -0400
-@@ -334,15 +334,16 @@ bool VADisplayState::InitializeOnce() {
- << va_vendor_string_;
-
- // The VAAPI version is determined from what is loaded on the system by
-- // calling vaInitialize(). We want a runtime evaluation of libva version,
-- // of what is loaded on the system, with, what browser is compiled with.
-- // Also since the libva is now ABI-compatible, relax the version check
-- // which helps in upgrading the libva, without breaking any existing
-- // functionality.
-- if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
-- LOG(ERROR) << "This build of Chromium requires VA-API version "
-- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
-- << ", system version: " << major_version << "." << minor_version;
-+ // calling vaInitialize(). Since the libva is now ABI-compatible, relax the
-+ // version check which helps in upgrading the libva, without breaking any
-+ // existing functionality. Make sure the system version is not older than
-+ // the version with which the chromium is built since libva is only
-+ // guaranteed to be backward (and not forward) compatible.
-+ if (VA_MAJOR_VERSION > major_version ||
-+ (VA_MAJOR_VERSION == major_version && VA_MINOR_VERSION > minor_version)) {
-+ LOG(ERROR) << "The system version " << major_version << "." << minor_version
-+ << " should be greater than or equal to "
-+ << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION;
- return false;
- }
- return true;
diff --git a/chromium-72.0.3626.121-norar.patch b/chromium-72.0.3626.121-norar.patch
deleted file mode 100644
index d5d2632..0000000
--- a/chromium-72.0.3626.121-norar.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn
---- chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-10 14:15:47.187705953 -0400
-+++ chromium-72.0.3626.121/chrome/common/safe_browsing/BUILD.gn 2019-03-10 14:16:47.154138649 -0400
-@@ -56,40 +56,6 @@ if (safe_browsing_mode == 1) {
- ]
- }
-
-- source_set("rar_analyzer") {
-- sources = [
-- "rar_analyzer.cc",
-- "rar_analyzer.h",
-- ]
--
-- deps = [
-- ":archive_analyzer_results",
-- ":download_type_util",
-- ":file_type_policies",
-- "//base",
-- "//base:i18n",
-- "//third_party/unrar:unrar",
-- ]
--
-- defines = [
-- "_FILE_OFFSET_BITS=64",
-- "LARGEFILE_SOURCE",
-- "RAR_SMP",
-- "SILENT",
--
-- # The following is set to disable certain macro definitions in the unrar
-- # source code.
-- "CHROMIUM_UNRAR",
--
-- # Disables exceptions in unrar, replaces them with process termination.
-- "UNRAR_NO_EXCEPTIONS",
-- ]
--
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
-- }
--
- source_set("disk_image_type_sniffer_mac") {
- sources = [
- "disk_image_type_sniffer_mac.cc",
-@@ -150,7 +116,6 @@ source_set("safe_browsing") {
- deps += [
- ":archive_analyzer_results",
- ":download_type_util",
-- ":rar_analyzer",
- "//components/safe_browsing:features",
- ]
-
-diff -up chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS
---- chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS.nounrar 2019-03-01 23:10:03.000000000 -0500
-+++ chromium-72.0.3626.121/chrome/common/safe_browsing/DEPS 2019-03-10 14:14:55.430058716 -0400
-@@ -1,6 +1,5 @@
- include_rules = [
- "+components/safe_browsing",
- "+third_party/protobuf",
-- "+third_party/unrar",
- "+third_party/zlib",
- ]
-diff -up chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-01 23:10:04.000000000 -0500
-+++ chromium-72.0.3626.121/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-10 14:14:55.433058638 -0400
-@@ -47,9 +47,13 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
-
- void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
- AnalyzeRarFileCallback callback) {
-+#if 0
- DCHECK(rar_file.IsValid());
-
- safe_browsing::ArchiveAnalyzerResults results;
- safe_browsing::rar_analyzer::AnalyzeRarFile(std::move(rar_file), &results);
- std::move(callback).Run(results);
-+#else
-+ NOTREACHED();
-+#endif
- }
diff --git a/chromium-73-gcc-0.patch b/chromium-73-gcc-0.patch
deleted file mode 100644
index 5a50700..0000000
--- a/chromium-73-gcc-0.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Thu, 7 Feb 2019 22:55:37 +0000
-Subject: [PATCH] allocator shim: Swap ALIGN_LINKAGE and SHIM_ALWAYS_EXPORT's
- positions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build. GCC seems to be stricter with the position of the
-linkage specification, so just swap the terms to prevent an error that looks
-like:
-
-In file included from ../../base/allocator/allocator_shim.cc:333:
-../../base/allocator/allocator_shim_override_cpp_symbols.h:39:30: error: expected unqualified-id before string constant
- #define ALIGN_LINKAGE extern "C"
- ^~~
-../../base/allocator/allocator_shim_override_cpp_symbols.h:99:20: note: in expansion of macro ALIGN_LINKAGE
- SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
- ^~~~~~~~~~~~~
-
-Bug: 819294
-Change-Id: I0aa16ea88cead42e83796a1c86afad8b447ddc50
-Reviewed-on: https://chromium-review.googlesource.com/c/1458256
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
-Reviewed-by: Primiano Tucci <primiano(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630084}
----
- .../allocator_shim_override_cpp_symbols.h | 20 +++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/base/allocator/allocator_shim_override_cpp_symbols.h b/base/allocator/allocator_shim_override_cpp_symbols.h
-index 1228f5e33d28..01d25b7f6437 100644
---- a/base/allocator/allocator_shim_override_cpp_symbols.h
-+++ b/base/allocator/allocator_shim_override_cpp_symbols.h
-@@ -96,57 +96,57 @@ SHIM_ALWAYS_EXPORT void operator delete[](void* p, size_t) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW(std::size_t size,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW(std::size_t size,
- ALIGN_VAL_T alignment) {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_NOTHROW(
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_NOTHROW(
- std::size_t size,
- ALIGN_VAL_T alignment,
- const std::nothrow_t&) __THROW {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL(void* p, ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_SIZED(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_SIZED(void* p,
- std::size_t size,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
- ALIGN_DEL_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR(std::size_t size,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR(std::size_t size,
- ALIGN_VAL_T alignment) {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void* ALIGN_NEW_ARR_NOTHROW(
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void* ALIGN_NEW_ARR_NOTHROW(
- std::size_t size,
- ALIGN_VAL_T alignment,
- const std::nothrow_t&) __THROW {
- return ShimCppAlignedNew(size, static_cast<size_t>(alignment));
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR(void* p,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void ALIGN_DEL_ARR_SIZED(void* p,
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void ALIGN_DEL_ARR_SIZED(void* p,
- std::size_t size,
- ALIGN_VAL_T) __THROW {
- ShimCppDelete(p);
- }
-
--SHIM_ALWAYS_EXPORT ALIGN_LINKAGE void
-+ALIGN_LINKAGE SHIM_ALWAYS_EXPORT void
- ALIGN_DEL_ARR_NOTHROW(void* p, ALIGN_VAL_T, const std::nothrow_t&) __THROW {
- ShimCppDelete(p);
- }
---
-2.20.1
-
diff --git a/chromium-73-gcc-1.patch b/chromium-73-gcc-1.patch
deleted file mode 100644
index c3f8e42..0000000
--- a/chromium-73-gcc-1.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 16:58:38 +0000
-Subject: [PATCH] media::learning: Make LabelledExample's move assignment
- operator noexcept
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The GCC build is currently broken with an error like this:
-
- ../../media/learning/common/labelled_example.cc:20:1: error: function media::learning::LabelledExample::LabelledExample(media::learning::LabelledExample&&) defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification
- LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default;
- ^~~~~~~~~~~~~~~
-
-With GCC, having that noexcept marker requires all members to be marked with
-noexcept themselves, and TargetValue was missing some assignment operators
-and noexcept markers.
-
-clang is fine because we pass -fno-exceptions and it disables the same error
-there, while GCC continues to raise it (bug 843143 and its corresponding CL
-have a longer discussion on this issue).
-
-Bug: 819294
-Change-Id: Ide30932fc466ccb52d6883a82777e703dae48798
-Reviewed-on: https://chromium-review.googlesource.com/c/1458210
-Commit-Queue: Frank Liberato <liberato(a)chromium.org>
-Reviewed-by: Frank Liberato <liberato(a)chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630355}
----
- media/learning/common/labelled_example.cc | 3 ++-
- media/learning/common/labelled_example.h | 2 +-
- media/learning/common/value.cc | 6 ++++++
- media/learning/common/value.h | 4 ++++
- 4 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc
-index 76d08509298e..43e834f9f3cf 100644
---- a/media/learning/common/labelled_example.cc
-+++ b/media/learning/common/labelled_example.cc
-@@ -59,7 +59,8 @@ bool LabelledExample::operator<(const LabelledExample& rhs) const {
- LabelledExample& LabelledExample::operator=(const LabelledExample& rhs) =
- default;
-
--LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) = default;
-+LabelledExample& LabelledExample::operator=(LabelledExample&& rhs) noexcept =
-+ default;
-
- TrainingData::TrainingData() = default;
-
-diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h
-index 4f43c54e7a76..365abc3c0ebf 100644
---- a/media/learning/common/labelled_example.h
-+++ b/media/learning/common/labelled_example.h
-@@ -40,7 +40,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample {
- bool operator<(const LabelledExample& rhs) const;
-
- LabelledExample& operator=(const LabelledExample& rhs);
-- LabelledExample& operator=(LabelledExample&& rhs);
-+ LabelledExample& operator=(LabelledExample&& rhs) noexcept;
-
- // Observed feature values.
- // Note that to interpret these values, you probably need to have the
-diff --git a/media/learning/common/value.cc b/media/learning/common/value.cc
-index 9c9395c25d4e..12ea399d24c3 100644
---- a/media/learning/common/value.cc
-+++ b/media/learning/common/value.cc
-@@ -23,6 +23,12 @@ Value::Value(const std::string& x) : value_(base::PersistentHash(x)) {}
-
- Value::Value(const Value& other) : value_(other.value_) {}
-
-+Value::Value(Value&& rhs) noexcept = default;
-+
-+Value& Value::operator=(const Value& rhs) = default;
-+
-+Value& Value::operator=(Value&& rhs) noexcept = default;
-+
- bool Value::operator==(const Value& rhs) const {
- return value_ == rhs.value_;
- }
-diff --git a/media/learning/common/value.h b/media/learning/common/value.h
-index 0e64da961f34..62f4953f691c 100644
---- a/media/learning/common/value.h
-+++ b/media/learning/common/value.h
-@@ -38,6 +38,10 @@ class COMPONENT_EXPORT(LEARNING_COMMON) Value {
- explicit Value(const std::string& x);
-
- Value(const Value& other);
-+ Value(Value&&) noexcept;
-+
-+ Value& operator=(const Value&);
-+ Value& operator=(Value&&) noexcept;
-
- bool operator==(const Value& rhs) const;
- bool operator!=(const Value& rhs) const;
---
-2.20.1
-
diff --git a/chromium-73-gcc-2.patch b/chromium-73-gcc-2.patch
deleted file mode 100644
index 9d1f05a..0000000
--- a/chromium-73-gcc-2.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 02:57:28 +0000
-Subject: [PATCH] color_utils: Use std::sqrt() instead of std::sqrtf()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the build with libstdc++:
-
- ../../ui/gfx/color_utils.cc: In function SkColor color_utils::SetDarkestColorForTesting(SkColor):
- ../../ui/gfx/color_utils.cc:434:12: error: sqrtf is not a member of std
- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
- ^~~~~
- ../../ui/gfx/color_utils.cc:434:12: note: suggested alternative: sqrt
- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
- ^~~~~
- sqrt
-
-sqrtf() is not formally part of C++14 as far as I can see even though libc++
-has it in <cmath>. Additionally, we're only dealing with floats in all parts
-of the expression above, so using the float sqrt() overload should be
-harmless anyway.
-
-Bug: 819294
-Change-Id: If6c7bf31819df97a761e6963def6d6506154c34d
-Reviewed-on: https://chromium-review.googlesource.com/c/1458193
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630140}
----
- ui/gfx/color_utils.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc
-index c868cd54bac3..92ba1407d594 100644
---- a/ui/gfx/color_utils.cc
-+++ b/ui/gfx/color_utils.cc
-@@ -431,7 +431,7 @@ SkColor SetDarkestColorForTesting(SkColor color) {
- // GetContrastRatio(kWhiteLuminance, g_luminance_midpoint). The formula below
- // can be verified by plugging it into how GetContrastRatio() operates.
- g_luminance_midpoint =
-- std::sqrtf((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
-+ std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
-
- return previous_darkest_color;
- }
---
-2.20.1
-
diff --git a/chromium-73-gcc-3.patch b/chromium-73-gcc-3.patch
deleted file mode 100644
index 9cc6cf2..0000000
--- a/chromium-73-gcc-3.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Fri, 8 Feb 2019 08:44:00 +0000
-Subject: [PATCH] quic_flags_impl: Fix GCC build after #618558
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84849, having
-base::NoDestructor<T<U>> and passing an initializer list of Us does not
-work if this is not done explicitly, as GCC incorrectly fails to determine
-which constructor overload to use:
-
- ../../net/third_party/quic/platform/impl/quic_flags_impl.cc: In member function bool quic::TypedQuicFlagHelper<T>::SetFlag(const string&) const [with T = bool; std::__cxx11::string = std::__cxx11::basic_string<char>]:
- ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:156:41: error: call of overloaded NoDestructor(<brace-enclosed initializer list>) is ambiguous
- {"", "1", "t", "true", "y", "yes"});
- ^
- In file included from ../../net/third_party/quic/platform/impl/quic_flags_impl.h:16,
- from ../../net/third_party/quic/platform/impl/quic_flags_impl.cc:5:
- ../../base/no_destructor.h:62:3: note: candidate: base::NoDestructor<T>::NoDestructor(const base::NoDestructor<T>&) [with T = std::set<std::__cxx11::basic_string<char> >] <deleted>
- NoDestructor(const NoDestructor&) = delete;
- ^~~~~~~~~~~~
- ../../base/no_destructor.h:60:12: note: candidate: base::NoDestructor<T>::NoDestructor(T&&) [with T = std::set<std::__cxx11::basic_string<char> >]
- explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
- ^~~~~~~~~~~~
- ../../base/no_destructor.h:59:12: note: candidate: base::NoDestructor<T>::NoDestructor(const T&) [with T = std::set<std::__cxx11::basic_string<char> >]
- explicit NoDestructor(const T& x) { new (storage_) T(x); }
- ^~~~~~~~~~~~
-
-Explicitly use an std::initializer_list to make the build work everywhere.
-
-Bug: 819294
-Change-Id: I775be20e3766a88a656b58c94c40869cb1bee2a8
-Reviewed-on: https://chromium-review.googlesource.com/c/1458214
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: Ryan Hamilton <rch(a)chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Cr-Commit-Position: refs/heads/master@{#630249}
----
- net/third_party/quic/platform/impl/quic_flags_impl.cc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/net/third_party/quic/platform/impl/quic_flags_impl.cc b/net/third_party/quic/platform/impl/quic_flags_impl.cc
-index 5e6962d1e770..3fa45fc6892d 100644
---- a/net/third_party/quic/platform/impl/quic_flags_impl.cc
-+++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc
-@@ -5,6 +5,7 @@
- #include "net/third_party/quic/platform/impl/quic_flags_impl.h"
-
- #include <algorithm>
-+#include <initializer_list>
- #include <iostream>
- #include <set>
-
-@@ -153,9 +154,9 @@ std::string QuicFlagRegistry::GetHelp() const {
- template <>
- bool TypedQuicFlagHelper<bool>::SetFlag(const std::string& s) const {
- static const base::NoDestructor<std::set<std::string>> kTrueValues(
-- {"", "1", "t", "true", "y", "yes"});
-+ std::initializer_list<std::string>({"", "1", "t", "true", "y", "yes"}));
- static const base::NoDestructor<std::set<std::string>> kFalseValues(
-- {"0", "f", "false", "n", "no"});
-+ std::initializer_list<std::string>({"0", "f", "false", "n", "no"}));
- if (kTrueValues->find(base::ToLowerASCII(s)) != kTrueValues->end()) {
- *flag_ = true;
- return true;
---
-2.20.1
-
diff --git a/chromium-73-gcc-4.patch b/chromium-73-gcc-4.patch
deleted file mode 100644
index df7d630..0000000
--- a/chromium-73-gcc-4.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Wed, 13 Feb 2019 01:02:27 +0000
-Subject: [PATCH] BaseRenderingContext2D: Use base::CheckMul and simplify code
- in putImageData()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Follow-up to commit e0b3253a56 ("Fix image conversion truncation issues").
-The current code does not build with GCC due to
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89287:
-
- ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc: In member function void blink::BaseRenderingContext2D::putImageData(blink::ImageData*, int, int, int, int, int, int, blink::ExceptionState&):
- ../../third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc:1777:44: error: default type conversion can't deduce template argument for template<class Dst, typename std::enable_if<base::internal::IsNumericRangeContained<Dst, long unsigned int, void>::value, void>::type* <anonymous> > constexpr base::internal::StrictNumeric<T>::operator Dst() const [with Dst = Dst; typename std::enable_if<base::internal::IsNumericRangeContained<Dst, T>::value>::type* <anonymous> = <enumerator>; T = long unsigned int]
- new uint8_t[data_length.ValueOrDie()]);
- ^
-
-Work around it by using the more idiomatic base::CheckMul() with
-AssignIfValid, so that we can have |data_length| be a size_t again and not
-leave it to the compiler to figure out the type we want when creating the
-|converted_pixels| array.
-
-Bug: 819294
-Change-Id: Id124cc4f3d749b45def4708e21e4badafd708578
-Reviewed-on: https://chromium-review.googlesource.com/c/1467201
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Kentaro Hara <haraken(a)chromium.org>
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#631472}
----
- .../canvas/canvas2d/base_rendering_context_2d.cc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-index d9fa696c9a9d..34a8a202bfd3 100644
---- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-@@ -1769,12 +1769,12 @@ void BaseRenderingContext2D::putImageData(ImageData* data,
- CanvasColorParams(ColorParams().ColorSpace(), PixelFormat(), kNonOpaque);
- if (data_color_params.NeedsColorConversion(context_color_params) ||
- PixelFormat() == kF16CanvasPixelFormat) {
-- base::CheckedNumeric<size_t> data_length = data->Size().Area();
-- data_length *= context_color_params.BytesPerPixel();
-- if (!data_length.IsValid())
-+ size_t data_length;
-+ if (!base::CheckMul(data->Size().Area(),
-+ context_color_params.BytesPerPixel())
-+ .AssignIfValid(&data_length))
- return;
-- std::unique_ptr<uint8_t[]> converted_pixels(
-- new uint8_t[data_length.ValueOrDie()]);
-+ std::unique_ptr<uint8_t[]> converted_pixels(new uint8_t[data_length]);
- if (data->ImageDataInCanvasColorSettings(
- ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(),
- kRGBAColorType)) {
---
-2.20.1
-
diff --git a/chromium-73-gcc-5.patch b/chromium-73-gcc-5.patch
deleted file mode 100644
index 033861e..0000000
--- a/chromium-73-gcc-5.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Wed, 13 Feb 2019 23:28:46 +0000
-Subject: [PATCH] CastActivityManager: Do not make DoLaunchSessionParams' move
- constructor noexcept
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build:
-
- ../../chrome/browser/media/router/providers/cast/cast_activity_manager.cc:806:1: error: function media_router::CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(media_router::CastActivityManager::DoLaunchSessionParams&&) defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification
- CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
- ^~~~~~~~~~~~~~~~~~~
-
-With GCC, having that noexcept marker requires all members to be marked with
-noexcept themselves, and MediaRoute, CastMediaSource and url::Origin need
-the right annotations. Just making DoLaunchSessionParams not noexcept is the
-least intrusive solution for now.
-
-clang is fine because we pass -fno-exceptions and it disables the same error
-there, while GCC continues to raise it (bug 843143 and its corresponding CL
-have a longer discussion on this issue).
-
-Bug: 819294
-Change-Id: Ia3a5fb60b5e74e68bd35cfa50e2fcc728b64e5eb
-Reviewed-on: https://chromium-review.googlesource.com/c/1469942
-Commit-Queue: mark a. foltz <mfoltz(a)chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Reviewed-by: mark a. foltz <mfoltz(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#631962}
----
- .../media/router/providers/cast/cast_activity_manager.cc | 2 +-
- .../browser/media/router/providers/cast/cast_activity_manager.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-index b7ee9695f69a..8569e0cd30a3 100644
---- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
-@@ -804,7 +804,7 @@ CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
- callback(std::move(callback)) {}
-
- CastActivityManager::DoLaunchSessionParams::DoLaunchSessionParams(
-- DoLaunchSessionParams&& other) noexcept = default;
-+ DoLaunchSessionParams&& other) = default;
-
- CastActivityManager::DoLaunchSessionParams::~DoLaunchSessionParams() = default;
-
-diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-index 325bffc725ee..08fe0ccca603 100644
---- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
-@@ -295,7 +295,7 @@ class CastActivityManager : public cast_channel::CastMessageHandler::Observer,
- const url::Origin& origin,
- int tab_id,
- mojom::MediaRouteProvider::CreateRouteCallback callback);
-- DoLaunchSessionParams(DoLaunchSessionParams&& other) noexcept;
-+ DoLaunchSessionParams(DoLaunchSessionParams&& other);
- ~DoLaunchSessionParams();
- DoLaunchSessionParams& operator=(DoLaunchSessionParams&&) = delete;
-
---
-2.20.1
-
diff --git a/chromium-73-gcc-6.patch b/chromium-73-gcc-6.patch
deleted file mode 100644
index 752f83c..0000000
--- a/chromium-73-gcc-6.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Thu, 14 Feb 2019 22:22:21 +0000
-Subject: [PATCH] chrome/browser: Replace some forward declarations with actual
- includes
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This fixes the GCC build which was failing like this:
-
- ../../base/scoped_observer.h: In instantiation of void ScopedObserver<Source, Observer>::RemoveAll() [with Source = TabStripModel; Observer = TabStripModelObserver]:
- ../../base/scoped_observer.h:26:5: required from ScopedObserver<Source, Observer>::~ScopedObserver() [with Source = TabStripModel; Observer = TabStripModelObserver]
- ../../chrome/browser/ui/views/extensions/extension_popup.h:115:70: required from here
- ../../base/scoped_observer.h:45:20: error: invalid use of incomplete type class TabStripModel
- sources_[i]->RemoveObserver(observer_);
- ~~~~~~~~~~~~~^~~~~~~~~~~~~~
-
-This is caused by https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89311 ("Brace
-initialization needlessly invokes destructor"), i.e. having something like
-
- ScopedObserver<T, U> observer_{this};
-
-in a header declaration requires T and U to be fully declared because
-ScopedObserver's destructor references them. In a few cases, T was only
-forward-declared.
-
-Bug: 819294
-Change-Id: Ie5b9dc2745e27d4532c5539e3845a8c9147a0595
-Reviewed-on: https://chromium-review.googlesource.com/c/1472576
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Alan Cutter <alancutter(a)chromium.org>
-Reviewed-by: Finnur Thorarinsson <finnur(a)chromium.org>
-Reviewed-by: Alan Cutter <alancutter(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#632385}
----
- chrome/browser/ui/views/extensions/extension_popup.cc | 1 -
- chrome/browser/ui/views/extensions/extension_popup.h | 1 +
- chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc | 1 -
- chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h | 2 +-
- .../web_applications/extensions/bookmark_app_tab_helper.cc | 1 -
- .../web_applications/extensions/bookmark_app_tab_helper.h | 2 +-
- 6 files changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc
-index 3f0985d383dd..57d16aba9e9f 100644
---- a/chrome/browser/ui/views/extensions/extension_popup.cc
-+++ b/chrome/browser/ui/views/extensions/extension_popup.cc
-@@ -8,7 +8,6 @@
- #include "chrome/browser/devtools/devtools_window.h"
- #include "chrome/browser/extensions/extension_view_host.h"
- #include "chrome/browser/ui/browser.h"
--#include "chrome/browser/ui/tabs/tab_strip_model.h"
- #include "content/public/browser/devtools_agent_host.h"
- #include "content/public/browser/notification_details.h"
- #include "content/public/browser/notification_source.h"
-diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h
-index 3661b5bda950..9018efa0fea5 100644
---- a/chrome/browser/ui/views/extensions/extension_popup.h
-+++ b/chrome/browser/ui/views/extensions/extension_popup.h
-@@ -9,6 +9,7 @@
- #include "base/compiler_specific.h"
- #include "base/macros.h"
- #include "base/scoped_observer.h"
-+#include "chrome/browser/ui/tabs/tab_strip_model.h"
- #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
- #include "chrome/browser/ui/views/extensions/extension_view_views.h"
- #include "content/public/browser/devtools_agent_host_observer.h"
-diff --git a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-index 2a3ea8e4f91f..ac44a4f05dec 100644
---- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-+++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.h
-@@ -8,6 +8,7 @@
- #include "base/macros.h"
- #include "base/memory/weak_ptr.h"
- #include "base/scoped_observer.h"
-+#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
- #include "chrome/browser/ui/toolbar/toolbar_actions_bar_observer.h"
- #include "chrome/browser/ui/views/toolbar/app_menu_observer.h"
- #include "ui/views/controls/scroll_view.h"
-@@ -15,7 +16,6 @@ class AppMenu;
- class AppMenu;
- class Browser;
- class BrowserActionsContainer;
--class ToolbarActionsBar;
-
- namespace views {
- class MenuItemView;
diff --git a/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch b/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch
deleted file mode 100644
index 8ff952b..0000000
--- a/chromium-73.0.3683.103-glibc-2.29-clone-vfork.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.glibc229 chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
---- chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.glibc229 2019-04-16 11:49:35.353081246 -0400
-+++ chromium-73.0.3683.103/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2019-04-16 11:51:22.105794620 -0400
-@@ -134,7 +134,8 @@ namespace sandbox {
- #if !defined(OS_NACL_NONSFI)
- // Allow Glibc's and Android pthread creation flags, crash on any other
- // thread creation attempts and EPERM attempts to use neither
--// CLONE_VM, nor CLONE_THREAD, which includes all fork() implementations.
-+// CLONE_VM nor CLONE_THREAD (all fork implementations), unless CLONE_VFORK is
-+// present (as in posix_spawn).
- ResultExpr RestrictCloneToThreadsAndEPERMFork() {
- const Arg<unsigned long> flags(0);
-
-@@ -153,8 +154,14 @@ ResultExpr RestrictCloneToThreadsAndEPER
- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
- flags == kGlibcPthreadFlags);
-
-+ const uint64_t kImportantSpawnFlags = CLONE_VFORK | CLONE_VM;
-+
-+ const BoolExpr isForkOrSpawn =
-+ AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
-+ (flags & kImportantSpawnFlags) == kImportantSpawnFlags);
-+
- return If(IsAndroid() ? android_test : glibc_test, Allow())
-- .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
-+ .ElseIf(isForkOrSpawn, Error(EPERM))
- .Else(CrashSIGSYSClone());
- }
-
diff --git a/chromium-73.0.3683.75-aarch64-crashpad-limits.patch b/chromium-73.0.3683.75-aarch64-crashpad-limits.patch
deleted file mode 100644
index 4eb9529..0000000
--- a/chromium-73.0.3683.75-aarch64-crashpad-limits.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc
---- chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc.aarch64-limits 2019-03-15 12:08:21.208676651 -0400
-+++ chromium-73.0.3683.75/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.cc 2019-03-15 12:08:40.934251685 -0400
-@@ -16,6 +16,7 @@
-
- #include <stddef.h>
- #include <string.h>
-+#include <limits>
-
- #include "base/logging.h"
-
diff --git a/chromium-73.0.3683.75-el7-fix-noexcept.patch b/chromium-73.0.3683.75-el7-fix-noexcept.patch
deleted file mode 100644
index 3fc69ba..0000000
--- a/chromium-73.0.3683.75-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc
---- chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-03-11 18:00:54.000000000 -0400
-+++ chromium-73.0.3683.75/chrome/common/media_router/media_sink.cc 2019-03-20 09:45:29.400426336 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-73.0.3683.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-73.0.3683.75/components/policy/core/common/policy_map.cc
---- chromium-73.0.3683.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-03-11 18:00:56.000000000 -0400
-+++ chromium-73.0.3683.75/components/policy/core/common/policy_map.cc 2019-03-19 11:11:38.310689134 -0400
-@@ -25,7 +25,7 @@ PolicyMap::Entry::Entry() = default;
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-73.0.3683.75/components/signin/core/browser/account_info.cc.el7-noexcept chromium-73.0.3683.75/components/signin/core/browser/account_info.cc
---- chromium-73.0.3683.75/components/signin/core/browser/account_info.cc.el7-noexcept 2019-03-11 18:00:57.000000000 -0400
-+++ chromium-73.0.3683.75/components/signin/core/browser/account_info.cc 2019-03-19 11:11:38.311689112 -0400
-@@ -50,7 +50,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return account_id.empty() && email.empty() && gaia.empty() &&
-diff -up chromium-73.0.3683.75/gpu/config/gpu_info.cc.el7-noexcept chromium-73.0.3683.75/gpu/config/gpu_info.cc
---- chromium-73.0.3683.75/gpu/config/gpu_info.cc.el7-noexcept 2019-03-19 11:12:36.992435015 -0400
-+++ chromium-73.0.3683.75/gpu/config/gpu_info.cc 2019-03-19 11:12:37.061433540 -0400
-@@ -118,7 +118,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-73.0.3683.75-no-header-hygiene.patch b/chromium-73.0.3683.75-no-header-hygiene.patch
deleted file mode 100644
index a8d2a19..0000000
--- a/chromium-73.0.3683.75-no-header-hygiene.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn
---- chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn.nohh 2019-03-15 09:02:26.167929864 -0400
-+++ chromium-73.0.3683.75/third_party/swiftshader/third_party/llvm-7.0/BUILD.gn 2019-03-15 09:03:30.334433446 -0400
-@@ -74,9 +74,12 @@ config("swiftshader_llvm_private_config"
- "-Wno-unused-private-field",
- "-Wno-unused-result",
- "-Wno-unused-variable",
-- "-Wno-error=header-hygiene",
- ]
-
-+ if (is_clang) {
-+ cflags += [ "-Wno-error=header-hygiene" ]
-+ }
-+
- defines = [
- "__STDC_CONSTANT_MACROS",
- "__STDC_LIMIT_MACROS",
diff --git a/chromium-gcc5-r3.patch b/chromium-gcc5-r3.patch
deleted file mode 100644
index 7605df6..0000000
--- a/chromium-gcc5-r3.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-+++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
-@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
- allocation_length_(0),
- data_(data),
- data_length_(0),
-- kind_(AllocationKind::kNormal),
-+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
- deleter_(deleter) {}
- DataHandle(void* allocation_base,
- size_t allocation_length,
-@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
- reinterpret_cast<uintptr_t>(allocation_base_) +
- allocation_length_);
- switch (kind_) {
-- case AllocationKind::kNormal:
-+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
- DCHECK(deleter_);
- deleter_(data_);
- return;
-- case AllocationKind::kReservation:
-+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
- ReleaseReservedMemory(allocation_base_, allocation_length_);
- return;
- }
---- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000
-+++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000
-@@ -10,7 +10,7 @@
-
- #include "webrtc/modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <numeric>
- #include <vector>
-
---- a/gpu/ipc/common/mailbox_struct_traits.h
-+++ b/gpu/ipc/common/mailbox_struct_traits.h
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
---- a/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-+++ b/services/viz/public/cpp/compositing/filter_operation_struct_traits.h
-@@ -134,7 +134,7 @@ struct StructTraits<viz::mojom::FilterOperationDataView, cc::FilterOperation> {
- static base::span<const float> matrix(const cc::FilterOperation& operation) {
- if (operation.type() != cc::FilterOperation::COLOR_MATRIX)
- return base::span<const float>();
-- return operation.matrix();
-+ return base::make_span(operation.matrix());
- }
-
- static base::span<const gfx::Rect> shape(
---- a/services/viz/public/cpp/compositing/quads_struct_traits.h
-+++ b/services/viz/public/cpp/compositing/quads_struct_traits.h
-@@ -284,7 +284,7 @@
-
- static base::span<const float> vertex_opacity(const cc::DrawQuad& input) {
- const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const cc::DrawQuad& input) {
---- a/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-+++ b/third_party/WebKit/Source/platform/exported/WebCORS.cpp
-@@ -480,7 +480,7 @@ WebString AccessControlErrorString(
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -512,7 +512,7 @@ WebString PreflightErrorString(const PreflightStatus status,
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
-@@ -533,7 +533,7 @@ WebString RedirectErrorString(const RedirectStatus status,
- }
- default:
- NOTREACHED();
-- return "";
-+ return WebString();
- }
- }
-
diff --git a/chromium-gcc8-r588316.patch b/chromium-gcc8-r588316.patch
deleted file mode 100644
index d980805..0000000
--- a/chromium-gcc8-r588316.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 87902b3202f81d689dd314c17006ffc907fe12a1 Mon Sep 17 00:00:00 2001
-From: Wang Qing <wangqing-hf(a)loongson.cn>
-Date: Mon, 3 Sep 2018 02:41:08 +0000
-Subject: [PATCH] Fix build error for blink.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This CLs fixed the error of constexpr function call to non-constexpr function.
-
-Bug: 878202
-Change-Id: I6ad217a687e62a9a384980d852743a56479de3a9
-Reviewed-on: https://chromium-review.googlesource.com/1192467
-Commit-Queue: <wangqing-hf(a)loongson.cn>
-Reviewed-by: Eric Willigers <ericwilligers(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#588316}
----
- .../core/animation/animation_time_delta.cc | 22 ++++++++++++++
- .../core/animation/animation_time_delta.h | 30 +++++++------------
- 2 files changed, 32 insertions(+), 20 deletions(-)
-
-diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.cc b/third_party/blink/renderer/core/animation/animation_time_delta.cc
-index 1b25469c7f2f..2e30a18890da 100644
---- a/third_party/blink/renderer/core/animation/animation_time_delta.cc
-+++ b/third_party/blink/renderer/core/animation/animation_time_delta.cc
-@@ -7,6 +7,28 @@
- namespace blink {
-
- #if !defined(BLINK_ANIMATION_USE_TIME_DELTA)
-+// Comparison operators on AnimationTimeDelta.
-+bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() == rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() != rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() > rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() >= rhs.InSecondsF();
-+}
-+bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs) {
-+ return lhs.InSecondsF() <= rhs.InSecondsF();
-+}
-+
- std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time) {
- return os << time.InSecondsF() << " s";
- }
-diff --git a/third_party/blink/renderer/core/animation/animation_time_delta.h b/third_party/blink/renderer/core/animation/animation_time_delta.h
-index 1903c1150d3e..95d218466d90 100644
---- a/third_party/blink/renderer/core/animation/animation_time_delta.h
-+++ b/third_party/blink/renderer/core/animation/animation_time_delta.h
-@@ -90,26 +90,16 @@ AnimationTimeDelta operator*(T a, AnimationTimeDelta td) {
- }
-
- // Comparison operators on AnimationTimeDelta.
--constexpr bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() == rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() != rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() > rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() >= rhs.InSecondsF();
--}
--constexpr bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-- const AnimationTimeDelta& rhs) {
-- return lhs.InSecondsF() <= rhs.InSecondsF();
--}
-+bool CORE_EXPORT operator==(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator!=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator>(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator>=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-+bool CORE_EXPORT operator<=(const AnimationTimeDelta& lhs,
-+ const AnimationTimeDelta& rhs);
-
- // Defined to allow DCHECK_EQ/etc to work with the class.
- CORE_EXPORT std::ostream& operator<<(std::ostream& os, AnimationTimeDelta time);
---
-2.17.2
-
diff --git a/chromium-gcc8-r588547.patch b/chromium-gcc8-r588547.patch
deleted file mode 100644
index 5f12f7f..0000000
--- a/chromium-gcc8-r588547.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From e3ad3deb6a6e79284f3748fa7410311d87df91c5 Mon Sep 17 00:00:00 2001
-From: Henrique Nakashima <hnakashima(a)chromium.org>
-Date: Tue, 4 Sep 2018 16:49:51 +0000
-Subject: [PATCH] IWYU: stdint.h in pdfium_mem_buffer_file_write.h for uint8_t
-
-Bug: 879900
-Change-Id: I9c15d1c280a23c53d31f2d72c9d0d1db79eab886
-Reviewed-on: https://chromium-review.googlesource.com/1204410
-Reviewed-by: Lei Zhang <thestig(a)chromium.org>
-Commit-Queue: Henrique Nakashima <hnakashima(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#588547}
----
- pdf/pdfium/pdfium_mem_buffer_file_write.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/pdf/pdfium/pdfium_mem_buffer_file_write.h b/pdf/pdfium/pdfium_mem_buffer_file_write.h
-index 03c54bb63800..82e82d23684d 100644
---- a/pdf/pdfium/pdfium_mem_buffer_file_write.h
-+++ b/pdf/pdfium/pdfium_mem_buffer_file_write.h
-@@ -6,6 +6,7 @@
- #define PDF_PDFIUM_PDFIUM_MEM_BUFFER_FILE_WRITE_H_
-
- #include <stddef.h>
-+#include <stdint.h>
-
- #include <vector>
-
---
-2.17.2
-
diff --git a/chromium-gcc8-r589614.patch b/chromium-gcc8-r589614.patch
deleted file mode 100644
index 0c187fd..0000000
--- a/chromium-gcc8-r589614.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From cbdb8bd6567c8143dc8c1e5e86a21a8ea064eea4 Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov(a)igalia.com>
-Date: Fri, 7 Sep 2018 18:57:42 +0000
-Subject: [PATCH] OmniboxTextView: fix gcc error for structure initialization
-
-It looks like there is bug in GCC 6, which cannot go through
-structure initialization normally.
-
-Thus, instead of a default initialization of one of the members,
-explicitly initialize it to a default value.
-
-Change-Id: Ia55cc6658e6b6b2f8a80c2582dd28f001c9e648c
-Reviewed-on: https://chromium-review.googlesource.com/1213181
-Reviewed-by: Scott Violet <sky(a)chromium.org>
-Commit-Queue: Maksim Sisov <msisov(a)igalia.com>
-Cr-Commit-Position: refs/heads/master@{#589614}
----
- chrome/browser/ui/views/omnibox/omnibox_text_view.cc | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-index f0a8083dc930..9021284f166d 100644
---- a/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-+++ b/chrome/browser/ui/views/omnibox/omnibox_text_view.cc
-@@ -175,7 +175,8 @@ void ApplyTextStyleForType(SuggestionAnswer::TextStyle text_style,
- style = {part_color, .baseline = gfx::SUPERIOR};
- break;
- case SuggestionAnswer::TextStyle::BOLD:
-- style = {part_color, .weight = gfx::Font::Weight::BOLD};
-+ style = {part_color, .baseline = gfx::NORMAL_BASELINE,
-+ .weight = gfx::Font::Weight::BOLD};
- break;
- case SuggestionAnswer::TextStyle::NORMAL:
- case SuggestionAnswer::TextStyle::NORMAL_DIM:
---
-2.17.2
-
diff --git a/chromium-gcc8-r591015.patch b/chromium-gcc8-r591015.patch
deleted file mode 100644
index 65c09e8..0000000
--- a/chromium-gcc8-r591015.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From e98f8ef8b2f236ecbb01df8c39e6ee1c8fbe8d7d Mon Sep 17 00:00:00 2001
-From: Maksim Sisov <msisov(a)igalia.com>
-Date: Thu, 13 Sep 2018 15:17:29 +0000
-Subject: [PATCH] ScrollPaintPropertyNode: Rename SnapContainerData() to
- GetSnapContainerData()
-
-GCC is stricter than clang when it comes to class members' names and how
-they can change the meaning of a previously existing symbol with the same
-name.
-
-Here is a short error message:
-
-error: changes meaning of 'SnapContainerData' from 'using SnapContainerData =
-class cc::SnapContainerData' [-fpermissive] using SnapContainerData =
-cc::SnapContainerData;
-
-Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
-Change-Id: I0de5460f17b13484253e1ff0538b111c9a3b0d13
-Reviewed-on: https://chromium-review.googlesource.com/1213180
-Commit-Queue: Maksim Sisov <msisov(a)igalia.com>
-Reviewed-by: Philip Rogers <pdr(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#591015}
----
- .../blink/renderer/core/paint/paint_property_tree_update_tests.cc | 2 +-
- .../renderer/platform/graphics/compositing/property_tree_manager.cc | 2 +-
- .../blink/renderer/platform/graphics/paint/scroll_paint_property_node.h | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-index 0d999d45076f..1fe1815a5659 100644
---- a/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-+++ b/third_party/blink/renderer/core/paint/paint_property_tree_update_tests.cc
-@@ -1310,7 +1310,7 @@ TEST_P(PaintPropertyTreeUpdateTest, EnsureSnapContainerData) {
- GetDocument().View()->Resize(300, 300);
- GetDocument().View()->UpdateAllLifecyclePhases();
-
-- auto doc_snap_container_data = DocScroll()->SnapContainerData();
-+ auto doc_snap_container_data = DocScroll()->GetSnapContainerData();
- ASSERT_TRUE(doc_snap_container_data);
- EXPECT_EQ(doc_snap_container_data->scroll_snap_type().axis, SnapAxis::kBoth);
- EXPECT_EQ(doc_snap_container_data->scroll_snap_type().strictness,
-diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-index 745b8c8b387e..5f87eeea9435 100644
---- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-+++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
-@@ -333,7 +333,7 @@ void PropertyTreeManager::CreateCompositorScrollNode(
- scroll_node->OverscrollBehaviorX()),
- static_cast<cc::OverscrollBehavior::OverscrollBehaviorType>(
- scroll_node->OverscrollBehaviorY()));
-- compositor_node.snap_container_data = scroll_node->SnapContainerData();
-+ compositor_node.snap_container_data = scroll_node->GetSnapContainerData();
-
- auto compositor_element_id = scroll_node->GetCompositorElementId();
- if (compositor_element_id) {
-diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-index e1479269ccc3..5bd7f65f10ba 100644
---- a/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_paint_property_node.h
-@@ -99,7 +99,7 @@ class PLATFORM_EXPORT ScrollPaintPropertyNode
- return state_.overscroll_behavior.y;
- }
-
-- base::Optional<SnapContainerData> SnapContainerData() const {
-+ base::Optional<SnapContainerData> GetSnapContainerData() const {
- return state_.snap_container_data;
- }
-
---
-2.14.3
-
diff --git a/chromium-gn-bootstrap-r17.patch b/chromium-gn-bootstrap-r17.patch
deleted file mode 100644
index 6cfd08d..0000000
--- a/chromium-gn-bootstrap-r17.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- a/tools/gn/bootstrap/bootstrap.py
-+++ b/tools/gn/bootstrap/bootstrap.py
-@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
- {
-+ 'ENABLE_LOCATION_SOURCE': 'false',
- 'ENABLE_PROFILING': 'false',
- 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false'
- })
-@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options):
-
- write_gn_ninja(os.path.join(tempdir, 'build.ninja'),
- root_gen_dir, options)
-- cmd = ['ninja', '-C', tempdir]
-+ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
-
-@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/metrics/bucket_ranges.cc',
- 'base/metrics/field_trial.cc',
- 'base/metrics/field_trial_param_associator.cc',
-+ 'base/metrics/field_trial_params.cc',
- 'base/metrics/histogram.cc',
- 'base/metrics/histogram_base.cc',
- 'base/metrics/histogram_functions.cc',
-@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/task_scheduler/scheduler_lock_impl.cc',
- 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc',
- 'base/task_scheduler/scheduler_worker.cc',
-+ 'base/task_scheduler/scheduler_worker_pool.cc',
- 'base/task_scheduler/scheduler_worker_pool_impl.cc',
- 'base/task_scheduler/scheduler_worker_pool_params.cc',
- 'base/task_scheduler/scheduler_worker_stack.cc',
-@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/third_party/icu/icu_utf.cc',
- 'base/third_party/nspr/prtime.cc',
- 'base/threading/post_task_and_reply_impl.cc',
-+ 'base/threading/scoped_blocking_call.cc',
- 'base/threading/sequence_local_storage_map.cc',
- 'base/threading/sequenced_task_runner_handle.cc',
- 'base/threading/sequenced_worker_pool.cc',
-@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- 'base/unguessable_token.cc',
- 'base/value_iterators.cc',
- 'base/values.cc',
-- 'base/value_iterators.cc',
- 'base/vlog.cc',
- ])
-
-@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options):
- static_libraries['base']['sources'].extend([
- 'base/memory/shared_memory_handle_posix.cc',
- 'base/memory/shared_memory_posix.cc',
-- 'base/memory/shared_memory_tracker.cc',
- 'base/nix/xdg_util.cc',
- 'base/process/internal_linux.cc',
- 'base/process/memory_linux.cc',
-@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options):
- cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args]
- check_call(cmd)
-
-- cmd = ['ninja', '-C', build_dir]
-+ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err']
- if options.verbose:
- cmd.append('-v')
- cmd.append('gn')
diff --git a/chromium-math.h-r0.patch b/chromium-math.h-r0.patch
deleted file mode 100644
index 6c7c747..0000000
--- a/chromium-math.h-r0.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson(a)chromium.org>
-Date: Sat, 27 Jan 2018 20:03:37 +0000
-Subject: [PATCH] Fix build with glibc 2.27
-
-BUG=806340
-TBR=hamelphi(a)chromium.org
-
-Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e
-Reviewed-on: https://chromium-review.googlesource.com/890059
-Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
-Reviewed-by: Philippe Hamel <hamelphi(a)chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#532249}
----
-
-diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc
-index 54d4dbd..ceedd8f 100644
---- a/components/assist_ranker/ranker_example_util.cc
-+++ b/components/assist_ranker/ranker_example_util.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <math.h>
-+
- #include "components/assist_ranker/ranker_example_util.h"
- #include "base/bit_cast.h"
- #include "base/format_macros.h"
diff --git a/chromium-stdint.patch b/chromium-stdint.patch
deleted file mode 100644
index 8774439..0000000
--- a/chromium-stdint.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela(a)gmail.com>
-Date: Wed, 31 Jan 2018 18:57:07 +0000
-Subject: [PATCH] Add missing stdint include
-
-diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc
-index c2ca777ce90c..53cb3aab1576 100644
---- a/chrome/browser/vr/sample_queue.cc
-+++ b/chrome/browser/vr/sample_queue.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <stdint.h>
-+
- #include "chrome/browser/vr/sample_queue.h"
-
- namespace vr {
---
-2.16.2
-
diff --git a/chromium.spec b/chromium.spec
index de018ef..d734490 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -174,175 +174,130 @@ License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and Open
Patch0: chromium-67.0.3396.62-gcc5.patch
Patch1: chromium-45.0.2454.101-linux-path-max.patch
Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch4: chromium-72.0.3626.121-notest.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch6: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch7: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+Patch3: chromium-72.0.3626.121-notest.patch
# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch9: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
+Patch4: chromium-48.0.2564.116-libusb_interrupt_event_handler.patch
# Ignore deprecations in cups 2.2
# https://bugs.chromium.org/p/chromium/issues/detail?id=622493
-Patch12: chromium-55.0.2883.75-cups22.patch
+Patch5: chromium-55.0.2883.75-cups22.patch
# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch15: chromium-70.0.3538.67-sandbox-pie.patch
+Patch6: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch18: chromium-68.0.3440.106-master-prefs-path.patch
-# Disable MADV_FREE (if set by glibc)
-# https://bugzilla.redhat.com/show_bug.cgi?id=1361157
-Patch19: chromium-52.0.2743.116-unset-madv_free.patch
+Patch7: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch20: chromium-67.0.3396.62-gn-system.patch
-# Fix last commit position issue
-# https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/7nlJv486bD4
-# Patch21: chromium-60.0.3112.78-last-commit-position.patch
+Patch8: chromium-67.0.3396.62-gn-system.patch
# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch22: chromium-53.0.2785.92-boringssl-time-fix.patch
+Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch24: chromium-63.0.3289.84-nullfix.patch
+Patch10: chromium-63.0.3289.84-nullfix.patch
# Add explicit includedir for jpeglib.h
-Patch25: chromium-54.0.2840.59-jpeg-include-dir.patch
+Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch26: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
-# obj/content/renderer/renderer/child_frame_compositing_helper.o: In function `content::ChildFrameCompositingHelper::OnSetSurface(cc::SurfaceId const&, gfx::Size const&, float, cc::SurfaceSequence const&)':
-# /builddir/build/BUILD/chromium-54.0.2840.90/out/Release/../../content/renderer/child_frame_compositing_helper.cc:214: undefined reference to `cc_blink::WebLayerImpl::setOpaque(bool)'
-# Patch27: chromium-63.0.3289.84-setopaque.patch
-# Use -fpermissive to build WebKit
-# Patch31: chromium-56.0.2924.87-fpermissive.patch
-# Fix issue with compilation on gcc7
-# Thanks to Ben Noordhuis
-# Patch33: chromium-65.0.3325.146-gcc7.patch
+Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch36: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
+Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch37: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
# Nacl can't die soon enough
-Patch39: chromium-66.0.3359.117-system-clang.patch
+Patch15: chromium-66.0.3359.117-system-clang.patch
# Do not prefix libpng functions
-Patch42: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch43: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch45: chromium-75.0.3770.80-no-zlib-mangle.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch46: chromium-62.0.3202.62-kmaxskip-constexpr.patch
-Patch47: chromium-60.0.3112.90-vulkan-force-c99.patch
+Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
-Patch50: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch53: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
-# Only needed when glibc 2.26.90 or later is used
-Patch57: chromium-63.0.3289.84-aarch64-glibc-2.26.90.patch
+Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
# From gentoo
-Patch62: chromium-72.0.3626.121-gcc5-r3.patch
-# Do not try to use libc++ in the remoting stack
-# Patch63: chromium-63.0.3289.84-nolibc++.patch
+Patch21: chromium-72.0.3626.121-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
-Patch65: chromium-65.0.3325.146-gcc-round-fix.patch
+Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
-Patch67: chromium-65.0.3325.146-memcpy-fix.patch
+Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch85: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-68.0.3440.106-boolfix.patch
# From Debian
-Patch86: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
-# Use lstdc++ on EPEL7 only
-Patch87: chromium-75.0.3770.100-epel7-stdc++.patch
+Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Missing files in tarball
-Patch88: chromium-66.0.3359.117-missing-files.patch
-# https://chromium.googlesource.com/chromium/src/+/ba4141e451f4e0b1b19410b1...
-# Patch89: chromium-66.0.3359.117-gcc-optional-move-fixes.patch
-# https://chromium.googlesource.com/chromium/src/+/4f2b52281ce1649ea8347489...
-# Patch90: chromium-66.0.3359.117-gcc-copy-constructor-fix.patch
-# https://bugs.chromium.org/p/chromium/issues/detail?id=816952
-# Patch91: chromium-66.0.3359.117-gcc-vector-copy-constructor-fix.patch
+Patch26: chromium-66.0.3359.117-missing-files.patch
# Do not use unrar code, it is non-free
-Patch92: chromium-73.0.3683.75-norar.patch
+Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
-Patch93: chromium-66.0.3359.117-GCC-build-fix-base-Optional-T-requires-the-full-decl.patch
-Patch94: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Patch95: chromium-65.0.3325.146-GCC-IDB-methods-String-renamed-to-GetString.patch
-# https://github.com/archlinuxarm/PKGBUILDs/blob/master/extra/chromium/0006...
-# Patch96: chromium-66.0.3359.117-GCC-do-not-use-initializer-list-for-NoDestructor-of-.patch
-# https://chromium.googlesource.com/chromium/src/+/b84682f31dc99b9c90f5a049...
-# Patch97: chromium-66.0.3359.139-arm-init-fix.patch
-# GCC8 has changed the alignof operator to return the minimal alignment required by the target ABI
-# instead of the preferred alignment. This means int64_t is now 4 on i686 (instead of 8).
-# Use __alignof__ to get the value we expect (and chromium checks for).
-# Patch98: chromium-69.0.3497.81-gcc8-alignof.patch
-# RHEL 7 has a bug in its python2.7 which does not propely handle exec with a tuple
-# https://bugs.python.org/issue21591
-Patch100: chromium-67.0.3396.62-epel7-use-old-python-exec-syntax.patch
+Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch101: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
# Try to fix version.py for Rawhide
-Patch103: chromium-71.0.3578.98-py2-bootstrap.patch
+Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch110: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch111: chromium-71.0.3578.98-widevine-r3.patch
+Patch32: chromium-71.0.3578.98-widevine-r3.patch
# Do not require sysroot
# Forget about trying to make libc++
# BUILD SANELY PLEASE
-Patch112: chromium-69.0.3497.81-build-sanely-please.patch
-# Still moar GCC cleanups from upstream
-# Patch113: chromium-gcc8-r588316.patch
-# Patch114: chromium-gcc8-r588547.patch
-# Patch115: chromium-gcc8-r589614.patch
-# Patch116: chromium-gcc8-r591015.patch
+Patch33: chromium-69.0.3497.81-build-sanely-please.patch
# Disable fontconfig cache magic that breaks remoting
-Patch117: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
+Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# Fix aarch64 build against latest linux kernel headers
-Patch119: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
-# Enable VAAPI support on Linux
-# NOTE: This patch will never land upstream
-Patch121: enable-vaapi.patch
-Patch122: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
-# Fix compatibility with VA-API library (libva) version 1
-Patch124: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch126: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
-# Thanks Ubuntu
-# Disable these two patches when v75 lands
-Patch130: revert-gn-4980.patch
-Patch131: revert-gn-4960.patch
+Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch132: chromium-widevine-other-locations.patch
+Patch37: chromium-widevine-other-locations.patch
# Disable -fno-delete-null-pointer-checks
-Patch135: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
# Add #include <cstring> to get pipewire code to build
-Patch136: chromium-73.0.3683.75-pipewire-cstring-fix.patch
-# el7 only patch
-Patch139: chromium-75.0.3770.100-el7-fix-noexcept.patch
+Patch39: chromium-73.0.3683.75-pipewire-cstring-fix.patch
# gcc does not have __assume
-Patch140: chromium-75.0.3770.80-gcc-no-assume.patch
+Patch40: chromium-75.0.3770.80-gcc-no-assume.patch
# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch141: chromium-75.0.3770.80-SIOCGSTAMP.patch
+Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# https://chromium.googlesource.com/chromium/src/+/aeed4d1f15ce84a17ea0bc21...
-Patch142: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+Patch42: chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
-Patch143: chromium-75.0.3770.80-revert-daff6b.patch
+Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# Avoid pure virtual crash destroying RenderProcessUserData
# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch144: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch145: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch146: chromium-75.0.3770.100-fix-v8-gcc.patch
+Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
# https://chromium.googlesource.com/chromium/src/+/00281713519dbd84b90d2996...
-Patch147: chromium-75.0.3770.100-git00281713.patch
+Patch47: chromium-75.0.3770.100-git00281713.patch
+# Apply these changes to work around EPEL7 compiler issues
+Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
+# Use lstdc++ on EPEL7 only
+Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
+# el7 only patch
+Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+
+# In file included from ../linux/directory.c:21:
+# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
+# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
+# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
+# ^
+# 1 error generated.
+Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+# Ignore broken nacl open fd counter
+Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+
+# Enable VAAPI support on Linux
+# NOTE: This patch will never land upstream
+Patch202: enable-vaapi.patch
+Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
+# Fix compatibility with VA-API library (libva) version 1
+Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -837,97 +792,73 @@ udev.
%patch0 -p1 -b .gcc5
%patch1 -p1 -b .pathmax
%patch2 -p1 -b .addrfix
-%patch4 -p1 -b .notest
-# %%patch6 -p1 -b .gnu-inline
-%patch7 -p1 -b .ignore-fd-count
-%patch9 -p1 -b .modern-libusbx
-%patch12 -p1 -b .cups22
-%patch15 -p1 -b .sandboxpie
-%patch18 -p1 -b .etc
-# %%patch19 -p1 -b .madv_free
-%patch20 -p1 -b .gnsystem
-# %%patch21 -p1 -b .lastcommit
-%patch22 -p1 -b .timefix
-%patch24 -p1 -b .nullfix
-%patch25 -p1 -b .jpegfix
-%patch26 -p1 -b .ldmemory
-# %%patch27 -p1 -b .setopaque
-# %%patch31 -p1 -b .permissive
-# %%patch33 -p1 -b .gcc7
-%patch36 -p1 -b .revert
-%patch37 -p1 -b .ffmpeg-stdatomic
-%patch39 -p1 -b .system-clang
-%patch42 -p1 -b .noprefix
-%patch43 -p1 -b .nomangle
-%patch45 -p1 -b .nozmangle
-%if 0%{?rhel} == 7
-%patch46 -p1 -b .kmaxskip
-# %%patch47 -p1 -b .c99
-%endif
-%patch50 -p1 -b .pathfix
-%patch53 -p1 -b .nogccoptmath
-# %%if 0%%{?fedora} >= 28
-# %%patch57 -p1 -b .aarch64glibc
-# %%endif
-%patch62 -p1 -b .gcc5-r3
-# %%patch63 -p1 -b .nolibc++
-%patch65 -p1 -b .gcc-round-fix
-%patch67 -p1 -b .memcpyfix
-%patch85 -p1 -b .boolfix
-%patch86 -p1 -b .aarch64fix
-%if 0%{?rhel} == 7
-%patch87 -p1 -b .epel7
-%endif
-%patch88 -p1 -b .missing
-# %%patch89 -p1 -b .gccomove
-# %%patch90 -p1 -b .copycon
-# %%patch91 -p1 -b .944404
-%patch92 -p1 -b .nounrar
-# %%patch93 -p1 -b .gcc-full-decl
-%patch94 -p1 -b .gcc-cpolicyprovider
-# %%patch95 -p1 -b .gcc-getstring
-# %%patch96 -p1 -b .flatsetfix
-# %%patch97 -p1 -b .arm-init-fix
-# %%patch98 -p1 -b .gcc8-alignof
+%patch3 -p1 -b .notest
+%patch4 -p1 -b .modern-libusbx
+%patch5 -p1 -b .cups22
+%patch6 -p1 -b .sandboxpie
+%patch7 -p1 -b .etc
+%patch8 -p1 -b .gnsystem
+%patch9 -p1 -b .timefix
+%patch10 -p1 -b .nullfix
+%patch11 -p1 -b .jpegfix
+%patch12 -p1 -b .ldmemory
+%patch13 -p1 -b .revert
+%patch14 -p1 -b .ffmpeg-stdatomic
+%patch15 -p1 -b .system-clang
+%patch16 -p1 -b .noprefix
+%patch17 -p1 -b .nomangle
+%patch18 -p1 -b .nozmangle
+%patch19 -p1 -b .pathfix
+%patch20 -p1 -b .nogccoptmath
+%patch21 -p1 -b .gcc5-r3
+%patch22 -p1 -b .gcc-round-fix
+%patch23 -p1 -b .memcpyfix
+%patch24 -p1 -b .boolfix
+%patch25 -p1 -b .aarch64fix
+%patch26 -p1 -b .missing-files
+%patch27 -p1 -b .nounrar
+%patch28 -p1 -b .gcc-cpolicyprovider
+%patch29 -p1 -b .fedora-user-agent
+%patch30 -p1 -b .py2
+%patch31 -p1 -b .fix-default-redeclaration
+%patch32 -p1 -b .wvhack
+%patch33 -p1 -b .sanebuild
+%patch34 -p1 -b .nofc
+%patch35 -p1 -b .aarch64-new-stat
+%patch36 -p1 -b .gcc9
+%patch37 -p1 -b .widevine-other-locations
+%patch38 -p1 -b .disable-ndnpc
+%patch39 -p1 -b .cstring-fix
+%patch40 -p1 -b .gcc-assume
+%patch41 -p1 -b .SIOCGSTAMP
+%patch42 -p1 -b .gcc-dcheck_ne-fix
+%patch43 -p1 -b .revert-daff6b
+%patch44 -p1 -b .pure-virtual-fix
+%patch45 -p1 -b .gettid-fix
+%patch46 -p1 -b .fix-v8-gcc
+%patch47 -p1 -b .git00281713
+
+# EPEL specific patches
%if 0%{?rhel} == 7
-# %%patch100 -p1 -b .oldexec
-%endif
-%patch101 -p1 -b .fedora-user-agent
-%patch103 -p1 -b .py2
-# %%patch108 -p1 -b .move-unique-ptr
-%patch110 -p1 -b .fix-default-redeclaration
-%patch111 -p1 -b .wvhack
-%patch112 -p1 -b .sanebuild
-# %%patch113 -p1 -b .r588316
-# %%patch114 -p1 -b .r588547
-# %%patch115 -p1 -b .r589614
-# %%patch116 -p1 -b .r591015
-%patch117 -p1 -b .nofc
-%patch119 -p1 -b .aarch64-new-stat
-%if %{use_vaapi}
-%patch121 -p1 -b .vaapi
+%patch100 -p1 -b .kmaxskip
+%patch101 -p1 -b .epel7
+%patch102 -p1 -b .el7-noexcept
+%endif
+
+# Feature specific patches
+%if ! 0%{?killnacl}
+%patch200 -p1 -b .gnu-inline
+%patch201 -p1 -b .ignore-fd-count
%endif
+
+%if %{use_vaapi}
+%patch202 -p1 -b .vaapi
%ifarch i686
-%patch122 -p1 -b .i686permissive
-%endif
-%patch124 -p1 -b .va1compat
-%patch126 -p1 -b .gcc9
-# %%patch130 -p1 -b .revert-gn-4980
-# %%patch131 -p1 -b .revert-gn-4960
-%patch132 -p1 -b .widevine-other-locations
-%patch135 -p1 -b .disable-ndnpc
-%patch136 -p1 -b .cstring-fix
-%if 0%{?rhel} == 7
-%patch139 -p1 -b .el7-noexcept
-%endif
-%patch140 -p1 -b .gcc-assume
-%patch141 -p1 -b .SIOCGSTAMP
-%patch142 -p1 -b .gcc-dcheck_ne-fix
-%patch143 -p1 -b .revert-daff6b
-%patch144 -p1 -b .pure-virtual-fix
-%patch145 -p1 -b .gettid-fix
-%patch146 -p1 -b .fix-v8-gcc
-%patch147 -p1 -b .git00281713
+%patch203 -p1 -b .i686permissive
+%patch204 -p1 -b .va1compat
+%endif
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
diff --git a/relax-libva-version.patch b/relax-libva-version.patch
deleted file mode 100644
index e297fd6..0000000
--- a/relax-libva-version.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 6f1309ef8fe10965e4d0018b4f1b80ac6deccdaa Mon Sep 17 00:00:00 2001
-From: Azhar Shaikh <azhar.shaikh(a)intel.com>
-Date: Fri, 30 Nov 2018 23:11:57 +0000
-Subject: [PATCH] media/gpu/vaapi: Relax the version check for VA-API
-
-Since the newer versions of VA-API are ABI compatible, relax the
-version checks for VA-API, by using VA_CHECK_VERSION().
-This will help in updating the libva to the latest releases,
-while still supporting the old versions, till the new version of
-libva is merged and picked by the builds. Thus ensuring that
-hardware accleration is not broken while updating the libva.
-
-Bug: 905814
-TEST=libva-2.3.0 and libva-2.1.0 are able to do hardware acceleration.
-
-Suggested-by: Alexandre Courbot <acourbot(a)chromium.org>
-Signed-off-by: Azhar Shaikh <azhar.shaikh(a)intel.com>
-Change-Id: I510549f72290d20676927eeeeb89a87199c062af
-Reviewed-on: https://chromium-review.googlesource.com/c/1352519
-Reviewed-by: Alexandre Courbot <acourbot(a)chromium.org>
-Reviewed-by: Hirokazu Honda <hiroh(a)chromium.org>
-Commit-Queue: Miguel Casas <mcasas(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#612832}
----
-
-diff --git a/AUTHORS b/AUTHORS
-index 567fe15..ff42fc5 100644
---- a/AUTHORS
-+++ b/AUTHORS
-@@ -103,6 +103,7 @@
- Attila Dusnoki <dati91(a)gmail.com>
- Avinaash Doreswamy <avi.nitk(a)samsung.com>
- Ayush Khandelwal <k.ayush(a)samsung.com>
-+Azhar Shaikh <azhar.shaikh(a)intel.com>
- Balazs Kelemen <b.kelemen(a)samsung.com>
- Baul Eun <baul.eun(a)samsung.com>
- Behara Mani Shyam Patro <behara.ms(a)samsung.com>
-diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
-index b415642..053384d 100644
---- a/media/gpu/vaapi/vaapi_wrapper.cc
-+++ b/media/gpu/vaapi/vaapi_wrapper.cc
-@@ -333,7 +333,13 @@
- DVLOG(1) << "VAAPI version: " << major_version << "." << minor_version << " "
- << va_vendor_string_;
-
-- if (major_version != VA_MAJOR_VERSION || minor_version != VA_MINOR_VERSION) {
-+ // The VAAPI version is determined from what is loaded on the system by
-+ // calling vaInitialize(). We want a runtime evaluation of libva version,
-+ // of what is loaded on the system, with, what browser is compiled with.
-+ // Also since the libva is now ABI-compatible, relax the version check
-+ // which helps in upgrading the libva, without breaking any existing
-+ // functionality.
-+ if (!VA_CHECK_VERSION(major_version, minor_version, 0)) {
- LOG(ERROR) << "This build of Chromium requires VA-API version "
- << VA_MAJOR_VERSION << "." << VA_MINOR_VERSION
- << ", system version: " << major_version << "." << minor_version;
diff --git a/revert-gn-4960.patch b/revert-gn-4960.patch
deleted file mode 100644
index bb51ada..0000000
--- a/revert-gn-4960.patch
+++ /dev/null
@@ -1,655 +0,0 @@
-Description: revert https://gn.googlesource.com/gn/+/0d038c2e0a32a528713d3dfaf1f1e0cdfe87fd46, which breaks the chromium build
-
---- a/tools/gn/build/gen.py
-+++ b/tools/gn/build/gen.py
-@@ -522,6 +522,7 @@ def WriteGNNinja(path, platform, host, o
- 'tools/gn/setup.cc',
- 'tools/gn/source_dir.cc',
- 'tools/gn/source_file.cc',
-+ 'tools/gn/source_file_type.cc',
- 'tools/gn/standard_out.cc',
- 'tools/gn/string_utils.cc',
- 'tools/gn/substitution_list.cc',
---- a/tools/gn/tools/gn/c_tool.h
-+++ b/tools/gn/tools/gn/c_tool.h
-@@ -12,6 +12,7 @@
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
- #include "tools/gn/tool.h"
---- a/tools/gn/tools/gn/compile_commands_writer.cc
-+++ b/tools/gn/tools/gn/compile_commands_writer.cc
-@@ -122,7 +122,7 @@ void WriteCommand(const Target* target,
- const CompileFlags& flags,
- std::vector<OutputFile>& tool_outputs,
- PathOutput& path_output,
-- SourceFile::Type source_type,
-+ SourceFileType source_type,
- const char* tool_name,
- EscapeOptions opts,
- std::string* compile_commands) {
-@@ -144,16 +144,16 @@ void WriteCommand(const Target* target,
- } else if (range.type == &CSubstitutionCFlags) {
- command_out << flags.cflags;
- } else if (range.type == &CSubstitutionCFlagsC) {
-- if (source_type == SourceFile::SOURCE_C)
-+ if (source_type == SOURCE_C)
- command_out << flags.cflags_c;
- } else if (range.type == &CSubstitutionCFlagsCc) {
-- if (source_type == SourceFile::SOURCE_CPP)
-+ if (source_type == SOURCE_CPP)
- command_out << flags.cflags_cc;
- } else if (range.type == &CSubstitutionCFlagsObjC) {
-- if (source_type == SourceFile::SOURCE_M)
-+ if (source_type == SOURCE_M)
- command_out << flags.cflags_objc;
- } else if (range.type == &CSubstitutionCFlagsObjCc) {
-- if (source_type == SourceFile::SOURCE_MM)
-+ if (source_type == SOURCE_MM)
- command_out << flags.cflags_objcc;
- } else if (range.type == &SubstitutionLabel ||
- range.type == &SubstitutionLabelName ||
-@@ -222,11 +222,9 @@ void CompileCommandsWriter::RenderJSON(c
- for (const auto& source : target->sources()) {
- // If this source is not a C/C++/ObjC/ObjC++ source (not header) file,
- // continue as it does not belong in the compilation database.
-- SourceFile::Type source_type = source.type();
-- if (source_type != SourceFile::SOURCE_CPP &&
-- source_type != SourceFile::SOURCE_C &&
-- source_type != SourceFile::SOURCE_M &&
-- source_type != SourceFile::SOURCE_MM)
-+ SourceFileType source_type = GetSourceFileType(source);
-+ if (source_type != SOURCE_CPP && source_type != SOURCE_C &&
-+ source_type != SOURCE_M && source_type != SOURCE_MM)
- continue;
-
- const char* tool_name = Tool::kToolNone;
-@@ -324,4 +322,4 @@ void CompileCommandsWriter::VisitDeps(co
- VisitDeps(pair.ptr, visited);
- }
- }
--}
-+}
-\ No newline at end of file
---- a/tools/gn/tools/gn/general_tool.h
-+++ b/tools/gn/tools/gn/general_tool.h
-@@ -11,6 +11,7 @@
- #include "base/macros.h"
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
- #include "tools/gn/tool.h"
---- a/tools/gn/tools/gn/header_checker.cc
-+++ b/tools/gn/tools/gn/header_checker.cc
-@@ -18,6 +18,7 @@
- #include "tools/gn/err.h"
- #include "tools/gn/filesystem_utils.h"
- #include "tools/gn/scheduler.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/target.h"
- #include "tools/gn/trace.h"
- #include "util/worker_pool.h"
-@@ -151,10 +152,9 @@ void HeaderChecker::RunCheckOverFiles(co
-
- for (const auto& file : files) {
- // Only check C-like source files (RC files also have includes).
-- SourceFile::Type type = file.first.type();
-- if (type != SourceFile::SOURCE_CPP && type != SourceFile::SOURCE_H &&
-- type != SourceFile::SOURCE_C && type != SourceFile::SOURCE_M &&
-- type != SourceFile::SOURCE_MM && type != SourceFile::SOURCE_RC)
-+ SourceFileType type = GetSourceFileType(file.first);
-+ if (type != SOURCE_CPP && type != SOURCE_H && type != SOURCE_C &&
-+ type != SOURCE_M && type != SOURCE_MM && type != SOURCE_RC)
- continue;
-
- if (!check_generated_) {
---- a/tools/gn/tools/gn/ninja_binary_target_writer.cc
-+++ b/tools/gn/tools/gn/ninja_binary_target_writer.cc
-@@ -23,23 +23,22 @@
- #include "tools/gn/ninja_utils.h"
- #include "tools/gn/scheduler.h"
- #include "tools/gn/settings.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/string_utils.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/target.h"
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::CSourceUsed() {
-- return Get(SourceFile::SOURCE_CPP) || Get(SourceFile::SOURCE_H) ||
-- Get(SourceFile::SOURCE_C) || Get(SourceFile::SOURCE_M) ||
-- Get(SourceFile::SOURCE_MM) || Get(SourceFile::SOURCE_RC) ||
-- Get(SourceFile::SOURCE_S);
-+ return Get(SOURCE_CPP) || Get(SOURCE_H) || Get(SOURCE_C) || Get(SOURCE_M) ||
-+ Get(SOURCE_MM) || Get(SOURCE_RC) || Get(SOURCE_S);
- }
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::RustSourceUsed() {
-- return Get(SourceFile::SOURCE_RS);
-+ return Get(SOURCE_RS);
- }
-
- bool NinjaBinaryTargetWriter::SourceFileTypeSet::GoSourceUsed() {
-- return Get(SourceFile::SOURCE_GO);
-+ return Get(SOURCE_GO);
- }
-
- NinjaBinaryTargetWriter::NinjaBinaryTargetWriter(const Target* target,
-@@ -50,6 +49,10 @@ NinjaBinaryTargetWriter::NinjaBinaryTarg
- NinjaBinaryTargetWriter::~NinjaBinaryTargetWriter() = default;
-
- void NinjaBinaryTargetWriter::Run() {
-+ SourceFileTypeSet used_types;
-+ for (const auto& source : target_->sources())
-+ used_types.Set(GetSourceFileType(source));
-+
- NinjaCBinaryTargetWriter writer(target_, out_);
- writer.Run();
- }
---- a/tools/gn/tools/gn/ninja_binary_target_writer.h
-+++ b/tools/gn/tools/gn/ninja_binary_target_writer.h
-@@ -23,12 +23,11 @@ class NinjaBinaryTargetWriter : public N
- class SourceFileTypeSet {
- public:
- SourceFileTypeSet() {
-- memset(flags_, 0,
-- sizeof(bool) * static_cast<int>(SourceFile::SOURCE_NUMTYPES));
-+ memset(flags_, 0, sizeof(bool) * static_cast<int>(SOURCE_NUMTYPES));
- }
-
-- void Set(SourceFile::Type type) { flags_[static_cast<int>(type)] = true; }
-- bool Get(SourceFile::Type type) const {
-+ void Set(SourceFileType type) { flags_[static_cast<int>(type)] = true; }
-+ bool Get(SourceFileType type) const {
- return flags_[static_cast<int>(type)];
- }
-
-@@ -37,7 +36,7 @@ class NinjaBinaryTargetWriter : public N
- bool GoSourceUsed();
-
- private:
-- bool flags_[static_cast<int>(SourceFile::SOURCE_NUMTYPES)];
-+ bool flags_[static_cast<int>(SOURCE_NUMTYPES)];
- };
-
- NinjaBinaryTargetWriter(const Target* target, std::ostream& out);
---- a/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
-+++ b/tools/gn/tools/gn/ninja_c_binary_target_writer.cc
-@@ -24,6 +24,7 @@
- #include "tools/gn/ninja_utils.h"
- #include "tools/gn/scheduler.h"
- #include "tools/gn/settings.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/string_utils.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/target.h"
-@@ -66,27 +67,27 @@ void AddSourceSetObjectFiles(const Targe
- if (source_set->GetOutputFilesForSource(source, &tool_name, &tool_outputs))
- obj_files->push_back(tool_outputs[0]);
-
-- used_types.Set(source.type());
-+ used_types.Set(GetSourceFileType(source));
- }
-
- // Add MSVC precompiled header object files. GCC .gch files are not object
- // files so they are omitted.
- if (source_set->config_values().has_precompiled_headers()) {
-- if (used_types.Get(SourceFile::SOURCE_C)) {
-+ if (used_types.Get(SOURCE_C)) {
- const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCc);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
- GetPCHOutputFiles(source_set, CTool::kCToolCc, &tool_outputs);
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_CPP)) {
-+ if (used_types.Get(SOURCE_CPP)) {
- const CTool* tool = source_set->toolchain()->GetToolAsC(CTool::kCToolCxx);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
- GetPCHOutputFiles(source_set, CTool::kCToolCxx, &tool_outputs);
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_M)) {
-+ if (used_types.Get(SOURCE_M)) {
- const CTool* tool =
- source_set->toolchain()->GetToolAsC(CTool::kCToolObjC);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
-@@ -94,7 +95,7 @@ void AddSourceSetObjectFiles(const Targe
- obj_files->Append(tool_outputs.begin(), tool_outputs.end());
- }
- }
-- if (used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_MM)) {
- const CTool* tool =
- source_set->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
- if (tool && tool->precompiled_header_type() == CTool::PCH_MSVC) {
-@@ -118,7 +119,7 @@ void NinjaCBinaryTargetWriter::Run() {
- // Figure out what source types are needed.
- SourceFileTypeSet used_types;
- for (const auto& source : target_->sources())
-- used_types.Set(source.type());
-+ used_types.Set(GetSourceFileType(source));
-
- WriteCompilerVars(used_types);
-
-@@ -234,34 +235,31 @@ void NinjaCBinaryTargetWriter::WriteComp
- target_->config_values().has_precompiled_headers();
-
- EscapeOptions opts = GetFlagOptions();
-- if (used_types.Get(SourceFile::SOURCE_S) ||
-- used_types.Get(SourceFile::SOURCE_ASM)) {
-+ if (used_types.Get(SOURCE_S) || used_types.Get(SOURCE_ASM)) {
- WriteOneFlag(target_, &CSubstitutionAsmFlags, false, Tool::kToolNone,
- &ConfigValues::asmflags, opts, path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_C) ||
-- used_types.Get(SourceFile::SOURCE_CPP) ||
-- used_types.Get(SourceFile::SOURCE_M) ||
-- used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_C) || used_types.Get(SOURCE_CPP) ||
-+ used_types.Get(SOURCE_M) || used_types.Get(SOURCE_MM)) {
- WriteOneFlag(target_, &CSubstitutionCFlags, false, Tool::kToolNone,
- &ConfigValues::cflags, opts, path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_C)) {
-+ if (used_types.Get(SOURCE_C)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsC, has_precompiled_headers,
- CTool::kCToolCc, &ConfigValues::cflags_c, opts, path_output_,
- out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_CPP)) {
-+ if (used_types.Get(SOURCE_CPP)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsCc, has_precompiled_headers,
- CTool::kCToolCxx, &ConfigValues::cflags_cc, opts, path_output_,
- out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_M)) {
-+ if (used_types.Get(SOURCE_M)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsObjC, has_precompiled_headers,
- CTool::kCToolObjC, &ConfigValues::cflags_objc, opts,
- path_output_, out_);
- }
-- if (used_types.Get(SourceFile::SOURCE_MM)) {
-+ if (used_types.Get(SOURCE_MM)) {
- WriteOneFlag(target_, &CSubstitutionCFlagsObjCc, has_precompiled_headers,
- CTool::kCToolObjCxx, &ConfigValues::cflags_objcc, opts,
- path_output_, out_);
-@@ -321,14 +319,14 @@ void NinjaCBinaryTargetWriter::WritePCHC
-
- const CTool* tool_c = target_->toolchain()->GetToolAsC(CTool::kCToolCc);
- if (tool_c && tool_c->precompiled_header_type() != CTool::PCH_NONE &&
-- used_types.Get(SourceFile::SOURCE_C)) {
-+ used_types.Get(SOURCE_C)) {
- WritePCHCommand(&CSubstitutionCFlagsC, CTool::kCToolCc,
- tool_c->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
- }
- const CTool* tool_cxx = target_->toolchain()->GetToolAsC(CTool::kCToolCxx);
- if (tool_cxx && tool_cxx->precompiled_header_type() != CTool::PCH_NONE &&
-- used_types.Get(SourceFile::SOURCE_CPP)) {
-+ used_types.Get(SOURCE_CPP)) {
- WritePCHCommand(&CSubstitutionCFlagsCc, CTool::kCToolCxx,
- tool_cxx->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -336,7 +334,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
-
- const CTool* tool_objc = target_->toolchain()->GetToolAsC(CTool::kCToolObjC);
- if (tool_objc && tool_objc->precompiled_header_type() == CTool::PCH_GCC &&
-- used_types.Get(SourceFile::SOURCE_M)) {
-+ used_types.Get(SOURCE_M)) {
- WritePCHCommand(&CSubstitutionCFlagsObjC, CTool::kCToolObjC,
- tool_objc->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -345,7 +343,7 @@ void NinjaCBinaryTargetWriter::WritePCHC
- const CTool* tool_objcxx =
- target_->toolchain()->GetToolAsC(CTool::kCToolObjCxx);
- if (tool_objcxx && tool_objcxx->precompiled_header_type() == CTool::PCH_GCC &&
-- used_types.Get(SourceFile::SOURCE_MM)) {
-+ used_types.Get(SOURCE_MM)) {
- WritePCHCommand(&CSubstitutionCFlagsObjCc, CTool::kCToolObjCxx,
- tool_objcxx->precompiled_header_type(), input_dep,
- order_only_deps, object_files, other_files);
-@@ -478,7 +476,7 @@ void NinjaCBinaryTargetWriter::WriteSour
- deps.resize(0);
- const char* tool_name = Tool::kToolNone;
- if (!target_->GetOutputFilesForSource(source, &tool_name, &tool_outputs)) {
-- if (source.type() == SourceFile::SOURCE_DEF)
-+ if (GetSourceFileType(source) == SOURCE_DEF)
- other_files->push_back(source);
- continue; // No output for this source.
- }
-@@ -599,7 +597,7 @@ void NinjaCBinaryTargetWriter::WriteLink
- const SourceFile* optional_def_file = nullptr;
- if (!other_files.empty()) {
- for (const SourceFile& src_file : other_files) {
-- if (src_file.type() == SourceFile::SOURCE_DEF) {
-+ if (GetSourceFileType(src_file) == SOURCE_DEF) {
- optional_def_file = &src_file;
- implicit_deps.push_back(
- OutputFile(settings_->build_settings(), src_file));
---- a/tools/gn/tools/gn/source_file.cc
-+++ b/tools/gn/tools/gn/source_file.cc
-@@ -21,48 +21,18 @@ void AssertValueSourceFileString(const s
- DCHECK(!EndsWithSlash(s)) << s;
- }
-
--SourceFile::Type GetSourceFileType(const std::string& file) {
-- base::StringPiece extension = FindExtension(&file);
-- if (extension == "cc" || extension == "cpp" || extension == "cxx")
-- return SourceFile::SOURCE_CPP;
-- if (extension == "h" || extension == "hpp" || extension == "hxx" ||
-- extension == "hh" || extension == "inc")
-- return SourceFile::SOURCE_H;
-- if (extension == "c")
-- return SourceFile::SOURCE_C;
-- if (extension == "m")
-- return SourceFile::SOURCE_M;
-- if (extension == "mm")
-- return SourceFile::SOURCE_MM;
-- if (extension == "rc")
-- return SourceFile::SOURCE_RC;
-- if (extension == "S" || extension == "s" || extension == "asm")
-- return SourceFile::SOURCE_S;
-- if (extension == "o" || extension == "obj")
-- return SourceFile::SOURCE_O;
-- if (extension == "def")
-- return SourceFile::SOURCE_DEF;
-- if (extension == "rs")
-- return SourceFile::SOURCE_RS;
-- if (extension == "go")
-- return SourceFile::SOURCE_GO;
--
-- return SourceFile::SOURCE_UNKNOWN;
--}
--
- } // namespace
-
--SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
-+SourceFile::SourceFile() = default;
-
- SourceFile::SourceFile(const base::StringPiece& p)
-- : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
-+ : value_(p.data(), p.size()) {
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
- }
-
--SourceFile::SourceFile(SwapIn, std::string* value)
-- : type_(GetSourceFileType(*value)) {
-+SourceFile::SourceFile(SwapIn, std::string* value) {
- value_.swap(*value);
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
---- a/tools/gn/tools/gn/source_file.h
-+++ b/tools/gn/tools/gn/source_file.h
-@@ -20,28 +20,6 @@ class SourceDir;
- // ends in one.
- class SourceFile {
- public:
-- // This should be sequential integers starting from 0 so they can be used as
-- // array indices.
-- enum Type {
-- SOURCE_UNKNOWN = 0,
-- SOURCE_ASM,
-- SOURCE_C,
-- SOURCE_CPP,
-- SOURCE_H,
-- SOURCE_M,
-- SOURCE_MM,
-- SOURCE_S,
-- SOURCE_RC,
-- SOURCE_O, // Object files can be inputs, too. Also counts .obj.
-- SOURCE_DEF,
--
-- SOURCE_RS,
-- SOURCE_GO,
--
-- // Must be last.
-- SOURCE_NUMTYPES,
-- };
--
- enum SwapIn { SWAP_IN };
-
- SourceFile();
-@@ -58,7 +36,6 @@ class SourceFile {
-
- bool is_null() const { return value_.empty(); }
- const std::string& value() const { return value_; }
-- Type type() const { return type_; }
-
- // Returns everything after the last slash.
- std::string GetName() const;
-@@ -103,7 +80,6 @@ class SourceFile {
- friend class SourceDir;
-
- std::string value_;
-- Type type_;
-
- // Copy & assign supported.
- };
---- /dev/null
-+++ b/tools/gn/tools/gn/source_file_type.cc
-@@ -0,0 +1,37 @@
-+// Copyright 2014 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.
-+
-+#include "tools/gn/source_file_type.h"
-+
-+#include "tools/gn/filesystem_utils.h"
-+#include "tools/gn/source_file.h"
-+
-+SourceFileType GetSourceFileType(const SourceFile& file) {
-+ base::StringPiece extension = FindExtension(&file.value());
-+ if (extension == "cc" || extension == "cpp" || extension == "cxx")
-+ return SOURCE_CPP;
-+ if (extension == "h" || extension == "hpp" || extension == "hxx" ||
-+ extension == "hh")
-+ return SOURCE_H;
-+ if (extension == "c")
-+ return SOURCE_C;
-+ if (extension == "m")
-+ return SOURCE_M;
-+ if (extension == "mm")
-+ return SOURCE_MM;
-+ if (extension == "rc")
-+ return SOURCE_RC;
-+ if (extension == "S" || extension == "s" || extension == "asm")
-+ return SOURCE_S;
-+ if (extension == "o" || extension == "obj")
-+ return SOURCE_O;
-+ if (extension == "def")
-+ return SOURCE_DEF;
-+ if (extension == "rs")
-+ return SOURCE_RS;
-+ if (extension == "go")
-+ return SOURCE_GO;
-+
-+ return SOURCE_UNKNOWN;
-+}
---- /dev/null
-+++ b/tools/gn/tools/gn/source_file_type.h
-@@ -0,0 +1,34 @@
-+// Copyright 2014 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.
-+
-+#ifndef TOOLS_GN_SOURCE_FILE_TYPE_H_
-+#define TOOLS_GN_SOURCE_FILE_TYPE_H_
-+
-+class SourceFile;
-+
-+// This should be sequential integers starting from 0 so they can be used as
-+// array indices.
-+enum SourceFileType {
-+ SOURCE_UNKNOWN = 0,
-+ SOURCE_ASM,
-+ SOURCE_C,
-+ SOURCE_CPP,
-+ SOURCE_H,
-+ SOURCE_M,
-+ SOURCE_MM,
-+ SOURCE_S,
-+ SOURCE_RC,
-+ SOURCE_O, // Object files can be inputs, too. Also counts .obj.
-+ SOURCE_DEF,
-+
-+ SOURCE_RS,
-+ SOURCE_GO,
-+
-+ // Must be last.
-+ SOURCE_NUMTYPES,
-+};
-+
-+SourceFileType GetSourceFileType(const SourceFile& file);
-+
-+#endif // TOOLS_GN_SOURCE_FILE_TYPE_H_
---- a/tools/gn/tools/gn/target.cc
-+++ b/tools/gn/tools/gn/target.cc
-@@ -16,6 +16,7 @@
- #include "tools/gn/filesystem_utils.h"
- #include "tools/gn/functions.h"
- #include "tools/gn/scheduler.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_writer.h"
- #include "tools/gn/tool.h"
- #include "tools/gn/toolchain.h"
-@@ -486,10 +487,10 @@ bool Target::GetOutputFilesForSource(con
- outputs->clear();
- *computed_tool_type = Tool::kToolNone;
-
-- SourceFile::Type file_type = source.type();
-- if (file_type == SourceFile::SOURCE_UNKNOWN)
-+ SourceFileType file_type = GetSourceFileType(source);
-+ if (file_type == SOURCE_UNKNOWN)
- return false;
-- if (file_type == SourceFile::SOURCE_O) {
-+ if (file_type == SOURCE_O) {
- // Object files just get passed to the output and not compiled.
- outputs->push_back(OutputFile(settings()->build_settings(), source));
- return true;
---- a/tools/gn/tools/gn/tool.cc
-+++ b/tools/gn/tools/gn/tool.cc
-@@ -261,27 +261,27 @@ std::unique_ptr<Tool> Tool::CreateTool(c
- }
-
- // static
--const char* Tool::GetToolTypeForSourceType(SourceFile::Type type) {
-+const char* Tool::GetToolTypeForSourceType(SourceFileType type) {
- switch (type) {
-- case SourceFile::SOURCE_C:
-+ case SOURCE_C:
- return CTool::kCToolCc;
-- case SourceFile::SOURCE_CPP:
-+ case SOURCE_CPP:
- return CTool::kCToolCxx;
-- case SourceFile::SOURCE_M:
-+ case SOURCE_M:
- return CTool::kCToolObjC;
-- case SourceFile::SOURCE_MM:
-+ case SOURCE_MM:
- return CTool::kCToolObjCxx;
-- case SourceFile::SOURCE_ASM:
-- case SourceFile::SOURCE_S:
-+ case SOURCE_ASM:
-+ case SOURCE_S:
- return CTool::kCToolAsm;
-- case SourceFile::SOURCE_RC:
-+ case SOURCE_RC:
- return CTool::kCToolRc;
-- case SourceFile::SOURCE_UNKNOWN:
-- case SourceFile::SOURCE_H:
-- case SourceFile::SOURCE_O:
-- case SourceFile::SOURCE_DEF:
-- case SourceFile::SOURCE_GO:
-- case SourceFile::SOURCE_RS:
-+ case SOURCE_UNKNOWN:
-+ case SOURCE_H:
-+ case SOURCE_O:
-+ case SOURCE_DEF:
-+ case SOURCE_GO:
-+ case SOURCE_RS:
- return kToolNone;
- default:
- NOTREACHED();
---- a/tools/gn/tools/gn/tool.h
-+++ b/tools/gn/tools/gn/tool.h
-@@ -12,7 +12,7 @@
- #include "tools/gn/label.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
--#include "tools/gn/source_file.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_list.h"
- #include "tools/gn/substitution_pattern.h"
-
-@@ -171,7 +171,7 @@ class Tool {
- Toolchain* toolchain,
- Err* err);
-
-- static const char* GetToolTypeForSourceType(SourceFile::Type type);
-+ static const char* GetToolTypeForSourceType(SourceFileType type);
- static const char* GetToolTypeForTargetFinalOutput(const Target* target);
-
- protected:
---- a/tools/gn/tools/gn/toolchain.cc
-+++ b/tools/gn/tools/gn/toolchain.cc
-@@ -88,16 +88,16 @@ void Toolchain::ToolchainSetupComplete()
- setup_complete_ = true;
- }
-
--const Tool* Toolchain::GetToolForSourceType(SourceFile::Type type) const {
-+const Tool* Toolchain::GetToolForSourceType(SourceFileType type) const {
- return GetTool(Tool::GetToolTypeForSourceType(type));
- }
-
--const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFile::Type type) const {
-+const CTool* Toolchain::GetToolForSourceTypeAsC(SourceFileType type) const {
- return GetToolAsC(Tool::GetToolTypeForSourceType(type));
- }
-
- const GeneralTool* Toolchain::GetToolForSourceTypeAsGeneral(
-- SourceFile::Type type) const {
-+ SourceFileType type) const {
- return GetToolAsGeneral(Tool::GetToolTypeForSourceType(type));
- }
-
---- a/tools/gn/tools/gn/toolchain.h
-+++ b/tools/gn/tools/gn/toolchain.h
-@@ -12,6 +12,7 @@
- #include "tools/gn/item.h"
- #include "tools/gn/label_ptr.h"
- #include "tools/gn/scope.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/substitution_type.h"
- #include "tools/gn/tool.h"
- #include "tools/gn/value.h"
-@@ -87,9 +88,9 @@ class Toolchain : public Item {
- }
-
- // Returns the tool for compiling the given source file type.
-- const Tool* GetToolForSourceType(SourceFile::Type type) const;
-- const CTool* GetToolForSourceTypeAsC(SourceFile::Type type) const;
-- const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFile::Type type) const;
-+ const Tool* GetToolForSourceType(SourceFileType type) const;
-+ const CTool* GetToolForSourceTypeAsC(SourceFileType type) const;
-+ const GeneralTool* GetToolForSourceTypeAsGeneral(SourceFileType type) const;
-
- // Returns the tool that produces the final output for the given target type.
- // This isn't necessarily the tool you would expect. For copy target, this
---- a/tools/gn/tools/gn/visual_studio_writer.cc
-+++ b/tools/gn/tools/gn/visual_studio_writer.cc
-@@ -24,6 +24,7 @@
- #include "tools/gn/label_pattern.h"
- #include "tools/gn/parse_tree.h"
- #include "tools/gn/path_output.h"
-+#include "tools/gn/source_file_type.h"
- #include "tools/gn/standard_out.h"
- #include "tools/gn/target.h"
- #include "tools/gn/variables.h"
diff --git a/revert-gn-4980.patch b/revert-gn-4980.patch
deleted file mode 100644
index fe550e9..0000000
--- a/revert-gn-4980.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-Description: revert https://gn.googlesource.com/gn/+/8730b0feb6b991fa47368566501ab9ccfb453c92, which breaks the chromium build
-
---- a/tools/gn/tools/gn/binary_target_generator.cc
-+++ b/tools/gn/tools/gn/binary_target_generator.cc
-@@ -68,38 +68,6 @@ void BinaryTargetGenerator::DoRun() {
- return;
- }
-
--bool BinaryTargetGenerator::FillSources() {
-- bool ret = TargetGenerator::FillSources();
-- for (std::size_t i = 0; i < target_->sources().size(); ++i) {
-- const auto& source = target_->sources()[i];
-- switch (source.type()) {
-- case SourceFile::SOURCE_CPP:
-- case SourceFile::SOURCE_H:
-- case SourceFile::SOURCE_C:
-- case SourceFile::SOURCE_M:
-- case SourceFile::SOURCE_MM:
-- case SourceFile::SOURCE_S:
-- case SourceFile::SOURCE_ASM:
-- case SourceFile::SOURCE_O:
-- // These are allowed.
-- break;
-- case SourceFile::SOURCE_RC:
-- case SourceFile::SOURCE_DEF:
-- case SourceFile::SOURCE_RS:
-- case SourceFile::SOURCE_GO:
-- case SourceFile::SOURCE_UNKNOWN:
-- case SourceFile::SOURCE_NUMTYPES:
-- *err_ =
-- Err(scope_->GetValue(variables::kSources, true)->list_value()[i],
-- std::string("Only source, header, and object files belong in "
-- "the sources of a ") +
-- Target::GetStringForOutputType(target_->output_type()) +
-- ". " + source.value() + " is not one of the valid types.");
-- }
-- }
-- return ret;
--}
--
- bool BinaryTargetGenerator::FillCompleteStaticLib() {
- if (target_->output_type() == Target::STATIC_LIBRARY) {
- const Value* value = scope_->GetValue(variables::kCompleteStaticLib, true);
---- a/tools/gn/tools/gn/binary_target_generator.h
-+++ b/tools/gn/tools/gn/binary_target_generator.h
-@@ -22,7 +22,6 @@ class BinaryTargetGenerator : public Tar
-
- protected:
- void DoRun() override;
-- bool FillSources() override;
-
- private:
- bool FillCompleteStaticLib();
---- a/tools/gn/tools/gn/source_dir.cc
-+++ b/tools/gn/tools/gn/source_dir.cc
-@@ -98,10 +98,10 @@ SourceFile SourceDir::ResolveRelativeFil
- return ret;
-
- const std::string& input_string = p.string_value();
-- if (!ValidateResolveInput<std::string>(true, p, input_string, err))
-+ if (!ValidateResolveInput<std::string>(true, p, input_string, err)) {
- return ret;
--
-- ret.SetValue(ResolveRelative(input_string, value_, true, source_root));
-+ }
-+ ret.value_ = ResolveRelative(input_string, value_, true, source_root);
- return ret;
- }
-
---- a/tools/gn/tools/gn/source_file.cc
-+++ b/tools/gn/tools/gn/source_file.cc
-@@ -55,19 +55,18 @@ SourceFile::Type GetSourceFileType(const
- SourceFile::SourceFile() : type_(SOURCE_UNKNOWN) {}
-
- SourceFile::SourceFile(const base::StringPiece& p)
-- : value_(p.data(), p.size()) {
-+ : value_(p.data(), p.size()), type_(GetSourceFileType(value_)) {
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
-- type_ = GetSourceFileType(value_);
- }
-
--SourceFile::SourceFile(SwapIn, std::string* value) {
-+SourceFile::SourceFile(SwapIn, std::string* value)
-+ : type_(GetSourceFileType(*value)) {
- value_.swap(*value);
- DCHECK(!value_.empty());
- AssertValueSourceFileString(value_);
- NormalizePath(&value_);
-- type_ = GetSourceFileType(value_);
- }
-
- SourceFile::~SourceFile() = default;
-@@ -93,8 +92,3 @@ SourceDir SourceFile::GetDir() const {
- base::FilePath SourceFile::Resolve(const base::FilePath& source_root) const {
- return ResolvePath(value_, true, source_root);
- }
--
--void SourceFile::SetValue(const std::string& value) {
-- value_ = value;
-- type_ = GetSourceFileType(value_);
--}
---- a/tools/gn/tools/gn/source_file.h
-+++ b/tools/gn/tools/gn/source_file.h
-@@ -97,16 +97,11 @@ class SourceFile {
- return value_ < other.value_;
- }
-
-- void swap(SourceFile& other) {
-- value_.swap(other.value_);
-- std::swap(type_, other.type_);
-- }
-+ void swap(SourceFile& other) { value_.swap(other.value_); }
-
- private:
- friend class SourceDir;
-
-- void SetValue(const std::string& value);
--
- std::string value_;
- Type type_;
-
---- a/tools/gn/tools/gn/target_generator.h
-+++ b/tools/gn/tools/gn/target_generator.h
-@@ -47,7 +47,7 @@ class TargetGenerator {
-
- const BuildSettings* GetBuildSettings() const;
-
-- virtual bool FillSources();
-+ bool FillSources();
- bool FillPublic();
- bool FillConfigs();
- bool FillOutputs(bool allow_substitutions);
commit 8c4c53d9b3dbf8e4272b8f7c01cbf5241f658f82
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Jul 24 20:14:22 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/chromium.spec b/chromium.spec
index a741cda..de018ef 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -165,7 +165,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3770.100
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1926,6 +1926,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Jul 24 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 75.0.3770.100-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Tue Jul 2 2019 Tom Callaway <spot(a)fedoraproject.org> - 75.0.3770.100-3
- apply upstream fix to resolve issue where it is dangerous to post a
task with a RenderProcessHost pointer because the RenderProcessHost
4 years, 6 months
Architecture specific change in rpms/chromium.git
by githook-noreply@fedoraproject.org
The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=f7aa602c5...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=1ef42a21d...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=5a0168685...
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=e9192241d....
Change:
+%ifarch %{ix86}
-%ifarch x86_64
+%ifarch %{ix86}
-%ifarch x86_64
Thanks.
Full change:
============
commit 77f7b18d5f5f7fc1abe87f2704a3e1fc453a9f5d
Merge: e7f437f 5a0ab75
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 09:00:23 2019 -0400
merge fix
commit 5a0ab7571f0c7dd5eb02385589150ab3c958bfe3
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Oct 28 08:57:05 2019 -0400
last bit of fixes
diff --git a/chromium-77-clang.patch b/chromium-77-clang.patch
new file mode 100644
index 0000000..a57b5a4
--- /dev/null
+++ b/chromium-77-clang.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-78-revert-noexcept-r1.patch b/chromium-78-revert-noexcept-r1.patch
new file mode 100644
index 0000000..408d618
--- /dev/null
+++ b/chromium-78-revert-noexcept-r1.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-78.0.3904.70-base-gcc-no-alignas.patch b/chromium-78.0.3904.70-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..4856c36
--- /dev/null
+++ b/chromium-78.0.3904.70-base-gcc-no-alignas.patch
@@ -0,0 +1,68 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
+--- a/third_party/protobuf/src/google/protobuf/arena.h
++++ b/third_party/protobuf/src/google/protobuf/arena.h
+@@ -245,7 +245,7 @@ struct ArenaOptions {
+ // well as protobuf container types like RepeatedPtrField and Map. The protocol
+ // is internal to protobuf and is not guaranteed to be stable. Non-proto types
+ // should not rely on this protocol.
+-class PROTOBUF_EXPORT alignas(8) Arena final {
++class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
+ public:
+ // Arena constructor taking custom options. See ArenaOptions below for
+ // descriptions of the options available.
+--- a/third_party/protobuf/src/google/protobuf/port_def.inc
++++ b/third_party/protobuf/src/google/protobuf/port_def.inc
+@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
+ #undef IN
+ #endif // _MSC_VER
+
++// Specify memory alignment for structs, classes, etc.
++// Use like:
++// class PROTOBUF_ALIGNAS(16) MyClass { ... }
++// PROTOBUF_ALIGNAS(16) int array[4];
++//
++// In most places you can use the C++11 keyword "alignas", which is preferred.
++//
++// But compilers have trouble mixing __attribute__((...)) syntax with
++// alignas(...) syntax.
++//
++// Doesn't work in clang or gcc:
++// struct alignas(16) __attribute__((packed)) S { char c; };
++// Works in clang but not gcc:
++// struct __attribute__((packed)) alignas(16) S2 { char c; };
++// Works in clang and gcc:
++// struct alignas(16) S3 { char c; } __attribute__((packed));
++//
++// There are also some attributes that must be specified *before* a class
++// definition: visibility (used for exporting functions/classes) is one of
++// these attributes. This means that it is not possible to use alignas() with a
++// class that is marked as exported.
++#if defined(_MSC_VER)
++#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
++#elif defined(__GNUC__)
++#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
++#else
++#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
++#endif
++
+ #if defined(__clang__)
+ #pragma clang diagnostic push
+ // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
+--- a/third_party/protobuf/src/google/protobuf/port_undef.inc
++++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
+@@ -80,6 +80,7 @@
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
++#undef PROTOBUF_ALIGNAS
diff --git a/chromium-78.0.3904.70-v8-tracedreference-fix.patch b/chromium-78.0.3904.70-v8-tracedreference-fix.patch
new file mode 100644
index 0000000..789bdd0
--- /dev/null
+++ b/chromium-78.0.3904.70-v8-tracedreference-fix.patch
@@ -0,0 +1,302 @@
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc.v8-tracedreference-fix 2019-10-21 15:06:42.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_embedder_graph_builder.cc 2019-10-23 14:30:25.679541652 -0400
+@@ -173,8 +173,9 @@ class GC_PLUGIN_IGNORE(
+ uint16_t class_id) override;
+
+ // v8::EmbedderHeapTracer::TracedGlobalHandleVisitor override.
+- void VisitTracedGlobalHandle(
+- const v8::TracedGlobal<v8::Value>& value) override;
++ void VisitTracedReference(
++ const v8::TracedReference<v8::Value>& value) override;
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) override;
+
+ // Visitor overrides.
+ void VisitRoot(void*, TraceDescriptor, const base::Location&) final;
+@@ -508,8 +509,8 @@ void V8EmbedderGraphBuilder::VisitPersis
+ }
+ }
+
+-void V8EmbedderGraphBuilder::VisitTracedGlobalHandle(
+- const v8::TracedGlobal<v8::Value>& value) {
++void V8EmbedderGraphBuilder::VisitTracedReference(
++ const v8::TracedReference<v8::Value>& value) {
+ const uint16_t class_id = value.WrapperClassId();
+ if (class_id != WrapperTypeInfo::kNodeClassId &&
+ class_id != WrapperTypeInfo::kObjectClassId)
+@@ -517,6 +518,11 @@ void V8EmbedderGraphBuilder::VisitTraced
+ VisitPersistentHandleInternal(value.As<v8::Object>().Get(isolate_), class_id);
+ }
+
++void V8EmbedderGraphBuilder::VisitTracedGlobalHandle(
++ const v8::TracedGlobal<v8::Value>&) {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++}
++
+ void V8EmbedderGraphBuilder::VisitPersistentHandle(
+ v8::Persistent<v8::Value>* value,
+ uint16_t class_id) {
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc.v8-tracedreference-fix 2019-10-21 15:06:42.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc 2019-10-23 14:30:25.683541568 -0400
+@@ -260,7 +260,11 @@ class DOMWrapperForwardingVisitor final
+ VisitHandle(value, class_id);
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ VisitHandle(&value, value.WrapperClassId());
+ }
+
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/dom_data_store.h 2019-10-23 14:30:25.685541526 -0400
+@@ -229,6 +229,11 @@ class DOMDataStore {
+ DOMWorldWrapperReference(v8::Isolate* isolate, v8::Local<v8::Object> handle)
+ : TraceWrapperV8Reference(isolate, handle) {}
+
++ ~DOMWorldWrapperReference() {
++ // Destruction of a reference should clear it immediately.
++ Clear();
++ }
++
+ // Move support without write barrier.
+ DOMWorldWrapperReference(DOMWorldWrapperReference&& other)
+ : TraceWrapperV8Reference() {
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/script_wrappable.h 2019-10-23 14:30:25.687541484 -0400
+@@ -161,6 +161,11 @@ class PLATFORM_EXPORT ScriptWrappable
+ return main_world_wrapper_.NewLocal(isolate);
+ }
+
++ static_assert(
++ std::is_trivially_destructible<
++ TraceWrapperV8Reference<v8::Object>>::value,
++ "TraceWrapperV8Reference<v8::Object> should be trivially destructible.");
++
+ TraceWrapperV8Reference<v8::Object> main_world_wrapper_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScriptWrappable);
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/trace_wrapper_v8_reference.h 2019-10-23 14:30:25.688541463 -0400
+@@ -11,15 +11,6 @@
+ #include "third_party/blink/renderer/platform/heap/unified_heap_marking_visitor.h"
+ #include "v8/include/v8.h"
+
+-namespace v8 {
+-
+-template <typename T>
+-struct TracedGlobalTrait<v8::TracedGlobal<T>> {
+- static constexpr bool kRequiresExplicitDestruction = false;
+-};
+-
+-} // namespace v8
+-
+ namespace blink {
+
+ /**
+@@ -50,8 +41,8 @@ class TraceWrapperV8Reference {
+
+ bool IsEmpty() const { return handle_.IsEmpty(); }
+ void Clear() { handle_.Reset(); }
+- ALWAYS_INLINE const v8::TracedGlobal<T>& Get() const { return handle_; }
+- ALWAYS_INLINE v8::TracedGlobal<T>& Get() { return handle_; }
++ ALWAYS_INLINE const v8::TracedReference<T>& Get() const { return handle_; }
++ ALWAYS_INLINE v8::TracedReference<T>& Get() { return handle_; }
+
+ template <typename S>
+ const TraceWrapperV8Reference<S>& Cast() const {
+@@ -124,7 +115,7 @@ class TraceWrapperV8Reference {
+ UnifiedHeapMarkingVisitor::WriteBarrier(UnsafeCast<v8::Value>());
+ }
+
+- v8::TracedGlobal<T> handle_;
++ v8::TracedReference<T> handle_;
+ };
+
+ } // namespace blink
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h.v8-tracedreference-fix 2019-10-21 15:06:44.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/bindings/wrapper_type_info.h 2019-10-23 14:30:25.689541442 -0400
+@@ -122,7 +122,7 @@ struct WrapperTypeInfo {
+ wrapper->SetWrapperClassId(wrapper_class_id);
+ }
+
+- void ConfigureWrapper(v8::TracedGlobal<v8::Object>* wrapper) const {
++ void ConfigureWrapper(v8::TracedReference<v8::Object>* wrapper) const {
+ wrapper->SetWrapperClassId(wrapper_class_id);
+ }
+
+@@ -177,7 +177,7 @@ inline T* GetInternalField(const v8::Per
+ }
+
+ template <typename T, int offset>
+-inline T* GetInternalField(const v8::TracedGlobal<v8::Object>& global) {
++inline T* GetInternalField(const v8::TracedReference<v8::Object>& global) {
+ DCHECK_LT(offset, v8::Object::InternalFieldCount(global));
+ return reinterpret_cast<T*>(
+ v8::Object::GetAlignedPointerFromInternalField(global, offset));
+@@ -198,7 +198,7 @@ inline ScriptWrappable* ToScriptWrappabl
+ }
+
+ inline ScriptWrappable* ToScriptWrappable(
+- const v8::TracedGlobal<v8::Object>& wrapper) {
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<ScriptWrappable, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+@@ -219,7 +219,8 @@ inline void* ToUntypedWrappable(const v8
+ return GetInternalField<void, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+-inline void* ToUntypedWrappable(const v8::TracedGlobal<v8::Object>& wrapper) {
++inline void* ToUntypedWrappable(
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<void, kV8DOMWrapperObjectIndex>(wrapper);
+ }
+
+@@ -233,7 +234,7 @@ inline const WrapperTypeInfo* ToWrapperT
+ }
+
+ inline const WrapperTypeInfo* ToWrapperTypeInfo(
+- const v8::TracedGlobal<v8::Object>& wrapper) {
++ const v8::TracedReference<v8::Object>& wrapper) {
+ return GetInternalField<WrapperTypeInfo, kV8DOMWrapperTypeIndex>(wrapper);
+ }
+
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/thread_state.cc 2019-10-23 14:30:25.693541359 -0400
+@@ -1451,11 +1451,15 @@ class ClearReferencesInDeadObjectsVisito
+ value->Reset();
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ // TODO(mlippautz): Avoid const_cast after changing the API to allow
+- // modificaton of the TracedGlobal handle.
+- if (InDeadObject(&const_cast<v8::TracedGlobal<v8::Value>&>(value)))
+- const_cast<v8::TracedGlobal<v8::Value>&>(value).Reset();
++ // modificaton of the handle.
++ if (InDeadObject(&const_cast<v8::TracedReference<v8::Value>&>(value)))
++ const_cast<v8::TracedReference<v8::Value>&>(value).Reset();
+ }
+
+ private:
+@@ -1584,11 +1588,15 @@ class UnpoisonHandlesVisitor final
+ VisitSlot(value, sizeof(v8::Persistent<v8::Value>));
+ }
+
+- void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>& value) final {
++ void VisitTracedGlobalHandle(const v8::TracedGlobal<v8::Value>&) final {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ }
++
++ void VisitTracedReference(const v8::TracedReference<v8::Value>& value) final {
+ // TODO(mlippautz): Avoid const_cast after changing the API to allow
+- // modificaton of the TracedGlobal handle.
+- VisitSlot(&const_cast<v8::TracedGlobal<v8::Value>&>(value),
+- sizeof(v8::TracedGlobal<v8::Value>));
++ // modificaton of the handle.
++ VisitSlot(&const_cast<v8::TracedReference<v8::Value>&>(value),
++ sizeof(v8::TracedReference<v8::Value>));
+ }
+
+ private:
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.cc 2019-10-23 14:32:34.722840885 -0400
+@@ -147,16 +147,19 @@ bool UnifiedHeapController::IsTracingDon
+ return is_tracing_done_;
+ }
+
+-bool UnifiedHeapController::IsRootForNonTracingGCInternal(
+- const v8::TracedGlobal<v8::Value>& handle) {
++namespace {
++
++bool IsRootForNonTracingGCInternal(
++ const v8::TracedReference<v8::Value>& handle) {
+ const uint16_t class_id = handle.WrapperClassId();
+- // Stand-alone TracedGlobal reference or kCustomWrappableId. Keep as root as
++ // Stand-alone reference or kCustomWrappableId. Keep as root as
+ // we don't know better.
+ if (class_id != WrapperTypeInfo::kNodeClassId &&
+ class_id != WrapperTypeInfo::kObjectClassId)
+ return true;
+
+- const v8::TracedGlobal<v8::Object>& traced = handle.As<v8::Object>();
++ const v8::TracedReference<v8::Object>& traced =
++ handle.template As<v8::Object>();
+ if (ToWrapperTypeInfo(traced)->IsActiveScriptWrappable() &&
+ ToScriptWrappable(traced)->HasPendingActivity()) {
+ return true;
+@@ -169,8 +172,10 @@ bool UnifiedHeapController::IsRootForNon
+ return false;
+ }
+
++} // namespace
++
+ void UnifiedHeapController::ResetHandleInNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
++ const v8::TracedReference<v8::Value>& handle) {
+ const uint16_t class_id = handle.WrapperClassId();
+ // Only consider handles that have not been treated as roots, see
+ // IsRootForNonTracingGCInternal.
+@@ -178,15 +183,21 @@ void UnifiedHeapController::ResetHandleI
+ class_id != WrapperTypeInfo::kObjectClassId)
+ return;
+
+- const v8::TracedGlobal<v8::Object>& traced = handle.As<v8::Object>();
++ const v8::TracedReference<v8::Object>& traced = handle.As<v8::Object>();
+ ToScriptWrappable(traced)->UnsetWrapperIfAny();
+ }
+
+ bool UnifiedHeapController::IsRootForNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
++ const v8::TracedReference<v8::Value>& handle) {
+ return IsRootForNonTracingGCInternal(handle);
+ }
+
++bool UnifiedHeapController::IsRootForNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ CHECK(false) << "Blink does not use v8::TracedGlobal.";
++ return false;
++}
++
+ void UnifiedHeapController::ReportBufferedAllocatedSizeIfPossible() {
+ DCHECK(base::FeatureList::IsEnabled(
+ blink::features::kBlinkHeapUnifiedGCScheduling));
+diff -up chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h.v8-tracedreference-fix chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h
+--- chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h.v8-tracedreference-fix 2019-10-21 15:06:45.000000000 -0400
++++ chromium-78.0.3904.70/third_party/blink/renderer/platform/heap/unified_heap_controller.h 2019-10-23 14:30:25.695541317 -0400
+@@ -45,8 +45,9 @@ class PLATFORM_EXPORT UnifiedHeapControl
+ void RegisterV8References(const std::vector<std::pair<void*, void*>>&) final;
+ bool AdvanceTracing(double) final;
+ bool IsTracingDone() final;
++ bool IsRootForNonTracingGC(const v8::TracedReference<v8::Value>&) final;
+ bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>&) final;
+- void ResetHandleInNonTracingGC(const v8::TracedGlobal<v8::Value>&) final;
++ void ResetHandleInNonTracingGC(const v8::TracedReference<v8::Value>&) final;
+
+ ThreadState* thread_state() const { return thread_state_; }
+
+@@ -59,9 +60,6 @@ class PLATFORM_EXPORT UnifiedHeapControl
+ void DecreaseAllocatedSpace(size_t) final {}
+
+ private:
+- static bool IsRootForNonTracingGCInternal(
+- const v8::TracedGlobal<v8::Value>& handle);
+-
+ void ReportBufferedAllocatedSizeIfPossible();
+
+ ThreadState* const thread_state_;
diff --git a/chromium.spec b/chromium.spec
index 764e85d..c03e832 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -55,15 +55,15 @@
# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
-# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
+# for i in `find . -name "*.so" | sort`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
# for RHEL7, append libfontconfig to the end
# make sure there is not a trailing | at the end of the list
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
+%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libEGL|libGLESv2|libvk_swiftshader|libfontconfig
%else
-%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
+%global privlibs libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura_extra|libaura|libauthenticator_test_mojo_bindings_shared|libbase_i18n|libbase|libbindings_base|libbindings|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcc|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcolor_utils|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom_shared|libcontent_service_mojom|libcontent_settings_features|libcontent|libcrash_key|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdevice_vr|libdevice_vr_test_mojo_bindings_blink|libdevice_vr_test_mojo_bindings_shared|libdevice_vr_test_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libembedder_switches|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libextras|libffmpeg|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_mojom|libgamepad_shared_typemap_traits|libgcm|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_switches|libgfx_x11|libgin|libgles2_implementation|libgles2|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu_ipc_service|libgpu|libgtkui|libheadless_non_renderer|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc_mojom_shared|libipc_mojom|libipc|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|libleveldb_proto|libmanager|libmedia_blink|libmedia_gpu|libmedia_learning_mojo_impl|libmedia_message_center|libmedia_mojo_services|libmedia_session_base_cpp|libmedia_session_cpp|libmedia|libmedia_webrtc|libmemory_instrumentation|libmenu|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirroring_service|libmojo_base_lib|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_mojom|libmojo_base_shared_typemap_traits|libmojo_core_embedder_internal|libmojo_core_embedder|libmojo_core_ports|libmojo_cpp_platform|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojo_mojom_bindings_shared|libmojo_mojom_bindings|libmojom_platform_shared|libmojo_public_system_cpp|libmojo_public_system|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp_base|libnetwork_cpp|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libparsers|libpdfium|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libresource_coordinator_public_mojom|libsandbox_services|libsandbox|libscheduling_metrics|libseccomp_bpf|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libservice_manager_mojom_traits|libservice|libsessions|libshared_memory_support|libshared_with_blink|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtab_count_metrics|libthread_linux|libtracing_cpp|libtracing_mojom_shared|libtracing_mojom|libtracing|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_accessibility_ax_mojom|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime_init|libui_base_ime_linux|libui_base_ime|libui_base_ime_types|libui_base|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|liburl_ipc|liburl_matcher|liburl|libusb_shared|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libVkICD_mock_icd|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_bluetooth_mojo_bindings_shared|libwebdata_common|libweb_dialogs|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libweb_feature_mojo_bindings_mojom|libwebgpu|libwebview|libwm_public|libwm|libwtf|libx11_events_platform|libx11_window|libzygote|libEGL|libGLESv2|libvk_swiftshader
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -209,7 +209,8 @@ Patch53: chromium-78.0.3904.70-unbundle-zlib.patch
# Needs to be submitted..
Patch54: chromium-77.0.3865.75-gcc-include-memory.patch
# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
-Patch55: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch55: chromium-78.0.3904.70-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
Patch56: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
@@ -230,6 +231,14 @@ Patch63: chromium-78-pm-crash.patch
Patch64: chromium-78-protobuf-export.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-78-include.patch
+# https://dev.gentoo.org/~floppym/dist/chromium-78-revert-noexcept-r1.patch.gz
+Patch66: chromium-78-revert-noexcept-r1.patch
+# https://chromium.googlesource.com/chromium/src/+/9d01bb7f93ba4837b4430417...
+Patch67: chromium-78.0.3904.70-v8-tracedreference-fix.patch
+# https://chromium.googlesource.com/v8/v8/+/3677468397fa7f9fad9bbd71e9fb312...
+Patch68: v8-implement-tracedreference.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files...
+Patch69: chromium-77-clang.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -759,6 +768,10 @@ udev.
%patch63 -p1 -b .pm-crash
%patch64 -p1 -b .protobuf-export
%patch65 -p1 -b .missing-includes
+%patch66 -p1 -b .gentoo-revert-noexcept
+%patch67 -p1 -b .implement-TraceWrapperV8Reference-without-destructor
+%patch68 -p1 -b .v8-implement-tracedreference
+%patch69 -p1 -b .clang-supports-location-builtins
# Fedora branded user agent
%if 0%{?fedora}
@@ -992,6 +1005,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/cros_system_api' \
'third_party/dav1d' \
'third_party/dawn' \
+ 'third_party/depot_tools' \
'third_party/devscripts' \
'third_party/dom_distiller_js' \
'third_party/emoji-segmenter' \
@@ -1076,6 +1090,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/pffft' \
'third_party/ply' \
'third_party/polymer' \
+ 'third_party/private-join-and-compute' \
'third_party/protobuf' \
'third_party/protobuf/third_party/six' \
'third_party/pyjson5' \
diff --git a/v8-implement-tracedreference.patch b/v8-implement-tracedreference.patch
new file mode 100644
index 0000000..7dc7487
--- /dev/null
+++ b/v8-implement-tracedreference.patch
@@ -0,0 +1,796 @@
+diff -up chromium-78.0.3904.70/v8/include/v8.h.implement-tracedreference chromium-78.0.3904.70/v8/include/v8.h
+--- chromium-78.0.3904.70/v8/include/v8.h.implement-tracedreference 2019-10-24 08:58:26.185640117 -0400
++++ chromium-78.0.3904.70/v8/include/v8.h 2019-10-24 09:18:33.719546481 -0400
+@@ -96,6 +96,10 @@ template <class T>
+ class Global;
+ template <class T>
+ class TracedGlobal;
++template <class T>
++class TracedReference;
++template <class T>
++class TracedReferenceBase;
+ template<class K, class V, class T> class PersistentValueMap;
+ template <class K, class V, class T>
+ class PersistentValueMapBase;
+@@ -281,7 +285,8 @@ class Local {
+ V8_INLINE static Local<T> New(Isolate* isolate, Local<T> that);
+ V8_INLINE static Local<T> New(Isolate* isolate,
+ const PersistentBase<T>& that);
+- V8_INLINE static Local<T> New(Isolate* isolate, const TracedGlobal<T>& that);
++ V8_INLINE static Local<T> New(Isolate* isolate,
++ const TracedReferenceBase<T>& that);
+
+ private:
+ friend class Utils;
+@@ -311,7 +316,13 @@ class Local {
+ template <class F>
+ friend class ReturnValue;
+ template <class F>
++ friend class Traced;
++ template <class F>
+ friend class TracedGlobal;
++ template <class F>
++ friend class TracedReferenceBase;
++ template <class F>
++ friend class TracedReference;
+
+ explicit V8_INLINE Local(T* that) : val_(that) {}
+ V8_INLINE static Local<T> New(Isolate* isolate, T* that);
+@@ -792,22 +803,10 @@ template <class T>
+ using UniquePersistent = Global<T>;
+
+ /**
+- * Trait specifying behavior of |TracedGlobal<T>|.
++ * Deprecated. Use |TracedReference<T>| instead.
+ */
+ template <typename T>
+-struct TracedGlobalTrait {
+- /**
+- * Specifies whether |TracedGlobal<T>| should clear its handle on destruction.
+- *
+- * V8 will *not* clear the embedder-side memory of the handle. The embedder is
+- * expected to report all |TracedGlobal<T>| handles through
+- * |EmbedderHeapTracer| upon garabge collection.
+- *
+- * See |EmbedderHeapTracer::IsRootForNonTracingGC| for handling with
+- * non-tracing GCs in V8.
+- */
+- static constexpr bool kRequiresExplicitDestruction = true;
+-};
++struct TracedGlobalTrait {};
+
+ /**
+ * A traced handle with copy and move semantics. The handle is to be used
+@@ -820,15 +819,131 @@ struct TracedGlobalTrait {
+ * |v8::EmbedderHeapTracer::IsRootForNonTracingGC()| whether the handle should
+ * be treated as root or not.
+ *
+- * For destruction semantics see |TracedGlobalTrait<T>|.
++ * Note that the base class cannot be instantiated itself. Choose from
++ * - TracedGlobal
++ * - TracedReference
+ */
+ template <typename T>
+-class TracedGlobal {
++class TracedReferenceBase {
+ public:
+ /**
++ * Returns true if this TracedReferenceBase is empty, i.e., has not been
++ * assigned an object.
++ */
++ bool IsEmpty() const { return val_ == nullptr; }
++
++ /**
++ * If non-empty, destroy the underlying storage cell. |IsEmpty| will return
++ * true after this call.
++ */
++ V8_INLINE void Reset();
++
++ /**
++ * Construct a Local<T> from this handle.
++ */
++ Local<T> Get(Isolate* isolate) const { return Local<T>::New(isolate, *this); }
++
++ template <class S>
++ V8_INLINE bool operator==(const TracedReferenceBase<S>& that) const {
++ internal::Address* a = reinterpret_cast<internal::Address*>(val_);
++ internal::Address* b = reinterpret_cast<internal::Address*>(that.val_);
++ if (a == nullptr) return b == nullptr;
++ if (b == nullptr) return false;
++ return *a == *b;
++ }
++
++ template <class S>
++ V8_INLINE bool operator==(const Local<S>& that) const {
++ internal::Address* a = reinterpret_cast<internal::Address*>(val_);
++ internal::Address* b = reinterpret_cast<internal::Address*>(that.val_);
++ if (a == nullptr) return b == nullptr;
++ if (b == nullptr) return false;
++ return *a == *b;
++ }
++
++ template <class S>
++ V8_INLINE bool operator!=(const TracedReferenceBase<S>& that) const {
++ return !operator==(that);
++ }
++
++ template <class S>
++ V8_INLINE bool operator!=(const Local<S>& that) const {
++ return !operator==(that);
++ }
++
++ /**
++ * Assigns a wrapper class ID to the handle.
++ */
++ V8_INLINE void SetWrapperClassId(uint16_t class_id);
++
++ /**
++ * Returns the class ID previously assigned to this handle or 0 if no class ID
++ * was previously assigned.
++ */
++ V8_INLINE uint16_t WrapperClassId() const;
++
++ /**
++ * Adds a finalization callback to the handle. The type of this callback is
++ * similar to WeakCallbackType::kInternalFields, i.e., it will pass the
++ * parameter and the first two internal fields of the object.
++ *
++ * The callback is then supposed to reset the handle in the callback. No
++ * further V8 API may be called in this callback. In case additional work
++ * involving V8 needs to be done, a second callback can be scheduled using
++ * WeakCallbackInfo<void>::SetSecondPassCallback.
++ */
++ V8_INLINE void SetFinalizationCallback(
++ void* parameter, WeakCallbackInfo<void>::Callback callback);
++
++ template <class S>
++ V8_INLINE TracedReferenceBase<S>& As() const {
++ return reinterpret_cast<TracedReferenceBase<S>&>(
++ const_cast<TracedReferenceBase<T>&>(*this));
++ }
++
++ private:
++ enum DestructionMode { kWithDestructor, kWithoutDestructor };
++
++ /**
++ * An empty TracedReferenceBase without storage cell.
++ */
++ TracedReferenceBase() = default;
++
++ V8_INLINE static T* New(Isolate* isolate, T* that, void* slot,
++ DestructionMode destruction_mode);
++
++ T* val_ = nullptr;
++
++ friend class EmbedderHeapTracer;
++ template <typename F>
++ friend class Local;
++ friend class Object;
++ template <typename F>
++ friend class TracedGlobal;
++ template <typename F>
++ friend class TracedReference;
++ template <typename F>
++ friend class ReturnValue;
++};
++
++/**
++ * A traced handle with destructor that clears the handle. For more details see
++ * TracedReferenceBase.
++ */
++template <typename T>
++class TracedGlobal : public TracedReferenceBase<T> {
++ public:
++ using TracedReferenceBase<T>::Reset;
++
++ /**
++ * Destructor resetting the handle.
++ */
++ ~TracedGlobal() { this->Reset(); }
++
++ /**
+ * An empty TracedGlobal without storage cell.
+ */
+- TracedGlobal() = default;
++ TracedGlobal() : TracedReferenceBase<T>() {}
+
+ /**
+ * Construct a TracedGlobal from a Local.
+@@ -837,8 +952,9 @@ class TracedGlobal {
+ * pointing to the same object.
+ */
+ template <class S>
+- TracedGlobal(Isolate* isolate, Local<S> that)
+- : val_(New(isolate, *that, &val_)) {
++ TracedGlobal(Isolate* isolate, Local<S> that) : TracedReferenceBase<T>() {
++ this->val_ = this->New(isolate, that.val_, &this->val_,
++ TracedReferenceBase<T>::kWithDestructor);
+ TYPE_CHECK(T, S);
+ }
+
+@@ -905,121 +1021,126 @@ class TracedGlobal {
+ V8_INLINE TracedGlobal& operator=(const TracedGlobal<S>& rhs);
+
+ /**
+- * Returns true if this TracedGlobal is empty, i.e., has not been assigned an
+- * object.
+- */
+- bool IsEmpty() const { return val_ == nullptr; }
+-
+- /**
+- * If non-empty, destroy the underlying storage cell. |IsEmpty| will return
+- * true after this call.
+- */
+- V8_INLINE void Reset();
+-
+- /**
+ * If non-empty, destroy the underlying storage cell and create a new one with
+ * the contents of other if other is non empty
+ */
+ template <class S>
+ V8_INLINE void Reset(Isolate* isolate, const Local<S>& other);
+
+- /**
+- * Construct a Local<T> from this handle.
+- */
+- Local<T> Get(Isolate* isolate) const { return Local<T>::New(isolate, *this); }
+-
+ template <class S>
+ V8_INLINE TracedGlobal<S>& As() const {
+ return reinterpret_cast<TracedGlobal<S>&>(
+ const_cast<TracedGlobal<T>&>(*this));
+ }
++};
+
+- template <class S>
+- V8_INLINE bool operator==(const TracedGlobal<S>& that) const {
+- internal::Address* a = reinterpret_cast<internal::Address*>(**this);
+- internal::Address* b = reinterpret_cast<internal::Address*>(*that);
+- if (a == nullptr) return b == nullptr;
+- if (b == nullptr) return false;
+- return *a == *b;
+- }
++/**
++ * A traced handle without destructor that clears the handle. The embedder needs
++ * to ensure that the handle is not accessed once the V8 object has been
++ * reclaimed. This can happen when the handle is not passed through the
++ * EmbedderHeapTracer. For more details see TracedReferenceBase.
++ */
++template <typename T>
++class TracedReference : public TracedReferenceBase<T> {
++ public:
++ using TracedReferenceBase<T>::Reset;
++
++ /**
++ * An empty TracedReference without storage cell.
++ */
++ TracedReference() : TracedReferenceBase<T>() {}
+
++ /**
++ * Construct a TracedReference from a Local.
++ *
++ * When the Local is non-empty, a new storage cell is created
++ * pointing to the same object.
++ */
+ template <class S>
+- V8_INLINE bool operator==(const Local<S>& that) const {
+- internal::Address* a = reinterpret_cast<internal::Address*>(**this);
+- internal::Address* b = reinterpret_cast<internal::Address*>(*that);
+- if (a == nullptr) return b == nullptr;
+- if (b == nullptr) return false;
+- return *a == *b;
++ TracedReference(Isolate* isolate, Local<S> that) : TracedReferenceBase<T>() {
++ this->val_ = this->New(isolate, that.val_, &this->val_,
++ TracedReferenceBase<T>::kWithoutDestructor);
++ TYPE_CHECK(T, S);
+ }
+
+- template <class S>
+- V8_INLINE bool operator!=(const TracedGlobal<S>& that) const {
+- return !operator==(that);
++ /**
++ * Move constructor initializing TracedReference from an
++ * existing one.
++ */
++ V8_INLINE TracedReference(TracedReference&& other) {
++ // Forward to operator=.
++ *this = std::move(other);
+ }
+
+- template <class S>
+- V8_INLINE bool operator!=(const Local<S>& that) const {
+- return !operator==(that);
++ /**
++ * Move constructor initializing TracedReference from an
++ * existing one.
++ */
++ template <typename S>
++ V8_INLINE TracedReference(TracedReference<S>&& other) {
++ // Forward to operator=.
++ *this = std::move(other);
+ }
+
+ /**
+- * Assigns a wrapper class ID to the handle.
++ * Copy constructor initializing TracedReference from an
++ * existing one.
+ */
+- V8_INLINE void SetWrapperClassId(uint16_t class_id);
++ V8_INLINE TracedReference(const TracedReference& other) {
++ // Forward to operator=;
++ *this = other;
++ }
+
+ /**
+- * Returns the class ID previously assigned to this handle or 0 if no class ID
+- * was previously assigned.
++ * Copy constructor initializing TracedReference from an
++ * existing one.
+ */
+- V8_INLINE uint16_t WrapperClassId() const;
++ template <typename S>
++ V8_INLINE TracedReference(const TracedReference<S>& other) {
++ // Forward to operator=;
++ *this = other;
++ }
+
+ /**
+- * Adds a finalization callback to the handle. The type of this callback is
+- * similar to WeakCallbackType::kInternalFields, i.e., it will pass the
+- * parameter and the first two internal fields of the object.
+- *
+- * The callback is then supposed to reset the handle in the callback. No
+- * further V8 API may be called in this callback. In case additional work
+- * involving V8 needs to be done, a second callback can be scheduled using
+- * WeakCallbackInfo<void>::SetSecondPassCallback.
++ * Move assignment operator initializing TracedGlobal from an existing one.
+ */
+- V8_INLINE void SetFinalizationCallback(
+- void* parameter, WeakCallbackInfo<void>::Callback callback);
++ V8_INLINE TracedReference& operator=(TracedReference&& rhs);
+
+- private:
+- // Wrapping type used when clearing on destruction is required.
+- struct WrappedForDestruction {
+- T* value;
+-
+- explicit WrappedForDestruction(T* val) : value(val) {}
+- ~WrappedForDestruction();
+- operator T*() const { return value; }
+- T* operator*() const { return value; }
+- T* operator->() const { return value; }
+- WrappedForDestruction& operator=(const WrappedForDestruction& other) {
+- value = other.value;
+- return *this;
+- }
+- WrappedForDestruction& operator=(T* val) {
+- value = val;
+- return *this;
+- }
+- };
++ /**
++ * Move assignment operator initializing TracedGlobal from an existing one.
++ */
++ template <class S>
++ V8_INLINE TracedReference& operator=(TracedReference<S>&& rhs);
+
+- V8_INLINE static T* New(Isolate* isolate, T* that, void* slot);
++ /**
++ * Copy assignment operator initializing TracedGlobal from an existing one.
++ *
++ * Note: Prohibited when |other| has a finalization callback set through
++ * |SetFinalizationCallback|.
++ */
++ V8_INLINE TracedReference& operator=(const TracedReference& rhs);
+
+- T* operator*() const { return this->val_; }
++ /**
++ * Copy assignment operator initializing TracedGlobal from an existing one.
++ *
++ * Note: Prohibited when |other| has a finalization callback set through
++ * |SetFinalizationCallback|.
++ */
++ template <class S>
++ V8_INLINE TracedReference& operator=(const TracedReference<S>& rhs);
+
+- typename std::conditional<
+- TracedGlobalTrait<TracedGlobal<T>>::kRequiresExplicitDestruction,
+- WrappedForDestruction, T*>::type val_{nullptr};
++ /**
++ * If non-empty, destroy the underlying storage cell and create a new one with
++ * the contents of other if other is non empty
++ */
++ template <class S>
++ V8_INLINE void Reset(Isolate* isolate, const Local<S>& other);
+
+- friend class EmbedderHeapTracer;
+- template <typename F>
+- friend class Local;
+- friend class Object;
+- template <typename F>
+- friend class ReturnValue;
++ template <class S>
++ V8_INLINE TracedReference<S>& As() const {
++ return reinterpret_cast<TracedReference<S>&>(
++ const_cast<TracedReference<T>&>(*this));
++ }
+ };
+
+ /**
+@@ -3640,8 +3761,9 @@ class V8_EXPORT Object : public Value {
+ return object.val_->InternalFieldCount();
+ }
+
+- /** Same as above, but works for TracedGlobal. */
+- V8_INLINE static int InternalFieldCount(const TracedGlobal<Object>& object) {
++ /** Same as above, but works for TracedReferenceBase. */
++ V8_INLINE static int InternalFieldCount(
++ const TracedReferenceBase<Object>& object) {
+ return object.val_->InternalFieldCount();
+ }
+
+@@ -3666,7 +3788,7 @@ class V8_EXPORT Object : public Value {
+
+ /** Same as above, but works for TracedGlobal. */
+ V8_INLINE static void* GetAlignedPointerFromInternalField(
+- const TracedGlobal<Object>& object, int index) {
++ const TracedReferenceBase<Object>& object, int index) {
+ return object.val_->GetAlignedPointerFromInternalField(index);
+ }
+
+@@ -3956,7 +4078,7 @@ class ReturnValue {
+ template <typename S>
+ V8_INLINE void Set(const Global<S>& handle);
+ template <typename S>
+- V8_INLINE void Set(const TracedGlobal<S>& handle);
++ V8_INLINE void Set(const TracedReferenceBase<S>& handle);
+ template <typename S>
+ V8_INLINE void Set(const Local<S> handle);
+ // Fast primitive setters
+@@ -7376,7 +7498,8 @@ class V8_EXPORT EmbedderHeapTracer {
+ class V8_EXPORT TracedGlobalHandleVisitor {
+ public:
+ virtual ~TracedGlobalHandleVisitor() = default;
+- virtual void VisitTracedGlobalHandle(const TracedGlobal<Value>& value) = 0;
++ virtual void VisitTracedGlobalHandle(const TracedGlobal<Value>& handle) {}
++ virtual void VisitTracedReference(const TracedReference<Value>& handle) {}
+ };
+
+ /**
+@@ -7414,7 +7537,7 @@ class V8_EXPORT EmbedderHeapTracer {
+ virtual void RegisterV8References(
+ const std::vector<std::pair<void*, void*> >& embedder_fields) = 0;
+
+- void RegisterEmbedderReference(const TracedGlobal<v8::Value>& ref);
++ void RegisterEmbedderReference(const TracedReferenceBase<v8::Value>& ref);
+
+ /**
+ * Called at the beginning of a GC cycle.
+@@ -7475,32 +7598,35 @@ class V8_EXPORT EmbedderHeapTracer {
+ *
+ * If this returns false, then V8 may decide that the object referred to by
+ * such a handle is reclaimed. In that case:
+- * - No action is required if handles are used with destructors.
+- * - When run without destructors (by specializing
+- * |TracedGlobalTrait::kRequiresExplicitDestruction|) V8 calls
+- * |ResetHandleInNonTracingGC|.
+- *
+- * Note that the |handle| is different from the |TracedGlobal<T>| handle that
+- * the embedder holds for retaining the object. The embedder may use
+- * |TracedGlobal<T>::WrapperClassId()| to distinguish cases where it wants
+- * handles to be treated as roots from not being treated as roots.
++ * - No action is required if handles are used with destructors, i.e., by just
++ * using |TracedGlobal|.
++ * - When run without destructors, i.e., by using
++ * |TracedReference|, V8 calls |ResetHandleInNonTracingGC|.
++ *
++ * Note that the |handle| is different from the handle that the embedder holds
++ * for retaining the object. The embedder may use |WrapperClassId()| to
++ * distinguish cases where it wants handles to be treated as roots from not
++ * being treated as roots.
+ */
+ virtual bool IsRootForNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {
+- return true;
+- }
++ const v8::TracedReference<v8::Value>& handle);
++ virtual bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>& handle);
+
+ /**
+ * Used in combination with |IsRootForNonTracingGC|. Called by V8 when an
+ * object that is backed by a handle is reclaimed by a non-tracing garbage
+ * collection. It is up to the embedder to reset the original handle.
+ *
+- * Note that the |handle| is different from the |TracedGlobal<T>| handle that
+- * the embedder holds for retaining the object. It is up to the embedder to
+- * find the orignal |TracedGlobal<T>| handle via the object or class id.
++ * Note that the |handle| is different from the handle that the embedder holds
++ * for retaining the object. It is up to the embedder to find the original
++ * handle via the object or class id.
+ */
+ virtual void ResetHandleInNonTracingGC(
+- const v8::TracedGlobal<v8::Value>& handle) {}
++ const v8::TracedReference<v8::Value>& handle);
++ V8_DEPRECATE_SOON(
++ "Use TracedReference version when not requiring destructors.",
++ virtual void ResetHandleInNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle));
+
+ /*
+ * Called by the embedder to immediately perform a full garbage collection.
+@@ -9103,8 +9229,12 @@ class V8_EXPORT V8 {
+ template <class T>
+ friend class Maybe;
+ template <class T>
++ friend class TracedReferenceBase;
++ template <class T>
+ friend class TracedGlobal;
+ template <class T>
++ friend class TracedReference;
++ template <class T>
+ friend class WeakCallbackInfo;
+ template <class T> friend class Eternal;
+ template <class T> friend class PersistentBase;
+@@ -9975,7 +10105,7 @@ Local<T> Local<T>::New(Isolate* isolate,
+ }
+
+ template <class T>
+-Local<T> Local<T>::New(Isolate* isolate, const TracedGlobal<T>& that) {
++Local<T> Local<T>::New(Isolate* isolate, const TracedReferenceBase<T>& that) {
+ return New(isolate, that.val_);
+ }
+
+@@ -10156,26 +10286,20 @@ Global<T>& Global<T>::operator=(Global<S
+ }
+
+ template <class T>
+-TracedGlobal<T>::WrappedForDestruction::~WrappedForDestruction() {
+- if (value == nullptr) return;
+- V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(value));
+- value = nullptr;
+-}
+-
+-template <class T>
+-T* TracedGlobal<T>::New(Isolate* isolate, T* that, void* slot) {
++T* TracedReferenceBase<T>::New(Isolate* isolate, T* that, void* slot,
++ DestructionMode destruction_mode) {
+ if (that == nullptr) return nullptr;
+ internal::Address* p = reinterpret_cast<internal::Address*>(that);
+ return reinterpret_cast<T*>(V8::GlobalizeTracedReference(
+ reinterpret_cast<internal::Isolate*>(isolate), p,
+ reinterpret_cast<internal::Address*>(slot),
+- TracedGlobalTrait<TracedGlobal<T>>::kRequiresExplicitDestruction));
++ destruction_mode == kWithDestructor));
+ }
+
+ template <class T>
+-void TracedGlobal<T>::Reset() {
++void TracedReferenceBase<T>::Reset() {
+ if (IsEmpty()) return;
+- V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(**this));
++ V8::DisposeTracedGlobal(reinterpret_cast<internal::Address*>(val_));
+ val_ = nullptr;
+ }
+
+@@ -10185,7 +10309,8 @@ void TracedGlobal<T>::Reset(Isolate* iso
+ TYPE_CHECK(T, S);
+ Reset();
+ if (other.IsEmpty()) return;
+- this->val_ = New(isolate, other.val_, &val_);
++ this->val_ = this->New(isolate, other.val_, &this->val_,
++ TracedReferenceBase<T>::kWithDestructor);
+ }
+
+ template <class T>
+@@ -10233,28 +10358,83 @@ TracedGlobal<T>& TracedGlobal<T>::operat
+ }
+
+ template <class T>
+-void TracedGlobal<T>::SetWrapperClassId(uint16_t class_id) {
++template <class S>
++void TracedReference<T>::Reset(Isolate* isolate, const Local<S>& other) {
++ TYPE_CHECK(T, S);
++ Reset();
++ if (other.IsEmpty()) return;
++ this->val_ = this->New(isolate, other.val_, &this->val_,
++ TracedReferenceBase<T>::kWithoutDestructor);
++}
++
++template <class T>
++template <class S>
++TracedReference<T>& TracedReference<T>::operator=(TracedReference<S>&& rhs) {
++ TYPE_CHECK(T, S);
++ *this = std::move(rhs.template As<T>());
++ return *this;
++}
++
++template <class T>
++template <class S>
++TracedReference<T>& TracedReference<T>::operator=(
++ const TracedReference<S>& rhs) {
++ TYPE_CHECK(T, S);
++ *this = rhs.template As<T>();
++ return *this;
++}
++
++template <class T>
++TracedReference<T>& TracedReference<T>::operator=(TracedReference&& rhs) {
++ if (this != &rhs) {
++ this->Reset();
++ if (rhs.val_ != nullptr) {
++ this->val_ = rhs.val_;
++ V8::MoveTracedGlobalReference(
++ reinterpret_cast<internal::Address**>(&rhs.val_),
++ reinterpret_cast<internal::Address**>(&this->val_));
++ rhs.val_ = nullptr;
++ }
++ }
++ return *this;
++}
++
++template <class T>
++TracedReference<T>& TracedReference<T>::operator=(const TracedReference& rhs) {
++ if (this != &rhs) {
++ this->Reset();
++ if (rhs.val_ != nullptr) {
++ V8::CopyTracedGlobalReference(
++ reinterpret_cast<const internal::Address* const*>(&rhs.val_),
++ reinterpret_cast<internal::Address**>(&this->val_));
++ }
++ }
++ return *this;
++}
++
++template <class T>
++void TracedReferenceBase<T>::SetWrapperClassId(uint16_t class_id) {
+ typedef internal::Internals I;
+ if (IsEmpty()) return;
+- internal::Address* obj = reinterpret_cast<internal::Address*>(**this);
++ internal::Address* obj = reinterpret_cast<internal::Address*>(val_);
+ uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
+ *reinterpret_cast<uint16_t*>(addr) = class_id;
+ }
+
+ template <class T>
+-uint16_t TracedGlobal<T>::WrapperClassId() const {
++uint16_t TracedReferenceBase<T>::WrapperClassId() const {
+ typedef internal::Internals I;
+ if (IsEmpty()) return 0;
+- internal::Address* obj = reinterpret_cast<internal::Address*>(**this);
++ internal::Address* obj = reinterpret_cast<internal::Address*>(val_);
+ uint8_t* addr = reinterpret_cast<uint8_t*>(obj) + I::kNodeClassIdOffset;
+ return *reinterpret_cast<uint16_t*>(addr);
+ }
+
+ template <class T>
+-void TracedGlobal<T>::SetFinalizationCallback(
++void TracedReferenceBase<T>::SetFinalizationCallback(
+ void* parameter, typename WeakCallbackInfo<void>::Callback callback) {
+- V8::SetFinalizationCallbackTraced(
+- reinterpret_cast<internal::Address*>(**this), parameter, callback);
++ V8::SetFinalizationCallbackTraced(reinterpret_cast<internal::Address*>(val_),
++ parameter, callback);
+ }
+
+ template <typename T>
+@@ -10273,12 +10453,12 @@ void ReturnValue<T>::Set(const Global<S>
+
+ template <typename T>
+ template <typename S>
+-void ReturnValue<T>::Set(const TracedGlobal<S>& handle) {
++void ReturnValue<T>::Set(const TracedReferenceBase<S>& handle) {
+ TYPE_CHECK(T, S);
+ if (V8_UNLIKELY(handle.IsEmpty())) {
+ *value_ = GetDefaultValue();
+ } else {
+- *value_ = *reinterpret_cast<internal::Address*>(*handle);
++ *value_ = *reinterpret_cast<internal::Address*>(handle.val_);
+ }
+ }
+
+diff -up chromium-78.0.3904.70/v8/src/api/api.cc.implement-tracedreference chromium-78.0.3904.70/v8/src/api/api.cc
+--- chromium-78.0.3904.70/v8/src/api/api.cc.implement-tracedreference 2019-10-24 09:18:56.712105100 -0400
++++ chromium-78.0.3904.70/v8/src/api/api.cc 2019-10-24 09:20:17.428555637 -0400
+@@ -10346,11 +10346,12 @@ void EmbedderHeapTracer::DecreaseAllocat
+ }
+
+ void EmbedderHeapTracer::RegisterEmbedderReference(
+- const TracedGlobal<v8::Value>& ref) {
++ const TracedReferenceBase<v8::Value>& ref) {
+ if (ref.IsEmpty()) return;
+
+ i::Heap* const heap = reinterpret_cast<i::Isolate*>(isolate_)->heap();
+- heap->RegisterExternallyReferencedObject(reinterpret_cast<i::Address*>(*ref));
++ heap->RegisterExternallyReferencedObject(
++ reinterpret_cast<i::Address*>(ref.val_));
+ }
+
+ void EmbedderHeapTracer::IterateTracedGlobalHandles(
+@@ -10360,6 +10361,26 @@ void EmbedderHeapTracer::IterateTracedGl
+ isolate->global_handles()->IterateTracedNodes(visitor);
+ }
+
++bool EmbedderHeapTracer::IsRootForNonTracingGC(
++ const v8::TracedReference<v8::Value>& handle) {
++ return true;
++}
++
++bool EmbedderHeapTracer::IsRootForNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ return true;
++}
++
++void EmbedderHeapTracer::ResetHandleInNonTracingGC(
++ const v8::TracedReference<v8::Value>& handle) {
++ UNREACHABLE();
++}
++
++void EmbedderHeapTracer::ResetHandleInNonTracingGC(
++ const v8::TracedGlobal<v8::Value>& handle) {
++ UNREACHABLE();
++}
++
+ namespace internal {
+
+ const size_t HandleScopeImplementer::kEnteredContextsOffset =
+diff -up chromium-78.0.3904.70/v8/src/handles/global-handles.cc.implement-tracedreference chromium-78.0.3904.70/v8/src/handles/global-handles.cc
+--- chromium-78.0.3904.70/v8/src/handles/global-handles.cc.implement-tracedreference 2019-10-24 09:20:39.954123225 -0400
++++ chromium-78.0.3904.70/v8/src/handles/global-handles.cc 2019-10-24 09:21:45.911857072 -0400
+@@ -901,8 +901,13 @@ void GlobalHandles::IdentifyWeakUnmodifi
+ DCHECK(node->is_root());
+ if (is_unmodified(node->location())) {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+- node->set_root(tracer->IsRootForNonTracingGC(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value)));
++ if (node->has_destructor()) {
++ node->set_root(tracer->IsRootForNonTracingGC(
++ *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value)));
++ } else {
++ node->set_root(tracer->IsRootForNonTracingGC(
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value)));
++ }
+ }
+ }
+ }
+@@ -990,7 +995,7 @@ void GlobalHandles::IterateYoungWeakUnmo
+ } else {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+ tracer->ResetHandleInNonTracingGC(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value));
+ DCHECK(!node->IsInUse());
+ }
+
+@@ -1271,8 +1276,13 @@ void GlobalHandles::IterateTracedNodes(
+ for (TracedNode* node : *traced_nodes_) {
+ if (node->IsInUse()) {
+ v8::Value* value = ToApi<v8::Value>(node->handle());
+- visitor->VisitTracedGlobalHandle(
+- *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ if (node->has_destructor()) {
++ visitor->VisitTracedGlobalHandle(
++ *reinterpret_cast<v8::TracedGlobal<v8::Value>*>(&value));
++ } else {
++ visitor->VisitTracedReference(
++ *reinterpret_cast<v8::TracedReference<v8::Value>*>(&value));
++ }
+ }
+ }
+ }
+diff -up chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h.implement-tracedreference chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h
+--- chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h.implement-tracedreference 2019-10-24 09:22:03.664519559 -0400
++++ chromium-78.0.3904.70/v8/src/heap/embedder-tracing.h 2019-10-24 09:22:45.197729964 -0400
+@@ -57,7 +57,12 @@ class V8_EXPORT_PRIVATE LocalEmbedderHea
+ bool IsRootForNonTracingGC(const v8::TracedGlobal<v8::Value>& handle) {
+ return !InUse() || remote_tracer_->IsRootForNonTracingGC(handle);
+ }
+- void ResetHandleInNonTracingGC(const v8::TracedGlobal<v8::Value>& handle) {
++
++ bool IsRootForNonTracingGC(const v8::TracedReference<v8::Value>& handle) {
++ return !InUse() || remote_tracer_->IsRootForNonTracingGC(handle);
++ }
++
++ void ResetHandleInNonTracingGC(const v8::TracedReference<v8::Value>& handle) {
+ // Resetting is only called when IsRootForNonTracingGC returns false which
+ // can only happen the EmbedderHeapTracer is set on API level.
+ DCHECK(InUse());
commit 5d755bc2f71af8bed245840799ff57636a192074
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 13:09:01 2019 -0400
fix issue in my manual patch, apply other gentoo 78 fixes
diff --git a/chromium-78-gcc-noexcept.patch b/chromium-78-gcc-noexcept.patch
new file mode 100644
index 0000000..8ddb53f
--- /dev/null
+++ b/chromium-78-gcc-noexcept.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/chromium-78-include.patch b/chromium-78-include.patch
new file mode 100644
index 0000000..3db38ea
--- /dev/null
+++ b/chromium-78-include.patch
@@ -0,0 +1,40 @@
+From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001
+From: David Landell <landell(a)vewd.com>
+Date: Fri, 13 Sep 2019 12:24:13 +0000
+Subject: [PATCH] Add missing include for unique_ptr
+
+Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137
+Reviewed-by: Henrik Bostrm <hbos(a)chromium.org>
+Commit-Queue: Henrik Bostrm <hbos(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696355}
+---
+
+diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
+index 959440f..c3fd542 100644
+--- a/third_party/blink/public/platform/web_rtc_rtp_source.h
++++ b/third_party/blink/public/platform/web_rtc_rtp_source.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+
++#include <memory>
++
+ #include "base/optional.h"
+ #include "third_party/blink/public/platform/web_common.h"
+
+Missing include due to reverting ProfileManagerObserver
+---
+
+diff --git a/chrome/browser/web_applications/extensions/bookmark_app_util.cc b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
+index ee4b70a..b31e5f5 100644
+--- a/chrome/browser/web_applications/extensions/bookmark_app_util.cc
++++ b/chrome/browser/web_applications/extensions/bookmark_app_util.cc
+@@ -7,6 +7,7 @@
+ #include "base/strings/string_piece.h"
+ #include "base/values.h"
+ #include "chrome/browser/extensions/extension_service.h"
++#include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/web_applications/components/app_registrar.h"
+ #include "chrome/browser/web_applications/components/web_app_provider_base.h"
+ #include "chrome/common/chrome_features.h"
diff --git a/chromium-78-pm-crash.patch b/chromium-78-pm-crash.patch
new file mode 100644
index 0000000..ada2661
--- /dev/null
+++ b/chromium-78-pm-crash.patch
@@ -0,0 +1,43 @@
+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}
+---
+
+diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
+index b60df76d..7d02af7 100644
+--- a/chrome/browser/profiles/profile_manager.h
++++ b/chrome/browser/profiles/profile_manager.h
+@@ -409,6 +409,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
+@@ -450,8 +454,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
diff --git a/chromium-78-protobuf-export.patch b/chromium-78-protobuf-export.patch
new file mode 100644
index 0000000..ddb9e80
--- /dev/null
+++ b/chromium-78-protobuf-export.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/protobuf/src/google/protobuf/repeated_field.h b/third_party/protobuf/src/google/protobuf/repeated_field.h
+index b5b193c..4434854 100644
+--- a/third_party/protobuf/src/google/protobuf/repeated_field.h
++++ b/third_party/protobuf/src/google/protobuf/repeated_field.h
+@@ -804,7 +804,7 @@ class StringTypeHandler {
+ // RepeatedPtrField is like RepeatedField, but used for repeated strings or
+ // Messages.
+ template <typename Element>
+-class RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
++class PROTOBUF_EXPORT RepeatedPtrField final : private internal::RepeatedPtrFieldBase {
+ public:
+ RepeatedPtrField();
+ explicit RepeatedPtrField(Arena* arena);
diff --git a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
index 6ffe580..cb436ec 100644
--- a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
+++ b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
@@ -1,7 +1,7 @@
diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst chromium-78.0.3904.70/net/dns/dns_util.cc
---- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-23 11:21:55.805646136 -0400
-+++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 11:23:52.693140706 -0400
-@@ -139,11 +139,11 @@ struct DohUpgradeEntry {
+--- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-21 15:06:38.000000000 -0400
++++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 12:55:27.886546918 -0400
+@@ -139,12 +139,12 @@ struct DohUpgradeEntry {
const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
};
@@ -11,10 +11,12 @@ diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst
// DohProviderId histogram suffix list in
// tools/metrics/histograms/histograms.xml.
- static const base::NoDestructor<std::vector<const DohUpgradeEntry>>
+- upgradable_servers({
+ static const base::NoDestructor<std::vector<DohUpgradeEntry>>
- upgradable_servers({
++ upgradable_servers(std::initializer_list<DohUpgradeEntry>{
DohUpgradeEntry(
"CleanBrowsingAdult",
+ {"185.228.168.10", "185.228.169.11", "2a0d:2a00:1::1",
@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>
std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers(
const std::vector<IPEndPoint>& dns_servers,
diff --git a/chromium.spec b/chromium.spec
index bfa6fe8..764e85d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -222,6 +222,14 @@ Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
# https://chromium.googlesource.com/chromium/src/+/f4c3c329588b78af63aad8b4...
Patch61: chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch62: chromium-78-gcc-noexcept.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch63: chromium-78-pm-crash.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch64: chromium-78-protobuf-export.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-78-include.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -747,6 +755,10 @@ udev.
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
%patch60 -p1 -b .gcc-sizet
%patch61 -p1 -b .gcc-DohUpgradeEntry-nonconst
+%patch62 -p1 -b .gcc-v8-noexcept
+%patch63 -p1 -b .pm-crash
+%patch64 -p1 -b .protobuf-export
+%patch65 -p1 -b .missing-includes
# Fedora branded user agent
%if 0%{?fedora}
commit dd5dd20f917b27c6596de8344b9553ad545e71bb
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 12:02:13 2019 -0400
preserve third_party/catapult/tracing/third_party/jpeg-js, add another upstream gcc fix
diff --git a/chromium.spec b/chromium.spec
index 3f62331..bfa6fe8 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -220,6 +220,8 @@ Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
# https://chromium.googlesource.com/chromium/src/+/9662ec844017690d5fd56bf0...
Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/f4c3c329588b78af63aad8b4...
+Patch61: chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -744,6 +746,7 @@ udev.
%patch58 -p1 -b .gcc-invalid-pragma
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
%patch60 -p1 -b .gcc-sizet
+%patch61 -p1 -b .gcc-DohUpgradeEntry-nonconst
# Fedora branded user agent
%if 0%{?fedora}
@@ -962,6 +965,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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' \
commit e4b93e833781790c8f0a03f103354e7ee8b97245
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 11:26:02 2019 -0400
another gcc fix from upstream
diff --git a/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
new file mode 100644
index 0000000..6ffe580
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-DohUpgradeEntry-nonconst.patch
@@ -0,0 +1,47 @@
+diff -up chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst chromium-78.0.3904.70/net/dns/dns_util.cc
+--- chromium-78.0.3904.70/net/dns/dns_util.cc.gcc-DohUpgradeEntry-nonconst 2019-10-23 11:21:55.805646136 -0400
++++ chromium-78.0.3904.70/net/dns/dns_util.cc 2019-10-23 11:23:52.693140706 -0400
+@@ -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>
+ 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::DnsOverHttpsServe
+ 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) {
commit d3e96e671b46f81f9fa7d5bd17631e7f06199b83
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 11:19:54 2019 -0400
more 78 fixes
diff --git a/chromium-78.0.3904.70-gcc-sizet-fix.patch b/chromium-78.0.3904.70-gcc-sizet-fix.patch
new file mode 100644
index 0000000..b95b0ed
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-sizet-fix.patch
@@ -0,0 +1,20 @@
+diff -up chromium-78.0.3904.70/base/containers/intrusive_heap.h.gcc-sizet chromium-78.0.3904.70/base/containers/intrusive_heap.h
+--- chromium-78.0.3904.70/base/containers/intrusive_heap.h.gcc-sizet 2019-10-23 11:02:56.767907986 -0400
++++ chromium-78.0.3904.70/base/containers/intrusive_heap.h 2019-10-23 11:04:58.317351636 -0400
+@@ -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;
diff --git a/chromium.spec b/chromium.spec
index 675a54b..3f62331 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -218,6 +218,8 @@ Patch57: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
# https://chromium.googlesource.com/chromium/src/+/2db67d40ef766c63a7389686...
Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
+# https://chromium.googlesource.com/chromium/src/+/9662ec844017690d5fd56bf0...
+Patch60: chromium-78.0.3904.70-gcc-sizet-fix.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -741,6 +743,7 @@ udev.
%patch57 -p1 -b .gcc-fix-zlib-symbol-visibility
%patch58 -p1 -b .gcc-invalid-pragma
%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
+%patch60 -p1 -b .gcc-sizet
# Fedora branded user agent
%if 0%{?fedora}
@@ -903,7 +906,7 @@ ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
# Gentoo's Chromium ebuild) are the libraries that needs to be preserved.
build/linux/unbundle/remove_bundled_libraries.py \
'base/third_party/cityhash' \
- 'base/third_party/dmg_fp' \
+ 'base/third_party/double_conversion' \
'base/third_party/dynamic_annotations' \
'base/third_party/icu' \
'base/third_party/libevent' \
commit 6944f231efaf722f2d99cae67145721be2eb8826
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 23 10:20:43 2019 -0400
initial v78 commit, note, NOT READY FOR BUILD YET
diff --git a/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch b/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
deleted file mode 100644
index d071e81..0000000
--- a/chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h
---- chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h.gcc9 2019-01-08 13:27:25.193614727 -0500
-+++ chromium-71.0.3578.98/third_party/tcmalloc/gperftools-2.0/chromium/src/base/linux_syscall_support.h 2019-01-08 13:27:35.161392234 -0500
-@@ -1231,7 +1231,7 @@ typedef unsigned long int ulong;
- "d"(LSS_SYSCALL_ARG(parent_tidptr)),
- "r"(LSS_SYSCALL_ARG(newtls)),
- "r"(LSS_SYSCALL_ARG(child_tidptr))
-- : "rsp", "memory", "r8", "r10", "r11", "rcx");
-+ : "memory", "r8", "r10", "r11", "rcx");
- }
- LSS_RETURN(int, __res);
- }
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
deleted file mode 100644
index cc91d1e..0000000
--- a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
---- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
-+++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
-@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
- DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
- };
-
--class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
-- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
-+class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
-+ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
- : public CSSPropertyValueSet {
- public:
- ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
deleted file mode 100644
index 64532df..0000000
--- a/chromium-76.0.3809.100-vtable-symbol-undefined.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
---- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
-+++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
-@@ -18,6 +18,7 @@
- #include "net/quic/crypto/proof_verifier_chromium.h"
- #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
- #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
-+#include "net/quic/platform/impl/quic_flags_impl.cc"
-
- DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
- certificate_file,
diff --git a/chromium-77.0.3865.120-silence-outdated-build-noise.patch b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
index 22e1e78..f2d4735 100644
--- a/chromium-77.0.3865.120-silence-outdated-build-noise.patch
+++ b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
@@ -32,7 +32,7 @@ index 432e3789eced0..07850fdf80cd7 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/google/google_brand.h"
#include "chrome/common/chrome_switches.h"
-@@ -74,6 +75,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
+@@ -73,6 +74,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
// The number of days after which we identify a build/install as outdated.
constexpr base::TimeDelta kOutdatedBuildAge = base::TimeDelta::FromDays(12 * 7);
@@ -47,13 +47,14 @@ index 432e3789eced0..07850fdf80cd7 100644
// Return the string that was passed as a value for the
// kCheckForUpdateIntervalSec switch.
std::string CmdLineInterval() {
-@@ -403,6 +412,9 @@ bool UpgradeDetectorImpl::DetectOutdated
- if (base::IsMachineExternallyManaged())
+@@ -406,6 +415,10 @@ bool UpgradeDetectorImpl::DetectOutdated
return false;
+ }
#endif
+
+ if (!ShouldDetectOutdatedBuilds())
+ return false;
++
}
base::Time network_time;
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
deleted file mode 100644
index 82e2958..0000000
--- a/chromium-77.0.3865.75-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
-@@ -21,6 +21,7 @@
- #include "components/version_info/version_info.h"
- #include "content/public/common/content_switches.h"
- #include "content/public/common/user_agent.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerFreezeQUICUaBrowsertest,
- ::testing::Values(true, false));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -50,6 +52,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -79,6 +82,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
---- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
-@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
-@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
-@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
-+++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
-@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
-+++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
---- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
-@@ -36,6 +36,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
---- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/remote.h"
- #include "mojo/public/cpp/bindings/self_owned_receiver.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -115,6 +118,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
- #include "net/ftp/ftp_auth_cache.h"
- #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
-@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
- true /* was_cached */, true /* is_navigation */);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
---- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
---- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
-+++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
-@@ -239,15 +239,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -300,6 +291,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -311,6 +311,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
deleted file mode 100644
index 6d77299..0000000
--- a/chromium-77.0.3865.75-gcc-abstract-class.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 26 Jul 2019 16:48:06 +0000
-Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
-
-The method UploadForDeepScanning gets a Request as parameter. But Request is an
-abstract class, so GCC will not allow that declaration (polimorphycs should be
-passed by reference). Use std::unique_ptr so BinaryUploadService can assume
-ownership.
-
-Bug: 819294
-Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
-Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#681333}
----
-
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-index 6430c89..4e90487 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
-@@ -10,7 +10,7 @@
- namespace safe_browsing {
-
- void BinaryUploadService::UploadForDeepScanning(
-- BinaryUploadService::Request request) {
-+ std::unique_ptr<BinaryUploadService::Request> request) {
- DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- NOTREACHED();
- }
-diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-index d2dfd83..9b6f395 100644
---- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-+++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
-@@ -5,6 +5,8 @@
- #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
- #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
-
-+#include <memory>
-+
- #include "base/callback.h"
- #include "components/safe_browsing/proto/webprotect.pb.h"
-
-@@ -40,6 +42,7 @@
- public:
- // |callback| will run on the UI thread.
- explicit Request(Callback callback);
-+ virtual ~Request() = default;
- Request(const Request&) = delete;
- Request& operator=(const Request&) = delete;
-
-@@ -67,7 +70,7 @@
- // Upload the given file contents for deep scanning. The results will be
- // returned asynchronously by calling |request|'s |callback|. This must be
- // called on the UI thread.
-- void UploadForDeepScanning(Request request);
-+ void UploadForDeepScanning(std::unique_ptr<Request> request);
- };
-
- } // namespace safe_browsing
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
deleted file mode 100644
index 55d78d1..0000000
--- a/chromium-77.0.3865.75-harfbuzz-subset.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Date: Mon, 29 Jul 2019 10:54:28 +0000
-Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
-
-When building HarfBuzz as part of Chromium, there is a single source set
-with all the files we need in the build.
-
-Upstream HarfBuzz, on the other hand, produces a few different libraries:
-harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
-true, we were only looking for (and using) harfbuzz.pc with pkg-config even
-though we also use symbols from libharfbuzz-subset.so. This resulted in
-errors when linking:
-
- ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
- SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
- ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
-
-as reported in
-https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
-
-Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
-Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
-Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#681760}
----
-
-diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
-index 37d8e33..72013eb1d 100644
---- a/third_party/harfbuzz-ng/BUILD.gn
-+++ b/third_party/harfbuzz-ng/BUILD.gn
-@@ -16,7 +16,10 @@
- "//third_party:freetype_harfbuzz",
- "//third_party/freetype:freetype_source",
- ]
-- packages = [ "harfbuzz" ]
-+ packages = [
-+ "harfbuzz",
-+ "harfbuzz-subset",
-+ ]
- }
- } else {
- config("harfbuzz_config") {
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
deleted file mode 100644
index 3ac1770..0000000
--- a/chromium-77.0.3865.75-missing-limits.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
-From: Dave Tapuska <dtapuska(a)chromium.org>
-Date: Mon, 12 Aug 2019 22:30:13 +0000
-Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
-
-Some configurations fail to build, limits should have been included.
-
-BUG=992832
-
-Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
-Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
-Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
-Cr-Commit-Position: refs/heads/master@{#686214}
----
-
-diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
-index 384566a..68d83e1 100644
---- a/third_party/blink/renderer/platform/exported/web_time_range.cc
-+++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
-@@ -31,6 +31,7 @@
- #include "third_party/blink/public/platform/web_time_range.h"
-
- #include <cmath>
-+#include <limits>
-
- namespace blink {
-
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
deleted file mode 100644
index d6c45ad..0000000
--- a/chromium-77.0.3865.75-unbundle-zlib.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
-From: Your Name <you(a)example.com>
-Date: Fri, 28 Jun 2019 15:56:23 +0000
-Subject: [PATCH] update zlib
-
----
- third_party/perfetto/gn/BUILD.gn | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
-index c951f5f..297eee3 100644
---- a/third_party/perfetto/gn/BUILD.gn
-+++ b/third_party/perfetto/gn/BUILD.gn
-@@ -200,7 +200,7 @@ group("zlib") {
- "//buildtools:zlib",
- ]
- } else if (build_with_chromium) {
-- public_configs = [ "//third_party/zlib:zlib_config" ]
-+ public_configs = [ "//third_party/zlib:system_zlib" ]
- public_deps = [
- "//third_party/zlib",
- ]
---
-2.21.0
-
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
deleted file mode 100644
index f921f1a..0000000
--- a/chromium-77.0.3865.90-linked-hash-set.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
-From: Jeremy Roman <jbroman(a)chromium.org>
-Date: Wed, 07 Aug 2019 13:26:48 +0000
-Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
-
-Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
-
-Bug: 980025
-Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
-Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#684731}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-index 0efc8fb..90063cb 100644
---- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
-+++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
-@@ -133,6 +133,10 @@
-
- struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
- STATIC_ONLY(FontCacheKeyTraits);
-+
-+ // std::string's empty state need not be zero in all implementations,
-+ // and it is held within FontFaceCreationParams.
-+ static const bool kEmptyValueIsZero = false;
- };
-
- } // namespace blink
-diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-index b35b6e9..77e524c 100644
---- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-+++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
-@@ -146,6 +146,11 @@
- LinkedHashSetNodeBase* next)
- : LinkedHashSetNodeBase(prev, next), value_(value) {}
-
-+ LinkedHashSetNode(ValueArg&& value,
-+ LinkedHashSetNodeBase* prev,
-+ LinkedHashSetNodeBase* next)
-+ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
-+
- LinkedHashSetNode(LinkedHashSetNode&& other)
- : LinkedHashSetNodeBase(std::move(other)),
- value_(std::move(other.value_)) {}
-@@ -445,10 +450,13 @@
-
- // The slot is empty when the next_ field is zero so it's safe to zero
- // the backing.
-- static const bool kEmptyValueIsZero = true;
-+ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
-
- static const bool kHasIsEmptyValueFunction = true;
- static bool IsEmptyValue(const Node& node) { return !node.next_; }
-+ static Node EmptyValue() {
-+ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
-+ }
-
- static const int kDeletedValue = -1;
-
-diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-index 4c3f899..cd1be00 100644
---- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-+++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
-@@ -487,6 +487,7 @@
- };
-
- struct Complicated {
-+ Complicated() : Complicated(0) {}
- Complicated(int value) : simple_(value) { objects_constructed_++; }
-
- Complicated(const Complicated& other) : simple_(other.simple_) {
-@@ -495,9 +496,6 @@
-
- Simple simple_;
- static int objects_constructed_;
--
-- private:
-- Complicated() = delete;
- };
-
- int Complicated::objects_constructed_ = 0;
-@@ -731,4 +729,45 @@
-
- } // anonymous namespace
-
-+// A unit type which objects to its state being initialized wrong.
-+struct InvalidZeroValue {
-+ InvalidZeroValue() = default;
-+ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
-+ ~InvalidZeroValue() { CHECK(ok_); }
-+ bool IsHashTableDeletedValue() const { return deleted_; }
-+
-+ bool ok_ = true;
-+ bool deleted_ = false;
-+};
-+
-+template <>
-+struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
-+ static const bool kEmptyValueIsZero = false;
-+};
-+
-+template <>
-+struct DefaultHash<InvalidZeroValue> {
-+ struct Hash {
-+ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
-+ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
-+ return true;
-+ }
-+ };
-+};
-+
-+template <typename Set>
-+class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
-+
-+using InvalidZeroValueSetTypes =
-+ testing::Types<ListHashSet<InvalidZeroValue>,
-+ ListHashSet<InvalidZeroValue, 1>,
-+ LinkedHashSet<InvalidZeroValue>>;
-+TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
-+
-+TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
-+ using Set = TypeParam;
-+ Set set;
-+ set.insert(InvalidZeroValue());
-+}
-+
- } // namespace WTF
diff --git a/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch b/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
new file mode 100644
index 0000000..eb0efbd
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
@@ -0,0 +1,16 @@
+diff -up chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc.invalid-pragma chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc
+--- chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc.invalid-pragma 2019-10-23 10:00:41.361932768 -0400
++++ chromium-78.0.3904.70/base/allocator/debugallocation_shim.cc 2019-10-23 10:02:09.778100948 -0400
+@@ -7,9 +7,10 @@
+ // AFDO can mess with them. Better not to use AFDO there. This is a
+ // temporary hack. We will add a mechanism in the build system to
+ // avoid using -fauto-profile for tcmalloc files.
+-#if !defined(__clang__) && (defined(OS_CHROMEOS) || __GNUC__ > 5)
++#if !defined(__clang__) && \
++ (defined(OS_CHROMEOS) || (__GNUC__ > 5 && __GNUC__ < 7))
+ // Note that this option only seems to be available in the chromeos GCC 4.9
+-// toolchain, and stock GCC 5 and up.
++// toolchain, and stock GCC 5 upto 7.
+ #pragma GCC optimize ("no-auto-profile")
+ #endif
+
diff --git a/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch b/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
new file mode 100644
index 0000000..e5502cf
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
@@ -0,0 +1,12 @@
+diff -up chromium-78.0.3904.70/base/logging.h.constexpr chromium-78.0.3904.70/base/logging.h
+--- chromium-78.0.3904.70/base/logging.h.constexpr 2019-10-23 10:06:53.434313793 -0400
++++ chromium-78.0.3904.70/base/logging.h 2019-10-23 10:07:17.490853038 -0400
+@@ -530,7 +530,7 @@ BASE_EXPORT extern std::ostream* g_swall
+ class CheckOpResult {
+ public:
+ // |message| must be non-null if and only if the check failed.
+- CheckOpResult(std::string* message) : message_(message) {}
++ constexpr CheckOpResult(std::string* message) : message_(message) {}
+ // Returns true if the check succeeded.
+ operator bool() const { return !message_; }
+ // Returns the message.
diff --git a/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch b/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
new file mode 100644
index 0000000..6785b09
--- /dev/null
+++ b/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
@@ -0,0 +1,24 @@
+diff -up chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h
+--- chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:16.153251961 -0400
++++ chromium-78.0.3904.70/third_party/tcmalloc/chromium/src/base/linux_syscall_support.h 2019-10-23 08:58:36.896862347 -0400
+@@ -1486,7 +1486,7 @@ struct kernel_stat {
+ "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+ "r"(LSS_SYSCALL_ARG(newtls)),
+ "r"(LSS_SYSCALL_ARG(child_tidptr))
+- : "rsp", "memory", "r8", "r10", "r11", "rcx");
++ : "memory", "r8", "r10", "r11", "rcx");
+ }
+ LSS_RETURN(int, __res);
+ }
+diff -up chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h
+--- chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 2019-10-23 08:58:59.623435488 -0400
++++ chromium-78.0.3904.70/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h 2019-10-23 08:59:16.113125772 -0400
+@@ -1485,7 +1485,7 @@ struct kernel_stat {
+ "d"(LSS_SYSCALL_ARG(parent_tidptr)),
+ "r"(LSS_SYSCALL_ARG(newtls)),
+ "r"(LSS_SYSCALL_ARG(child_tidptr))
+- : "rsp", "memory", "r8", "r10", "r11", "rcx");
++ : "memory", "r8", "r10", "r11", "rcx");
+ }
+ LSS_RETURN(int, __res);
+ }
diff --git a/chromium-78.0.3904.70-unbundle-zlib.patch b/chromium-78.0.3904.70-unbundle-zlib.patch
new file mode 100644
index 0000000..155990e
--- /dev/null
+++ b/chromium-78.0.3904.70-unbundle-zlib.patch
@@ -0,0 +1,12 @@
+diff -up chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn
+--- chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib 2019-10-23 09:25:44.419884187 -0400
++++ chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn 2019-10-23 09:29:53.553442745 -0400
+@@ -276,7 +276,7 @@ if (enable_perfetto_trace_processor || e
+ "//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-78.0.3904.70-vtable-symbol-undefined.patch b/chromium-78.0.3904.70-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..13751a2
--- /dev/null
+++ b/chromium-78.0.3904.70-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-10-23 09:12:08.754351798 -0400
++++ chromium-78.0.3904.70/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-10-23 09:19:28.278431430 -0400
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(
+ bool,
diff --git a/chromium.spec b/chromium.spec
index 8994527..675a54b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -154,15 +154,15 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 77
+%global majorversion 78
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.120
-Release: 4%{?dist}
+Version: %{majorversion}.0.3904.70
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -191,7 +191,7 @@ Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
Patch11: chromium-widevine-other-locations.patch
# Try to fix version.py for Rawhide
@@ -200,34 +200,24 @@ Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# In GCC one can't use alignas() for exported classes
-# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch51: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
-# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch54: chromium-77.0.3865.75-certificate-transparency.patch
+Patch52: chromium-78.0.3904.70-vtable-symbol-undefined.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch53: chromium-78.0.3904.70-unbundle-zlib.patch
# Needs to be submitted..
-Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+Patch54: chromium-77.0.3865.75-gcc-include-memory.patch
# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
-Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
-# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
-# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
-# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch60: chromium-77.0.3865.75-missing-limits.patch
-# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
-Patch61: chromium-77.0.3865.90-linked-hash-set.patch
+Patch55: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
-Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
+Patch56: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
-Patch63: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
-
+Patch57: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
+# https://chromium.googlesource.com/chromium/src/+/7358ea985cb496fa7fd1a526...
+Patch58: chromium-78.0.3904.70-gcc-fix-invalid-pragma.patch
+# https://chromium.googlesource.com/chromium/src/+/2db67d40ef766c63a7389686...
+Patch59: chromium-78.0.3904.70-gcc-mark-CheckOpResult-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -742,19 +732,15 @@ udev.
# Short term fixes (usually gcc and backports)
%patch50 -p1 -b .gettid-fix
-%patch51 -p1 -b .gcc-no-alignas-and-export
-%patch52 -p1 -b .gcc-remoting-constexpr
-%patch53 -p1 -b .vtable-symbol-undefined
-%patch54 -p1 -b .certificate-transparency
-%patch55 -p1 -b .unbundle-zlib
-%patch56 -p1 -b .gcc-include-memory
-%patch57 -p1 -b .base-gcc-no-alignas
-%patch58 -p1 -b .harfbuzz-subset
-%patch59 -p1 -b .gcc-abstract-class
-%patch60 -p1 -b .missing-limits
-%patch61 -p1 -b .linked-hash-set
-%patch62 -p1 -b .silence-outdated-build-noise
-%patch63 -p1 -b .gcc-fix-zlib-symbol-visibility
+%patch51 -p1 -b .gcc-remoting-constexpr
+%patch52 -p1 -b .vtable-symbol-undefined
+%patch53 -p1 -b .unbundle-zlib
+%patch54 -p1 -b .gcc-include-memory
+%patch55 -p1 -b .base-gcc-no-alignas
+%patch56 -p1 -b .silence-outdated-build-noise
+%patch57 -p1 -b .gcc-fix-zlib-symbol-visibility
+%patch58 -p1 -b .gcc-invalid-pragma
+%patch59 -p1 -b .gcc-mark-CheckOpResult-constexpr
# Fedora branded user agent
%if 0%{?fedora}
@@ -1669,6 +1655,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 23 2019 Tom Callaway <spot(a)fedoraproject.org> - 78.0.3904.80-1
+- update to 78.0.3904.80
+
* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-4
- upstream fix for zlib symbol exports with gcc
diff --git a/sources b/sources
index 978a610..c18b1d0 100644
--- a/sources
+++ b/sources
@@ -18,3 +18,4 @@ SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb874
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
+SHA512 (chromium-78.0.3904.70-clean.tar.xz) = f702bc3c084a69adc81f47300d00f0b8cf46ee721dbb4986bfc5ba7fc95129172d021da0514350fe77591a209ec050307eead8e9bf309b70e46eb26d29d88509
commit 5cbc3dd135bf2caa310a6cfafd85a72f5b89f959
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 11:03:38 2019 -0400
upstream fix for zlib symbol exports with gcc
diff --git a/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
new file mode 100644
index 0000000..47fd97d
--- /dev/null
+++ b/chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
@@ -0,0 +1,36 @@
+From 9c3aed099b010a75594a0efd523774c4c9a5e3d2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=BCri=20Valdmann?= <juri.valdmann(a)qt.io>
+Date: Tue, 15 Oct 2019 12:10:55 +0000
+Subject: [PATCH] GCC: Fix zlib symbol visibility macro
+
+GCC parses the function __attribute__ syntax a bit differently from Clang,
+associating the attribute with the return type instead of the function if the
+return type is a pointer. This leads to certain zlib symbols, such as
+Cr_z_zError, to fail to be properly exported from the shared library. Fix by
+using ZEXTERN instead of ZEXPORT for the attribute which works the same for both
+GCC and Clang.
+
+Bug: 819294
+Change-Id: I5707d1b0627a503df08df9ac0bb65fda69453989
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1859788
+Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
+Reviewed-by: Nico Weber <thakis(a)chromium.org>
+Commit-Queue: Nico Weber <thakis(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#705917}
+---
+ third_party/zlib/chromeconf.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/zlib/chromeconf.h b/third_party/zlib/chromeconf.h
+index e9aa3867d8512..666093d696a58 100644
+--- a/third_party/zlib/chromeconf.h
++++ b/third_party/zlib/chromeconf.h
+@@ -13,7 +13,7 @@
+ #define ZEXTERN __declspec(dllimport)
+ #endif
+ #elif defined(ZLIB_IMPLEMENTATION)
+-#define ZEXPORT __attribute__((visibility("default")))
++#define ZEXTERN __attribute__((visibility("default")))
+ #endif
+ #endif
+
diff --git a/chromium.spec b/chromium.spec
index f6a5873..8994527 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -225,6 +225,9 @@ Patch60: chromium-77.0.3865.75-missing-limits.patch
Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
+# https://chromium.googlesource.com/chromium/src/+/9c3aed099b010a75594a0efd...
+Patch63: chromium-77.0.3865.120-gcc-fix-zlib-symbol-visibility.patch
+
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -751,6 +754,7 @@ udev.
%patch60 -p1 -b .missing-limits
%patch61 -p1 -b .linked-hash-set
%patch62 -p1 -b .silence-outdated-build-noise
+%patch63 -p1 -b .gcc-fix-zlib-symbol-visibility
# Fedora branded user agent
%if 0%{?fedora}
@@ -1665,6 +1669,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-4
+- upstream fix for zlib symbol exports with gcc
+
* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-3
- silence outdated build noise (bz1745745)
commit 0854e9758c9420c45e377c98ee8193c6086dd4be
Merge: 527091e 35b2732
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 09:41:25 2019 -0400
merge fix
commit 35b2732605020b2627e971ef38a6cb1cd0a4adf6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 16 09:40:03 2019 -0400
silence outdated build noise (bz1745745)
diff --git a/chromium-77.0.3865.120-silence-outdated-build-noise.patch b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
new file mode 100644
index 0000000..22e1e78
--- /dev/null
+++ b/chromium-77.0.3865.120-silence-outdated-build-noise.patch
@@ -0,0 +1,59 @@
+From e79d9d0e06b825d2e62b38db03248c0e6ceec7e4 Mon Sep 17 00:00:00 2001
+From: Greg Thompson <grt(a)chromium.org>
+Date: Sat, 5 Oct 2019 03:47:05 +0000
+Subject: [PATCH] Only detect outdated builds on Google Chrome.
+
+Prior to https://crrev.com/643864, they weren't detected for Chromium on
+account of the way google_brand worked. That CL changed behavior and
+accidentally started showing the outdated build bubble for Linux
+Chromium users.
+
+BUG=1010592
+
+Change-Id: I069ac36166e2ae720d58b1b9aa85605792be8684
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1841635
+Reviewed-by: Thomas Anderson <thomasanderson(a)chromium.org>
+Reviewed-by: Lei Zhang <thestig(a)chromium.org>
+Commit-Queue: Greg Thompson <grt(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#703131}
+---
+ .../upgrade_detector/upgrade_detector_impl.cc | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+index 432e3789eced0..07850fdf80cd7 100644
+--- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
++++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+@@ -31,6 +31,7 @@
+ #include "base/time/default_tick_clock.h"
+ #include "base/time/tick_clock.h"
+ #include "base/time/time.h"
++#include "build/branding_buildflags.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/google/google_brand.h"
+ #include "chrome/common/chrome_switches.h"
+@@ -74,6 +75,14 @@ constexpr base::TimeDelta kNotifyCycleTimeForTesting =
+ // The number of days after which we identify a build/install as outdated.
+ constexpr base::TimeDelta kOutdatedBuildAge = base::TimeDelta::FromDays(12 * 7);
+
++constexpr bool ShouldDetectOutdatedBuilds() {
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
++ return true;
++#else // BUILDFLAG(GOOGLE_CHROME_BRANDING)
++ return false;
++#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
++}
++
+ // Return the string that was passed as a value for the
+ // kCheckForUpdateIntervalSec switch.
+ std::string CmdLineInterval() {
+@@ -403,6 +412,9 @@ bool UpgradeDetectorImpl::DetectOutdated
+ if (base::IsMachineExternallyManaged())
+ return false;
+ #endif
++
++ if (!ShouldDetectOutdatedBuilds())
++ return false;
+ }
+
+ base::Time network_time;
diff --git a/chromium.spec b/chromium.spec
index a3aba32..f6a5873 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -223,6 +223,8 @@ Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
Patch60: chromium-77.0.3865.75-missing-limits.patch
# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
Patch61: chromium-77.0.3865.90-linked-hash-set.patch
+# https://chromium.googlesource.com/chromium/src/+/e79d9d0e06b825d2e62b38db...
+Patch62: chromium-77.0.3865.120-silence-outdated-build-noise.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -748,6 +750,7 @@ udev.
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
%patch61 -p1 -b .linked-hash-set
+%patch62 -p1 -b .silence-outdated-build-noise
# Fedora branded user agent
%if 0%{?fedora}
@@ -1662,6 +1665,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Wed Oct 16 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-3
+- silence outdated build noise (bz1745745)
+
* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
- fix node handling for EPEL-8
commit 527091eafb9fc8e8a1a8ae1aac53d19a929156b5
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:18:40 2019 -0400
merge epel8 changes
diff --git a/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
new file mode 100644
index 0000000..ff6c523
--- /dev/null
+++ b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -0,0 +1,10 @@
+diff -up chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 chromium-76.0.3809.132/components/os_crypt/features.gni
+--- chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 2019-09-06 17:08:01.242314126 -0400
++++ chromium-76.0.3809.132/components/os_crypt/features.gni 2019-09-06 17:08:10.139134707 -0400
+@@ -7,5 +7,5 @@ import("//build/config/ui.gni")
+ declare_args() {
+ # Whether to use libgnome-keyring (deprecated by libsecret).
+ # See http://crbug.com/466975 and http://crbug.com/355223.
+- use_gnome_keyring = is_desktop_linux && use_glib
++ use_gnome_keyring = false
+ }
diff --git a/chromium.spec b/chromium.spec
index 6083fe2..a3aba32 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.120
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -198,7 +198,6 @@ Patch11: chromium-widevine-other-locations.patch
Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
# Add "Fedora" to the user agent string
Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
-
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
@@ -239,6 +238,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
+# Apply these patches to work around EPEL8 issues
+Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
# For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm
@@ -270,8 +272,8 @@ Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-
Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf
Source17: GardinerModBug.ttf
Source18: GardinerModCat.ttf
-# RHEL needs newer nodejs
-%if 0%{?rhel}
+# RHEL 7 needs newer nodejs
+%if 0%{?rhel} == 7
Source19: node-v8.9.1-linux-x64.tar.gz
%endif
@@ -289,9 +291,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
@@ -319,7 +318,9 @@ BuildRequires: minizip-compat-devel
BuildRequires: minizip-devel
%endif
# RHEL 7's nodejs is too old
-%if 0%{?fedora}
+%if 0%{?rhel} == 7
+# Use bundled.
+%else
BuildRequires: nodejs
%endif
BuildRequires: nss-devel >= 3.26
@@ -434,7 +435,9 @@ BuildRequires: re2-devel >= 20160401
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
+%if 0%{?rhel} < 8
BuildRequires: pkgconfig(gnome-keyring-1)
+%endif
# remote desktop needs this
BuildRequires: pam-devel
BuildRequires: systemd
@@ -442,7 +445,7 @@ BuildRequires: systemd
%if %{freeworld}
# dont need fonts for this
%else
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf
Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic...
Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf
@@ -455,12 +458,15 @@ Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.t
Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic...
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
-Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
-Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
%else
BuildRequires: google-croscore-arimo-fonts
BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
+BuildRequires: google-croscore-tinos-fonts
+%endif
+%if 0%{?rhel} == 7
+Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
+Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
+%else
BuildRequires: google-noto-sans-cjk-jp-fonts
BuildRequires: lohit-gurmukhi-fonts
%endif
@@ -516,7 +522,7 @@ Provides: chromium-libs = %{version}-%{release}
Obsoletes: chromium-libs <= %{version}-%{release}
%endif
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
ExclusiveArch: x86_64 i686
%else
ExclusiveArch: x86_64 i686 aarch64
@@ -767,6 +773,10 @@ udev.
%patch205 -p1 -b .pulseaudioapichange
%endif
+%if 0%{?rhel} == 8
+%patch300 -p1 -b .disblegnomekeyring
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
@@ -797,7 +807,7 @@ rm -rf MuktiNarrow0.94
cp %{SOURCE16} .
cp %{SOURCE17} .
cp %{SOURCE18} .
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
cp %{SOURCE100} .
cp %{SOURCE101} .
cp %{SOURCE102} .
@@ -810,14 +820,17 @@ cp %{SOURCE108} .
cp %{SOURCE109} .
cp %{SOURCE110} .
cp %{SOURCE111} .
+%else
+cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
+%endif
+%if 0%{?rhel} == 7
tar xf %{SOURCE112}
mv lohit-gurmukhi-ttf-2.91.2/Lohit-Gurmukhi.ttf .
rm -rf lohit-gurmukhi-ttf-2.91.2
unzip %{SOURCE113}
%else
-cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf .
cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf .
%endif
@@ -849,6 +862,9 @@ CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"'
%if %{?use_jumbo}
CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8'
%endif
+%if 0%{?rhel} == 8
+CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
@@ -880,7 +896,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_
CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
export CHROMIUM_HEADLESS_GN_DEFINES
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
pushd third_party/node/linux
tar xf %{SOURCE19}
mv node-v8.9.1-linux-x64 node-linux-x64
@@ -1646,9 +1662,18 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
+- fix node handling for EPEL-8
+
* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
- Update to 77.0.3865.120
+* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
+- enable aarch64 for EPEL-8
+
+* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
+- spec cleanups and changes to make EPEL8 try to build
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
commit e4f20afdcc3e2ad605003c6cdc2ce7b0aaabc6af
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:14:29 2019 -0400
fix node handling for EPEL-8, merge changes from 120
diff --git a/chromium.spec b/chromium.spec
index 4f78c67..a3aba32 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -161,8 +161,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 4%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1662,6 +1662,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Oct 15 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.120-2
+- fix node handling for EPEL-8
+
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
- enable aarch64 for EPEL-8
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit a5557a189a12aa8c2654787bd6dbb367211ccdfe
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Oct 15 17:09:08 2019 -0400
fix node handling
diff --git a/chromium.spec b/chromium.spec
index a5cf1bf..4f78c67 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -272,8 +272,8 @@ Source15: http://download.savannah.nongnu.org/releases/freebangfont/MuktiNarrow-
Source16: https://github.com/web-platform-tests/wpt/raw/master/fonts/Ahem.ttf
Source17: GardinerModBug.ttf
Source18: GardinerModCat.ttf
-# RHEL needs newer nodejs
-%if 0%{?rhel}
+# RHEL 7 needs newer nodejs
+%if 0%{?rhel} == 7
Source19: node-v8.9.1-linux-x64.tar.gz
%endif
@@ -318,7 +318,9 @@ BuildRequires: minizip-compat-devel
BuildRequires: minizip-devel
%endif
# RHEL 7's nodejs is too old
-%if 0%{?fedora}
+%if 0%{?rhel} == 7
+# Use bundled.
+%else
BuildRequires: nodejs
%endif
BuildRequires: nss-devel >= 3.26
@@ -894,7 +896,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gio=false use_
CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
export CHROMIUM_HEADLESS_GN_DEFINES
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
pushd third_party/node/linux
tar xf %{SOURCE19}
mv node-v8.9.1-linux-x64 node-linux-x64
commit e67a39d749de4beb65ff66eb76d899da5e1de4b2
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 13:51:46 2019 +0200
Update to 77.0.3865.120
diff --git a/chromium.spec b/chromium.spec
index 1542845..6083fe2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -161,8 +161,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.90
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.120
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1646,6 +1646,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Oct 14 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.120-1
+- Update to 77.0.3865.120
+
* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
- Fix the icon
- Remove quite a few of downstream patches
diff --git a/sources b/sources
index 13e91e7..978a610 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
+SHA512 (chromium-77.0.3865.120-clean.tar.xz) = 018702b53bafeb5fe8a297b8efb4805419555acb80a22b9f5f5fe2a3484f838f6ffa06655229466aca5a9de7f8b0497b9d387da4a1ba2dbc7c62ec3d1d0ffbb9
commit 78eda85f26a14e5dceb6c667850cd6b930bf26bf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Oct 14 08:23:03 2019 +0200
Move another python script to python3
diff --git a/get_free_ffmpeg_source_files.py b/get_free_ffmpeg_source_files.py
index f2225ea..9081e90 100755
--- a/get_free_ffmpeg_source_files.py
+++ b/get_free_ffmpeg_source_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
# Copyright 2015 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -73,7 +73,7 @@ def parse_ffmpeg_gni_file(gni_path, arch_not_arm):
sys.stderr.write("Something went wrong, no sources parsed!\n")
sys.exit(1)
- print ' '.join(output_sources)
+ print(' '.join(output_sources))
if __name__ == "__main__":
commit e29905e4b9a9c57e4dad84e2572912d2cf1a1e4b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Oct 10 08:42:35 2019 -0400
enable aarch64 for EPEL-8
diff --git a/chromium.spec b/chromium.spec
index 5d75c4c..a5cf1bf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -520,7 +520,7 @@ Provides: chromium-libs = %{version}-%{release}
Obsoletes: chromium-libs <= %{version}-%{release}
%endif
-%if 0%{?rhel}
+%if 0%{?rhel} == 7
ExclusiveArch: x86_64 i686
%else
ExclusiveArch: x86_64 i686 aarch64
@@ -1660,6 +1660,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Oct 10 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-4
+- enable aarch64 for EPEL-8
+
* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
commit 9f278441f32523a894c98970d5fe0b8da3fa3572
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 14:15:13 2019 -0400
drop explicit BR: gnome-keyring-devel
diff --git a/chromium.spec b/chromium.spec
index 96c8f36..5d75c4c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,9 +291,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
commit f7aa602c50e32afa459f34444a03f40bb7e111a2
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Oct 9 12:48:48 2019 -0400
here we go again
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..366c139
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,165 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index 81982e2..96c8f36 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -45,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -54,17 +61,15 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
@@ -118,9 +123,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
@@ -133,13 +138,6 @@ BuildRequires: libicu-devel >= 5.4
%global pulseaudioapichange 0
%endif
-# RHEL 8 doesn't have minizip
-%if 0%{?rhel} == 8
-%global bundleminizip 1
-%else
-%global bundleminizip 0
-%endif
-
### 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.
@@ -156,156 +154,80 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
-Name: chromium%{chromium_channel}%{?freeworld:-libs-media-freeworld}
-Summary: Chromium media libraries built with all possible codecs
+Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
-Summary: A WebKit (Blink) powered web browser
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.90
Release: 3%{?dist}
+Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
@@ -318,7 +240,6 @@ Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
-Patch301: chromium-76.0.3809.132-chromedriver-zlib-fix.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -370,12 +291,15 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
+%if 0%{?fedora} <= 27
+BuildRequires: gnome-keyring-devel
+%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -391,15 +315,11 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel
-%if %{bundleminizip}
-# We're using the bundle, baby.
-%else
%if 0%{?fedora} >= 30
BuildRequires: minizip-compat-devel
%else
BuildRequires: minizip-devel
%endif
-%endif
# RHEL 7's nodejs is too old
%if 0%{?fedora}
BuildRequires: nodejs
@@ -540,9 +460,9 @@ Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldIt
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
%else
-BuildRequires: google-croscore-arimo-fonts
-BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
+BuildRequires: google-croscore-arimo-fonts
+BuildRequires: google-croscore-cousine-fonts
+BuildRequires: google-croscore-tinos-fonts
%endif
%if 0%{?rhel} == 7
Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
@@ -633,7 +553,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -703,36 +623,18 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
-%if %{freeworld}
-Provides: chromium-libs-media = %{version}-%{release}
-Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}
-Requires(post): %{_sbindir}/update-alternatives
-Requires(preun): %{_sbindir}/update-alternatives
-
-%description
-Chromium media libraries built with all possible codecs. Chromium is an
-open-source web browser, powered by WebKit (Blink). This package replaces
-the default chromium-libs-media package, which is limited in what it
-can include.
-%else
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
-%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
# Chromium needs an explicit Requires: minizip-compat
# We put it here to cover headless too.
-%if %{bundleminizip}
-# Using the bundle. No Requires needed.
-%else
%if 0%{?fedora} >= 30
Requires: minizip-compat%{_isa}
%else
Requires: minizip%{_isa}
%endif
-%endif
%description common
%{summary}.
@@ -749,6 +651,19 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld}
+%package -n chromium-libs-media-freeworld
+Summary: Chromium media libraries built with all possible codecs
+Provides: chromium-libs-media = %{version}-%{release}
+Provides: chromium-libs-media%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/update-alternatives
+
+%description -n chromium-libs-media-freeworld
+Chromium media libraries built with all possible codecs. Chromium is an
+open-source web browser, powered by WebKit (Blink). This package replaces
+the default chromium-libs-media package, which is limited in what it
+can include.
%else
%package libs-media
Summary: Shared libraries used by the chromium media subsystem
@@ -807,80 +722,46 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%if %{bundleminizip}
-# Leave zlib mangling in place
-%else
-%patch18 -p1 -b .nozmangle
-%endif
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
-%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
+# Feature specific patches
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -897,10 +778,6 @@ udev.
%patch300 -p1 -b .disblegnomekeyring
%endif
-%if %{bundleminizip}
-%patch301 -p1 -b .chromedriver-zlib
-%endif
-
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
@@ -1162,9 +1039,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/mesa' \
'third_party/metrics_proto' \
-%if %{bundleminizip}
- 'third_party/minizip' \
-%endif
'third_party/modp_b64' \
'third_party/nasm' \
'third_party/node' \
@@ -1173,7 +1047,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
@@ -1218,6 +1094,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
@@ -1311,12 +1188,8 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else
re2 \
%endif
-%if %{bundleminizip}
- yasm
-%else
yasm \
zlib
-%endif
# fix arm gcc
sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn
@@ -1341,18 +1214,18 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1372,33 +1245,31 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
-%if 0%{?build_remoting_app}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%endif
-popd
-
-%endif
-
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
%install
rm -rf %{buildroot}
@@ -1406,7 +1277,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1435,9 +1306,12 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
+%if 0
+cp -a protoc pyproto %{buildroot}%{chromium_path}
+%endif
%ifarch x86_64 i686 aarch64
cp -a swiftshader %{buildroot}%{chromium_path}
%endif
@@ -1479,7 +1353,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1515,12 +1389,8 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
@@ -1549,8 +1419,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
@@ -1588,7 +1456,7 @@ if st and st.type == "link" then
end
%if %{freeworld}
-%posttrans
+%posttrans -n chromium-libs-media-freeworld
%{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
@@ -1599,7 +1467,7 @@ end
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
-%preun
+%preun -n chromium-libs-media-freeworld
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld
@@ -1660,6 +1528,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/swiftshader/
%endif
%dir %{chromium_path}/PepperFlash/
+%if 0
+%{chromium_path}/protoc
+%endif
# %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/
@@ -1769,9 +1640,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
%files -n chromedriver
%doc AUTHORS
@@ -1783,7 +1651,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared}
%if %{freeworld}
-%files
+%files -n chromium-libs-media-freeworld
%else
%files libs-media
%endif
@@ -1795,9 +1663,23 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
-* Fri Sep 6 2019 Tom Callaway <spot(a)fedoraproject.org> - 76.0.3809.132-3
+* Wed Oct 9 2019 Tom Callaway <spot(a)fedoraproject.org> - 77.0.3865.90-3
- spec cleanups and changes to make EPEL8 try to build
-- freeworld changes from Nicolas Chauvet
+
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
diff --git a/sources b/sources
index 2d38a7c..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit 0f0792f310ed8f54ca8bf6b73f6c020253dc5f54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:25:20 2019 +0200
Fix the icon
Remove quite a few of downstream patches
Fix the crashes by backporting an upstream bug
Resolves: rhbz#1754179
diff --git a/chromium-77.0.3865.90-linked-hash-set.patch b/chromium-77.0.3865.90-linked-hash-set.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/chromium-77.0.3865.90-linked-hash-set.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman(a)chromium.org>
+Date: Wed, 07 Aug 2019 13:26:48 +0000
+Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
+
+Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
+
+Bug: 980025
+Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
+Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano(a)chromium.org>
+Commit-Queue: Jeremy Roman <jbroman(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#684731}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+index 0efc8fb..90063cb 100644
+--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
+@@ -133,6 +133,10 @@
+
+ struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
+ STATIC_ONLY(FontCacheKeyTraits);
++
++ // std::string's empty state need not be zero in all implementations,
++ // and it is held within FontFaceCreationParams.
++ static const bool kEmptyValueIsZero = false;
+ };
+
+ } // namespace blink
+diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+index b35b6e9..77e524c 100644
+--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
+@@ -146,6 +146,11 @@
+ LinkedHashSetNodeBase* next)
+ : LinkedHashSetNodeBase(prev, next), value_(value) {}
+
++ LinkedHashSetNode(ValueArg&& value,
++ LinkedHashSetNodeBase* prev,
++ LinkedHashSetNodeBase* next)
++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
++
+ LinkedHashSetNode(LinkedHashSetNode&& other)
+ : LinkedHashSetNodeBase(std::move(other)),
+ value_(std::move(other.value_)) {}
+@@ -445,10 +450,13 @@
+
+ // The slot is empty when the next_ field is zero so it's safe to zero
+ // the backing.
+- static const bool kEmptyValueIsZero = true;
++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
+
+ static const bool kHasIsEmptyValueFunction = true;
+ static bool IsEmptyValue(const Node& node) { return !node.next_; }
++ static Node EmptyValue() {
++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
++ }
+
+ static const int kDeletedValue = -1;
+
+diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+index 4c3f899..cd1be00 100644
+--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
+@@ -487,6 +487,7 @@
+ };
+
+ struct Complicated {
++ Complicated() : Complicated(0) {}
+ Complicated(int value) : simple_(value) { objects_constructed_++; }
+
+ Complicated(const Complicated& other) : simple_(other.simple_) {
+@@ -495,9 +496,6 @@
+
+ Simple simple_;
+ static int objects_constructed_;
+-
+- private:
+- Complicated() = delete;
+ };
+
+ int Complicated::objects_constructed_ = 0;
+@@ -731,4 +729,45 @@
+
+ } // anonymous namespace
+
++// A unit type which objects to its state being initialized wrong.
++struct InvalidZeroValue {
++ InvalidZeroValue() = default;
++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
++ ~InvalidZeroValue() { CHECK(ok_); }
++ bool IsHashTableDeletedValue() const { return deleted_; }
++
++ bool ok_ = true;
++ bool deleted_ = false;
++};
++
++template <>
++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
++ static const bool kEmptyValueIsZero = false;
++};
++
++template <>
++struct DefaultHash<InvalidZeroValue> {
++ struct Hash {
++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
++ return true;
++ }
++ };
++};
++
++template <typename Set>
++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
++
++using InvalidZeroValueSetTypes =
++ testing::Types<ListHashSet<InvalidZeroValue>,
++ ListHashSet<InvalidZeroValue, 1>,
++ LinkedHashSet<InvalidZeroValue>>;
++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
++
++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
++ using Set = TypeParam;
++ Set set;
++ set.insert(InvalidZeroValue());
++}
++
+ } // namespace WTF
diff --git a/chromium.spec b/chromium.spec
index a37d653..1542845 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -162,7 +162,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.90
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -222,6 +222,8 @@ Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
Patch60: chromium-77.0.3865.75-missing-limits.patch
+# https://chromium.googlesource.com/chromium/src/+/74138b9febd37eac0fc26b8e...
+Patch61: chromium-77.0.3865.90-linked-hash-set.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
@@ -739,6 +741,7 @@ udev.
%patch58 -p1 -b .harfbuzz-subset
%patch59 -p1 -b .gcc-abstract-class
%patch60 -p1 -b .missing-limits
+%patch61 -p1 -b .linked-hash-set
# Fedora branded user agent
%if 0%{?fedora}
@@ -1643,6 +1646,12 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 23 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-2
+- Fix the icon
+- Remove quite a few of downstream patches
+- Fix the crashes by backporting an upstream bug
+- Resolves: rhbz#1754179
+
* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
- Update to 77.0.3865.90
commit 6aa7bda96ed4de25260acb5a9e907d5ff1fa1368
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 23 17:21:06 2019 +0200
Fix the icon
So the monochromatic icon is being shown even in the GNOME's overview
and it's ugly (as it's upscaled from 22x22). Remove it.
diff --git a/chromium.spec b/chromium.spec
index e426495..a37d653 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1399,8 +1399,6 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
-cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 5a0168685de2184cd3ce9b36a80febe22a738e54
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:57:18 2019 +0200
Remove the unused patches or patches that are not needed anymore
Also replace some patches with changes in the SPEC file.
diff --git a/chromium-45.0.2454.101-linux-path-max.patch b/chromium-45.0.2454.101-linux-path-max.patch
deleted file mode 100644
index 3146349..0000000
--- a/chromium-45.0.2454.101-linux-path-max.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h.pathmax 2015-10-07 11:26:11.813477839 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/path.h 2015-10-07 11:26:40.845845054 -0400
-@@ -12,6 +12,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- namespace nacl_io {
-
- class Path {
-diff -up chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c
---- chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c.pathmax 2015-08-22 15:02:08.000000000 -0400
-+++ chromium-45.0.2454.101/native_client/src/untrusted/nacl/getcwd.c 2015-10-07 10:58:56.172018783 -0400
-@@ -11,6 +11,10 @@
-
- #include <errno.h>
- #include <limits.h>
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-diff -up chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c
---- chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c.pathmax 2015-10-09 10:57:38.424348662 -0400
-+++ chromium-45.0.2454.101/native_client_sdk/src/libraries/nacl_io/syscalls/realpath.c 2015-10-09 10:57:51.541059938 -0400
-@@ -13,6 +13,11 @@
-
- #include "sdk_util/macros.h"
-
-+/* Needed for PATH_MAX */
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
- EXTERN_C_BEGIN
-
- #if defined(__native_client__)
diff --git a/chromium-53.0.2785.92-boringssl-time-fix.patch b/chromium-53.0.2785.92-boringssl-time-fix.patch
deleted file mode 100644
index 8d67957..0000000
--- a/chromium-53.0.2785.92-boringssl-time-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c
---- chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c.timefix 2016-09-06 15:20:06.094396255 -0400
-+++ chromium-53.0.2785.92/third_party/boringssl/src/crypto/x509/by_dir.c 2016-09-06 15:20:16.893187930 -0400
-@@ -56,6 +56,7 @@
- * [including the GNU Public Licence.] */
-
- #include <string.h>
-+#include <time.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-
diff --git a/chromium-54.0.2840.59-jpeg-include-dir.patch b/chromium-54.0.2840.59-jpeg-include-dir.patch
deleted file mode 100644
index f96a56c..0000000
--- a/chromium-54.0.2840.59-jpeg-include-dir.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix chromium-54.0.2840.59/third_party/BUILD.gn
---- chromium-54.0.2840.59/third_party/BUILD.gn.jpegfix 2016-10-17 11:45:44.995340495 -0400
-+++ chromium-54.0.2840.59/third_party/BUILD.gn 2016-10-17 11:46:35.254289872 -0400
-@@ -20,6 +20,7 @@ declare_args() {
- config("system_libjpeg_config") {
- libs = [ "jpeg" ]
- defines = [ "USE_SYSTEM_LIBJPEG" ]
-+ include_dirs = [ "/usr/include/" ]
- }
-
- config("libjpeg_turbo_config") {
diff --git a/chromium-55.0.2883.75-addrfix.patch b/chromium-55.0.2883.75-addrfix.patch
deleted file mode 100644
index 00c214c..0000000
--- a/chromium-55.0.2883.75-addrfix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix chromium-55.0.2883.75/third_party/boringssl/BUILD.gn
---- chromium-55.0.2883.75/third_party/boringssl/BUILD.gn.addrfix 2016-12-12 15:30:27.727834891 -0500
-+++ chromium-55.0.2883.75/third_party/boringssl/BUILD.gn 2016-12-12 15:30:53.095709352 -0500
-@@ -24,6 +24,7 @@ config("internal_config") {
- "BORINGSSL_IMPLEMENTATION",
- "BORINGSSL_NO_STATIC_INITIALIZER",
- "OPENSSL_SMALL",
-+ "_POSIX_C_SOURCE=200112L",
- ]
- configs = [
- # TODO(davidben): Fix size_t truncations in BoringSSL.
diff --git a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch b/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
deleted file mode 100644
index 9dde4c5..0000000
--- a/chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn
---- chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn.ldmemory 2017-06-07 15:37:09.436616113 -0400
-+++ chromium-59.0.3071.86/build/toolchain/linux/BUILD.gn 2017-06-07 15:38:04.508519102 -0400
-@@ -93,7 +93,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
diff --git a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch b/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
deleted file mode 100644
index 7248825..0000000
--- a/chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h
---- chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h.pathfix 2017-08-25 15:29:12.143242471 -0400
-+++ chromium-60.0.3112.113/third_party/ffmpeg/libavutil/timer.h 2017-08-25 15:29:36.941835865 -0400
-@@ -39,13 +39,13 @@
- #include "log.h"
-
- #if ARCH_AARCH64
--# include "aarch64/timer.h"
-+# include "libavutil/aarch64/timer.h"
- #elif ARCH_ARM
--# include "arm/timer.h"
-+# include "libavutil/arm/timer.h"
- #elif ARCH_PPC
--# include "ppc/timer.h"
-+# include "libavutil/ppc/timer.h"
- #elif ARCH_X86
--# include "x86/timer.h"
-+# include "libavutil/x86/timer.h"
- #endif
-
- #if !defined(AV_READ_TIME)
diff --git a/chromium-62.0.3202.62-kmaxskip-constexpr.patch b/chromium-62.0.3202.62-kmaxskip-constexpr.patch
deleted file mode 100644
index d4f8250..0000000
--- a/chromium-62.0.3202.62-kmaxskip-constexpr.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc
---- chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc.kmaxskip 2017-10-18 10:00:28.503714392 -0400
-+++ chromium-62.0.3202.62/cc/paint/paint_op_buffer.cc 2017-10-18 10:00:43.153430212 -0400
-@@ -336,7 +336,7 @@ TYPES(M);
- #undef TYPES
-
- const SkRect PaintOp::kUnsetRect = {SK_ScalarInfinity, 0, 0, 0};
--const size_t PaintOp::kMaxSkip;
-+constexpr size_t PaintOp::kMaxSkip;
-
- std::string PaintOpTypeToString(PaintOpType type) {
- switch (type) {
diff --git a/chromium-63.0.3289.84-nullfix.patch b/chromium-63.0.3289.84-nullfix.patch
deleted file mode 100644
index c66aff1..0000000
--- a/chromium-63.0.3289.84-nullfix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff -up chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn
---- chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn.nullfix 2017-12-06 15:05:21.000000000 -0500
-+++ chromium-63.0.3239.84/build/toolchain/linux/BUILD.gn 2017-12-07 10:44:34.507207080 -0500
-@@ -31,6 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -49,6 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -99,6 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -152,6 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -186,6 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-+ extra_cppflags = "-fno-delete-null-pointer-checks"
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch b/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
deleted file mode 100644
index 64c5f26..0000000
--- a/chromium-64.0.3282.119-ffmpeg-stdatomic.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c
---- chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c.ffmpeg-stdatomic 2018-01-25 11:55:57.880936815 -0500
-+++ chromium-64.0.3282.119/third_party/ffmpeg/libavutil/cpu.c 2018-01-25 11:57:18.456787888 -0500
-@@ -18,7 +18,13 @@
-
- #include <stddef.h>
- #include <stdint.h>
-+// GCC 4.8 didn't have stdatomic, but was advertising it.
-+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016
-+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ == 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ == 8)))
-+#include <compat/atomics/gcc/stdatomic.h>
-+#else
- #include <stdatomic.h>
-+#endif
-
- #include "attributes.h"
- #include "cpu.h"
diff --git a/chromium-65.0.3325.146-gcc-round-fix.patch b/chromium-65.0.3325.146-gcc-round-fix.patch
deleted file mode 100644
index a29779d..0000000
--- a/chromium-65.0.3325.146-gcc-round-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc
---- chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc.gcc-round-fix 2018-03-07 10:57:11.284376048 -0500
-+++ chromium-65.0.3325.146/third_party/webrtc/p2p/base/port.cc 2018-03-07 10:58:16.590742636 -0500
-@@ -10,7 +10,7 @@
-
- #include "p2p/base/port.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <utility>
diff --git a/chromium-65.0.3325.146-memcpy-fix.patch b/chromium-65.0.3325.146-memcpy-fix.patch
deleted file mode 100644
index b2b2cd4..0000000
--- a/chromium-65.0.3325.146-memcpy-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc
---- chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc.memcpyfix 2018-03-07 11:04:14.690379817 -0500
-+++ chromium-65.0.3325.146/cc/paint/raw_memory_transfer_cache_entry.cc 2018-03-07 11:06:04.339878069 -0500
-@@ -3,7 +3,7 @@
- // found in the LICENSE file.
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
--
-+#include <memory.h>
- #include <string.h>
-
- namespace cc {
diff --git a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch b/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
deleted file mode 100644
index d5b19cf..0000000
--- a/chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h
---- chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h.gcc-cpolicyprovider 2018-04-25 16:33:40.872222779 -0400
-+++ chromium-66.0.3359.117/components/policy/core/browser/browser_policy_connector_base.h 2018-04-25 16:37:23.175883637 -0400
-@@ -11,13 +11,13 @@
- #include "base/callback_forward.h"
- #include "base/macros.h"
- #include "components/policy/core/browser/configuration_policy_handler_list.h"
-+#include "components/policy/core/common/configuration_policy_provider.h"
- #include "components/policy/core/common/schema.h"
- #include "components/policy/core/common/schema_registry.h"
- #include "components/policy/policy_export.h"
-
- namespace policy {
-
--class ConfigurationPolicyProvider;
- class PolicyService;
- class PolicyServiceImpl;
-
diff --git a/chromium-66.0.3359.117-system-clang.patch b/chromium-66.0.3359.117-system-clang.patch
deleted file mode 100644
index e90dc58..0000000
--- a/chromium-66.0.3359.117-system-clang.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang chromium-66.0.3359.117/build/config/clang/clang.gni
---- chromium-66.0.3359.117/build/config/clang/clang.gni.system-clang 2018-04-18 12:08:45.658190297 -0400
-+++ chromium-66.0.3359.117/build/config/clang/clang.gni 2018-04-18 12:09:37.612032982 -0400
-@@ -4,7 +4,7 @@
-
- import("//build/toolchain/toolchain.gni")
-
--default_clang_base_path = "//third_party/llvm-build/Release+Asserts"
-+default_clang_base_path = "/usr"
-
- declare_args() {
- # Indicates if the build should use the Chrome-specific plugins for enforcing
diff --git a/chromium-67.0.3396.62-gcc5.patch b/chromium-67.0.3396.62-gcc5.patch
deleted file mode 100644
index ceef85d..0000000
--- a/chromium-67.0.3396.62-gcc5.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl
---- chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl.gcc5 2018-05-30 04:44:33.000000000 -0400
-+++ chromium-67.0.3396.62/third_party/webgl/src/specs/latest/2.0/webgl2.idl 2018-05-30 11:59:26.218625660 -0400
-@@ -262,7 +262,7 @@ interface mixin WebGL2RenderingContextBa
- const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;
- const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;
-- const GLenum INVALID_INDEX = 0xFFFFFFFF;
-+ const GLenum INVALID_INDEX = 256;
- const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;
- const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;
- const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;
diff --git a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch b/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
deleted file mode 100644
index 4a92fba..0000000
--- a/chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc
---- chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc.122692c 2018-08-17 14:54:30.587338865 -0400
-+++ chromium-68.0.3440.106/components/search_provider_logos/logo_common.cc 2018-08-17 14:55:20.461184298 -0400
-@@ -14,22 +14,22 @@ LogoMetadata::LogoMetadata() = default;
- LogoMetadata::LogoMetadata(const LogoMetadata&) = default;
- LogoMetadata::LogoMetadata(LogoMetadata&&) noexcept = default;
- LogoMetadata& LogoMetadata::operator=(const LogoMetadata&) = default;
--LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) noexcept = default;
-+LogoMetadata& LogoMetadata::operator=(LogoMetadata&&) = default;
- LogoMetadata::~LogoMetadata() = default;
-
- EncodedLogo::EncodedLogo() = default;
- EncodedLogo::EncodedLogo(const EncodedLogo&) = default;
- EncodedLogo::EncodedLogo(EncodedLogo&&) noexcept = default;
- EncodedLogo& EncodedLogo::operator=(const EncodedLogo&) = default;
--EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) noexcept = default;
-+EncodedLogo& EncodedLogo::operator=(EncodedLogo&&) = default;
- EncodedLogo::~EncodedLogo() = default;
-
- Logo::Logo() = default;
- Logo::~Logo() = default;
-
- LogoCallbacks::LogoCallbacks() = default;
--LogoCallbacks::LogoCallbacks(LogoCallbacks&&) noexcept = default;
--LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) noexcept = default;
-+LogoCallbacks::LogoCallbacks(LogoCallbacks&&) = default;
-+LogoCallbacks& LogoCallbacks::operator=(LogoCallbacks&&) = default;
- LogoCallbacks::~LogoCallbacks() = default;
-
- } // namespace search_provider_logos
diff --git a/chromium-69.0.3497.81-build-sanely-please.patch b/chromium-69.0.3497.81-build-sanely-please.patch
deleted file mode 100644
index 6241a97..0000000
--- a/chromium-69.0.3497.81-build-sanely-please.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -up chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot chromium-69.0.3497.81/build/config/BUILD.gn
---- chromium-69.0.3497.81/build/config/BUILD.gn.fyoursysroot 2018-09-06 13:43:44.863375238 -0400
-+++ chromium-69.0.3497.81/build/config/BUILD.gn 2018-09-06 13:43:58.377083290 -0400
-@@ -284,9 +284,9 @@ group("executable_and_loadable_module_an
- public_deps += [ "//build/config/sanitizers:deps" ]
- }
-
-- if (use_custom_libcxx) {
-- public_deps += [ "//buildtools/third_party/libc++" ]
-- }
-+ # if (use_custom_libcxx) {
-+ # public_deps += [ "//buildtools/third_party/libc++" ]
-+ # }
-
- if (use_afl) {
- public_deps += [ "//third_party/afl" ]
-diff -up chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot chromium-69.0.3497.81/build/config/sysroot.gni
---- chromium-69.0.3497.81/build/config/sysroot.gni.fyoursysroot 2018-09-06 13:40:46.212232232 -0400
-+++ chromium-69.0.3497.81/build/config/sysroot.gni 2018-09-06 13:41:02.421882529 -0400
-@@ -15,9 +15,10 @@ declare_args() {
- # The absolute path to directory containing linux sysroot images
- target_sysroot_dir = "//build/linux"
-
-- use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-- current_cpu == "arm" || current_cpu == "arm64" ||
-- current_cpu == "mipsel" || current_cpu == "mips64el"
-+ use_sysroot = false
-+ # use_sysroot = current_cpu == "x86" || current_cpu == "x64" ||
-+ # current_cpu == "arm" || current_cpu == "arm64" ||
-+ # current_cpu == "mipsel" || current_cpu == "mips64el"
- }
-
- if (current_os == target_os && current_cpu == target_cpu &&
diff --git a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch b/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
deleted file mode 100644
index ccecfcb..0000000
--- a/chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h
---- chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h.aarch64-new-stat 2018-11-06 13:27:05.118766581 -0500
-+++ chromium-70.0.3538.77/sandbox/linux/system_headers/arm64_linux_syscalls.h 2018-11-06 13:27:34.575204504 -0500
-@@ -5,6 +5,8 @@
- #ifndef SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
- #define SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
-
-+#define __ARCH_WANT_NEW_STAT
-+
- #include <asm-generic/unistd.h>
-
- #if !defined(__NR_io_setup)
diff --git a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch b/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
deleted file mode 100644
index 5da1674..0000000
--- a/chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h
---- chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h.aarch64fix 2018-12-14 11:17:43.249121756 -0500
-+++ chromium-71.0.3578.98/third_party/skia/src/opts/SkRasterPipeline_opts.h 2018-12-14 11:20:07.770030234 -0500
-@@ -658,7 +658,7 @@ SI F approx_powf(F x, F y) {
- }
-
- SI F from_half(U16 h) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f32_f16(h);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
-@@ -678,7 +678,7 @@ SI F from_half(U16 h) {
- }
-
- SI U16 to_half(F f) {
--#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
-+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
- return vcvt_f16_f32(f);
-
- #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
diff --git a/chromium-72.0.3626.121-notest.patch b/chromium-72.0.3626.121-notest.patch
deleted file mode 100644
index e8b7bf4..0000000
--- a/chromium-72.0.3626.121-notest.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd
---- chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd.notest 2019-03-10 13:54:17.843583876 -0400
-+++ chromium-72.0.3626.121/chrome/test/data/webui_test_resources.grd 2019-03-10 14:03:29.302063637 -0400
-@@ -8,7 +8,6 @@
- </outputs>
- <release seq="1">
- <includes>
-- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- <include name="IDR_WEB_UI_TEST_MOJO_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom.js" use_base_dir="false" type="BINDATA"/>
- <include name="IDR_WEB_UI_TEST_MOJO_LITE_JS" file="${root_gen_dir}/chrome/test/data/webui/web_ui_test.mojom-lite.js" use_base_dir="false" type="BINDATA"/>
- </includes>
diff --git a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch b/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index f8abb52..0000000
--- a/chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -up chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn
---- chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn.disable-ndnpc 2019-03-13 10:29:00.331009643 -0400
-+++ chromium-73.0.3683.75/build/toolchain/linux/BUILD.gn 2019-03-13 10:29:28.344458746 -0400
-@@ -31,7 +31,7 @@ gcc_toolchain("arm64") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm64"
-@@ -50,7 +50,7 @@ gcc_toolchain("arm") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- current_cpu = "arm"
-@@ -101,7 +101,7 @@ gcc_toolchain("x86") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks -g1"
-+ extra_cppflags = "-g1"
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -155,7 +155,7 @@ gcc_toolchain("x64") {
- nm = "nm"
- ar = "ar"
- ld = cxx
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- # Output linker map files for binary size analysis.
- enable_linker_map = true
-@@ -190,7 +190,7 @@ gcc_toolchain("mipsel") {
- ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
-- extra_cppflags = "-fno-delete-null-pointer-checks"
-+ extra_cppflags = ""
-
- toolchain_args = {
- cc_wrapper = ""
diff --git a/chromium-75.0.3770.100-git00281713.patch b/chromium-75.0.3770.100-git00281713.patch
deleted file mode 100644
index 4356435..0000000
--- a/chromium-75.0.3770.100-git00281713.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc
---- chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc.git00281713 2019-07-02 09:10:38.951369854 -0400
-+++ chromium-75.0.3770.100/chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.cc 2019-07-02 09:11:59.864642942 -0400
-@@ -12,13 +12,19 @@
- #include "chrome/browser/performance_manager/graph/process_node_impl.h"
- #include "chrome/browser/performance_manager/performance_manager.h"
- #include "chrome/browser/performance_manager/render_process_user_data.h"
-+#include "content/public/browser/render_process_host.h"
- #include "services/resource_coordinator/public/mojom/coordination_unit.mojom.h"
-
- namespace {
-
- void BindProcessNode(
-- content::RenderProcessHost* render_process_host,
-+ int render_process_host_id,
- resource_coordinator::mojom::ProcessCoordinationUnitRequest request) {
-+ content::RenderProcessHost* render_process_host =
-+ content::RenderProcessHost::FromID(render_process_host_id);
-+ if (!render_process_host)
-+ return;
-+
- performance_manager::RenderProcessUserData* user_data =
- performance_manager::RenderProcessUserData::GetForRenderProcessHost(
- render_process_host);
-@@ -47,8 +53,7 @@ void ChromeContentBrowserClientPerforman
- blink::AssociatedInterfaceRegistry* associated_registry,
- content::RenderProcessHost* render_process_host) {
- registry->AddInterface(
-- base::BindRepeating(&BindProcessNode,
-- base::Unretained(render_process_host)),
-+ base::BindRepeating(&BindProcessNode, render_process_host->GetID()),
- base::SequencedTaskRunnerHandle::Get());
-
- // Ideally this would strictly be a "CreateForRenderProcess", but when a
diff --git a/chromium-75.0.3770.80-SIOCGSTAMP.patch b/chromium-75.0.3770.80-SIOCGSTAMP.patch
deleted file mode 100644
index 0ef1e7f..0000000
--- a/chromium-75.0.3770.80-SIOCGSTAMP.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h
---- chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h.SIOCGSTAMP 2019-06-06 10:04:57.050403639 -0400
-+++ chromium-75.0.3770.80/third_party/webrtc/rtc_base/physical_socket_server.h 2019-06-06 10:06:03.975121688 -0400
-@@ -16,6 +16,11 @@
- #define WEBRTC_USE_EPOLL 1
- #endif
-
-+// for SIOCGSTAMP in Linux 5.2
-+#if defined(WEBRTC_LINUX)
-+#include <linux/sockios.h>
-+#endif
-+
- #include <memory>
- #include <set>
- #include <vector>
diff --git a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch b/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
deleted file mode 100644
index 2a8ac2f..0000000
--- a/chromium-75.0.3770.80-aeed4d-gcc-dcheck_ne-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc
---- chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc.gcc-dcheck_ne-fix 2019-06-06 12:42:27.431575032 -0400
-+++ chromium-75.0.3770.80/cc/scheduler/compositor_frame_reporting_controller.cc 2019-06-06 12:43:05.692848409 -0400
-@@ -31,8 +31,8 @@ void CompositorFrameReportingController:
-
- void CompositorFrameReportingController::WillBeginMainFrame() {
- DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
-- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
-- reporters_[PipelineStage::kBeginImplFrame]);
-+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
-+ reporters_[PipelineStage::kBeginImplFrame]);
- reporters_[PipelineStage::kBeginImplFrame]->StartStage(
- "SendBeginMainFrameToCommit");
- AdvanceReporterStage(PipelineStage::kBeginImplFrame,
diff --git a/chromium-75.0.3770.80-gcc-no-assume.patch b/chromium-75.0.3770.80-gcc-no-assume.patch
deleted file mode 100644
index 0bbb08f..0000000
--- a/chromium-75.0.3770.80-gcc-no-assume.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume chromium-75.0.3770.80/third_party/angle/src/common/debug.h
---- chromium-75.0.3770.80/third_party/angle/src/common/debug.h.gcc-assume 2019-06-06 17:38:01.876631704 -0400
-+++ chromium-75.0.3770.80/third_party/angle/src/common/debug.h 2019-06-07 09:30:06.205446547 -0400
-@@ -248,7 +248,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define EVENT(message, ...) (void(0))
- #endif
-
--#if defined(COMPILER_GCC) || defined(__clang__)
-+#if defined(__GNUC__)
- # define ANGLE_CRASH() __builtin_trap()
- #else
- # define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
-@@ -336,7 +336,7 @@ std::ostream &FmtHex(std::ostream &os, T
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
--#elif defined(COMPILER_GCC)
-+#elif defined(__GNUC__)
- # define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
- _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
- # define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")
diff --git a/chromium-75.0.3770.80-revert-daff6b.patch b/chromium-75.0.3770.80-revert-daff6b.patch
deleted file mode 100644
index f996898..0000000
--- a/chromium-75.0.3770.80-revert-daff6b.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc
---- chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc.revert-daff6b 2019-06-06 14:54:13.819190586 -0400
-+++ chromium-75.0.3770.80/components/omnibox/browser/autocomplete_match.cc 2019-06-06 14:54:31.892839991 -0400
-@@ -154,8 +154,7 @@ AutocompleteMatch::AutocompleteMatch(con
- additional_info(match.additional_info),
- duplicate_matches(match.duplicate_matches) {}
-
--AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) noexcept =
-- default;
-+AutocompleteMatch::AutocompleteMatch(AutocompleteMatch&& match) = default;
-
- AutocompleteMatch::~AutocompleteMatch() {
- }
diff --git a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch b/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
deleted file mode 100644
index 690f0f9..0000000
--- a/chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx chromium-76.0.3809.100/services/device/usb/usb_context.cc
---- chromium-76.0.3809.100/services/device/usb/usb_context.cc.modern-libusbx 2019-08-12 15:40:49.034170484 +0200
-+++ chromium-76.0.3809.100/services/device/usb/usb_context.cc 2019-08-12 15:41:23.775558867 +0200
-@@ -58,7 +58,11 @@ void UsbContext::UsbEventHandler::Run()
-
- void UsbContext::UsbEventHandler::Stop() {
- base::subtle::Release_Store(&running_, 0);
-+#ifdef LIBUSB_API_VERSION >= 0x01000105
-+ libusb_interrupt_event_handler(context_);
-+#else
- libusb_interrupt_handle_event(context_);
-+#endif
- }
-
- UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
deleted file mode 100644
index c836214..0000000
--- a/chromium-77.0.3865.75-boolfix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
-+++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
-@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 920a53e..0000000
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
-@@ -23,9 +23,8 @@
- // Where available use builtin math overflow support on Clang and GCC.
- #elif !defined(__native_client__) && \
- ((defined(__clang__) && \
-- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ > 3) || \
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
deleted file mode 100644
index 34b858a..0000000
--- a/chromium-77.0.3865.75-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
-+++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
-+++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
-@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
-+++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
-
- #include <algorithm>
- #include <numeric>
diff --git a/chromium.spec b/chromium.spec
index 4fa3d44..e426495 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -168,114 +168,61 @@ Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
### Chromium Fedora Patches ###
-Patch0: chromium-67.0.3396.62-gcc5.patch
-Patch1: chromium-45.0.2454.101-linux-path-max.patch
-Patch2: chromium-55.0.2883.75-addrfix.patch
-Patch3: chromium-72.0.3626.121-notest.patch
-# Use libusb_interrupt_event_handler from current libusbx (1.0.21-0.1.git448584a)
-Patch4: chromium-76.0.3809.100-libusb_interrupt_event_handler.patch
-# Use PIE in the Linux sandbox (from openSUSE via Russian Fedora)
-Patch6: chromium-70.0.3538.67-sandbox-pie.patch
+Patch0: chromium-70.0.3538.67-sandbox-pie.patch
# Use /etc/chromium for master_prefs
-Patch7: chromium-68.0.3440.106-master-prefs-path.patch
+Patch1: chromium-68.0.3440.106-master-prefs-path.patch
# Use gn system files
-Patch8: chromium-67.0.3396.62-gn-system.patch
-# Fix issue where timespec is not defined when sys/stat.h is included.
-Patch9: chromium-53.0.2785.92-boringssl-time-fix.patch
-# I wouldn't have to do this if there was a standard way to append extra compiler flags
-Patch10: chromium-63.0.3289.84-nullfix.patch
-# Add explicit includedir for jpeglib.h
-Patch11: chromium-54.0.2840.59-jpeg-include-dir.patch
-# On i686, pass --no-keep-memory --reduce-memory-overheads to ld.
-Patch12: chromium-59.0.3071.86-i686-ld-memory-tricks.patch
+Patch2: chromium-67.0.3396.62-gn-system.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8...
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851
-Patch13: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
-# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
-Patch14: chromium-64.0.3282.119-ffmpeg-stdatomic.patch
-# Nacl can't die soon enough
-Patch15: chromium-66.0.3359.117-system-clang.patch
+Patch3: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Do not prefix libpng functions
-Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
+Patch4: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
-Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
+Patch5: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
-# Fix libavutil include pathing to find arch specific timer.h
-# For some reason, this only fails on aarch64. No idea why.
-Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
-# from gentoo
-Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
-# From gentoo
-Patch21: chromium-77.0.3865.75-gcc5-r3.patch
-# To use round with gcc, you need to #include <cmath>
-Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
-# Include proper headers to invoke memcpy()
-Patch23: chromium-65.0.3325.146-memcpy-fix.patch
-# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-77.0.3865.75-boolfix.patch
-# From Debian
-Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
+Patch6: chromium-77.0.3865.75-no-zlib-mangle.patch
# Do not use unrar code, it is non-free
-Patch27: chromium-73.0.3683.75-norar.patch
-# Upstream GCC fixes
-Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
-# Add "Fedora" to the user agent string
-Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
-# Try to fix version.py for Rawhide
-Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
-# Fix default on redeclaration error
-# https://chromium.googlesource.com/chromium/src/+/122692ccee62223f266a988c...
-Patch31: chromium-68.0.3440.106-fix-default-on-redeclaration.patch
+Patch7: chromium-73.0.3683.75-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch32: chromium-71.0.3578.98-widevine-r3.patch
-# Do not require sysroot
-# Forget about trying to make libc++
-# BUILD SANELY PLEASE
-Patch33: chromium-69.0.3497.81-build-sanely-please.patch
+Patch8: chromium-71.0.3578.98-widevine-r3.patch
# Disable fontconfig cache magic that breaks remoting
-Patch34: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
-# Fix aarch64 build against latest linux kernel headers
-Patch35: chromium-70.0.3538.77-aarch64-arch-want-new-stat.patch
+Patch9: chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
-Patch36: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
+Patch10: chromium-71.0.3578.98-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
-Patch37: chromium-widevine-other-locations.patch
-# Disable -fno-delete-null-pointer-checks
-Patch38: chromium-73.0.3683.75-disable-fno-delete-null-pointer-checks.patch
-# Linux 5.2 defines SIOCGSTAMP in a slightly different way, so we need to teach chromium where to find it
-Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
-# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
-# It might make clang happy but it breaks gcc. F*** clang.
-Patch43: chromium-75.0.3770.80-revert-daff6b.patch
+Patch11: chromium-widevine-other-locations.patch
+# Try to fix version.py for Rawhide
+Patch12: chromium-71.0.3578.98-py2-bootstrap.patch
+# Add "Fedora" to the user agent string
+Patch13: chromium-77.0.3865.75-fedora-user-agent.patch
+
# rename function to avoid conflict with rawhide glibc "gettid()"
-Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
+Patch50: chromium-75.0.3770.80-grpc-gettid-fix.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
-Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+Patch51: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Needs to be submitted..
-Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+Patch52: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
-Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+Patch53: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+Patch54: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
-Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+Patch55: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
-Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
-# Needs to be submitted..
-Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+Patch56: chromium-77.0.3865.75-gcc-include-memory.patch
+# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec5...
+Patch57: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
-Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+Patch58: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
-Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+Patch59: chromium-77.0.3865.75-gcc-abstract-class.patch
# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
-Patch70: chromium-77.0.3865.75-missing-limits.patch
+Patch60: chromium-77.0.3865.75-missing-limits.patch
-# Apply these changes to work around EPEL7 compiler issues
-Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
@@ -766,60 +713,40 @@ udev.
%setup -q -n chromium-%{version}
### Chromium Fedora Patches ###
-%patch0 -p1 -b .gcc5
-%patch1 -p1 -b .pathmax
-%patch2 -p1 -b .addrfix
-%patch3 -p1 -b .notest
-%patch4 -p1 -b .modern-libusbx
-%patch6 -p1 -b .sandboxpie
-%patch7 -p1 -b .etc
-%patch8 -p1 -b .gnsystem
-%patch9 -p1 -b .timefix
-%patch10 -p1 -b .nullfix
-%patch11 -p1 -b .jpegfix
-%patch12 -p1 -b .ldmemory
-%patch13 -p1 -b .revert
-%patch14 -p1 -b .ffmpeg-stdatomic
-%patch15 -p1 -b .system-clang
-%patch16 -p1 -b .noprefix
-%patch17 -p1 -b .nomangle
-%patch18 -p1 -b .nozmangle
-%patch19 -p1 -b .pathfix
-%patch20 -p1 -b .nogccoptmath
-%patch21 -p1 -b .gcc5-r3
-%patch22 -p1 -b .gcc-round-fix
-%patch23 -p1 -b .memcpyfix
-%patch24 -p1 -b .boolfix
-#%patch25 -p1 -b .aarch64fix
-%patch27 -p1 -b .nounrar
-%patch28 -p1 -b .gcc-cpolicyprovider
-%patch29 -p1 -b .fedora-user-agent
-%patch30 -p1 -b .py2
-%patch31 -p1 -b .fix-default-redeclaration
-%patch32 -p1 -b .wvhack
-%patch33 -p1 -b .sanebuild
-%patch34 -p1 -b .nofc
-%patch35 -p1 -b .aarch64-new-stat
-%patch36 -p1 -b .gcc9
-%patch37 -p1 -b .widevine-other-locations
-%patch38 -p1 -b .disable-ndnpc
-%patch41 -p1 -b .SIOCGSTAMP
-%patch43 -p1 -b .revert-daff6b
-%patch45 -p1 -b .gettid-fix
-%patch61 -p1 -b .gcc-no-alignas-and-export
-%patch62 -p1 -b .gcc-remoting-constexpr
-%patch63 -p1 -b .vtable-symbol-undefined
-%patch64 -p1 -b .certificate-transparency
-%patch65 -p1 -b .unbundle-zlib
-%patch66 -p1 -b .gcc-include-memory
-%patch67 -p1 -b .base-gcc-no-alignas
-%patch68 -p1 -b .harfbuzz-subset
-%patch69 -p1 -b .gcc-abstract-class
-%patch70 -p1 -b .missing-limits
+%patch0 -p1 -b .sandboxpie
+%patch1 -p1 -b .etc
+%patch2 -p1 -b .gnsystem
+%patch3 -p1 -b .revert
+%patch4 -p1 -b .nolibpngprefix
+%patch5 -p1 -b .nolibjpegmangle
+%patch6 -p1 -b .nozlibmangle
+%patch7 -p1 -b .nounrar
+%patch8 -p1 -b .widevine-hack
+%patch9 -p1 -b .nofontconfigcache
+%patch10 -p1 -b .gcc9
+%patch11 -p1 -b .widevine-other-locations
+%patch12 -p1 -b .py2
+
+# Short term fixes (usually gcc and backports)
+%patch50 -p1 -b .gettid-fix
+%patch51 -p1 -b .gcc-no-alignas-and-export
+%patch52 -p1 -b .gcc-remoting-constexpr
+%patch53 -p1 -b .vtable-symbol-undefined
+%patch54 -p1 -b .certificate-transparency
+%patch55 -p1 -b .unbundle-zlib
+%patch56 -p1 -b .gcc-include-memory
+%patch57 -p1 -b .base-gcc-no-alignas
+%patch58 -p1 -b .harfbuzz-subset
+%patch59 -p1 -b .gcc-abstract-class
+%patch60 -p1 -b .missing-limits
+
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch13 -p1 -b .fedora-user-agent
+%endif
# EPEL specific patches
%if 0%{?rhel} == 7
-%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
%endif
@@ -1298,6 +1225,11 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+# Decrease the debuginfo verbosity, so it compiles in koji
+%ifarch %{ix86}
+%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
+%endif
+
echo
# Now do the full browser
%if 0%{freeworld}
commit d8b8fc10a9d2bc16fbdc802ba975b68bc5f4d97b
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:45:43 2019 +0200
Fix how the arguments are passed to GN's bootstrap.py
I don't know why, but previously it was failing only on aarch64.
diff --git a/chromium.spec b/chromium.spec
index 25eb383..4fa3d44 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1267,7 +1267,7 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
exit 1 ; \
fi
-tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
+tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
commit 1ef42a21dcf51442af1b6830c71b060258844ef5
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 20 09:37:33 2019 +0200
Remove support for (p)NaCL
We don't build it for quite some time and will by killed by Google in
Spring 2020. Let's drop the support for it from the SPEC file. We can
revert this patch if needed.
diff --git a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch b/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
deleted file mode 100644
index c422957..0000000
--- a/chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff -up chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc
---- chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc.ignore-fd-count 2015-12-15 14:48:07.119011866 -0500
-+++ chromium-47.0.2526.80/components/nacl/loader/sandbox_linux/nacl_sandbox_linux.cc 2015-12-15 14:48:14.151850055 -0500
-@@ -153,6 +153,14 @@ void NaClSandbox::InitializeLayerOneSand
- }
-
- void NaClSandbox::CheckForExpectedNumberOfOpenFds() {
-+ // Whatever logic this code is using is wrong more often than it is right.
-+ // If you set expected_num_fds to 6, it finds 7.
-+ // If you set expected_num_fds to 7, it finds 6.
-+ // Code like this makes a packager drink. And not the good stuff either.
-+ // Instead, we're just going to smile and tell it to never care about the
-+ // number of FDs open. Stupid code. We hates it.
-+
-+#if 0
- // We expect to have the following FDs open:
- // 1-3) stdin, stdout, stderr.
- // 4) The /dev/urandom FD used by base::GetUrandomFD().
-@@ -171,6 +179,8 @@ void NaClSandbox::CheckForExpectedNumber
- }
-
- CHECK_EQ(expected_num_fds, sandbox::ProcUtil::CountOpenFds(proc_fd_.get()));
-+#endif
-+
- }
-
- void NaClSandbox::InitializeLayerTwoSandbox(bool uses_nonsfi_mode) {
diff --git a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch b/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
deleted file mode 100644
index bfe0422..0000000
--- a/chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme chromium-47.0.2526.80/native_client/build/untrusted.gypi
---- chromium-47.0.2526.80/native_client/build/untrusted.gypi.fixme 2015-12-09 11:54:27.584962337 -0500
-+++ chromium-47.0.2526.80/native_client/build/untrusted.gypi 2015-12-09 11:54:45.033571750 -0500
-@@ -1564,6 +1564,7 @@
- '-Wno-char-subscripts',
- '-Wno-unused-function',
- '-std=gnu++11',
-+ '-fgnu-inline-asm',
- ],
- 'native_irt_compile_flags': [
- # IRT compile/link flags to make the binary smaller.
diff --git a/chromium.spec b/chromium.spec
index a2538f0..25eb383 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,32 +70,11 @@
# If we build with shared on, then chrome-remote-desktop depends on chromium libs.
# If we build with shared off, then users cannot swap out libffmpeg (and i686 gets a lot harder to build)
%global shared 1
-# We should not need to turn this on. The app in the webstore _should_ work.
-%global build_remoting_app 0
# AddressSanitizer mode
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -302,16 +281,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-77.0.3865.75-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -419,24 +388,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -874,11 +825,6 @@ udev.
%endif
# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -907,101 +853,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1072,9 +923,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1236,9 +1085,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0%{?bundlepylibs}
@@ -1471,20 +1317,8 @@ echo
# remote client
# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
-%build_target %{builddir} remoting_webapp
-%endif
-%endif
-
%endif
-# Nuke nacl/pnacl bits at the end of the build
-rm -rf %{builddir}/gen/sdk
-rm -rf native_client/toolchain
-rm -rf third_party/llvm-build/*
-
%install
rm -rf %{buildroot}
@@ -1522,10 +1356,6 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
%if 0
cp -a protoc pyproto %{buildroot}%{chromium_path}
@@ -1607,12 +1437,6 @@ pushd %{buildroot}%{_sysconfdir}/pam.d/
ln -s system-auth chrome-remote-desktop
popd
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
-%endif
-%endif
-
%if %{build_headless}
pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
@@ -1753,12 +1577,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
%if 0
%{chromium_path}/protoc
@@ -1872,11 +1690,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{crd_path}/user-session
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
-%if 0%{?build_remoting_app}
-%if 0%{?nacl}
-%{chromium_path}/remoting_client_plugin_newlib.*
-%endif
-%endif
%files -n chromedriver
%doc AUTHORS
commit a2942aa1bba73adf0d336548aea65e3830f172ef
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 13:36:44 2019 +0200
Don't try to revert a previously removed patch
diff --git a/chromium.spec b/chromium.spec
index 7a0d711..a2538f0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -871,8 +871,6 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-# Revert patch58 because it's breaking the build on el7
-%patch58 -R -p1
%endif
# Feature specific patches
commit 06cf3b0691efe622951e72292af48063622b40c7
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 19 07:58:49 2019 +0200
Update to 77.0.3865.90
diff --git a/chromium.spec b/chromium.spec
index 5491e4c..7a0d711 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -182,8 +182,8 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Version: %{majorversion}.0.3865.90
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1902,6 +1902,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Thu Sep 19 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.90-1
+- Update to 77.0.3865.90
+
* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
- Update the list of private libraries
diff --git a/sources b/sources
index b9b0498..13e91e7 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
+SHA512 (chromium-77.0.3865.90-clean.tar.xz) = 696c5b01756fb720645512fc997f4c378001a01f74bb61fe2b27722b7a3c6bbef782af82ec5678e8fe7ff76285164a331b3a99eff9c5f605ff477b3795c968c4
commit c510174e57208c85a6fe9add725046fa4233abf4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 08:05:03 2019 +0200
Forget to generate diff for one affected el7-noexcept file
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
index 59b6fa9..366c139 100644
--- a/chromium-77.0.3865.75-el7-noexcept.patch
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -58,6 +58,18 @@ diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.e
~QueryURLResult();
// Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/url_row.cc
+--- chromium-77.0.3865.75/components/history/core/browser/url_row.cc.el7-noexcept 2019-09-18 08:03:25.458138423 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/url_row.cc 2019-09-18 08:03:34.363234155 +0200
+@@ -26,7 +26,7 @@ URLRow::~URLRow() {
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
++URLRow& URLRow::operator=(URLRow&& other) = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
+++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
commit 1a179e7d6a6aa7376e3b286bffa6901c66716294
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 18 06:35:01 2019 +0200
Update the el7 noexcept patch and fix the el7 build
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
deleted file mode 100644
index 407f8de..0000000
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
---- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
-@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
- Swap(&other);
- }
-
--QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
-+QueryResults& QueryResults::operator=(QueryResults&& other) {
- Swap(&other);
- return *this;
- }
-@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
-
- QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
-
--QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
-+QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
-
- // MostVisitedURL --------------------------------------------------------------
-
-diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
---- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
-@@ -143,7 +143,7 @@ class QueryResults {
- ~QueryResults();
-
- QueryResults(QueryResults&& other) noexcept;
-- QueryResults& operator=(QueryResults&& other) noexcept;
-+ QueryResults& operator=(QueryResults&& other);
-
- void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
- bool reached_beginning() { return reached_beginning_; }
-@@ -278,7 +278,7 @@ struct QueryURLResult {
- QueryURLResult(const QueryURLResult&);
- QueryURLResult(QueryURLResult&&) noexcept;
- QueryURLResult& operator=(const QueryURLResult&);
-- QueryURLResult& operator=(QueryURLResult&&) noexcept;
-+ QueryURLResult& operator=(QueryURLResult&&);
- ~QueryURLResult();
-
- // Indicates whether the call to HistoryBackend::QueryURL was successfull
-diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
-@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
-@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
-
- AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
-
--AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
-+AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
-
- bool AccountInfo::IsEmpty() const {
- return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
-@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
-
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
-@@ -19,7 +19,7 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+ CoreAccountId& operator=(CoreAccountId&&);
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
-diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
-@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-77.0.3865.75-el7-noexcept.patch b/chromium-77.0.3865.75-el7-noexcept.patch
new file mode 100644
index 0000000..59b6fa9
--- /dev/null
+++ b/chromium-77.0.3865.75-el7-noexcept.patch
@@ -0,0 +1,153 @@
+diff -up chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc
+--- chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-09-17 18:42:37.137393137 +0200
++++ chromium-77.0.3865.75/chrome/common/media_router/media_sink.cc 2019-09-17 18:42:37.145393201 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.cc
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.cc.el7-noexcept 2019-09-17 18:42:09.417172829 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.cc 2019-09-17 18:42:09.385172574 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
+diff -up chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept chromium-77.0.3865.75/components/history/core/browser/history_types.h
+--- chromium-77.0.3865.75/components/history/core/browser/history_types.h.el7-noexcept 2019-09-17 18:42:09.437172988 +0200
++++ chromium-77.0.3865.75/components/history/core/browser/history_types.h 2019-09-17 18:42:09.365172415 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
+diff -up chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc
+--- chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc.el7-noexcept 2019-09-17 22:00:18.670108528 +0200
++++ chromium-77.0.3865.75/components/omnibox/browser/suggestion_answer.cc 2019-09-17 22:00:32.518272148 +0200
+@@ -60,7 +60,7 @@ SuggestionAnswer::TextField::TextField(T
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+ SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+- TextField&&) noexcept = default;
++ TextField&&) = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+diff -up chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept chromium-77.0.3865.75/components/policy/core/common/policy_map.cc
+--- chromium-77.0.3865.75/components/policy/core/common/policy_map.cc.el7-noexcept 2019-09-17 18:42:14.622214197 +0200
++++ chromium-77.0.3865.75/components/policy/core/common/policy_map.cc 2019-09-17 18:42:14.556213673 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc
+--- chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc.el7-noexcept 2019-09-17 21:06:27.037828110 +0200
++++ chromium-77.0.3865.75/components/signin/public/identity_manager/account_info.cc 2019-09-17 21:07:20.726472932 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-09-17 18:43:12.969677930 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.cc 2019-09-17 18:43:12.989678089 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept chromium-77.0.3865.75/google_apis/gaia/core_account_id.h
+--- chromium-77.0.3865.75/google_apis/gaia/core_account_id.h.el7-noexcept 2019-09-17 18:43:12.978678001 +0200
++++ chromium-77.0.3865.75/google_apis/gaia/core_account_id.h 2019-09-17 18:43:12.983678041 +0200
+@@ -20,7 +20,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept chromium-77.0.3865.75/gpu/config/gpu_info.cc
+--- chromium-77.0.3865.75/gpu/config/gpu_info.cc.el7-noexcept 2019-09-17 18:42:25.049297073 +0200
++++ chromium-77.0.3865.75/gpu/config/gpu_info.cc 2019-09-17 18:42:25.049297073 +0200
+@@ -170,7 +170,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
+diff -up chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h
+--- chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h.el7-noexcept 2019-09-17 21:46:46.378655525 +0200
++++ chromium-77.0.3865.75/third_party/openscreen/src/osp/public/service_info.h 2019-09-17 21:47:16.897035418 +0200
+@@ -21,7 +21,7 @@ struct ServiceInfo {
+ ServiceInfo(ServiceInfo&&) MAYBE_NOEXCEPT = default;
+ ServiceInfo(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+- ServiceInfo& operator=(ServiceInfo&&) MAYBE_NOEXCEPT = default;
++ ServiceInfo& operator=(ServiceInfo&&) = default;
+ ServiceInfo& operator=(const ServiceInfo&) MAYBE_NOEXCEPT = default;
+
+ bool operator==(const ServiceInfo& other) const;
diff --git a/chromium.spec b/chromium.spec
index 87d6b6c..5491e4c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -300,7 +300,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-76.0.3809.100-el7-noexcept.patch
+Patch102: chromium-77.0.3865.75-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
commit ce1cd8e39484eefc8575db11fcc6c4b3ebceef43
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:23:29 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 6967dc4..87d6b6c 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -183,7 +183,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1902,6 +1902,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Mon Sep 16 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-2
+- Update the list of private libraries
+
* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
- Update to 77.0.3865.75
commit fa69419940e71be5ae2632b759bd664c1a3e8def
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Sep 16 14:21:14 2019 +0200
Update the list of private libraries
diff --git a/chromium.spec b/chromium.spec
index 843f1a0..6967dc4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -52,7 +52,7 @@
%global crd_path %{_libdir}/chrome-remote-desktop
# We don't want any libs in these directories to generate Provides
-# Requires is trickier.
+# Requires is trickier.
# To generate this list, go into %%{buildroot}%%{chromium_path} and run
# for i in `find . -name "*.so"`; do NAME=`basename -s .so $i`; printf "$NAME|"; done
@@ -61,9 +61,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido|libfontconfig
%else
-%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
+%global privlibs libservice|libui_accessibility_ax_mojom_blink|libmojo_mojom_bindings_shared|libcolor_space|libui_base_ime_linux|libv8|libtracing_cpp|libprotobuf_lite|librange|libui_touch_selection|libgtkui|libraster|libstub_window|libmessage_center|libv8_libplatform|libtab_count_metrics|libclient|libaura|libresource_coordinator_public_mojom_shared|libbluetooth|libipc_mojom_shared|libdevice_event_log|libcc_debug|libnet_with_v8|libcc_paint|libwm_public|libnetwork_cpp_base|libservice_manager_mojom|libaura_extra|libmojo_public_system|libpdfium|libui_base_ime_init|libmpris|libcc|libservice_manager_cpp|libblink_mojom_broadcastchannel_bindings_shared|libinterfaces_shared|libservice_manager_cpp_types|libservice_manager_mojom_shared|libwm|libbase_i18n|libnetwork_session_configurator|libwebview|libplatform_window_handler_libs|libx11_events_platform|libmojo_cpp_platform|libandroid_mojo_bindings_shared|libpublic|libmirroring_service|libmedia_session_cpp|libblink_platform|libicui18n|libwebdata_common|libgin|libdevice_gamepad|libdevice_vr_mojo_bindings|libffmpeg|libmetrics_cpp|liburl_matcher|libpolicy_proto|libshared_memory_support|libparsers|libgles2_utils|libweb_feature_mojo_bindings_mojom|libui_base_idle|libmojo_public_system_cpp|libsuid_sandbox_client|libgfx_ipc_skia|libmojo_base_shared_typemap_traits|libcapture_lib|libgl_init|libblink_common|libcc_base|libmojo_base_mojom|libtracing_mojom_shared|libgpu_ipc_service|libui_accessibility_ax_mojom|libweb_feature_mojo_bindings_mojom_shared|libgfx_switches|libmedia_session_base_cpp|libmessage_support|libvulkan_init|libonc|libgpu|libmojom_modules_shared|libnative_theme|libgcm|libvr_base|libmojo_core_embedder_internal|libuser_prefs|libweb_bluetooth_mojo_bindings_shared|libos_crypt|libbrowser_ui_views|libembedder_switches|libcontent_service_mojom_shared|libsandbox|libvulkan_x11|libdevice_vr_test_mojo_bindings|libmojo_core_ports|libblink_core|libx11_window|libmojo_mojom_bindings|libipc|libmojo_base_mojom_blink|libgl_wrapper|libprinting|libgesture_detection|libdiscardable_memory_service|libmojom_core_shared|libviz_vulkan_context_provider|libpolicy_component|libdisplay|libvr_common|libdevice_vr_test_mojo_bindings_shared|libui_accessibility_ax_mojom_shared|libresource_coordinator_public_mojom|libvulkan_wrapper|libcrcrypto|libGLESv2|libv8_libbase|libcrash_key|libchrome_features|libdiscardable_memory_common|libbindings|libfreetype_harfbuzz|libcapture_base|libmojo_core_embedder|libprefs|libdevice_features|libresource_coordinator_cpp_features|libgfx_ipc_geometry|libgfx|libui_devtools|libweb_dialogs|libkeyed_service_core|libcontent|libgeometry_skia|libdisplay_util|libservice_manager_mojom_traits|libkeycodes_x11|libipc_mojom|libmojo_base_lib|libui_base_clipboard_types|libtracing_mojom|libmanager|libmedia_webrtc|libmedia_mojo_services|libcontent_public_common_mojo_bindings_shared|libgfx_ipc|libdiscardable_memory_client|libmemory_instrumentation|libui_base_ime|libskia|libgfx_ipc_color|libshell_dialogs|libEGL|libmedia_blink|libmedia_message_center|libblink_controller|libdevice_vr_mojo_bindings_shared|libmidi|libapdu|libseccomp_bpf|libboringssl|libcolor_utils|libdbus|libproxy_config|libblink_features|libmojom_platform_shared|libshared_with_blink|libui_data_pack|libevents_x|libleveldatabase|libevents_ozone_layout|libgfx_x11|libsurface|liblearning_impl|libgamepad_mojom|libcontent_service_cpp|libui_base|libzygote|libevents|libvulkan|libGLESv2|libEGL|libcertificate_matching|libusb_shared|libbindings_base|libgfx_ipc_buffer_types|libcodec|libmojom_mhtml_load_result_shared|libstorage_common|libdevice_vr|libviz_resource_format_utils|libservice_manager_mojom_blink|libgles2|libauthenticator_test_mojo_bindings_shared|libui_base_clipboard|libgamepad_mojom_shared|libdomain_reliability|libmenu|libblink_embedded_frame_sink_mojo_bindings_shared|libwebgpu|liburl_ipc|libnet|libmedia_gpu|libservice_manager_mojom_constants_shared|libaccessibility|libservice_manager_mojom_constants|libembedder|libgamepad_mojom_blink|libcc_animation|libplatform|libdevice_base|libanimation|libgamepad_shared_typemap_traits|libwtf|libthread_linux|libui_base_x|libcloud_policy_proto_generated_compile|libsql|libhost|libextras|libchromium_sqlite3|libnetwork_cpp|libmojo_base_mojom_shared|libgeometry|libppapi_proxy|libweb_feature_mojo_bindings_mojom_blink|libcontent_common_mojo_bindings_shared|libVkICD_mock_icd|libdevice_vr_mojo_bindings_blink|libservice_manager_mojom_constants_blink|libevents_base|liburl|libresource_coordinator_public_mojom_blink|libppapi_host|libppapi_shared|libmedia|libtracing|libsandbox_services|libcontent_service_mojom|libevents_devices_x11|libcompositor|libfingerprint|libuser_manager|libstorage_browser|libbase|libkeyed_service_content|libviews|libcaptive_portal|libcbor|libviz_common|libcc_mojo_embedder|libheadless_non_renderer|libui_base_features|libsnapshot|libcommon|libnetwork_service|liblearning_common|libblink_modules|libscheduling_metrics|libperfetto|libgles2_implementation|libsessions|libdevices|libstartup_tracing|libdisplay_types|libgl_in_process_context|libui_base_ime_types|libui_message_center_cpp|libclearkeycdm|libicuuc|libfido
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
commit 7fc281321af19c13b81aeaa367d93b7681482b00
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:11:22 2019 +0200
22x22 icon was removed and use the symbolic one as well
diff --git a/chromium.spec b/chromium.spec
index a198ddf..843f1a0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1645,8 +1645,8 @@ mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps
cp -a chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{chromium_browser_channel}.png
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps
cp -a chrome/app/theme/chromium/product_logo_24.png %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{chromium_browser_channel}.png
-mkdir -p %{buildroot}%{_datadir}/icons/hicolor/22x22/apps
-cp -a chrome/app/theme/chromium/product_logo_22.png %{buildroot}%{_datadir}/icons/hicolor/22x22/apps/%{chromium_browser_channel}.png
+mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
+cp -a chrome/app/theme/chromium/product_logo_22_mono.png %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/%{chromium_browser_channel}.png
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
commit 4d35c8a98356aedecd1f0fe80534a454f93ecf6d
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sun Sep 15 08:08:54 2019 +0200
Fix the aarch64 build
diff --git a/chromium-77.0.3865.75-missing-limits.patch b/chromium-77.0.3865.75-missing-limits.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/chromium-77.0.3865.75-missing-limits.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska(a)chromium.org>
+Date: Mon, 12 Aug 2019 22:30:13 +0000
+Subject: [PATCH] Fix build failure due to missing include for std::numeric_limits usage.
+
+Some configurations fail to build, limits should have been included.
+
+BUG=992832
+
+Change-Id: I894ba0543bfcef101c93259e39a31d12ae6d035c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1747981
+Commit-Queue: Dave Tapuska <dtapuska(a)chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb(a)vewd.com>
+Cr-Commit-Position: refs/heads/master@{#686214}
+---
+
+diff --git a/third_party/blink/renderer/platform/exported/web_time_range.cc b/third_party/blink/renderer/platform/exported/web_time_range.cc
+index 384566a..68d83e1 100644
+--- a/third_party/blink/renderer/platform/exported/web_time_range.cc
++++ b/third_party/blink/renderer/platform/exported/web_time_range.cc
+@@ -31,6 +31,7 @@
+ #include "third_party/blink/public/platform/web_time_range.h"
+
+ #include <cmath>
++#include <limits>
+
+ namespace blink {
+
diff --git a/chromium.spec b/chromium.spec
index 5dec1f7..a198ddf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -292,6 +292,8 @@ Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
+# https://chromium.googlesource.com/chromium/src/+/5baf7df7f4c5971dab552897...
+Patch70: chromium-77.0.3865.75-missing-limits.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -862,6 +864,7 @@ udev.
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
%patch69 -p1 -b .gcc-abstract-class
+%patch70 -p1 -b .missing-limits
# EPEL specific patches
%if 0%{?rhel} == 7
commit 578228ae99ca125111d573ee5ff5c7cca67264ee
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 19:15:24 2019 +0200
Customize the ninja status to show the currently build target
So one is able to realize faster, where the build is failing.
diff --git a/chromium.spec b/chromium.spec
index d874dd5..5dec1f7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -2,6 +2,13 @@
# https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompi...
%global _python_bytecompile_extra 1
+# Fancy build status, so we at least know, where we are..
+# %1 where
+# %2 what
+%global build_target() \
+ export NINJA_STATUS="[%2:%f/%t] " ; \
+ ../depot_tools/ninja -C '%1' -vvv '%2'
+
# This is faster when it works, but it doesn't always.
%ifarch aarch64
%global use_jumbo 0
@@ -28,9 +35,9 @@
%global useapikeys 1
# Leave this alone, please.
-%global target out/Release
-%global headlesstarget out/Headless
-%global remotingtarget out/Remoting
+%global builddir out/Release
+%global headlessbuilddir out/Headless
+%global remotingbuilddir out/Remoting
# Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet)
@@ -1414,17 +1421,17 @@ if python2 -c 'import google ; print google.__path__' 2> /dev/null ; then \
fi
tools/gn/bootstrap/bootstrap.py -v "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{builddir}
%if %{freeworld}
# do not need to do headless gen
%else
%if %{build_headless}
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir}
%endif
%endif
-%{target}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingtarget}
+%{builddir}/gn --script-executable=/usr/bin/python2 gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir}
%if %{bundlelibusbx}
# no hackity hack hack
@@ -1444,34 +1451,36 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
-echo
+echo
# Now do the full browser
%if 0%{freeworld}
-../depot_tools/ninja -C %{target} -vvv media
+%build_target %{builddir} media
%else
%if %{build_headless}
-# Do headless first.
-../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
+# Do headless first.
+%build_target %{headlessbuilddir} headless_shell
%endif
-../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver clear_key_cdm policy_templates
+%build_target %{builddir} chrome
+%build_target %{builddir} chrome_sandbox
+%build_target %{builddir} chromedriver
+%build_target %{builddir} clear_key_cdm
+%build_target %{builddir} policy_templates
# remote client
-pushd remoting
-
-# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
-../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
+# ../../depot_tools/ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
+%build_target %{remotingbuilddir} remoting_all
%if 0%{?build_remoting_app}
%if 0%{?nacl}
-GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
+export GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id}
+%build_target %{builddir} remoting_webapp
%endif
%endif
-popd
%endif
# Nuke nacl/pnacl bits at the end of the build
-rm -rf out/Release/gen/sdk
+rm -rf %{builddir}/gen/sdk
rm -rf native_client/toolchain
rm -rf third_party/llvm-build/*
@@ -1481,7 +1490,7 @@ rm -rf %{buildroot}
%if 0%{freeworld}
mkdir -p %{buildroot}%{chromium_path}
-pushd %{target}
+pushd %{builddir}
cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
@@ -1510,7 +1519,7 @@ sed -i "s|@@EXTRA_FLAGS@@|$EXTRA_FLAGS|g" %{buildroot}%{chromium_path}/%{chromiu
ln -s %{chromium_path}/%{chromium_browser_channel}.sh %{buildroot}%{_bindir}/%{chromium_browser_channel}
mkdir -p %{buildroot}%{_mandir}/man1/
-pushd %{target}
+pushd %{builddir}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
%if 0%{?nacl}
cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
@@ -1561,7 +1570,7 @@ popd
%endif
popd
-pushd %{remotingtarget}
+pushd %{remotingbuilddir}
# See remoting/host/installer/linux/Makefile for logic
cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host
@@ -1604,7 +1613,7 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
%if %{build_headless}
-pushd %{headlesstarget}
+pushd %{headlessbuilddir}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
%endif
commit 63ccbdcf58d947939423cf78126866370e0f78ba
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 17:06:52 2019 +0200
Backport another GCC build fix
diff --git a/chromium-77.0.3865.75-gcc-abstract-class.patch b/chromium-77.0.3865.75-gcc-abstract-class.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-abstract-class.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Fri, 26 Jul 2019 16:48:06 +0000
+Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
+
+The method UploadForDeepScanning gets a Request as parameter. But Request is an
+abstract class, so GCC will not allow that declaration (polimorphycs should be
+passed by reference). Use std::unique_ptr so BinaryUploadService can assume
+ownership.
+
+Bug: 819294
+Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
+Reviewed-by: Daniel Rubery <drubery(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#681333}
+---
+
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+index 6430c89..4e90487 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
+@@ -10,7 +10,7 @@
+ namespace safe_browsing {
+
+ void BinaryUploadService::UploadForDeepScanning(
+- BinaryUploadService::Request request) {
++ std::unique_ptr<BinaryUploadService::Request> request) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ NOTREACHED();
+ }
+diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+index d2dfd83..9b6f395 100644
+--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+ #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
+
++#include <memory>
++
+ #include "base/callback.h"
+ #include "components/safe_browsing/proto/webprotect.pb.h"
+
+@@ -40,6 +42,7 @@
+ public:
+ // |callback| will run on the UI thread.
+ explicit Request(Callback callback);
++ virtual ~Request() = default;
+ Request(const Request&) = delete;
+ Request& operator=(const Request&) = delete;
+
+@@ -67,7 +70,7 @@
+ // Upload the given file contents for deep scanning. The results will be
+ // returned asynchronously by calling |request|'s |callback|. This must be
+ // called on the UI thread.
+- void UploadForDeepScanning(Request request);
++ void UploadForDeepScanning(std::unique_ptr<Request> request);
+ };
+
+ } // namespace safe_browsing
diff --git a/chromium.spec b/chromium.spec
index 522df10..d874dd5 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -283,6 +283,8 @@ Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
+# https://chromium.googlesource.com/chromium/src.git/+/f08cb0022527081c078e...
+Patch69: chromium-77.0.3865.75-gcc-abstract-class.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -852,6 +854,7 @@ udev.
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
%patch68 -p1 -b .harfbuzz-subset
+%patch69 -p1 -b .gcc-abstract-class
# EPEL specific patches
%if 0%{?rhel} == 7
commit 057d9fcd01bff959156616a47f0c13409dc6ecaf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:10:29 2019 +0200
Don't remove an additional bundled library
diff --git a/chromium.spec b/chromium.spec
index 8039cd0..522df10 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1243,6 +1243,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/openh264' \
%endif
'third_party/openscreen' \
+ 'third_party/openscreen/src/third_party/tinycbor' \
'third_party/opus' \
'third_party/one_euro_filter' \
'third_party/ots' \
commit dc2f301520eb0151967763d129a425fa0a509ada
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Sat Sep 14 11:09:46 2019 +0200
More of the harfbuzz related fixes
diff --git a/chromium-77.0.3865.75-harfbuzz-subset.patch b/chromium-77.0.3865.75-harfbuzz-subset.patch
new file mode 100644
index 0000000..55d78d1
--- /dev/null
+++ b/chromium-77.0.3865.75-harfbuzz-subset.patch
@@ -0,0 +1,49 @@
+From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Date: Mon, 29 Jul 2019 10:54:28 +0000
+Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz is true
+
+When building HarfBuzz as part of Chromium, there is a single source set
+with all the files we need in the build.
+
+Upstream HarfBuzz, on the other hand, produces a few different libraries:
+harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is
+true, we were only looking for (and using) harfbuzz.pc with pkg-config even
+though we also use symbols from libharfbuzz-subset.so. This resulted in
+errors when linking:
+
+ ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)':
+ SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset'
+ ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy'
+
+as reported in
+https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ
+
+Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa(a)intel.com>
+Commit-Queue: Dominik Rttsches <drott(a)chromium.org>
+Reviewed-by: Dominik Rttsches <drott(a)chromium.org>
+Cr-Commit-Position: refs/heads/master@{#681760}
+---
+
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..72013eb1d 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,10 @@
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [
++ "harfbuzz",
++ "harfbuzz-subset",
++ ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/chromium.spec b/chromium.spec
index dd3fbaf..8039cd0 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -281,6 +281,8 @@ Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Needs to be submitted..
Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
+# https://chromium.googlesource.com/chromium/src/+/27e25336b8316ff3ec4e4640...
+Patch68: chromium-77.0.3865.75-harfbuzz-subset.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -366,7 +368,7 @@ BuildRequires: gperf
%if 0%{?bundleharfbuzz}
#nothing
%else
-BuildRequires: harfbuzz-devel >= 2.3.0
+BuildRequires: harfbuzz-devel >= 2.4.0
%endif
BuildRequires: libatomic
BuildRequires: libcap-devel
@@ -633,7 +635,7 @@ Provides: bundled(freetype) = 2.9.3
%endif
Provides: bundled(gperftools) = svn144
%if 0%{?bundleharfbuzz}
-Provides: bundled(harfbuzz) = 2.3.0
+Provides: bundled(harfbuzz) = 2.4.0
%endif
Provides: bundled(hunspell) = 1.6.0
Provides: bundled(iccjpeg)
@@ -849,6 +851,7 @@ udev.
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
%patch67 -p1 -b .base-gcc-no-alignas
+%patch68 -p1 -b .harfbuzz-subset
# EPEL specific patches
%if 0%{?rhel} == 7
commit ecb75dee3259ac4e802881ab69b036fa7019d553
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:13:56 2019 +0200
Fix the release number and add a changelog entry
diff --git a/chromium.spec b/chromium.spec
index bfbc930..dd3fbaf 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -176,7 +176,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3865.75
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -1883,6 +1883,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 13 2019 Tomas Popela <tpopela(a)redhat.com> - 77.0.3865.75-1
+- Update to 77.0.3865.75
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit fb22c7a5e910b0d702d8c8cace78936eff63eccc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:06:07 2019 +0200
Preserve the spirv heads for swiftshader compilation
diff --git a/chromium.spec b/chromium.spec
index 636aaab..bfbc930 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1286,6 +1286,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/llvm-7.0' \
+ 'third_party/swiftshader/third_party/SPIRV-Headers' \
'third_party/tcmalloc' \
'third_party/test_fonts' \
'third_party/usb_ids' \
commit 8ed36c4625d4090e87a85bf5368f82289664d77f
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 22:05:31 2019 +0200
Another export and alignas gcc compilation fix
diff --git a/chromium-77.0.3865.75-base-gcc-no-alignas.patch b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
new file mode 100644
index 0000000..86a2271
--- /dev/null
+++ b/chromium-77.0.3865.75-base-gcc-no-alignas.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas chromium-77.0.3865.75/base/task/promise/dependent_list.h
+--- chromium-77.0.3865.75/base/task/promise/dependent_list.h.base-gcc-no-alignas 2019-09-13 21:45:51.873172347 +0200
++++ chromium-77.0.3865.75/base/task/promise/dependent_list.h 2019-09-13 21:46:21.661522514 +0200
+@@ -59,7 +59,7 @@ class BASE_EXPORT DependentList {
+
+ // Align Node on an 8-byte boundary to ensure the first 3 bits are 0 and can
+ // be used to store additional state (see static_asserts below).
+- class BASE_EXPORT alignas(8) Node {
++ class BASE_EXPORT ALIGNAS(8) Node {
+ public:
+ Node();
+ explicit Node(Node&& other) noexcept;
diff --git a/chromium.spec b/chromium.spec
index 008873e..636aaab 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -279,6 +279,8 @@ Patch64: chromium-77.0.3865.75-certificate-transparency.patch
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Needs to be submitted..
Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
+# Needs to be submitted..
+Patch67: chromium-77.0.3865.75-base-gcc-no-alignas.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -846,6 +848,7 @@ udev.
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
%patch66 -p1 -b .gcc-include-memory
+%patch67 -p1 -b .base-gcc-no-alignas
# EPEL specific patches
%if 0%{?rhel} == 7
commit 63945f4efd038b18f3556b766e01ce17012d8ece
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 21:48:17 2019 +0200
Remove an unneeded patch that's breaking the build
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
deleted file mode 100644
index 385778c..0000000
--- a/chromium-77.0.3865.75-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
---- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
-+++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
-@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
- return new_element_dictionary;
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium.spec b/chromium.spec
index 102f14d..008873e 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -266,9 +266,6 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
-# fix v8 compile with gcc
-# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -843,7 +840,6 @@ udev.
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
%patch45 -p1 -b .gettid-fix
-%patch46 -p1 -b .fix-v8-gcc
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
commit 1a11ef1abaf843579269cb7f1a60aceb6b50b023
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:00:03 2019 +0200
Use the bundled harfbuzz-ng for < F31
Needed because of the hb_subset_input_set_retain_gids(), that's only
available in harbuzz 2.4 that's only in F31+
diff --git a/chromium.spec b/chromium.spec
index f8a9800..102f14d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -137,9 +137,9 @@ BuildRequires: libicu-devel >= 5.4
%global bundlefontconfig 0
%endif
-# Needs at least harfbuzz 2.3.0 now.
-# 2019-03-13
-%if 0%{?fedora} < 30
+# Needs at least harfbuzz 2.4.0 now.
+# 2019-09-13
+%if 0%{?fedora} < 31
%global bundleharfbuzz 1
%else
%global bundleharfbuzz 0
commit d08e680fa760fa174b8940428aafbf62cef21c50
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:24:09 2019 +0200
Include <memory> to fix the headless build
diff --git a/chromium-77.0.3865.75-gcc-include-memory.patch b/chromium-77.0.3865.75-gcc-include-memory.patch
new file mode 100644
index 0000000..93b4399
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-include-memory.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
+--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
++++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
+@@ -3,6 +3,8 @@
+
+ #include "low_pass_filter.h"
+
++#include <memory>
++
+ namespace one_euro_filter {
+ namespace test {
+ class OneEuroFilterTest;
diff --git a/chromium.spec b/chromium.spec
index 4b20549..f8a9800 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -280,6 +280,8 @@ Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
+# Needs to be submitted..
+Patch66: chromium-77.0.3865.75-gcc-include-memory.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -847,6 +849,7 @@ udev.
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
%patch65 -p1 -b .unbundle-zlib
+%patch66 -p1 -b .gcc-include-memory
# EPEL specific patches
%if 0%{?rhel} == 7
commit 5e3b7f3e899c48fbabcf95b19bc275a629a0e871
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:54 2019 +0200
Update the clean-ffmpeg.sh script
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..fd226e8 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -138,6 +138,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/vlc.h \
libavcodec/vorbisdsp.h \
libavcodec/vp3data.h \
+ libavcodec/vp4data.h \
libavcodec/vp3dsp.h \
libavcodec/vp56.h \
libavcodec/vp56dsp.h \
diff --git a/sources b/sources
index a1d28bf..b9b0498 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = ca7a71586a60abeacb70b9d08ba9a28455d875bfa5232070fdff079e52395924b80f05d7627e3a5d5c7a3df606a39a31e05634683a052c9efb634ed536afc092
commit 2cfc18c994143ce77664104024315e6056e4371e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:21:43 2019 +0200
Fix the previously rebased patched
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
index d342e2d..920a53e 100644
--- a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -1,13 +1,15 @@
diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
---- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
-+++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
-@@ -24,8 +24,7 @@
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-13 14:17:22.726738088 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-13 14:31:37.686898493 +0200
+@@ -23,9 +23,8 @@
+ // Where available use builtin math overflow support on Clang and GCC.
#elif !defined(__native_client__) && \
((defined(__clang__) && \
- ((__clang_major__ > 3) || \
+- ((__clang_major__ > 3) || \
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4)))
++ (__clang_major__ > 3) || \
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
#include "base/numerics/safe_math_clang_gcc_impl.h"
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
#else
commit 1b0a93bc239d9ee125a0356f974176ef82bafeb3
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:23:46 2019 +0200
Missing bundled dependency for headless
diff --git a/chromium.spec b/chromium.spec
index cc79386..4b20549 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1239,6 +1239,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/openscreen' \
'third_party/opus' \
+ 'third_party/one_euro_filter' \
'third_party/ots' \
'third_party/pdfium' \
'third_party/pdfium/third_party/agg23' \
commit 8458f58818dc3548cdaec285bd680ff9c84f9f46
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Sep 13 15:18:03 2019 +0200
Unbundle the zlib
Use the gentoo patch.
diff --git a/chromium-77.0.3865.75-unbundle-zlib.patch b/chromium-77.0.3865.75-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/chromium-77.0.3865.75-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you(a)example.com>
+Date: Fri, 28 Jun 2019 15:56:23 +0000
+Subject: [PATCH] update zlib
+
+---
+ third_party/perfetto/gn/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index c951f5f..297eee3 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -200,7 +200,7 @@ group("zlib") {
+ "//buildtools:zlib",
+ ]
+ } else if (build_with_chromium) {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [
+ "//third_party/zlib",
+ ]
+--
+2.21.0
+
diff --git a/chromium.spec b/chromium.spec
index a2d54e4..cc79386 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -278,6 +278,8 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
Patch64: chromium-77.0.3865.75-certificate-transparency.patch
+# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
+Patch65: chromium-77.0.3865.75-unbundle-zlib.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -844,6 +846,7 @@ udev.
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
%patch64 -p1 -b .certificate-transparency
+%patch65 -p1 -b .unbundle-zlib
# EPEL specific patches
%if 0%{?rhel} == 7
commit 892e596886b085085ee7b974404746d408db7cda
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Sep 12 17:28:51 2019 +0200
Update to 77.0.3865.75
Rebase and clean the patches.
diff --git a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch b/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
deleted file mode 100644
index 183b5ab..0000000
--- a/chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h
---- chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h.fixgcc3 2017-09-06 16:30:15.898454585 -0400
-+++ chromium-61.0.3163.79/base/numerics/safe_math_shared_impl.h 2017-09-06 16:30:27.570229539 -0400
-@@ -21,8 +21,7 @@
- #if !defined(__native_client__) && \
- ((defined(__clang__) && \
- ((__clang_major__ > 3) || \
-- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
-- (defined(__GNUC__) && __GNUC__ >= 5))
-+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
- #include "base/numerics/safe_math_clang_gcc_impl.h"
- #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
- #else
diff --git a/chromium-68.0.3440.106-boolfix.patch b/chromium-68.0.3440.106-boolfix.patch
deleted file mode 100644
index ed22aa9..0000000
--- a/chromium-68.0.3440.106-boolfix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2018-08-09 03:21:23.066802340 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2018-08-09 03:25:10.638595925 -0400
-@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
-
- bool is_valid() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() {
- return std::move(handle_);
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2018-08-09 03:21:23.067802318 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/associated_interface_request.h 2018-08-09 03:24:44.935229067 -0400
-@@ -50,7 +50,7 @@ class AssociatedInterfaceRequest {
- // handle.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
-
-diff -up chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h
---- chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h.boolfix 2018-08-08 15:11:05.000000000 -0400
-+++ chromium-68.0.3440.106/mojo/public/cpp/bindings/interface_request.h 2018-08-09 03:21:23.067802318 -0400
-@@ -54,7 +54,7 @@ class InterfaceRequest {
- // Indicates whether the request currently contains a valid message pipe.
- bool is_pending() const { return handle_.is_valid(); }
-
-- explicit operator bool() const { return handle_.is_valid(); }
-+ explicit operator bool() const { return (bool) handle_.is_valid(); }
-
- // Removes the message pipe from the request and returns it.
- ScopedMessagePipeHandle PassMessagePipe() { return std::move(handle_); }
diff --git a/chromium-72.0.3626.121-fedora-user-agent.patch b/chromium-72.0.3626.121-fedora-user-agent.patch
deleted file mode 100644
index 5cef6f0..0000000
--- a/chromium-72.0.3626.121-fedora-user-agent.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent chromium-72.0.3626.121/content/common/user_agent.cc
---- chromium-72.0.3626.121/content/common/user_agent.cc.fedora-user-agent 2019-03-10 14:21:02.877454982 -0400
-+++ chromium-72.0.3626.121/content/common/user_agent.cc 2019-03-10 14:22:05.728812272 -0400
-@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
- #elif defined(OS_MACOSX)
- "Macintosh; ";
- #elif defined(USE_X11) || defined(USE_OZONE)
-- "X11; "; // strange, but that's what Firefox uses
-+ "X11; Fedora; "; // strange, but that's what Firefox uses
- #elif defined(OS_ANDROID)
- "Linux; ";
- #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
diff --git a/chromium-72.0.3626.121-gcc5-r3.patch b/chromium-72.0.3626.121-gcc5-r3.patch
deleted file mode 100644
index f4cf40b..0000000
--- a/chromium-72.0.3626.121-gcc5-r3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h
---- chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-03-01 23:10:21.000000000 -0500
-+++ chromium-72.0.3626.121/gpu/ipc/common/mailbox_struct_traits.h 2019-03-10 14:07:48.300244125 -0400
-@@ -15,7 +15,7 @@ namespace mojo {
- template <>
- struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
- static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
-- return mailbox.name;
-+ return base::make_span(mailbox.name);
- }
- static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
- };
-diff -up chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h
---- chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-03-01 23:10:31.000000000 -0500
-+++ chromium-72.0.3626.121/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-03-10 14:07:48.303244046 -0400
-@@ -340,7 +340,7 @@ struct StructTraits<viz::mojom::TextureQ
- static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
- const viz::TextureDrawQuad* quad =
- viz::TextureDrawQuad::MaterialCast(&input);
-- return quad->vertex_opacity;
-+ return base::make_span(quad->vertex_opacity);
- }
-
- static bool y_flipped(const viz::DrawQuad& input) {
-diff -up chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
---- chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-03-10 14:07:48.307243941 -0400
-+++ chromium-72.0.3626.121/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-03-10 14:09:16.565920044 -0400
-@@ -10,7 +10,7 @@
-
- #include "modules/audio_processing/aec3/aec_state.h"
-
--#include <math.h>
-+#include <cmath>
- #include <algorithm>
- #include <numeric>
- #include <vector>
diff --git a/chromium-75.0.3770.100-fix-v8-gcc.patch b/chromium-75.0.3770.100-fix-v8-gcc.patch
deleted file mode 100644
index 4a1a4b0..0000000
--- a/chromium-75.0.3770.100-fix-v8-gcc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-75.0.3770.100/v8/src/objects/js-objects.cc
---- chromium-75.0.3770.100/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-06-25 10:55:08.132254304 -0400
-+++ chromium-75.0.3770.100/v8/src/objects/js-objects.cc 2019-06-25 10:55:23.147933648 -0400
-@@ -3792,6 +3792,10 @@ void JSObject::ApplyAttributesToDictiona
- }
- }
-
-+template void JSObject::ApplyAttributesToDictionary(
-+ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
-+ const PropertyAttributes attributes);
-+
- template <PropertyAttributes attrs>
- Maybe<bool> JSObject::PreventExtensionsWithTransition(
- Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-75.0.3770.80-no-zlib-mangle.patch b/chromium-75.0.3770.80-no-zlib-mangle.patch
deleted file mode 100644
index 998be67..0000000
--- a/chromium-75.0.3770.80-no-zlib-mangle.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle chromium-75.0.3770.80/third_party/zlib/zconf.h
---- chromium-75.0.3770.80/third_party/zlib/zconf.h.nozmangle 2019-06-05 11:12:30.420412467 -0400
-+++ chromium-75.0.3770.80/third_party/zlib/zconf.h 2019-06-05 11:17:43.512683058 -0400
-@@ -8,10 +8,6 @@
- #ifndef ZCONF_H
- #define ZCONF_H
-
--/* This include does prefixing as below, but with an updated set of names. Also
-- * sets up export macros in component builds. */
--#include "chromeconf.h"
--
- /*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
diff --git a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch b/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
deleted file mode 100644
index 06c909f..0000000
--- a/chromium-75.0.3770.80-pure-virtual-crash-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc.pure-virtual-fix 2019-06-07 15:03:43.302202979 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.cc 2019-06-07 15:04:25.140393048 -0400
-@@ -116,4 +116,9 @@ void RenderProcessUserData::RenderProces
- base::Unretained(process_node_.get()), info.exit_code));
- }
-
-+void RenderProcessUserData::RenderProcessHostDestroyed(
-+ content::RenderProcessHost* host) {
-+ host->RemoveUserData(kRenderProcessUserDataKey);
-+}
-+
- } // namespace performance_manager
-diff -up chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h
---- chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h.pure-virtual-fix 2019-06-07 15:04:43.530039597 -0400
-+++ chromium-75.0.3770.80/chrome/browser/performance_manager/render_process_user_data.h 2019-06-07 15:05:13.770458374 -0400
-@@ -47,6 +47,7 @@ class RenderProcessUserData : public bas
- void RenderProcessExited(
- content::RenderProcessHost* host,
- const content::ChildProcessTerminationInfo& info) override;
-+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
-
- // All instances are linked together in a doubly linked list to allow orderly
- // destruction at browser shutdown time.
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 5f45a8f..0000000
--- a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 18:38:12 +0200
-Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
-
-AccountInfo declares them as noexcept and uses default implementation,
-so all its members (including AccountId) should be noexcept. But AccountId
-is not noexcept. To fix it we just need to make CoreAccountId move
-operator/assign operator noexcept.
-
-Bug: 819294
-Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
----
-
-diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
-index d808082..12eefe3 100644
---- a/google_apis/gaia/core_account_id.cc
-+++ b/google_apis/gaia/core_account_id.cc
-@@ -6,8 +6,16 @@
-
- CoreAccountId::CoreAccountId() = default;
-
-+CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
-+
-+CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::~CoreAccountId() = default;
-
-+CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-+
-+CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
-+
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
-index 5ea602a..c2d1911 100644
---- a/google_apis/gaia/core_account_id.h
-+++ b/google_apis/gaia/core_account_id.h
-@@ -14,8 +14,13 @@
- // for design and tracking).
- struct CoreAccountId {
- CoreAccountId();
-+ CoreAccountId(const CoreAccountId&);
-+ CoreAccountId(CoreAccountId&&) noexcept;
- ~CoreAccountId();
-
-+ CoreAccountId& operator=(const CoreAccountId&);
-+ CoreAccountId& operator=(CoreAccountId&&) noexcept;
-+
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
- // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-cc-no-except.patch b/chromium-76.0.3809.100-gcc-cc-no-except.patch
deleted file mode 100644
index e4d754a..0000000
--- a/chromium-76.0.3809.100-gcc-cc-no-except.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Fri, 07 Jun 2019 09:50:11 +0000
-Subject: [PATCH] Make SharedMemoryMapping move constructor noexcept
-
-As LayerTreeHostImpl::UIResourceData move constructor is declared
-noexcept with default implementation, the move constructor of its
-members should also be noexcept. GCC will fail to build otherwise
-for mismatching noexcept declaration.
-
-We also set the move assignment operator.
-
-Bug: 819294
-Change-Id: Icd663da83b882e15f7d16780c9241972e09bc492
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#667064}
----
-
-diff --git a/base/memory/shared_memory_mapping.cc b/base/memory/shared_memory_mapping.cc
-index 2be2570..8426fa8 100644
---- a/base/memory/shared_memory_mapping.cc
-+++ b/base/memory/shared_memory_mapping.cc
-@@ -33,7 +33,7 @@
-
- SharedMemoryMapping::SharedMemoryMapping() = default;
-
--SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping)
-+SharedMemoryMapping::SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept
- : memory_(mapping.memory_),
- size_(mapping.size_),
- mapped_size_(mapping.mapped_size_),
-@@ -42,7 +42,7 @@
- }
-
- SharedMemoryMapping& SharedMemoryMapping::operator=(
-- SharedMemoryMapping&& mapping) {
-+ SharedMemoryMapping&& mapping) noexcept {
- Unmap();
- memory_ = mapping.memory_;
- size_ = mapping.size_;
-@@ -90,9 +90,9 @@
-
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping() = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping& ReadOnlySharedMemoryMapping::operator=(
-- ReadOnlySharedMemoryMapping&&) = default;
-+ ReadOnlySharedMemoryMapping&&) noexcept = default;
- ReadOnlySharedMemoryMapping::ReadOnlySharedMemoryMapping(
- void* address,
- size_t size,
-@@ -102,9 +102,9 @@
-
- WritableSharedMemoryMapping::WritableSharedMemoryMapping() = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping& WritableSharedMemoryMapping::operator=(
-- WritableSharedMemoryMapping&&) = default;
-+ WritableSharedMemoryMapping&&) noexcept = default;
- WritableSharedMemoryMapping::WritableSharedMemoryMapping(
- void* address,
- size_t size,
-diff --git a/base/memory/shared_memory_mapping.h b/base/memory/shared_memory_mapping.h
-index d9569af..2b8858e 100644
---- a/base/memory/shared_memory_mapping.h
-+++ b/base/memory/shared_memory_mapping.h
-@@ -32,8 +32,8 @@
- SharedMemoryMapping();
-
- // Move operations are allowed.
-- SharedMemoryMapping(SharedMemoryMapping&& mapping);
-- SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping);
-+ SharedMemoryMapping(SharedMemoryMapping&& mapping) noexcept;
-+ SharedMemoryMapping& operator=(SharedMemoryMapping&& mapping) noexcept;
-
- // Unmaps the region if the mapping is valid.
- virtual ~SharedMemoryMapping();
-@@ -93,8 +93,9 @@
- ReadOnlySharedMemoryMapping();
-
- // Move operations are allowed.
-- ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&);
-- ReadOnlySharedMemoryMapping& operator=(ReadOnlySharedMemoryMapping&&);
-+ ReadOnlySharedMemoryMapping(ReadOnlySharedMemoryMapping&&) noexcept;
-+ ReadOnlySharedMemoryMapping& operator=(
-+ ReadOnlySharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is read-only memory. This is
- // page-aligned. This is nullptr for invalid instances.
-@@ -171,8 +172,9 @@
- WritableSharedMemoryMapping();
-
- // Move operations are allowed.
-- WritableSharedMemoryMapping(WritableSharedMemoryMapping&&);
-- WritableSharedMemoryMapping& operator=(WritableSharedMemoryMapping&&);
-+ WritableSharedMemoryMapping(WritableSharedMemoryMapping&&) noexcept;
-+ WritableSharedMemoryMapping& operator=(
-+ WritableSharedMemoryMapping&&) noexcept;
-
- // Returns the base address of the mapping. This is writable memory. This is
- // page-aligned. This is nullptr for invalid instances.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
deleted file mode 100644
index 0dbffd5..0000000
--- a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 19:44:58 +0200
-Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
-
-Compilation fails because we are declaring ParseValueForFuzzer as friend method,
-but we are declaring it is in anonymous namespace. Moving to global namespace
-still fails (in this case in Clang).
-
-So final solution is making it a public static method of FeaturePolicyParser.
-
-Bug: 819294
-Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
----
-
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-index 3b7f4a9..eaee409 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
-@@ -317,6 +317,13 @@
- return value;
- }
-
-+void FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType feature_type,
-+ const WTF::String& value_string) {
-+ bool ok;
-+ ParseValueForType(feature_type, value_string, &ok);
-+}
-+
- bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
- const ParsedFeaturePolicy& policy) {
- return std::any_of(policy.begin(), policy.end(),
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-index fd25d90..36af405 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
-@@ -16,9 +16,6 @@
- #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
- #include "third_party/blink/renderer/platform/wtf/vector.h"
-
--// Forward declare for friendship.
--void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
--
- namespace blink {
-
- class Document;
-@@ -79,8 +76,9 @@
- const FeatureNameMap& feature_names,
- ExecutionContext* execution_context = nullptr);
-
-+ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
-+
- private:
-- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
- static PolicyValue GetFallbackValueForFeature(
- mojom::FeaturePolicyFeature feature);
- static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
-diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-index 7f8e6aa..53350e43 100644
---- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-+++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
-@@ -23,9 +23,9 @@
- extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
- static blink::BlinkFuzzerTestSupport test_support =
- blink::BlinkFuzzerTestSupport();
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
-- WTF::String(data, size));
-- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
-- WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
-+ blink::FeaturePolicyParser::ParseValueForFuzzer(
-+ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
- return 0;
- }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
deleted file mode 100644
index 26bba05..0000000
--- a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 17:18:40 +0000
-Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
-
-Other HasFraction methods as in PhysicalUnit are declared already
-constexpr and using it. It breaks GCC build.
-
-Bug: 819294.
-Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
-Reviewed-by: vmpstr <vmpstr(a)chromium.org>
-Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666336}
----
-
-diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
-index f073986..b6dbc76 100644
---- a/third_party/blink/renderer/platform/geometry/layout_unit.h
-+++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
-@@ -202,7 +202,9 @@
- return value_ > 0 ? LayoutUnit() : *this;
- }
-
-- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
-+ constexpr bool HasFraction() const {
-+ return RawValue() % kFixedPointDenominator;
-+ }
-
- LayoutUnit Fraction() const {
- // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
deleted file mode 100644
index 2876de4..0000000
--- a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 10:27:19 +0200
-Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
-
-In GCC, build is failing because history::QueryURLResult declares its move
-assignment operator as noexcept using default implementation. That requires
-its members to provide a move assignment operator that is noexcept too.
-
-But URLRow was missing noexcept declaration in move assignment operator (even
-though it was providing noexcept to its move constructor).
-
-Bug: 819294
-Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
----
-
-diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
-index 44c22fd..aec0101 100644
---- a/components/history/core/browser/url_row.cc
-+++ b/components/history/core/browser/url_row.cc
-@@ -26,7 +26,7 @@
- }
-
- URLRow& URLRow::operator=(const URLRow& other) = default;
--URLRow& URLRow::operator=(URLRow&& other) = default;
-+URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
-
- void URLRow::Swap(URLRow* other) {
- std::swap(id_, other->id_);
-diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
-index 8f6f9cf..31a1ef8 100644
---- a/components/history/core/browser/url_row.h
-+++ b/components/history/core/browser/url_row.h
-@@ -35,7 +35,7 @@
-
- virtual ~URLRow();
- URLRow& operator=(const URLRow& other);
-- URLRow& operator=(URLRow&& other);
-+ URLRow& operator=(URLRow&& other) noexcept;
-
- URLID id() const { return id_; }
-
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
deleted file mode 100644
index 3bf394f..0000000
--- a/chromium-76.0.3809.100-gcc-initialization-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 21:09:01 +0000
-Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
-
-XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
-same order of the declaration. GCC fails because of that.
-
-Bug: 819294
-Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
-Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666436}
----
-
-diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
-index f649dd4..0aa6892 100644
---- a/ui/gl/gl_surface_glx.cc
-+++ b/ui/gl/gl_surface_glx.cc
-@@ -583,10 +583,10 @@
-
- XSetWindowAttributes swa = {
- .background_pixmap = 0,
-- .bit_gravity = NorthWestGravity,
-- .colormap = g_colormap,
- .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
- .border_pixel = 0,
-+ .bit_gravity = NorthWestGravity,
-+ .colormap = g_colormap,
- };
- auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
- if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
deleted file mode 100644
index 1d4b90f..0000000
--- a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 08:00:13 +0000
-Subject: [PATCH] GCC: move explicit specialization out of RunInfo
-
-Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
-build because of that. Move the template specializations out of RunInfo declaration
-in shape_result_inline_headeres.h to fix the GCC build issue.
-
-Bug: 819294
-Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#667901}
----
-
-diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-index 76ee6091..c14d3a0 100644
---- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
-@@ -251,37 +251,6 @@
- template <bool has_non_zero_glyph_offsets>
- struct iterator final {};
-
-- // For non-zero glyph offset array
-- template <>
-- struct iterator<true> final {
-- // The constructor for ShapeResult
-- explicit iterator(const GlyphOffsetArray& array)
-- : pointer(array.storage_.get()) {
-- DCHECK(pointer);
-- }
--
-- // The constructor for ShapeResultView
-- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-- DCHECK(pointer);
-- }
--
-- GlyphOffset operator*() const { return *pointer; }
-- void operator++() { ++pointer; }
--
-- const GlyphOffset* pointer;
-- };
--
-- // For zero glyph offset array
-- template <>
-- struct iterator<false> final {
-- explicit iterator(const GlyphOffsetArray& array) {
-- DCHECK(!array.HasStorage());
-- }
-- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-- GlyphOffset operator*() const { return GlyphOffset(); }
-- void operator++() {}
-- };
--
- template <bool has_non_zero_glyph_offsets>
- iterator<has_non_zero_glyph_offsets> GetIterator() const {
- return iterator<has_non_zero_glyph_offsets>(*this);
-@@ -495,6 +464,37 @@
- float width_;
- };
-
-+// For non-zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
-+ // The constructor for ShapeResult
-+ explicit iterator(const GlyphOffsetArray& array)
-+ : pointer(array.storage_.get()) {
-+ DCHECK(pointer);
-+ }
-+
-+ // The constructor for ShapeResultView
-+ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
-+ DCHECK(pointer);
-+ }
-+
-+ GlyphOffset operator*() const { return *pointer; }
-+ void operator++() { ++pointer; }
-+
-+ const GlyphOffset* pointer;
-+};
-+
-+// For zero glyph offset array
-+template <>
-+struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
-+ explicit iterator(const GlyphOffsetArray& array) {
-+ DCHECK(!array.HasStorage());
-+ }
-+ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
-+ GlyphOffset operator*() const { return GlyphOffset(); }
-+ void operator++() {}
-+};
-+
- // Find the range of HarfBuzzRunGlyphData for the specified character index
- // range. This function uses binary search twice, hence O(2 log n).
- inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-gcc-net-fetcher.patch b/chromium-76.0.3809.100-gcc-net-fetcher.patch
deleted file mode 100644
index bc0ed98..0000000
--- a/chromium-76.0.3809.100-gcc-net-fetcher.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 16:56:27 +0000
-Subject: [PATCH] GCC: CertNetFetcherImpl declares Job as a friend but it is in the anonymous namespace
-
-GCC does not allow friendship declaration to anonymous namespace as done with Job
-object in the CertNetFetcherImpl. This fix removes the friend declaration, and just
-makes RemoveJob method public, that was the only reason to make Job a friend.
-
-Error was:
-./../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::DetachRequest(net::CertNetFetcherImpl::RequestCore*):
-../../net/cert_net/cert_net_fetcher_impl.cc:458:42: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-../../net/cert_net/cert_net_fetcher_impl.cc: In member function void net::{anonymous}::Job::OnJobCompleted(net::Error):
-../../net/cert_net/cert_net_fetcher_impl.cc:610:61: error: std::unique_ptr<net::{anonymous}::Job> net::CertNetFetcherImpl::AsyncCertNetFetcherImpl::RemoveJob(net::{anonymous}::Job*) is private within this context
- std::unique_ptr<Job> delete_this = parent_->RemoveJob(this);
- ^
-../../net/cert_net/cert_net_fetcher_impl.cc:151:24: note: declared private here
- std::unique_ptr<Job> RemoveJob(Job* job);
- ^~~~~~~~~
-
-Bug: 819294
-Change-Id: I3609f4558e570741395366de6a4cd40577d91450
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651783
-Commit-Queue: Eric Roman <eroman(a)chromium.org>
-Reviewed-by: Eric Roman <eroman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668015}
----
-
-diff --git a/net/cert_net/cert_net_fetcher_impl.cc b/net/cert_net/cert_net_fetcher_impl.cc
-index 11a1166..349c656 100644
---- a/net/cert_net/cert_net_fetcher_impl.cc
-+++ b/net/cert_net/cert_net_fetcher_impl.cc
-@@ -135,21 +135,19 @@
- void Fetch(std::unique_ptr<RequestParams> request_params,
- scoped_refptr<RequestCore> request);
-
-+ // Removes |job| from the in progress jobs and transfers ownership to the
-+ // caller.
-+ std::unique_ptr<Job> RemoveJob(Job* job);
-+
- // Cancels outstanding jobs, which stops network requests and signals the
- // corresponding RequestCores that the requests have completed.
- void Shutdown();
-
- private:
-- friend class Job;
--
- // Finds a job with a matching RequestPararms or returns nullptr if there was
- // no match.
- Job* FindJob(const RequestParams& params);
-
-- // Removes |job| from the in progress jobs and transfers ownership to the
-- // caller.
-- std::unique_ptr<Job> RemoveJob(Job* job);
--
- // The in-progress jobs. This set does not contain the job which is actively
- // invoking callbacks (OnJobCompleted).
- JobSet jobs_;
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
deleted file mode 100644
index ad40bb9..0000000
--- a/chromium-76.0.3809.100-gcc-themeservice-includes.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 04 Jun 2019 22:01:03 +0200
-Subject: [PATCH] IWYU: ThemeService requires NativeTheme
-
-As ThemeService referes to NativeTheme through a ScopedObserver,
-the full declaration is required.
-
-Bug: 819294
-Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
----
-
-diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
-index d65388e2..23dc86d 100644
---- a/chrome/browser/themes/theme_service.cc
-+++ b/chrome/browser/themes/theme_service.cc
-@@ -54,7 +54,6 @@
- #include "ui/gfx/color_palette.h"
- #include "ui/gfx/image/image_skia.h"
- #include "ui/native_theme/common_theme.h"
--#include "ui/native_theme/native_theme.h"
-
- #if BUILDFLAG(ENABLE_EXTENSIONS)
- #include "base/scoped_observer.h"
-diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
-index 6c79c72..f93dc0d 100644
---- a/chrome/browser/themes/theme_service.h
-+++ b/chrome/browser/themes/theme_service.h
-@@ -25,6 +25,7 @@
- #include "extensions/buildflags/buildflags.h"
- #include "extensions/common/extension_id.h"
- #include "ui/base/theme_provider.h"
-+#include "ui/native_theme/native_theme.h"
- #include "ui/native_theme/native_theme_observer.h"
-
- class BrowserThemePack;
diff --git a/chromium-76.0.3809.100-gcc-vulkan.patch b/chromium-76.0.3809.100-gcc-vulkan.patch
deleted file mode 100644
index cf93bce..0000000
--- a/chromium-76.0.3809.100-gcc-vulkan.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Tue, 11 Jun 2019 17:39:38 +0000
-Subject: [PATCH] GCC: do not use old C notation to assign struct with property names.
-
-The notation for initialization of structs referring to its properties
-is invalid in C++. This is not accepted in GCC. It was making build
-fail in VulkanCommandBuffer.
-
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::TransitionImageLayout(VkImage, VkImageLayout, VkImageLayout)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:214:7: error: expected primary-expression before '.' token
- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:215:7: error: expected primary-expression before '.' token
- .subresourceRange.baseMipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:216:7: error: expected primary-expression before '.' token
- .subresourceRange.levelCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:217:7: error: expected primary-expression before '.' token
- .subresourceRange.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:218:7: error: expected primary-expression before '.' token
- .subresourceRange.layerCount = 1,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc: In member function 'void gpu::VulkanCommandBuffer::CopyBufferToImage(VkBuffer, VkImage, uint32_t, uint32_t, uint32_t, uint32_t)':
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:235:7: error: expected primary-expression before '.' token
- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:236:7: error: expected primary-expression before '.' token
- .imageSubresource.mipLevel = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:237:7: error: expected primary-expression before '.' token
- .imageSubresource.baseArrayLayer = 0,
- ^
-./../../../chromium-76.0.3806.1/gpu/vulkan/vulkan_command_buffer.cc:238:7: error: expected primary-expression before '.' token
- .imageSubresource.layerCount = 1,
- ^
-Bug: 819294
-
-Change-Id: I999abece0c727e77964789183642ba62009c2c22
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651802
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Reviewed-by: Antoine Labour <piman(a)chromium.org>
-Cr-Commit-Position: refs/heads/master@{#668033}
----
-
-diff --git a/gpu/vulkan/vulkan_command_buffer.cc b/gpu/vulkan/vulkan_command_buffer.cc
-index ba776e4..4f14c85 100644
---- a/gpu/vulkan/vulkan_command_buffer.cc
-+++ b/gpu/vulkan/vulkan_command_buffer.cc
-@@ -207,21 +207,20 @@
- void VulkanCommandBuffer::TransitionImageLayout(VkImage image,
- VkImageLayout old_layout,
- VkImageLayout new_layout) {
-- VkImageMemoryBarrier barrier = {
-- .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-- .srcAccessMask = GetAccessMask(old_layout),
-- .dstAccessMask = GetAccessMask(new_layout),
-- .oldLayout = old_layout,
-- .newLayout = new_layout,
-- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
-- .image = image,
-- .subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .subresourceRange.baseMipLevel = 0,
-- .subresourceRange.levelCount = 1,
-- .subresourceRange.baseArrayLayer = 0,
-- .subresourceRange.layerCount = 1,
-- };
-+ VkImageMemoryBarrier barrier = {};
-+ barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-+ barrier.srcAccessMask = GetAccessMask(old_layout);
-+ barrier.dstAccessMask = GetAccessMask(new_layout);
-+ barrier.oldLayout = old_layout;
-+ barrier.newLayout = new_layout;
-+ barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
-+ barrier.image = image;
-+ barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ barrier.subresourceRange.baseMipLevel = 0;
-+ barrier.subresourceRange.levelCount = 1;
-+ barrier.subresourceRange.baseArrayLayer = 0;
-+ barrier.subresourceRange.layerCount = 1;
- vkCmdPipelineBarrier(command_buffer_, GetPipelineStageFlags(old_layout),
- GetPipelineStageFlags(new_layout), 0, 0, nullptr, 0,
- nullptr, 1, &barrier);
-@@ -233,17 +232,16 @@
- uint32_t buffer_height,
- uint32_t width,
- uint32_t height) {
-- VkBufferImageCopy region = {
-- .bufferOffset = 0,
-- .bufferRowLength = buffer_width,
-- .bufferImageHeight = buffer_height,
-- .imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
-- .imageSubresource.mipLevel = 0,
-- .imageSubresource.baseArrayLayer = 0,
-- .imageSubresource.layerCount = 1,
-- .imageOffset = {0, 0, 0},
-- .imageExtent = {width, height, 1},
-- };
-+ VkBufferImageCopy region = {};
-+ region.bufferOffset = 0;
-+ region.bufferRowLength = buffer_width;
-+ region.bufferImageHeight = buffer_height;
-+ region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-+ region.imageSubresource.mipLevel = 0;
-+ region.imageSubresource.baseArrayLayer = 0;
-+ region.imageSubresource.layerCount = 1;
-+ region.imageOffset = {0, 0, 0};
-+ region.imageExtent = {width, height, 1};
- vkCmdCopyBufferToImage(command_buffer_, buffer, image,
- VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, ®ion);
- }
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
deleted file mode 100644
index 98789d9..0000000
--- a/chromium-76.0.3809.100-quiche-compile-fix.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
-@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
- std::string TransportParameterIdToString(
- TransportParameters::TransportParameterId param_id) {
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- return "original_connection_id";
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- return "idle_timeout";
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- return "stateless_reset_token";
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- return "max_packet_size";
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- return "initial_max_data";
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- return "initial_max_stream_data_bidi_local";
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- return "initial_max_stream_data_bidi_remote";
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- return "initial_max_stream_data_uni";
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- return "initial_max_streams_bidi";
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- return "initial_max_streams_uni";
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- return "ack_delay_exponent";
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- return "max_ack_delay";
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- return "disable_migration";
-- case kPreferredAddress:
-+ case TransportParameters::kPreferredAddress:
- return "preferred_address";
-- case kGoogleQuicParam:
-+ case TransportParameters::kGoogleQuicParam:
- return "google";
-- case kGoogleQuicVersion:
-+ case TransportParameters::kGoogleQuicVersion:
- return "google-version";
- }
- return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
-@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
- CBB original_connection_id_param;
- if (!in.original_connection_id.IsEmpty()) {
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
- !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
- !CBB_add_bytes(
- &original_connection_id_param,
-@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
- if (!in.stateless_reset_token.empty()) {
- DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
- DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
-- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
- !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
- !CBB_add_bytes(&stateless_reset_token_param,
- in.stateless_reset_token.data(),
-@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
-
- // disable_migration
- if (in.disable_migration) {
-- if (!CBB_add_u16(¶ms, kDisableMigration) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
- !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
- QUIC_BUG << "Failed to write disable_migration for " << in;
- return false;
-@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
- QUIC_BUG << "Bad lengths " << *in.preferred_address;
- return false;
- }
-- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
- !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
- !CBB_add_bytes(
- &preferred_address_params,
-@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
- if (in.google_quic_params) {
- const QuicData& serialized_google_quic_params =
- in.google_quic_params->GetSerialized();
-- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
- !CBB_add_bytes(&google_quic_params,
- reinterpret_cast<const uint8_t*>(
-@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
-
- // Google-specific version extension.
- CBB google_version_params;
-- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
-+ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
- !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
- !CBB_add_u32(&google_version_params, in.version)) {
- QUIC_BUG << "Failed to write Google version extension for " << in;
-@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
- }
- bool parse_success = true;
- switch (param_id) {
-- case kOriginalConnectionId:
-+ case TransportParameters::kOriginalConnectionId:
- if (!out->original_connection_id.IsEmpty()) {
- QUIC_DLOG(ERROR) << "Received a second original connection ID";
- return false;
-@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
- CBS_len(&value));
- }
- break;
-- case kIdleTimeout:
-+ case TransportParameters::kIdleTimeout:
- parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
- break;
-- case kStatelessResetToken:
-+ case TransportParameters::kStatelessResetToken:
- if (!out->stateless_reset_token.empty()) {
- QUIC_DLOG(ERROR) << "Received a second stateless reset token";
- return false;
-@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
- out->stateless_reset_token.assign(CBS_data(&value),
- CBS_data(&value) + CBS_len(&value));
- break;
-- case kMaxPacketSize:
-+ case TransportParameters::kMaxPacketSize:
- parse_success = out->max_packet_size.ReadFromCbs(&value);
- break;
-- case kInitialMaxData:
-+ case TransportParameters::kInitialMaxData:
- parse_success = out->initial_max_data.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiLocal:
-+ case TransportParameters::kInitialMaxStreamDataBidiLocal:
- parse_success =
- out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataBidiRemote:
-+ case TransportParameters::kInitialMaxStreamDataBidiRemote:
- parse_success =
- out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamDataUni:
-+ case TransportParameters::kInitialMaxStreamDataUni:
- parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsBidi:
-+ case TransportParameters::kInitialMaxStreamsBidi:
- parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
- break;
-- case kInitialMaxStreamsUni:
-+ case TransportParameters::kInitialMaxStreamsUni:
- parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
- break;
-- case kAckDelayExponent:
-+ case TransportParameters::kAckDelayExponent:
- parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
- break;
-- case kMaxAckDelay:
-+ case TransportParameters::kMaxAckDelay:
- parse_success = out->max_ack_delay.ReadFromCbs(&value);
- break;
-- case kDisableMigration:
-+ case TransportParameters::kDisableMigration:
- if (out->disable_migration) {
- QUIC_DLOG(ERROR) << "Received a second disable migration";
- return false;
-@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
- }
- out->disable_migration = true;
- break;
-- case kPreferredAddress: {
-+ case TransportParameters::kPreferredAddress: {
- uint16_t ipv4_port, ipv6_port;
- in_addr ipv4_address;
- in6_addr ipv6_address;
-@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
- QuicMakeUnique<TransportParameters::PreferredAddress>(
- preferred_address);
- } break;
-- case kGoogleQuicParam: {
-+ case TransportParameters::kGoogleQuicParam: {
- if (out->google_quic_params) {
- QUIC_DLOG(ERROR) << "Received a second Google parameter";
- return false;
-@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
- reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
- out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
- } break;
-- case kGoogleQuicVersion: {
-+ case TransportParameters::kGoogleQuicVersion: {
- if (!CBS_get_u32(&value, &out->version)) {
- QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
- return false;
-diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
---- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
-+++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
-@@ -2,10 +2,12 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
--#include <string>
--
- #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
-
-+#include <cstring>
-+#include <string>
-+#include <vector>
-+
- namespace quic {
-
- namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
deleted file mode 100644
index 5e392e6..0000000
--- a/chromium-76.0.3809.100-throttling-dead-beef.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 06 Jun 2019 07:54:05 +0000
-Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
-
-We are setting kAlive and kDead values assigning values that
-are bigger than the maximum signed int32. It is better to use
-uint32_t in this case.
-
-Bug: 819294
-Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
-Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666619}
----
-
-diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
-index 43751c4..3c6f87b 100644
---- a/services/network/throttling/throttling_controller.h
-+++ b/services/network/throttling/throttling_controller.h
-@@ -38,7 +38,7 @@
-
- // TODO(https://crbug.com/960874): Debugging code to try and shed some light
- // on why the owned maps are invalid.
-- enum class Liveness : int32_t {
-+ enum class Liveness : uint32_t {
- kAlive = 0xCA11AB13,
- kDead = 0xDEADBEEF,
- };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
deleted file mode 100644
index a392971..0000000
--- a/chromium-76.0.3809.100-weak-ptr-no-except.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Thu, 18 Jul 2019 14:26:11 +0200
-Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
-
-A GCC build regression has happened on DisjointRangeLockManager, as its move
-operator and constructor were declared noexcept. This was failing because the
-default implementation depended on base::WeakPtr, that did not provide
-noexcept declaration for them.
-
-So make base::WeakPtr noexcept.
-
-Bug: 819294
-Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
----
-
-diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
-index 64fd499..0efcc44 100644
---- a/base/memory/weak_ptr.cc
-+++ b/base/memory/weak_ptr.cc
-@@ -46,7 +46,7 @@
-
- WeakReference::~WeakReference() = default;
-
--WeakReference::WeakReference(WeakReference&& other) = default;
-+WeakReference::WeakReference(WeakReference&& other) noexcept = default;
-
- WeakReference::WeakReference(const WeakReference& other) = default;
-
-diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
-index 72b5f1f..ccd22fd13 100644
---- a/base/memory/weak_ptr.h
-+++ b/base/memory/weak_ptr.h
-@@ -116,9 +116,9 @@
- explicit WeakReference(const scoped_refptr<Flag>& flag);
- ~WeakReference();
-
-- WeakReference(WeakReference&& other);
-+ WeakReference(WeakReference&& other) noexcept;
- WeakReference(const WeakReference& other);
-- WeakReference& operator=(WeakReference&& other) = default;
-+ WeakReference& operator=(WeakReference&& other) noexcept = default;
- WeakReference& operator=(const WeakReference& other) = default;
-
- bool IsValid() const;
-@@ -153,9 +153,9 @@
- ~WeakPtrBase();
-
- WeakPtrBase(const WeakPtrBase& other) = default;
-- WeakPtrBase(WeakPtrBase&& other) = default;
-+ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
- WeakPtrBase& operator=(const WeakPtrBase& other) = default;
-- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
-+ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
-
- void reset() {
- ref_ = internal::WeakReference();
-@@ -236,7 +236,7 @@
- ptr_ = reinterpret_cast<uintptr_t>(t);
- }
- template <typename U>
-- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
-+ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
- // Need to cast from U* to T* to do pointer adjustment in case of multiple
- // inheritance. This also enforces the "U is a T" rule.
- T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
deleted file mode 100644
index 8bfbced..0000000
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ /dev/null
@@ -1,539 +0,0 @@
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
-@@ -17,6 +17,7 @@
- #include "chrome/common/pref_names.h"
- #include "chrome/test/base/in_process_browser_test.h"
- #include "components/prefs/pref_service.h"
-+#include "services/network/public/cpp/network_service_buildflags.h"
- #include "services/network/public/mojom/network_context.mojom.h"
- #include "services/network/public/mojom/network_service.mojom.h"
- #include "testing/gmock/include/gmock/gmock.h"
-@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
- INSTANTIATE_TEST_SUITE_P(,
- SystemNetworkContextManagerStubResolverBrowsertest,
- ::testing::Values(false, true));
-+
-+class SystemNetworkContextManagerCertificateTransparencyBrowsertest
-+ : public SystemNetworkContextManagerBrowsertest,
-+ public testing::WithParamInterface<base::Optional<bool>> {
-+ public:
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ GetParam());
-+ }
-+ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-+};
-+
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+IN_PROC_BROWSER_TEST_P(
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ CertificateTransparencyConfig) {
-+ network::mojom::NetworkContextParamsPtr context_params =
-+ g_browser_process->system_network_context_manager()
-+ ->CreateDefaultNetworkContextParams();
-+
-+ const bool kDefault =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+ EXPECT_EQ(GetParam().value_or(kDefault),
-+ context_params->enforce_chrome_ct_policy);
-+ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
-+
-+ if (GetParam().value_or(kDefault)) {
-+ bool has_google_log = false;
-+ bool has_disqualified_log = false;
-+ for (const auto& ct_log : context_params->ct_logs) {
-+ has_google_log |= ct_log->operated_by_google;
-+ has_disqualified_log |= ct_log->disqualified_at.has_value();
-+ }
-+ EXPECT_TRUE(has_google_log);
-+ EXPECT_TRUE(has_disqualified_log);
-+ }
-+}
-+#endif
-+
-+INSTANTIATE_TEST_SUITE_P(
-+ ,
-+ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
-+ ::testing::Values(base::nullopt, true, false));
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
-@@ -4,11 +4,13 @@
-
- #include "chrome/browser/net/system_network_context_manager.h"
-
-+#include <algorithm>
- #include <set>
- #include <unordered_map>
- #include <utility>
-
- #include "base/bind.h"
-+#include "base/build_time.h"
- #include "base/command_line.h"
- #include "base/feature_list.h"
- #include "base/logging.h"
-@@ -51,6 +53,7 @@
- #include "content/public/common/mime_handler_view_mode.h"
- #include "content/public/common/service_names.mojom.h"
- #include "content/public/common/user_agent.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
- #include "net/dns/public/util.h"
- #include "net/net_buildflags.h"
-@@ -81,6 +84,20 @@
-
- namespace {
-
-+constexpr bool kCertificateTransparencyEnabled =
-+#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_ANDROID)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
-+ true;
-+#else
-+ false;
-+#endif
-+
-+bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
-+
- // The global instance of the SystemNetworkContextmanager.
- SystemNetworkContextManager* g_system_network_context_manager = nullptr;
-
-@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
-
- bool http_09_on_non_default_ports_enabled = false;
- #if !defined(OS_ANDROID)
-- // CT is only enabled on Desktop platforms for now.
-- network_context_params->enforce_chrome_ct_policy = true;
-- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-- log_info->name = ct_log.log_name;
-- network_context_params->ct_logs.push_back(std::move(log_info));
-+
-+ if (g_enable_certificate_transparency) {
-+ network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
-+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
-+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
-+ log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
-+ }
-+ network_context_params->ct_logs.push_back(std::move(log_info));
-+ }
- }
-
- const base::Value* value =
-@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
- return CreateHttpAuthDynamicParams(g_browser_process->local_state());
- }
-
-+void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled) {
-+ g_enable_certificate_transparency =
-+ enabled.value_or(kCertificateTransparencyEnabled);
-+}
-+
- network::mojom::NetworkContextParamsPtr
- SystemNetworkContextManager::CreateNetworkContextParams() {
- // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
-diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
---- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
-@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
- static network::mojom::HttpAuthDynamicParamsPtr
- GetHttpAuthDynamicParamsForTesting();
-
-+ // Enables Certificate Transparency and enforcing the Chrome Certificate
-+ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
-+ // the default state.
-+ static void SetEnableCertificateTransparencyForTesting(
-+ base::Optional<bool> enabled);
-+
- private:
- class URLLoaderFactoryForSystem;
-
-diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
- browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
- }
-
--IN_PROC_BROWSER_TEST_F(PolicyTest,
-+IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
- CertificateTransparencyEnforcementDisabledForCas) {
- net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
- https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -8,6 +8,7 @@
- #include "base/callback.h"
- #include "base/run_loop.h"
- #include "base/test/scoped_feature_list.h"
-+#include "chrome/browser/net/system_network_context_manager.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/ssl/cert_verifier_browser_test.h"
- #include "chrome/browser/ui/browser.h"
-@@ -27,7 +28,17 @@ namespace {
- // received by a server.
- class ExpectCTBrowserTest : public CertVerifierBrowserTest {
- public:
-- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
-+ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
-+ // Expect-CT reporting depends on actually enforcing Certificate
-+ // Transparency.
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~ExpectCTBrowserTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- run_loop_ = std::make_unique<base::RunLoop>();
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
-@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
- SecurityStateTabHelperTest()
- : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
- https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+
-+ ~SecurityStateTabHelperTest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
- }
-
- void SetUpOnMainThread() override {
-diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
---- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
-@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
- public:
- CertificateTransparencySSLUITest()
- : CertVerifierBrowserTest(),
-- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
-- ~CertificateTransparencySSLUITest() override {}
-+ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ true);
-+ }
-+ ~CertificateTransparencySSLUITest() override {
-+ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
-+ base::nullopt);
-+ }
-
- void SetUpOnMainThread() override {
- CertVerifierBrowserTest::SetUpOnMainThread();
-diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
---- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
-+++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
-@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
-
- void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
-
-+ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
-+ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
-+ // correctly constructed). When either this issue or https://crbug.com/848277
-+ // are fixed, the configuration can be tested independently, and these can
-+ // be removed.
-+ const std::vector<std::string>& operated_by_google_logs_for_testing() {
-+ return operated_by_google_logs_;
-+ }
-+ const std::vector<std::pair<std::string, base::TimeDelta>>&
-+ disqualified_logs_for_testing() {
-+ return disqualified_logs_;
-+ }
-+
- private:
- // Returns true if the log identified by |log_id| (the SHA-256 hash of the
- // log's DER-encoded SPKI) has been disqualified, and sets
-diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
---- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
-@@ -35,6 +35,7 @@
- #include "components/prefs/pref_registry_simple.h"
- #include "components/prefs/pref_service.h"
- #include "components/prefs/pref_service_factory.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "net/base/layered_network_delegate.h"
- #include "net/base/load_flags.h"
-@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
- base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
- #endif // BUILDFLAG(ENABLE_REPORTING)
-
--#if BUILDFLAG(IS_CT_SUPPORTED)
-- if (params_->enforce_chrome_ct_policy) {
-- builder->set_ct_policy_enforcer(
-- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-- base::GetBuildTime(),
-- certificate_transparency::GetDisqualifiedLogs(),
-- certificate_transparency::GetLogsOperatedByGoogle()));
-- }
--#endif // BUILDFLAG(IS_CT_SUPPORTED)
--
- net::HttpNetworkSession::Params session_params;
- bool is_quic_force_disabled = false;
- if (network_service_ && network_service_->quic_disabled())
-@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
-
- #if BUILDFLAG(IS_CT_SUPPORTED)
- std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
-+ std::vector<std::string> operated_by_google_logs;
-+
- if (!params_->ct_logs.empty()) {
- for (const auto& log : params_->ct_logs) {
-+ if (log->operated_by_google || log->disqualified_at) {
-+ std::string log_id = crypto::SHA256HashString(log->public_key);
-+ if (log->operated_by_google)
-+ operated_by_google_logs.push_back(log_id);
-+ if (log->disqualified_at) {
-+ disqualified_logs.push_back(
-+ std::make_pair(log_id, log->disqualified_at.value()));
-+ }
-+ }
- scoped_refptr<const net::CTLogVerifier> log_verifier =
- net::CTLogVerifier::Create(log->public_key, log->name);
- if (!log_verifier) {
-@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
- ct_verifier->AddLogs(ct_logs);
- builder->set_ct_verifier(std::move(ct_verifier));
- }
-+
-+ if (params_->enforce_chrome_ct_policy) {
-+ std::sort(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs));
-+ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
-+
-+ builder->set_ct_policy_enforcer(
-+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
-+ params_->ct_log_update_time, disqualified_logs,
-+ operated_by_google_logs));
-+ }
- #endif // BUILDFLAG(IS_CT_SUPPORTED)
-
- const base::CommandLine* command_line =
-diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
---- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
-@@ -2,6 +2,7 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include <algorithm>
- #include <map>
- #include <memory>
- #include <string>
-@@ -38,10 +39,12 @@
- #include "base/threading/thread_task_runner_handle.h"
- #include "base/time/default_clock.h"
- #include "base/time/default_tick_clock.h"
-+#include "base/time/time.h"
- #include "build/build_config.h"
- #include "components/network_session_configurator/browser/network_session_configurator.h"
- #include "components/network_session_configurator/common/network_switches.h"
- #include "components/prefs/testing_pref_service.h"
-+#include "crypto/sha2.h"
- #include "mojo/public/cpp/bindings/interface_request.h"
- #include "mojo/public/cpp/bindings/strong_binding.h"
- #include "mojo/public/cpp/system/data_pipe_utils.h"
-@@ -113,6 +116,11 @@
- #include "url/scheme_host_port.h"
- #include "url/url_constants.h"
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
-+#include "services/network/public/mojom/ct_log_info.mojom.h"
-+#endif
-+
- #if BUILDFLAG(ENABLE_REPORTING)
- #include "net/network_error_logging/network_error_logging_service.h"
- #include "net/reporting/reporting_cache.h"
-@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
- EXPECT_EQ("None", response_body);
- }
-
-+#if BUILDFLAG(IS_CT_SUPPORTED)
-+TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
-+ mojom::NetworkContextParamsPtr params = CreateContextParams();
-+ params->enforce_chrome_ct_policy = true;
-+ params->ct_log_update_time = base::Time::Now();
-+
-+ // The log public keys do not matter for the test, so invalid keys are used.
-+ // However, because the log IDs are derived from the SHA-256 hash of the log
-+ // key, the log keys are generated such that qualified logs are in the form
-+ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
-+ // form of four letters (e.g. "AAAA", "BBBB").
-+
-+ for (int i = 0; i < 6; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII '0' (0x30)
-+ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
-+ log_info->operated_by_google = i % 2;
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ for (int i = 0; i < 3; ++i) {
-+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
-+ // Shift to ASCII 'A' (0x41)
-+ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
-+ log_info->operated_by_google = false;
-+ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
-+
-+ params->ct_logs.push_back(std::move(log_info));
-+ }
-+ std::unique_ptr<NetworkContext> network_context =
-+ CreateContextWithParams(std::move(params));
-+
-+ net::CTPolicyEnforcer* request_enforcer =
-+ network_context->url_request_context()->ct_policy_enforcer();
-+ ASSERT_TRUE(request_enforcer);
-+
-+ // Completely unsafe if |enforce_chrome_ct_policy| is false.
-+ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
-+ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
-+ request_enforcer);
-+
-+ EXPECT_TRUE(std::is_sorted(
-+ policy_enforcer->operated_by_google_logs_for_testing().begin(),
-+ policy_enforcer->operated_by_google_logs_for_testing().end()));
-+ EXPECT_TRUE(
-+ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
-+ policy_enforcer->disqualified_logs_for_testing().end()));
-+
-+ EXPECT_THAT(
-+ policy_enforcer->operated_by_google_logs_for_testing(),
-+ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
-+ crypto::SHA256HashString("3333"),
-+ crypto::SHA256HashString("5555")}));
-+ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
-+ ::testing::UnorderedElementsAre(
-+ ::testing::Pair(crypto::SHA256HashString("AAAA"),
-+ base::TimeDelta::FromSeconds(0)),
-+ ::testing::Pair(crypto::SHA256HashString("BBBB"),
-+ base::TimeDelta::FromSeconds(1)),
-+ ::testing::Pair(crypto::SHA256HashString("CCCC"),
-+ base::TimeDelta::FromSeconds(2))));
-+}
-+#endif
-+
- } // namespace
-
- } // namespace network
-diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -4,6 +4,8 @@
-
- module network.mojom;
-
-+import "mojo/public/mojom/base/time.mojom";
-+
- // A single Certificate Transparency Log configuration.
- struct CTLogInfo {
- // The DER-encoded SubjectPublicKeyInfo of the log.
-@@ -14,4 +16,13 @@ struct CTLogInfo {
- // The human-readable, log-supplied log name. Note that this will not be
- // translated.
- string name;
-+
-+ // Whether or not the log should should be considered a Google Log for the
-+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google = false;
-+
-+ // If set, the time since the Unix Epoch when the log was disqualified. This
-+ // is used to determine the "once or currently qualified" status of the log.
-+ // If the log is currently qualified, this will not be set.
-+ mojo_base.mojom.TimeDelta? disqualified_at;
- };
-diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
---- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
-@@ -238,15 +238,6 @@ struct NetworkContextParams {
- [EnableIf=is_android]
- bool check_clear_text_permitted = false;
-
-- // True if the "Certificate Transparency in Chrome" policy (see
-- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-- // be enforced for certificates and connections.
-- //
-- // See //net/docs/certificate-transparency.md before setting this flag to
-- // true.
-- [EnableIf=is_ct_supported]
-- bool enforce_chrome_ct_policy = false;
--
- // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
- bool http_09_on_non_default_ports_enabled = false;
-
-@@ -299,6 +290,15 @@ struct NetworkContextParams {
- // servers, so they can discover misconfigurations.
- bool enable_certificate_reporting = false;
-
-+ // True if the "Certificate Transparency in Chrome" policy (see
-+ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
-+ // be enforced for certificates and connections.
-+ //
-+ // See //net/docs/certificate-transparency.md before setting this flag to
-+ // true.
-+ [EnableIf=is_ct_supported]
-+ bool enforce_chrome_ct_policy = false;
-+
- // Enables Expect CT reporting, which sends reports for opted-in sites that
- // don't serve sufficient Certificate Transparency information.
- [EnableIf=is_ct_supported]
-@@ -310,6 +310,13 @@ struct NetworkContextParams {
- [EnableIf=is_ct_supported]
- array<CTLogInfo> ct_logs;
-
-+ // When the Certificate Transparency logs in |ct_logs| were last updated. If
-+ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
-+ // sufficiently recent, enforcement of the "Certificate Transparency in
-+ // Chrome" policy will be disabled.
-+ [EnableIf=is_ct_supported]
-+ mojo_base.mojom.Time ct_log_update_time;
-+
- // Specifies the path to the directory where NSS will store its database.
- [EnableIf=is_chromeos]
- mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 73db4d4..0000000
--- a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
---- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
-@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
- "application/x-protobuf",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium-77.0.3865.75-boolfix.patch b/chromium-77.0.3865.75-boolfix.patch
new file mode 100644
index 0000000..c836214
--- /dev/null
+++ b/chromium-77.0.3865.75-boolfix.patch
@@ -0,0 +1,24 @@
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_ptr_info.h 2019-09-12 15:43:30.025360946 +0200
+@@ -45,7 +45,7 @@ class AssociatedInterfacePtrInfo {
+
+ bool is_valid() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() {
+ return std::move(handle_);
+diff -up chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h
+--- chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h.boolfix 2019-09-09 23:55:20.000000000 +0200
++++ chromium-77.0.3865.75/mojo/public/cpp/bindings/associated_interface_request.h 2019-09-12 15:43:30.025360946 +0200
+@@ -51,7 +51,7 @@ class AssociatedInterfaceRequest {
+ // handle.
+ bool is_pending() const { return handle_.is_valid(); }
+
+- explicit operator bool() const { return handle_.is_valid(); }
++ explicit operator bool() const { return (bool) handle_.is_valid(); }
+
+ ScopedInterfaceEndpointHandle PassHandle() { return std::move(handle_); }
+
diff --git a/chromium-77.0.3865.75-certificate-transparency.patch b/chromium-77.0.3865.75-certificate-transparency.patch
new file mode 100644
index 0000000..82e2958
--- /dev/null
+++ b/chromium-77.0.3865.75-certificate-transparency.patch
@@ -0,0 +1,539 @@
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-12 16:09:52.818635106 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-12 16:11:07.662562005 +0200
+@@ -21,6 +21,7 @@
+ #include "components/version_info/version_info.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/common/user_agent.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -356,3 +357,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerFreezeQUICUaBrowsertest,
+ ::testing::Values(true, false));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.cc 2019-09-12 16:09:52.819635118 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -50,6 +52,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -79,6 +82,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -658,14 +675,35 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
++ }
+ }
+
+ const base::Value* value =
+@@ -723,6 +761,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h
+--- chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-09-09 23:55:09.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/net/system_network_context_manager.h 2019-09-12 16:09:52.819635118 +0200
+@@ -139,6 +139,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/policy/policy_browsertest.cc 2019-09-12 16:09:52.820635131 +0200
+@@ -4836,7 +4836,7 @@ IN_PROC_BROWSER_TEST_F(PolicyTest,
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-12 16:09:52.821635143 +0200
+@@ -433,6 +433,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-09-09 23:55:10.000000000 +0200
++++ chromium-77.0.3865.75/chrome/browser/ssl/ssl_browsertest.cc 2019-09-12 16:09:52.822635155 +0200
+@@ -1853,8 +1853,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-09-09 23:55:14.000000000 +0200
++++ chromium-77.0.3865.75/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-12 16:09:52.823635168 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
+diff -up chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context.cc
+--- chromium-77.0.3865.75/services/network/network_context.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context.cc 2019-09-12 16:09:52.823635168 +0200
+@@ -36,6 +36,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1877,16 +1878,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1936,8 +1927,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1950,6 +1953,17 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
++ builder->set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency chromium-77.0.3865.75/services/network/network_context_unittest.cc
+--- chromium-77.0.3865.75/services/network/network_context_unittest.cc.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/network_context_unittest.cc 2019-09-12 16:13:10.479056669 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "mojo/public/cpp/bindings/self_owned_receiver.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -115,6 +118,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if !BUILDFLAG(DISABLE_FTP_SUPPORT)
+ #include "net/ftp/ftp_auth_cache.h"
+ #endif // !BUILDFLAG(DISABLE_FTP_SUPPORT)
+@@ -5958,6 +5966,72 @@ TEST_F(NetworkContextSplitCacheTest,
+ true /* was_cached */, true /* is_navigation */);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
+diff -up chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/ct_log_info.mojom 2019-09-12 16:09:52.824635180 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google = false;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom
+--- chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-09-09 23:55:22.000000000 +0200
++++ chromium-77.0.3865.75/services/network/public/mojom/network_context.mojom 2019-09-12 16:09:52.825635192 +0200
+@@ -239,15 +239,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -300,6 +291,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -311,6 +311,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium-77.0.3865.75-fedora-user-agent.patch b/chromium-77.0.3865.75-fedora-user-agent.patch
new file mode 100644
index 0000000..8f6de51
--- /dev/null
+++ b/chromium-77.0.3865.75-fedora-user-agent.patch
@@ -0,0 +1,12 @@
+diff -up chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent chromium-77.0.3865.75/content/common/user_agent.cc
+--- chromium-77.0.3865.75/content/common/user_agent.cc.fedora-user-agent 2019-09-12 15:49:11.902270729 +0200
++++ chromium-77.0.3865.75/content/common/user_agent.cc 2019-09-12 15:50:11.555732044 +0200
+@@ -35,7 +35,7 @@ std::string GetUserAgentPlatform() {
+ #elif defined(OS_MACOSX)
+ return "Macintosh; ";
+ #elif defined(USE_X11) || defined(USE_OZONE)
+- return "X11; "; // strange, but that's what Firefox uses
++ return "X11; Fedora; "; // strange, but that's what Firefox uses
+ #elif defined(OS_ANDROID)
+ return "Linux; ";
+ #elif defined(OS_POSIX)
diff --git a/chromium-77.0.3865.75-fix-v8-gcc.patch b/chromium-77.0.3865.75-fix-v8-gcc.patch
new file mode 100644
index 0000000..385778c
--- /dev/null
+++ b/chromium-77.0.3865.75-fix-v8-gcc.patch
@@ -0,0 +1,14 @@
+diff -up chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc chromium-77.0.3865.75/v8/src/objects/js-objects.cc
+--- chromium-77.0.3865.75/v8/src/objects/js-objects.cc.fix-v8-gcc 2019-09-12 15:55:18.936238980 +0200
++++ chromium-77.0.3865.75/v8/src/objects/js-objects.cc 2019-09-12 15:56:06.796645726 +0200
+@@ -3773,6 +3773,10 @@ Handle<NumberDictionary> CreateElementDi
+ return new_element_dictionary;
+ }
+
++template void JSObject::ApplyAttributesToDictionary(
++ Isolate* isolate, ReadOnlyRoots roots, Handle<NumberDictionary> dictionary,
++ const PropertyAttributes attributes);
++
+ template <PropertyAttributes attrs>
+ Maybe<bool> JSObject::PreventExtensionsWithTransition(
+ Handle<JSObject> object, ShouldThrow should_throw) {
diff --git a/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
new file mode 100644
index 0000000..d342e2d
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
@@ -0,0 +1,13 @@
+diff -up chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h
+--- chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h.nogccoptmath 2019-09-12 09:55:13.041038765 +0200
++++ chromium-77.0.3865.75/base/numerics/safe_math_shared_impl.h 2019-09-12 10:11:14.088101504 +0200
+@@ -24,8 +24,7 @@
+ #elif !defined(__native_client__) && \
+ ((defined(__clang__) && \
+ ((__clang_major__ > 3) || \
+- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
+- (defined(__GNUC__) && __GNUC__ >= 5))
++ (__clang_major__ == 3 && __clang_minor__ >= 4)))
+ #include "base/numerics/safe_math_clang_gcc_impl.h"
+ #define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
+ #else
diff --git a/chromium-77.0.3865.75-gcc5-r3.patch b/chromium-77.0.3865.75-gcc5-r3.patch
new file mode 100644
index 0000000..34b858a
--- /dev/null
+++ b/chromium-77.0.3865.75-gcc5-r3.patch
@@ -0,0 +1,36 @@
+diff -up chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h
+--- chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h.gcc5-r3 2019-09-09 23:55:18.000000000 +0200
++++ chromium-77.0.3865.75/gpu/ipc/common/mailbox_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -15,7 +15,7 @@ namespace mojo {
+ template <>
+ struct StructTraits<gpu::mojom::MailboxDataView, gpu::Mailbox> {
+ static base::span<const int8_t> name(const gpu::Mailbox& mailbox) {
+- return mailbox.name;
++ return base::make_span(mailbox.name);
+ }
+ static bool Read(gpu::mojom::MailboxDataView data, gpu::Mailbox* out);
+ };
+diff -up chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h
+--- chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h.gcc5-r3 2019-09-09 23:55:23.000000000 +0200
++++ chromium-77.0.3865.75/services/viz/public/cpp/compositing/quads_struct_traits.h 2019-09-12 10:13:16.710206500 +0200
+@@ -391,7 +391,7 @@ struct StructTraits<viz::mojom::TextureQ
+ static base::span<const float> vertex_opacity(const viz::DrawQuad& input) {
+ const viz::TextureDrawQuad* quad =
+ viz::TextureDrawQuad::MaterialCast(&input);
+- return quad->vertex_opacity;
++ return base::make_span(quad->vertex_opacity);
+ }
+
+ static bool y_flipped(const viz::DrawQuad& input) {
+diff -up chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc
+--- chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.gcc5-r3 2019-09-12 10:13:16.711206509 +0200
++++ chromium-77.0.3865.75/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2019-09-12 15:41:15.300158849 +0200
+@@ -10,7 +10,7 @@
+
+ #include "modules/audio_processing/aec3/aec_state.h"
+
+-#include <math.h>
++#include <cmath>
+
+ #include <algorithm>
+ #include <numeric>
diff --git a/chromium-77.0.3865.75-no-zlib-mangle.patch b/chromium-77.0.3865.75-no-zlib-mangle.patch
new file mode 100644
index 0000000..c32d226
--- /dev/null
+++ b/chromium-77.0.3865.75-no-zlib-mangle.patch
@@ -0,0 +1,22 @@
+diff -up chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle chromium-77.0.3865.75/third_party/zlib/zconf.h
+--- chromium-77.0.3865.75/third_party/zlib/zconf.h.nozmangle 2019-09-12 09:36:37.924086850 +0200
++++ chromium-77.0.3865.75/third_party/zlib/zconf.h 2019-09-12 09:53:01.623958551 +0200
+@@ -9,18 +9,6 @@
+ #define ZCONF_H
+
+ /*
+- * This library is also built as a part of AOSP, which does not need to include
+- * chromeconf.h. This config does not want chromeconf.h, so it can set this
+- * macro to opt out. While this works today, there's no guarantee that building
+- * zlib outside of Chromium keeps working in the future.
+- */
+-#if !defined(CHROMIUM_ZLIB_NO_CHROMECONF)
+-/* This include does prefixing as below, but with an updated set of names. Also
+- * sets up export macros in component builds. */
+-#include "chromeconf.h"
+-#endif
+-
+-/*
+ * If you *really* need a unique prefix for all types and library functions,
+ * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
+ * Even better than compiling with -DZ_PREFIX would be to use configure to set
diff --git a/chromium.spec b/chromium.spec
index 1471b94..a2d54e4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -168,14 +168,14 @@ BuildRequires: libicu-devel >= 5.4
%global chromoting_client_id %nil
%endif
-%global majorversion 76
+%global majorversion 77
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.132
+Version: %{majorversion}.0.3865.75
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -215,20 +215,20 @@ Patch16: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch17: chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
-Patch18: chromium-75.0.3770.80-no-zlib-mangle.patch
+Patch18: chromium-77.0.3865.75-no-zlib-mangle.patch
# Fix libavutil include pathing to find arch specific timer.h
# For some reason, this only fails on aarch64. No idea why.
Patch19: chromium-60.0.3112.113-libavutil-timer-include-path-fix.patch
# from gentoo
-Patch20: chromium-61.0.3163.79-gcc-no-opt-safe-math.patch
+Patch20: chromium-77.0.3865.75-gcc-no-opt-safe-math.patch
# From gentoo
-Patch21: chromium-72.0.3626.121-gcc5-r3.patch
+Patch21: chromium-77.0.3865.75-gcc5-r3.patch
# To use round with gcc, you need to #include <cmath>
Patch22: chromium-65.0.3325.146-gcc-round-fix.patch
# Include proper headers to invoke memcpy()
Patch23: chromium-65.0.3325.146-memcpy-fix.patch
# ../../mojo/public/cpp/bindings/associated_interface_ptr_info.h:48:43: error: cannot convert 'const mojo::ScopedInterfaceEndpointHandle' to 'bool' in return
-Patch24: chromium-68.0.3440.106-boolfix.patch
+Patch24: chromium-77.0.3865.75-boolfix.patch
# From Debian
Patch25: chromium-71.0.3578.98-skia-aarch64-buildfix.patch
# Do not use unrar code, it is non-free
@@ -236,7 +236,7 @@ Patch27: chromium-73.0.3683.75-norar.patch
# Upstream GCC fixes
Patch28: chromium-66.0.3359.117-GCC-fully-declare-ConfigurationPolicyProvider.patch
# Add "Fedora" to the user agent string
-Patch29: chromium-72.0.3626.121-fedora-user-agent.patch
+Patch29: chromium-77.0.3865.75-fedora-user-agent.patch
# Try to fix version.py for Rawhide
Patch30: chromium-71.0.3578.98-py2-bootstrap.patch
# Fix default on redeclaration error
@@ -264,43 +264,11 @@ Patch41: chromium-75.0.3770.80-SIOCGSTAMP.patch
# Revert https://chromium.googlesource.com/chromium/src/+/daff6b66faae53a0cefb8898...
# It might make clang happy but it breaks gcc. F*** clang.
Patch43: chromium-75.0.3770.80-revert-daff6b.patch
-# Avoid pure virtual crash destroying RenderProcessUserData
-# https://chromium.googlesource.com/chromium/src/+/cdf306db81efaaaa95448758...
-Patch44: chromium-75.0.3770.80-pure-virtual-crash-fix.patch
# rename function to avoid conflict with rawhide glibc "gettid()"
Patch45: chromium-75.0.3770.80-grpc-gettid-fix.patch
# fix v8 compile with gcc
# https://chromium.googlesource.com/v8/v8/+/3b8c624bda58d05aea80dd9626cd550...
-Patch46: chromium-75.0.3770.100-fix-v8-gcc.patch
-# Fix Vulkan compilation with gcc
-# https://chromium.googlesource.com/chromium/src/+/fdb3bb1f8c41d044a5b0cb80...
-Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
-# https://chromium-review.googlesource.com/c/chromium/src/+/1645297
-Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
-Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
-# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
-Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
-# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
-Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
-# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
-# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
-Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
-# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
-Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
-# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
-Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
-# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
-Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
-# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
-Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
-# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
-Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
-Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
-# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
-Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+Patch46: chromium-77.0.3865.75-fix-v8-gcc.patch
# In GCC one can't use alignas() for exported classes
# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -309,7 +277,7 @@ Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
-Patch64: chromium-76.0.3809.132-certificate-transparency.patch
+Patch64: chromium-77.0.3865.75-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -855,7 +823,7 @@ udev.
%patch22 -p1 -b .gcc-round-fix
%patch23 -p1 -b .memcpyfix
%patch24 -p1 -b .boolfix
-%patch25 -p1 -b .aarch64fix
+#%patch25 -p1 -b .aarch64fix
%patch27 -p1 -b .nounrar
%patch28 -p1 -b .gcc-cpolicyprovider
%patch29 -p1 -b .fedora-user-agent
@@ -870,23 +838,8 @@ udev.
%patch38 -p1 -b .disable-ndnpc
%patch41 -p1 -b .SIOCGSTAMP
%patch43 -p1 -b .revert-daff6b
-%patch44 -p1 -b .pure-virtual-fix
%patch45 -p1 -b .gettid-fix
%patch46 -p1 -b .fix-v8-gcc
-%patch47 -p1 -b .gcc-vulkan
-%patch48 -p1 -b .gcc-cc-no-except
-%patch49 -p1 -b .gcc-net-fetcher
-%patch50 -p1 -b .quiche-compile-fix
-%patch51 -p1 -b .throttling-dead-beef
-%patch52 -p1 -b .gcc-ambigous-instantiation
-%patch53 -p1 -b .weak-ptr-no-except
-%patch54 -p1 -b .gcc-feature-policy-parser
-%patch55 -p1 -b .gcc-hasfraction-constexpr
-%patch56 -p1 -b .gcc-move-explicit-initialization
-%patch57 -p1 -b .gcc-initialization-order
-%patch58 -p1 -b .gcc-history-move-noexcept
-%patch59 -p1 -b .gcc-accountinfo-move-noexcept
-%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
@@ -1477,6 +1430,7 @@ sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' $FILE
. /opt/rh/devtoolset-%{dts_version}/enable
%endif
+echo
# Now do the full browser
%if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media
diff --git a/sources b/sources
index 2d38a7c..a1d28bf 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
+SHA512 (chromium-77.0.3865.75-clean.tar.xz) = 9531e5d533bf305bd82ae2dbc7bf1a9e081377b61a5611f4bfa14ed389f94d106e26a9981771ed11697ca9c2490eb24c69e992fd907de241698c89a6131db0b6
commit a0c0e33b0a2dc8f2eeba8711bd86c7c6eacfa943
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 16:58:00 2019 -0400
take two
diff --git a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
index 7ab46d8..f8b44d0 100644
--- a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
+++ b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
@@ -1,11 +1,11 @@
diff -up chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn
--- chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme 2019-09-10 15:53:02.871463568 -0400
-+++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 15:53:33.057824836 -0400
-@@ -197,6 +197,7 @@ source_set("automation_client_lib") {
- "//services/network/public/cpp",
++++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 16:57:32.281112323 -0400
+@@ -319,6 +319,7 @@ executable("chromedriver") {
+ "//net/server:http_server",
+ "//net/traffic_annotation:test_support",
"//services/network/public/mojom",
- "//third_party/blink/public:buildflags",
+ "//third_party/zlib",
- "//third_party/zlib:minizip",
- "//third_party/zlib/google:zip",
- "//ui/accessibility:ax_enums_mojo",
+ ]
+ }
+
commit 7f0ec73cb7f97bea9a276d1e9d33c40557338c1a
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 15:55:16 2019 -0400
trying this
diff --git a/chromium-76.0.3809.132-chromedriver-zlib-fix.patch b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
new file mode 100644
index 0000000..7ab46d8
--- /dev/null
+++ b/chromium-76.0.3809.132-chromedriver-zlib-fix.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn
+--- chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn.fixme 2019-09-10 15:53:02.871463568 -0400
++++ chromium-76.0.3809.132/chrome/test/chromedriver/BUILD.gn 2019-09-10 15:53:33.057824836 -0400
+@@ -197,6 +197,7 @@ source_set("automation_client_lib") {
+ "//services/network/public/cpp",
+ "//services/network/public/mojom",
+ "//third_party/blink/public:buildflags",
++ "//third_party/zlib",
+ "//third_party/zlib:minizip",
+ "//third_party/zlib/google:zip",
+ "//ui/accessibility:ax_enums_mojo",
diff --git a/chromium.spec b/chromium.spec
index fd6a3ea..81982e2 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -316,8 +316,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
-# Apply this patches to work around EPEL8 issues
+# Apply these patches to work around EPEL8 issues
Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+Patch301: chromium-76.0.3809.132-chromedriver-zlib-fix.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -896,6 +897,10 @@ udev.
%patch300 -p1 -b .disblegnomekeyring
%endif
+%if %{bundleminizip}
+%patch301 -p1 -b .chromedriver-zlib
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
commit f53529c22595c5f8492df88b4f8b39875a168321
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Sep 10 13:28:28 2019 -0400
re-enable zlib mangling in bundleminizip conditional case
diff --git a/chromium.spec b/chromium.spec
index 5b07016..fd6a3ea 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -823,7 +823,11 @@ udev.
%patch15 -p1 -b .system-clang
%patch16 -p1 -b .noprefix
%patch17 -p1 -b .nomangle
+%if %{bundleminizip}
+# Leave zlib mangling in place
+%else
%patch18 -p1 -b .nozmangle
+%endif
%patch19 -p1 -b .pathfix
%patch20 -p1 -b .nogccoptmath
%patch21 -p1 -b .gcc5-r3
commit 71ab9fa61df4d55acdef90769e8f9238c38cbce7
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Mon Sep 9 07:54:13 2019 -0400
use bundled zlib here (ugh)
diff --git a/chromium.spec b/chromium.spec
index 9c12951..5b07016 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1302,8 +1302,12 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else
re2 \
%endif
+%if %{bundleminizip}
+ yasm
+%else
yasm \
zlib
+%endif
# fix arm gcc
sed -i 's|arm-linux-gnueabihf-|arm-linux-gnu-|g' build/toolchain/linux/BUILD.gn
commit 1964554c88c8e379f9ceb934337f0fff260cbfba
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 17:10:21 2019 -0400
force disable use_gnome_keyring
diff --git a/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
new file mode 100644
index 0000000..ff6c523
--- /dev/null
+++ b/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -0,0 +1,10 @@
+diff -up chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 chromium-76.0.3809.132/components/os_crypt/features.gni
+--- chromium-76.0.3809.132/components/os_crypt/features.gni.rhel8 2019-09-06 17:08:01.242314126 -0400
++++ chromium-76.0.3809.132/components/os_crypt/features.gni 2019-09-06 17:08:10.139134707 -0400
+@@ -7,5 +7,5 @@ import("//build/config/ui.gni")
+ declare_args() {
+ # Whether to use libgnome-keyring (deprecated by libsecret).
+ # See http://crbug.com/466975 and http://crbug.com/355223.
+- use_gnome_keyring = is_desktop_linux && use_glib
++ use_gnome_keyring = false
+ }
diff --git a/chromium.spec b/chromium.spec
index 9bdec57..9c12951 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -316,6 +316,9 @@ Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
# Pulseaudio changed the API a little in 12.99.1
Patch205: chromium-76.0.3809.100-pulse-api-change.patch
+# Apply this patches to work around EPEL8 issues
+Patch300: chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
+
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
# For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm
@@ -885,6 +888,10 @@ udev.
%patch205 -p1 -b .pulseaudioapichange
%endif
+%if 0%{?rhel} == 8
+%patch300 -p1 -b .disblegnomekeyring
+%endif
+
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
find -type f -exec sed -iE '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python2}=' {} +
commit c76cbbc3b06ce1008fca84278d3653896474b7b2
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 16:40:41 2019 -0400
conditionalize minizip bundling since rhel 8 does not have it
diff --git a/chromium.spec b/chromium.spec
index d2a573a..9bdec57 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -133,6 +133,13 @@ BuildRequires: libicu-devel >= 5.4
%global pulseaudioapichange 0
%endif
+# RHEL 8 doesn't have minizip
+%if 0%{?rhel} == 8
+%global bundleminizip 1
+%else
+%global bundleminizip 0
+%endif
+
### 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.
@@ -380,11 +387,15 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel
+%if %{bundleminizip}
+# We're using the bundle, baby.
+%else
%if 0%{?fedora} >= 30
BuildRequires: minizip-compat-devel
%else
BuildRequires: minizip-devel
%endif
+%endif
# RHEL 7's nodejs is too old
%if 0%{?fedora}
BuildRequires: nodejs
@@ -709,11 +720,15 @@ Chromium is an open-source web browser, powered by WebKit (Blink).
Summary: Files needed for both the headless_shell and full Chromium
# Chromium needs an explicit Requires: minizip-compat
# We put it here to cover headless too.
+%if %{bundleminizip}
+# Using the bundle. No Requires needed.
+%else
%if 0%{?fedora} >= 30
Requires: minizip-compat%{_isa}
%else
Requires: minizip%{_isa}
%endif
+%endif
%description common
%{summary}.
@@ -1131,6 +1146,9 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/mesa' \
'third_party/metrics_proto' \
+%if %{bundleminizip}
+ 'third_party/minizip' \
+%endif
'third_party/modp_b64' \
'third_party/nasm' \
'third_party/node' \
commit 911f7b2ea074e200c79a66dc07f57c3b39df4fbd
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 16:10:38 2019 -0400
disable gnome-keyring
diff --git a/chromium.spec b/chromium.spec
index b870100..d2a573a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -955,6 +955,9 @@ CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"'
%if %{?use_jumbo}
CHROMIUM_CORE_GN_DEFINES+=' use_jumbo_build=true jumbo_file_merge_limit=8'
%endif
+%if 0%{?rhel} == 8
+CHROMIUM_CORE_GN_DEFINES+=' use_gnome_keyring=false use_glib=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
commit e9192241d8d4cd7fc33052dcb2d9a1ebf95cdaa6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Fri Sep 6 10:44:11 2019 -0400
lots of spec cleanups, support for epel8, remove nacl for good, apply freeworld fixes
diff --git a/chromium.spec b/chromium.spec
index 1471b94..b870100 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -70,25 +70,6 @@
# https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0
-# nacl/pnacl are soon to be dead. We're just killing them off early.
-%global killnacl 1
-
-%if 0%{?killnacl}
- %global nacl 0
- %global nonacl 1
-%else
-# TODO: Try arm (nacl disabled)
-%if 0%{?fedora}
- %ifarch i686
- %global nacl 0
- %global nonacl 1
- %else
- %global nacl 1
- %global nonacl 0
- %endif
-%endif
-%endif
-
%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
@@ -171,13 +152,14 @@ BuildRequires: libicu-devel >= 5.4
%global majorversion 76
%if %{freeworld}
-Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
+Name: chromium%{chromium_channel}%{?freeworld:-libs-media-freeworld}
+Summary: Chromium media libraries built with all possible codecs
%else
Name: chromium%{chromium_channel}
+Summary: A WebKit (Blink) powered web browser
%endif
Version: %{majorversion}.0.3809.132
-Release: 2%{?dist}
-Summary: A WebKit (Blink) powered web browser
+Release: 3%{?dist}
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -318,16 +300,6 @@ Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-76.0.3809.100-el7-noexcept.patch
-# In file included from ../linux/directory.c:21:
-# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
-# ../../../../native_client/src/nonsfi/linux/linux_syscall_structs.h:44:13: error: GNU-style inline assembly is disabled
-# __asm__ __volatile__("mov %%gs, %0" : "=r"(gs));
-# ^
-# 1 error generated.
-Patch200: chromium-47.0.2526.80-pnacl-fgnu-inline-asm.patch
-# Ignore broken nacl open fd counter
-Patch201: chromium-47.0.2526.80-nacl-ignore-broken-fd-counter.patch
-
# Enable VAAPI support on Linux
# NOTE: This patch will never land upstream
Patch202: enable-vaapi.patch
@@ -387,9 +359,6 @@ BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: GConf2-devel
BuildRequires: glib2-devel
-%if 0%{?fedora} <= 27
-BuildRequires: gnome-keyring-devel
-%endif
BuildRequires: glibc-devel
BuildRequires: gperf
%if 0%{?bundleharfbuzz}
@@ -435,24 +404,6 @@ BuildRequires: libappstream-glib
# gn needs these
BuildRequires: libstdc++-static
BuildRequires: libstdc++-devel, openssl-devel
-%if 0%{?nacl}
-BuildRequires: nacl-gcc, nacl-binutils, nacl-newlib
-BuildRequires: nacl-arm-gcc, nacl-arm-binutils, nacl-arm-newlib
-# pNaCl needs this monster
-# It's possible that someday this dep will stabilize, but
-# right now, it needs to be updated everytime chromium bumps
-# a major version.
-BuildRequires: chromium-native_client >= 52.0.2743.82
-BuildRequires: clang
-BuildRequires: llvm
-%ifarch x86_64
-# Really, this is what we want:
-# BuildRequires: glibc-devel(x86-32) libgcc(x86-32)
-# But, koji only offers glibc32. Maybe that's enough.
-# This BR will pull in either glibc.i686 or glibc32.
-BuildRequires: /lib/libc.so.6 /usr/lib/libc.so
-%endif
-%endif
# Fedora tries to use system libs whenever it can.
BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel
@@ -550,7 +501,9 @@ BuildRequires: re2-devel >= 20160401
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
+%if 0%{?rhel} < 8
BuildRequires: pkgconfig(gnome-keyring-1)
+%endif
# remote desktop needs this
BuildRequires: pam-devel
BuildRequires: systemd
@@ -558,7 +511,7 @@ BuildRequires: systemd
%if %{freeworld}
# dont need fonts for this
%else
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
Source100: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Bold.ttf
Source101: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-BoldItalic...
Source102: https://github.com/google/fonts/blob/master/apache/arimo/Arimo-Italic.ttf
@@ -571,12 +524,15 @@ Source108: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Bold.t
Source109: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-BoldItalic...
Source110: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Italic.ttf
Source111: https://github.com/google/fonts/blob/master/apache/tinos/Tinos-Regular.ttf
+%else
+BuildRequires: google-croscore-arimo-fonts
+BuildRequires: google-croscore-cousine-fonts
+BuildRequires: google-croscore-tinos-fonts
+%endif
+%if 0%{?rhel} == 7
Source112: https://releases.pagure.org/lohit/lohit-gurmukhi-ttf-2.91.2.tar.gz
Source113: https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
%else
-BuildRequires: google-croscore-arimo-fonts
-BuildRequires: google-croscore-cousine-fonts
-BuildRequires: google-croscore-tinos-fonts
BuildRequires: google-noto-sans-cjk-jp-fonts
BuildRequires: lohit-gurmukhi-fonts
%endif
@@ -732,8 +688,22 @@ Provides: bundled(xdg-user-dirs)
Requires(post): /usr/sbin/semanage
Requires(post): /usr/sbin/restorecon
+%if %{freeworld}
+Provides: chromium-libs-media = %{version}-%{release}
+Provides: chromium-libs-media%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
+Requires(post): %{_sbindir}/update-alternatives
+Requires(preun): %{_sbindir}/update-alternatives
+
+%description
+Chromium media libraries built with all possible codecs. Chromium is an
+open-source web browser, powered by WebKit (Blink). This package replaces
+the default chromium-libs-media package, which is limited in what it
+can include.
+%else
%description
Chromium is an open-source web browser, powered by WebKit (Blink).
+%endif
%package common
Summary: Files needed for both the headless_shell and full Chromium
@@ -760,19 +730,6 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld}
-%package -n chromium-libs-media-freeworld
-Summary: Chromium media libraries built with all possible codecs
-Provides: chromium-libs-media = %{version}-%{release}
-Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}
-Requires(post): %{_sbindir}/update-alternatives
-Requires(preun): %{_sbindir}/update-alternatives
-
-%description -n chromium-libs-media-freeworld
-Chromium media libraries built with all possible codecs. Chromium is an
-open-source web browser, powered by WebKit (Blink). This package replaces
-the default chromium-libs-media package, which is limited in what it
-can include.
%else
%package libs-media
Summary: Shared libraries used by the chromium media subsystem
@@ -901,12 +858,6 @@ udev.
%patch58 -R -p1
%endif
-# Feature specific patches
-%if ! 0%{?killnacl}
-%patch200 -p1 -b .gnu-inline
-%patch201 -p1 -b .ignore-fd-count
-%endif
-
%if %{use_vaapi}
%patch202 -p1 -b .vaapi
%ifarch i686
@@ -935,101 +886,6 @@ export RANLIB="ranlib"
rm -rf buildtools/third_party/libc++/BUILD.gn
-%if 0%{?nacl}
-# prep the nacl tree
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-cp -a --no-preserve=context /usr/%{_arch}-nacl/* out/Release/gen/sdk/linux_x86/nacl_x86_newlib
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-cp -a --no-preserve=context /usr/arm-nacl/* out/Release/gen/sdk/linux_x86/nacl_arm_newlib
-
-# Not sure if we need this or not, but better safe than sorry.
-pushd out/Release/gen/sdk/linux_x86
-ln -s nacl_x86_newlib nacl_x86_newlib_raw
-ln -s nacl_arm_newlib nacl_arm_newlib_raw
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_x86_newlib/bin
-ln -s /usr/bin/x86_64-nacl-gcc gcc
-ln -s /usr/bin/x86_64-nacl-gcc x86_64-nacl-gcc
-ln -s /usr/bin/x86_64-nacl-g++ g++
-ln -s /usr/bin/x86_64-nacl-g++ x86_64-nacl-g++
-# ln -s /usr/bin/x86_64-nacl-ar ar
-ln -s /usr/bin/x86_64-nacl-ar x86_64-nacl-ar
-# ln -s /usr/bin/x86_64-nacl-as as
-ln -s /usr/bin/x86_64-nacl-as x86_64-nacl-as
-# ln -s /usr/bin/x86_64-nacl-ranlib ranlib
-ln -s /usr/bin/x86_64-nacl-ranlib x86_64-nacl-ranlib
-# Cleanups
-rm addr2line
-ln -s /usr/bin/x86_64-nacl-addr2line addr2line
-rm c++filt
-ln -s /usr/bin/x86_64-nacl-c++filt c++filt
-rm gprof
-ln -s /usr/bin/x86_64-nacl-gprof gprof
-rm readelf
-ln -s /usr/bin/x86_64-nacl-readelf readelf
-rm size
-ln -s /usr/bin/x86_64-nacl-size size
-rm strings
-ln -s /usr/bin/x86_64-nacl-strings strings
-popd
-
-mkdir -p out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-pushd out/Release/gen/sdk/linux_x86/nacl_arm_newlib/bin
-ln -s /usr/bin/arm-nacl-gcc gcc
-ln -s /usr/bin/arm-nacl-gcc arm-nacl-gcc
-ln -s /usr/bin/arm-nacl-g++ g++
-ln -s /usr/bin/arm-nacl-g++ arm-nacl-g++
-ln -s /usr/bin/arm-nacl-ar arm-nacl-ar
-ln -s /usr/bin/arm-nacl-as arm-nacl-as
-ln -s /usr/bin/arm-nacl-ranlib arm-nacl-ranlib
-popd
-
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_x86_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_x86_newlib/nacl_x86_newlib.json
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.untar out/Release/gen/sdk/linux_x86/nacl_arm_newlib/stamp.prep
-touch out/Release/gen/sdk/linux_x86/nacl_arm_newlib/nacl_arm_newlib.json
-
-pushd out/Release/gen/sdk/linux_x86/
-mkdir -p pnacl_newlib pnacl_translator
-# Might be able to do symlinks here, but eh.
-cp -a --no-preserve=context /usr/pnacl_newlib/* pnacl_newlib/
-cp -a --no-preserve=context /usr/pnacl_translator/* pnacl_translator/
-for i in lib/libc.a lib/libc++.a lib/libg.a lib/libm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/x86_64_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/i686_bc-nacl/$i
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/libpthread.a lib/libnacl.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/le32-nacl/$i
-done
-
-for i in lib/clang/3.7.0/lib/x86_64_bc-nacl/libpnaclmm.a lib/clang/3.7.0/lib/i686_bc-nacl/libpnaclmm.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-for i in lib/clang/3.7.0/lib/le32-nacl/libpnaclmm.a lib/clang/3.7.0/lib/le32-nacl/libgcc.a; do
- /usr/pnacl_newlib/bin/pnacl-ranlib pnacl_newlib/$i
-done
-
-popd
-
-mkdir -p native_client/toolchain/.tars/linux_x86
-touch native_client/toolchain/.tars/linux_x86/pnacl_translator.json
-
-pushd native_client/toolchain
-ln -s ../../out/Release/gen/sdk/linux_x86 linux_x86
-popd
-
-mkdir -p third_party/llvm-build/Release+Asserts/bin
-pushd third_party/llvm-build/Release+Asserts/bin
-ln -s /usr/bin/clang clang
-popd
-%endif
-
# Unpack fonts
%if %{freeworld}
# no font fun needed.
@@ -1044,7 +900,7 @@ rm -rf MuktiNarrow0.94
cp %{SOURCE16} .
cp %{SOURCE17} .
cp %{SOURCE18} .
-%if 0%{?rhel} == 7
+%if 0%{?rhel} >= 7
cp %{SOURCE100} .
cp %{SOURCE101} .
cp %{SOURCE102} .
@@ -1057,14 +913,17 @@ cp %{SOURCE108} .
cp %{SOURCE109} .
cp %{SOURCE110} .
cp %{SOURCE111} .
+%else
+cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
+cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
+%endif
+%if 0%{?rhel} == 7
tar xf %{SOURCE112}
mv lohit-gurmukhi-ttf-2.91.2/Lohit-Gurmukhi.ttf .
rm -rf lohit-gurmukhi-ttf-2.91.2
unzip %{SOURCE113}
%else
-cp -a /usr/share/fonts/google-croscore/Arimo-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Cousine-*.ttf .
-cp -a /usr/share/fonts/google-croscore/Tinos-*.ttf .
cp -a /usr/share/fonts/lohit-gurmukhi/Lohit-Gurmukhi.ttf .
cp -a /usr/share/fonts/google-noto-cjk/NotoSansCJKjp-Regular.otf .
%endif
@@ -1100,9 +959,7 @@ export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
-%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
-%endif
%if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
%else
@@ -1264,9 +1121,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/libwebm' \
'third_party/libwebp' \
'third_party/libyuv' \
-%if 0%{?nacl}
- 'third_party/llvm-build' \
-%endif
'third_party/lss' \
'third_party/lzma_sdk' \
%if 0%{?bundlepylibs}
@@ -1494,10 +1348,8 @@ pushd remoting
# ../../depot_tools/ninja -C ../%{target} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
../../depot_tools/ninja -C ../%{remotingtarget} -vvv remoting_all
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools/ninja -vv -C ../out/Release/ remoting_webapp
%endif
-%endif
popd
%endif
@@ -1544,14 +1396,7 @@ mkdir -p %{buildroot}%{_mandir}/man1/
pushd %{target}
cp -a *.pak locales resources icudtl.dat %{buildroot}%{chromium_path}
-%if 0%{?nacl}
-cp -a nacl_helper* *.nexe pnacl tls_edit %{buildroot}%{chromium_path}
-chmod -x %{buildroot}%{chromium_path}/nacl_helper_bootstrap* *.nexe
-%endif
# Reasonably sure we don't need this anymore. Chrome doesn't include it.
-%if 0
-cp -a protoc pyproto %{buildroot}%{chromium_path}
-%endif
%ifarch x86_64 i686 aarch64
cp -a swiftshader %{buildroot}%{chromium_path}
%endif
@@ -1630,10 +1475,8 @@ ln -s system-auth chrome-remote-desktop
popd
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif
-%endif
%if %{build_headless}
pushd %{headlesstarget}
@@ -1704,7 +1547,7 @@ if st and st.type == "link" then
end
%if %{freeworld}
-%posttrans -n chromium-libs-media-freeworld
+%posttrans
%{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
@@ -1715,7 +1558,7 @@ end
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
-%preun -n chromium-libs-media-freeworld
+%preun
if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld
@@ -1775,16 +1618,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%ifarch x86_64 i686 aarch64
%{chromium_path}/swiftshader/
%endif
-%if 0%{?nacl}
-%{chromium_path}/nacl_helper*
-%{chromium_path}/*.nexe
-%{chromium_path}/pnacl/
-%{chromium_path}/tls_edit
-%endif
%dir %{chromium_path}/PepperFlash/
-%if 0
-%{chromium_path}/protoc
-%endif
# %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/
@@ -1895,10 +1729,8 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{_unitdir}/chrome-remote-desktop@.service
/var/lib/chrome-remote-desktop/
%if 0%{?build_remoting_app}
-%if 0%{?nacl}
%{chromium_path}/remoting_client_plugin_newlib.*
%endif
-%endif
%files -n chromedriver
%doc AUTHORS
@@ -1910,7 +1742,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared}
%if %{freeworld}
-%files -n chromium-libs-media-freeworld
+%files
%else
%files libs-media
%endif
@@ -1922,6 +1754,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Fri Sep 6 2019 Tom Callaway <spot(a)fedoraproject.org> - 76.0.3809.132-3
+- spec cleanups and changes to make EPEL8 try to build
+- freeworld changes from Nicolas Chauvet
+
* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
- Backport patch to fix certificate transparency
commit 67061b489484edb1d5e87b3551ed72695fbaafce
Merge: 2c4faae f341b67
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Sep 5 16:58:58 2019 -0400
Merge branch 'master' into epel8
commit 2c4faaedb3611d1d5cbf09d7e277a7586b1e9084
Author: Gwyn Ciesla <gwync(a)protonmail.com>
Date: Thu Sep 5 15:46:11 2019 -0500
"Adding package.cfg file"
diff --git a/package.cfg b/package.cfg
new file mode 100644
index 0000000..66ea79d
--- /dev/null
+++ b/package.cfg
@@ -0,0 +1,2 @@
+[koji]
+targets = epel8 epel8-playground
\ No newline at end of file
commit f341b670a040a236cc836e45e0de0e9e3361cb50
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Sep 4 10:48:30 2019 +0200
More fixes to a backported patch for certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 51937e0..8bfbced 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -1,6 +1,73 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc.certificate-transparency 2019-09-03 22:08:28.931786496 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager_browsertest.cc 2019-09-03 22:15:24.743555759 +0200
+@@ -17,6 +17,7 @@
+ #include "chrome/common/pref_names.h"
+ #include "chrome/test/base/in_process_browser_test.h"
+ #include "components/prefs/pref_service.h"
++#include "services/network/public/cpp/network_service_buildflags.h"
+ #include "services/network/public/mojom/network_context.mojom.h"
+ #include "services/network/public/mojom/network_service.mojom.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+@@ -297,3 +298,55 @@ IN_PROC_BROWSER_TEST_P(SystemNetworkCont
+ INSTANTIATE_TEST_SUITE_P(,
+ SystemNetworkContextManagerStubResolverBrowsertest,
+ ::testing::Values(false, true));
++
++class SystemNetworkContextManagerCertificateTransparencyBrowsertest
++ : public SystemNetworkContextManagerBrowsertest,
++ public testing::WithParamInterface<base::Optional<bool>> {
++ public:
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest() {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ GetParam());
++ }
++ ~SystemNetworkContextManagerCertificateTransparencyBrowsertest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
++};
++
++#if BUILDFLAG(IS_CT_SUPPORTED)
++IN_PROC_BROWSER_TEST_P(
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ CertificateTransparencyConfig) {
++ network::mojom::NetworkContextParamsPtr context_params =
++ g_browser_process->system_network_context_manager()
++ ->CreateDefaultNetworkContextParams();
++
++ const bool kDefault =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ true;
++#else
++ false;
++#endif
++
++ EXPECT_EQ(GetParam().value_or(kDefault),
++ context_params->enforce_chrome_ct_policy);
++ EXPECT_NE(GetParam().value_or(kDefault), context_params->ct_logs.empty());
++
++ if (GetParam().value_or(kDefault)) {
++ bool has_google_log = false;
++ bool has_disqualified_log = false;
++ for (const auto& ct_log : context_params->ct_logs) {
++ has_google_log |= ct_log->operated_by_google;
++ has_disqualified_log |= ct_log->disqualified_at.has_value();
++ }
++ EXPECT_TRUE(has_google_log);
++ EXPECT_TRUE(has_disqualified_log);
++ }
++}
++#endif
++
++INSTANTIATE_TEST_SUITE_P(
++ ,
++ SystemNetworkContextManagerCertificateTransparencyBrowsertest,
++ ::testing::Values(base::nullopt, true, false));
diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
-+++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 22:13:26.451198970 +0200
@@ -4,11 +4,13 @@
#include "chrome/browser/net/system_network_context_manager.h"
@@ -23,52 +90,205 @@ diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manage
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
#include "net/dns/public/util.h"
#include "net/net_buildflags.h"
-@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+@@ -81,6 +84,20 @@
+
+ namespace {
+
++constexpr bool kCertificateTransparencyEnabled =
++#if defined(GOOGLE_CHROME_BUILD) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_ANDROID)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID); OS_IOS does not use this file
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BUILD)
++ true;
++#else
++ false;
++#endif
++
++bool g_enable_certificate_transparency = kCertificateTransparencyEnabled;
++
+ // The global instance of the SystemNetworkContextmanager.
+ SystemNetworkContextManager* g_system_network_context_manager = nullptr;
+
+@@ -686,14 +703,35 @@ SystemNetworkContextManager::CreateDefau
bool http_09_on_non_default_ports_enabled = false;
#if !defined(OS_ANDROID)
- // CT is only enabled on Desktop platforms for now.
+- network_context_params->enforce_chrome_ct_policy = true;
+- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+- log_info->name = ct_log.log_name;
+- network_context_params->ct_logs.push_back(std::move(log_info));
++
++ if (g_enable_certificate_transparency) {
++ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
+
-+#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
-+ !defined(OS_IOS)
-+ // Certificate Transparency is only enabled if:
-+ // - Desktop (!OS_ANDROID, !OS_IOS)
-+ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
-+ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
- network_context_params->enforce_chrome_ct_policy = true;
-+ network_context_params->ct_log_update_time = base::GetBuildTime();
-+
-+ std::vector<std::string> operated_by_google_logs =
-+ certificate_transparency::GetLogsOperatedByGoogle();
-+ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
-+ certificate_transparency::GetDisqualifiedLogs();
- for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
- // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
- network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
- log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
- log_info->name = ct_log.log_name;
-+
-+ std::string log_id = crypto::SHA256HashString(log_info->public_key);
-+ log_info->operated_by_google =
-+ std::binary_search(std::begin(operated_by_google_logs),
-+ std::end(operated_by_google_logs), log_id);
-+ auto it = std::lower_bound(
-+ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
-+ [](const auto& disqualified_log, const std::string& log_id) {
-+ return disqualified_log.first < log_id;
-+ });
-+ if (it != std::end(disqualified_logs) && it->first == log_id) {
-+ log_info->disqualified_at = it->second;
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
++ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
++ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
++ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
++ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
- network_context_params->ct_logs.push_back(std::move(log_info));
}
-+#endif
const base::Value* value =
- g_browser_process->policy_service()
+@@ -756,6 +794,12 @@ SystemNetworkContextManager::GetHttpAuth
+ return CreateHttpAuthDynamicParams(g_browser_process->local_state());
+ }
+
++void SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled) {
++ g_enable_certificate_transparency =
++ enabled.value_or(kCertificateTransparencyEnabled);
++}
++
+ network::mojom::NetworkContextParamsPtr
+ SystemNetworkContextManager::CreateNetworkContextParams() {
+ // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.h 2019-09-03 22:08:28.931786496 +0200
+@@ -158,6 +158,12 @@ class SystemNetworkContextManager {
+ static network::mojom::HttpAuthDynamicParamsPtr
+ GetHttpAuthDynamicParamsForTesting();
+
++ // Enables Certificate Transparency and enforcing the Chrome Certificate
++ // Transparency Policy. For test use only. Use base::nullopt_t to reset to
++ // the default state.
++ static void SetEnableCertificateTransparencyForTesting(
++ base::Optional<bool> enabled);
++
+ private:
+ class URLLoaderFactoryForSystem;
+
+diff -up chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/policy/policy_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -4834,7 +4834,7 @@ IN_PROC_BROWSER_TEST_P(SSLPolicyTestComm
+ browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
+ }
+
+-IN_PROC_BROWSER_TEST_F(PolicyTest,
++IN_PROC_BROWSER_TEST_F(CertificateTransparencyPolicyTest,
+ CertificateTransparencyEnforcementDisabledForCas) {
+ net::EmbeddedTestServer https_server_ok(net::EmbeddedTestServer::TYPE_HTTPS);
+ https_server_ok.SetSSLConfig(net::EmbeddedTestServer::CERT_OK);
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/chrome_expect_ct_reporter_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -8,6 +8,7 @@
+ #include "base/callback.h"
+ #include "base/run_loop.h"
+ #include "base/test/scoped_feature_list.h"
++#include "chrome/browser/net/system_network_context_manager.h"
+ #include "chrome/browser/profiles/profile.h"
+ #include "chrome/browser/ssl/cert_verifier_browser_test.h"
+ #include "chrome/browser/ui/browser.h"
+@@ -27,7 +28,17 @@ namespace {
+ // received by a server.
+ class ExpectCTBrowserTest : public CertVerifierBrowserTest {
+ public:
+- ExpectCTBrowserTest() : CertVerifierBrowserTest() {}
++ ExpectCTBrowserTest() : CertVerifierBrowserTest() {
++ // Expect-CT reporting depends on actually enforcing Certificate
++ // Transparency.
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~ExpectCTBrowserTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ run_loop_ = std::make_unique<base::RunLoop>();
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/security_state_tab_helper_browsertest.cc 2019-09-03 22:08:28.932786508 +0200
+@@ -457,6 +457,13 @@ class SecurityStateTabHelperTest : publi
+ SecurityStateTabHelperTest()
+ : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
+ https_server_.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++
++ ~SecurityStateTabHelperTest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
+ }
+
+ void SetUpOnMainThread() override {
+diff -up chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc
+--- chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc.certificate-transparency 2019-08-26 21:02:07.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/ssl/ssl_browsertest.cc 2019-09-03 22:08:28.934786531 +0200
+@@ -2008,8 +2008,14 @@ class CertificateTransparencySSLUITest :
+ public:
+ CertificateTransparencySSLUITest()
+ : CertVerifierBrowserTest(),
+- https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+- ~CertificateTransparencySSLUITest() override {}
++ https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ true);
++ }
++ ~CertificateTransparencySSLUITest() override {
++ SystemNetworkContextManager::SetEnableCertificateTransparencyForTesting(
++ base::nullopt);
++ }
+
+ void SetUpOnMainThread() override {
+ CertVerifierBrowserTest::SetUpOnMainThread();
+diff -up chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h
+--- chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h.certificate-transparency 2019-08-26 21:02:14.000000000 +0200
++++ chromium-76.0.3809.132/components/certificate_transparency/chrome_ct_policy_enforcer.h 2019-09-03 22:08:28.934786531 +0200
+@@ -45,6 +45,19 @@ class ChromeCTPolicyEnforcer : public ne
+
+ void SetClockForTesting(const base::Clock* clock) { clock_ = clock; }
+
++ // TODO(https://crbug.com/999240): These are exposed to allow end-to-end
++ // testing by higher layers (i.e. that the ChromeCTPolicyEnforcer is
++ // correctly constructed). When either this issue or https://crbug.com/848277
++ // are fixed, the configuration can be tested independently, and these can
++ // be removed.
++ const std::vector<std::string>& operated_by_google_logs_for_testing() {
++ return operated_by_google_logs_;
++ }
++ const std::vector<std::pair<std::string, base::TimeDelta>>&
++ disqualified_logs_for_testing() {
++ return disqualified_logs_;
++ }
++
+ private:
+ // Returns true if the log identified by |log_id| (the SHA-256 hash of the
+ // log's DER-encoded SPKI) has been disqualified, and sets
diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 22:17:27.977834857 +0200
@@ -35,6 +35,7 @@
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
@@ -115,12 +335,16 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
scoped_refptr<const net::CTLogVerifier> log_verifier =
net::CTLogVerifier::Create(log->public_key, log->name);
if (!log_verifier) {
-@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+@@ -1924,6 +1927,17 @@ URLRequestContextOwner NetworkContext::A
ct_verifier->AddLogs(ct_logs);
builder->set_ct_verifier(std::move(ct_verifier));
}
+
+ if (params_->enforce_chrome_ct_policy) {
++ std::sort(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs));
++ std::sort(std::begin(disqualified_logs), std::end(disqualified_logs));
++
+ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
@@ -129,9 +353,118 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
#endif // BUILDFLAG(IS_CT_SUPPORTED)
const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context_unittest.cc
+--- chromium-76.0.3809.132/services/network/network_context_unittest.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context_unittest.cc 2019-09-03 22:20:22.382888089 +0200
+@@ -2,6 +2,7 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <algorithm>
+ #include <map>
+ #include <memory>
+ #include <string>
+@@ -38,10 +39,12 @@
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/default_clock.h"
+ #include "base/time/default_tick_clock.h"
++#include "base/time/time.h"
+ #include "build/build_config.h"
+ #include "components/network_session_configurator/browser/network_session_configurator.h"
+ #include "components/network_session_configurator/common/network_switches.h"
+ #include "components/prefs/testing_pref_service.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/interface_request.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "mojo/public/cpp/system/data_pipe_utils.h"
+@@ -113,6 +116,11 @@
+ #include "url/scheme_host_port.h"
+ #include "url/url_constants.h"
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++#include "components/certificate_transparency/chrome_ct_policy_enforcer.h"
++#include "services/network/public/mojom/ct_log_info.mojom.h"
++#endif
++
+ #if BUILDFLAG(ENABLE_REPORTING)
+ #include "net/network_error_logging/network_error_logging_service.h"
+ #include "net/reporting/reporting_cache.h"
+@@ -5566,6 +5574,72 @@ TEST_F(NetworkContextTest, BlockAllCooki
+ EXPECT_EQ("None", response_body);
+ }
+
++#if BUILDFLAG(IS_CT_SUPPORTED)
++TEST_F(NetworkContextTest, CertificateTransparencyConfig) {
++ mojom::NetworkContextParamsPtr params = CreateContextParams();
++ params->enforce_chrome_ct_policy = true;
++ params->ct_log_update_time = base::Time::Now();
++
++ // The log public keys do not matter for the test, so invalid keys are used.
++ // However, because the log IDs are derived from the SHA-256 hash of the log
++ // key, the log keys are generated such that qualified logs are in the form
++ // of four digits (e.g. "0000", "1111"), while disqualified logs are in the
++ // form of four letters (e.g. "AAAA", "BBBB").
++
++ for (int i = 0; i < 6; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII '0' (0x30)
++ log_info->public_key = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x30 + static_cast<char>(i));
++ log_info->operated_by_google = i % 2;
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ for (int i = 0; i < 3; ++i) {
++ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
++ // Shift to ASCII 'A' (0x41)
++ log_info->public_key = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->name = std::string(4, 0x41 + static_cast<char>(i));
++ log_info->operated_by_google = false;
++ log_info->disqualified_at = base::TimeDelta::FromSeconds(i);
++
++ params->ct_logs.push_back(std::move(log_info));
++ }
++ std::unique_ptr<NetworkContext> network_context =
++ CreateContextWithParams(std::move(params));
++
++ net::CTPolicyEnforcer* request_enforcer =
++ network_context->url_request_context()->ct_policy_enforcer();
++ ASSERT_TRUE(request_enforcer);
++
++ // Completely unsafe if |enforce_chrome_ct_policy| is false.
++ certificate_transparency::ChromeCTPolicyEnforcer* policy_enforcer =
++ reinterpret_cast<certificate_transparency::ChromeCTPolicyEnforcer*>(
++ request_enforcer);
++
++ EXPECT_TRUE(std::is_sorted(
++ policy_enforcer->operated_by_google_logs_for_testing().begin(),
++ policy_enforcer->operated_by_google_logs_for_testing().end()));
++ EXPECT_TRUE(
++ std::is_sorted(policy_enforcer->disqualified_logs_for_testing().begin(),
++ policy_enforcer->disqualified_logs_for_testing().end()));
++
++ EXPECT_THAT(
++ policy_enforcer->operated_by_google_logs_for_testing(),
++ ::testing::UnorderedElementsAreArray({crypto::SHA256HashString("1111"),
++ crypto::SHA256HashString("3333"),
++ crypto::SHA256HashString("5555")}));
++ EXPECT_THAT(policy_enforcer->disqualified_logs_for_testing(),
++ ::testing::UnorderedElementsAre(
++ ::testing::Pair(crypto::SHA256HashString("AAAA"),
++ base::TimeDelta::FromSeconds(0)),
++ ::testing::Pair(crypto::SHA256HashString("BBBB"),
++ base::TimeDelta::FromSeconds(1)),
++ ::testing::Pair(crypto::SHA256HashString("CCCC"),
++ base::TimeDelta::FromSeconds(2))));
++}
++#endif
++
+ } // namespace
+
+ } // namespace network
diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -4,6 +4,8 @@
module network.mojom;
@@ -148,7 +481,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
+
+ // Whether or not the log should should be considered a Google Log for the
+ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
-+ bool operated_by_google;
++ bool operated_by_google = false;
+
+ // If set, the time since the Unix Epoch when the log was disqualified. This
+ // is used to determine the "once or currently qualified" status of the log.
@@ -157,7 +490,7 @@ diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.
};
diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
-+++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 22:08:28.936786554 +0200
@@ -238,15 +238,6 @@ struct NetworkContextParams {
[EnableIf=is_android]
bool check_clear_text_permitted = false;
commit be81360432cb7ef6251b4f39a0b164e04b33c044
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 15:26:53 2019 +0200
Fix certificate-transparency patch
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
index 25a08af..51937e0 100644
--- a/chromium-76.0.3809.132-certificate-transparency.patch
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -121,7 +121,7 @@ diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-
}
+
+ if (params_->enforce_chrome_ct_policy) {
-+ builder.set_ct_policy_enforcer(
++ builder->set_ct_policy_enforcer(
+ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+ params_->ct_log_update_time, disqualified_logs,
+ operated_by_google_logs));
commit 41c22993b3320f535a33080157da4f49f69bf69e
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Sep 3 12:20:51 2019 +0200
Backport patch to fix certificate transparency
diff --git a/chromium-76.0.3809.132-certificate-transparency.patch b/chromium-76.0.3809.132-certificate-transparency.patch
new file mode 100644
index 0000000..25a08af
--- /dev/null
+++ b/chromium-76.0.3809.132-certificate-transparency.patch
@@ -0,0 +1,206 @@
+diff -up chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc
+--- chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc.certificate-transparency 2019-08-26 21:02:05.000000000 +0200
++++ chromium-76.0.3809.132/chrome/browser/net/system_network_context_manager.cc 2019-09-03 12:01:33.004949320 +0200
+@@ -4,11 +4,13 @@
+
+ #include "chrome/browser/net/system_network_context_manager.h"
+
++#include <algorithm>
+ #include <set>
+ #include <unordered_map>
+ #include <utility>
+
+ #include "base/bind.h"
++#include "base/build_time.h"
+ #include "base/command_line.h"
+ #include "base/feature_list.h"
+ #include "base/logging.h"
+@@ -51,6 +53,7 @@
+ #include "content/public/common/mime_handler_view_mode.h"
+ #include "content/public/common/service_names.mojom.h"
+ #include "content/public/common/user_agent.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
+ #include "net/dns/public/util.h"
+ #include "net/net_buildflags.h"
+@@ -686,15 +689,41 @@ SystemNetworkContextManager::CreateDefau
+
+ bool http_09_on_non_default_ports_enabled = false;
+ #if !defined(OS_ANDROID)
+- // CT is only enabled on Desktop platforms for now.
++
++#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && defined(OFFICIAL_BUILD) && \
++ !defined(OS_IOS)
++ // Certificate Transparency is only enabled if:
++ // - Desktop (!OS_ANDROID, !OS_IOS)
++ // - base::GetBuildTime() is deterministic to the source (OFFICIAL_BUILD)
++ // - The build in reliably updatable (GOOGLE_CHROME_BRANDING)
+ network_context_params->enforce_chrome_ct_policy = true;
++ network_context_params->ct_log_update_time = base::GetBuildTime();
++
++ std::vector<std::string> operated_by_google_logs =
++ certificate_transparency::GetLogsOperatedByGoogle();
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs =
++ certificate_transparency::GetDisqualifiedLogs();
+ for (const auto& ct_log : certificate_transparency::GetKnownLogs()) {
+ // TODO(rsleevi): https://crbug.com/702062 - Remove this duplication.
+ network::mojom::CTLogInfoPtr log_info = network::mojom::CTLogInfo::New();
+ log_info->public_key = std::string(ct_log.log_key, ct_log.log_key_length);
+ log_info->name = ct_log.log_name;
++
++ std::string log_id = crypto::SHA256HashString(log_info->public_key);
++ log_info->operated_by_google =
++ std::binary_search(std::begin(operated_by_google_logs),
++ std::end(operated_by_google_logs), log_id);
++ auto it = std::lower_bound(
++ std::begin(disqualified_logs), std::end(disqualified_logs), log_id,
++ [](const auto& disqualified_log, const std::string& log_id) {
++ return disqualified_log.first < log_id;
++ });
++ if (it != std::end(disqualified_logs) && it->first == log_id) {
++ log_info->disqualified_at = it->second;
++ }
+ network_context_params->ct_logs.push_back(std::move(log_info));
+ }
++#endif
+
+ const base::Value* value =
+ g_browser_process->policy_service()
+diff -up chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency chromium-76.0.3809.132/services/network/network_context.cc
+--- chromium-76.0.3809.132/services/network/network_context.cc.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/network_context.cc 2019-09-03 12:04:01.983890928 +0200
+@@ -35,6 +35,7 @@
+ #include "components/prefs/pref_registry_simple.h"
+ #include "components/prefs/pref_service.h"
+ #include "components/prefs/pref_service_factory.h"
++#include "crypto/sha2.h"
+ #include "mojo/public/cpp/bindings/strong_binding.h"
+ #include "net/base/layered_network_delegate.h"
+ #include "net/base/load_flags.h"
+@@ -1851,16 +1852,6 @@ URLRequestContextOwner NetworkContext::A
+ base::FeatureList::IsEnabled(features::kNetworkErrorLogging));
+ #endif // BUILDFLAG(ENABLE_REPORTING)
+
+-#if BUILDFLAG(IS_CT_SUPPORTED)
+- if (params_->enforce_chrome_ct_policy) {
+- builder->set_ct_policy_enforcer(
+- std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
+- base::GetBuildTime(),
+- certificate_transparency::GetDisqualifiedLogs(),
+- certificate_transparency::GetLogsOperatedByGoogle()));
+- }
+-#endif // BUILDFLAG(IS_CT_SUPPORTED)
+-
+ net::HttpNetworkSession::Params session_params;
+ bool is_quic_force_disabled = false;
+ if (network_service_ && network_service_->quic_disabled())
+@@ -1910,8 +1901,20 @@ URLRequestContextOwner NetworkContext::A
+
+ #if BUILDFLAG(IS_CT_SUPPORTED)
+ std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs;
++ std::vector<std::pair<std::string, base::TimeDelta>> disqualified_logs;
++ std::vector<std::string> operated_by_google_logs;
++
+ if (!params_->ct_logs.empty()) {
+ for (const auto& log : params_->ct_logs) {
++ if (log->operated_by_google || log->disqualified_at) {
++ std::string log_id = crypto::SHA256HashString(log->public_key);
++ if (log->operated_by_google)
++ operated_by_google_logs.push_back(log_id);
++ if (log->disqualified_at) {
++ disqualified_logs.push_back(
++ std::make_pair(log_id, log->disqualified_at.value()));
++ }
++ }
+ scoped_refptr<const net::CTLogVerifier> log_verifier =
+ net::CTLogVerifier::Create(log->public_key, log->name);
+ if (!log_verifier) {
+@@ -1924,6 +1927,13 @@ URLRequestContextOwner NetworkContext::A
+ ct_verifier->AddLogs(ct_logs);
+ builder->set_ct_verifier(std::move(ct_verifier));
+ }
++
++ if (params_->enforce_chrome_ct_policy) {
++ builder.set_ct_policy_enforcer(
++ std::make_unique<certificate_transparency::ChromeCTPolicyEnforcer>(
++ params_->ct_log_update_time, disqualified_logs,
++ operated_by_google_logs));
++ }
+ #endif // BUILDFLAG(IS_CT_SUPPORTED)
+
+ const base::CommandLine* command_line =
+diff -up chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/ct_log_info.mojom 2019-09-03 11:59:48.423862022 +0200
+@@ -4,6 +4,8 @@
+
+ module network.mojom;
+
++import "mojo/public/mojom/base/time.mojom";
++
+ // A single Certificate Transparency Log configuration.
+ struct CTLogInfo {
+ // The DER-encoded SubjectPublicKeyInfo of the log.
+@@ -14,4 +16,13 @@ struct CTLogInfo {
+ // The human-readable, log-supplied log name. Note that this will not be
+ // translated.
+ string name;
++
++ // Whether or not the log should should be considered a Google Log for the
++ // purposes of enforcing the "Certificate Transparency in Chrome" policy.
++ bool operated_by_google;
++
++ // If set, the time since the Unix Epoch when the log was disqualified. This
++ // is used to determine the "once or currently qualified" status of the log.
++ // If the log is currently qualified, this will not be set.
++ mojo_base.mojom.TimeDelta? disqualified_at;
+ };
+diff -up chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom
+--- chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom.certificate-transparency 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/public/mojom/network_context.mojom 2019-09-03 11:59:48.424862032 +0200
+@@ -238,15 +238,6 @@ struct NetworkContextParams {
+ [EnableIf=is_android]
+ bool check_clear_text_permitted = false;
+
+- // True if the "Certificate Transparency in Chrome" policy (see
+- // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
+- // be enforced for certificates and connections.
+- //
+- // See //net/docs/certificate-transparency.md before setting this flag to
+- // true.
+- [EnableIf=is_ct_supported]
+- bool enforce_chrome_ct_policy = false;
+-
+ // Enables HTTP/0.9 on ports other than 80 for HTTP and 443 for HTTPS.
+ bool http_09_on_non_default_ports_enabled = false;
+
+@@ -299,6 +290,15 @@ struct NetworkContextParams {
+ // servers, so they can discover misconfigurations.
+ bool enable_certificate_reporting = false;
+
++ // True if the "Certificate Transparency in Chrome" policy (see
++ // https://github.com/chromium/ct-policy/blob/master/ct_policy.md) should
++ // be enforced for certificates and connections.
++ //
++ // See //net/docs/certificate-transparency.md before setting this flag to
++ // true.
++ [EnableIf=is_ct_supported]
++ bool enforce_chrome_ct_policy = false;
++
+ // Enables Expect CT reporting, which sends reports for opted-in sites that
+ // don't serve sufficient Certificate Transparency information.
+ [EnableIf=is_ct_supported]
+@@ -310,6 +310,13 @@ struct NetworkContextParams {
+ [EnableIf=is_ct_supported]
+ array<CTLogInfo> ct_logs;
+
++ // When the Certificate Transparency logs in |ct_logs| were last updated. If
++ // |enforce_chrome_ct_policy| is set, and |ct_log_update_time| is not
++ // sufficiently recent, enforcement of the "Certificate Transparency in
++ // Chrome" policy will be disabled.
++ [EnableIf=is_ct_supported]
++ mojo_base.mojom.Time ct_log_update_time;
++
+ // Specifies the path to the directory where NSS will store its database.
+ [EnableIf=is_chromeos]
+ mojo_base.mojom.FilePath? nss_path;
diff --git a/chromium.spec b/chromium.spec
index 8e251b9..1471b94 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -176,7 +176,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
Name: chromium%{chromium_channel}
%endif
Version: %{majorversion}.0.3809.132
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -308,6 +308,8 @@ Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
+# https://chromium.googlesource.com/chromium/src.git/+/3c9720245e440c4b7222...
+Patch64: chromium-76.0.3809.132-certificate-transparency.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -888,6 +890,7 @@ udev.
%patch61 -p1 -b .gcc-no-alignas-and-export
%patch62 -p1 -b .gcc-remoting-constexpr
%patch63 -p1 -b .vtable-symbol-undefined
+%patch64 -p1 -b .certificate-transparency
# EPEL specific patches
%if 0%{?rhel} == 7
@@ -1919,6 +1922,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Sep 03 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-2
+- Backport patch to fix certificate transparency
+
* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
- Update to 76.0.3809.132
commit 9bb933dc67b7e0b2051c0f48ef3783365b86fc8b
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Thu Aug 29 16:22:39 2019 -0400
update chromium-latest.py to Python3
diff --git a/chromium-latest.py b/chromium-latest.py
index 87889ad..5af8628 100755
--- a/chromium-latest.py
+++ b/chromium-latest.py
@@ -1,5 +1,5 @@
-#!/usr/bin/python
-# Copyright 2010,2015-2016 Tom Callaway <tcallawa(a)redhat.com>
+#!/usr/bin/python3
+# Copyright 2010,2015-2019 Tom Callaway <tcallawa(a)redhat.com>
# Copyright 2013-2016 Tomas Popela <tpopela(a)redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -32,9 +32,9 @@ import hashlib
import locale
import os
import shutil
-import StringIO
+import io
import sys
-import urllib
+import urllib.request, urllib.parse, urllib.error
chromium_url = "http://commondatastorage.googleapis.com/chromium-browser-official/"
@@ -59,22 +59,22 @@ def dlProgress(count, blockSize, totalSize):
def delete_chromium_dir(ch_dir):
full_dir = "%s/%s" % (latest_dir, ch_dir)
- print 'Deleting %s ' % full_dir
+ print('Deleting %s ' % full_dir)
if os.path.isdir(full_dir):
shutil.rmtree(full_dir)
- print '[DONE]'
+ print('[DONE]')
else:
- print '[NOT FOUND]'
+ print('[NOT FOUND]')
def delete_chromium_files(files):
full_path = "%s/%s" % (latest_dir, files)
- print 'Deleting ' + full_path + ' ',
+ print('Deleting ' + full_path + ' ', end=' ')
for filename in glob.glob(full_path):
- print 'Deleting ' + filename + ' ',
+ print('Deleting ' + filename + ' ', end=' ')
os.remove(filename)
- print '[DONE]'
+ print('[DONE]')
def check_omahaproxy(channel="stable"):
@@ -82,20 +82,20 @@ def check_omahaproxy(channel="stable"):
version = 0
status_url = "http://omahaproxy.appspot.com/all?os=linux&channel=" + channel
- usock = urllib.urlopen(status_url)
- status_dump = usock.read()
+ usock = urllib.request.urlopen(status_url)
+ status_dump = usock.read().decode('utf-8')
usock.close()
- status_list = StringIO.StringIO(status_dump)
+ status_list = io.StringIO(status_dump)
status_reader = list(csv.reader(status_list, delimiter=','))
linux_channels = [s for s in status_reader if "linux" in s]
linux_channel = [s for s in linux_channels if channel in s]
version = linux_channel[0][2]
if version == 0:
- print 'I could not find the latest %s build. Bailing out.' % channel
+ print('I could not find the latest %s build. Bailing out.' % channel)
sys.exit(1)
else:
- print 'Latest Chromium Version on %s at %s is %s' % (channel, status_url, version)
+ print('Latest Chromium Version on %s at %s is %s' % (channel, status_url, version))
return version
@@ -119,27 +119,27 @@ def download_file_and_compare_hashes(file_to_download):
# Let's make sure we haven't already downloaded it.
tarball_local_file = "./%s" % file_to_download
if os.path.isfile(tarball_local_file):
- print "%s already exists!" % file_to_download
+ print("%s already exists!" % file_to_download)
else:
path = '%s%s' % (chromium_url, file_to_download)
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, file_to_download, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, file_to_download, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if (info["Content-Type"] != "application/x-tar"):
- print 'Chromium tarballs for %s are not on servers.' % file_to_download
+ print('Chromium tarballs for %s are not on servers.' % file_to_download)
remove_file_if_exists (file_to_download)
sys.exit(1)
hashes_local_file = "./%s" % hashes_file
if not os.path.isfile(hashes_local_file):
path = '%s%s' % (chromium_url, hashes_file)
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, hashes_file, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, hashes_file, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if os.path.isfile(hashes_local_file):
with open(hashes_local_file, "r") as input_file:
@@ -149,12 +149,12 @@ def download_file_and_compare_hashes(file_to_download):
for block in iter(lambda: f.read(65536), b""):
md5.update(block)
if (md5sum == md5.hexdigest()):
- print "MD5 matches for %s!" % file_to_download
+ print("MD5 matches for %s!" % file_to_download)
else:
- print "MD5 mismatch for %s!" % file_to_download
+ print("MD5 mismatch for %s!" % file_to_download)
sys.exit(1)
else:
- print "Cannot compare hashes for %s!" % file_to_download
+ print("Cannot compare hashes for %s!" % file_to_download)
def download_version(version):
@@ -175,16 +175,16 @@ def nacl_versions(version):
for line in myfile:
name, var = line.partition("=")[::2]
myvars[name] = var
- print "nacl-binutils commit: %s" % myvars["NACL_BINUTILS_COMMIT"]
- print "nacl-gcc commit: %s" % myvars["NACL_GCC_COMMIT"]
- print "nacl-newlib commit: %s" % myvars["NACL_NEWLIB_COMMIT"]
+ print("nacl-binutils commit: %s" % myvars["NACL_BINUTILS_COMMIT"])
+ print("nacl-gcc commit: %s" % myvars["NACL_GCC_COMMIT"])
+ print("nacl-newlib commit: %s" % myvars["NACL_NEWLIB_COMMIT"])
# Parse GIT_REVISIONS dict from toolchain_build.py
sys.path.append(os.path.abspath(chrome_dir + "/native_client/toolchain_build"))
from toolchain_build import GIT_REVISIONS
- print "nacl-arm-binutils commit: %s" % GIT_REVISIONS['binutils']['rev']
- print "nacl-arm-gcc commit: %s" % GIT_REVISIONS['gcc']['rev']
+ print("nacl-arm-binutils commit: %s" % GIT_REVISIONS['binutils']['rev'])
+ print("nacl-arm-gcc commit: %s" % GIT_REVISIONS['gcc']['rev'])
def download_chrome_latest_rpm(arch):
@@ -197,15 +197,15 @@ def download_chrome_latest_rpm(arch):
# Let's make sure we haven't already downloaded it.
if os.path.isfile("./%s" % chrome_rpm):
- print "%s already exists!" % chrome_rpm
+ print("%s already exists!" % chrome_rpm)
else:
- print "Downloading %s" % path
+ print("Downloading %s" % path)
# Perhaps look at using python-progressbar at some point?
- info=urllib.urlretrieve(path, chrome_rpm, reporthook=dlProgress)[1]
- urllib.urlcleanup()
- print ""
+ info=urllib.request.urlretrieve(path, chrome_rpm, reporthook=dlProgress)[1]
+ urllib.request.urlcleanup()
+ print("")
if (info["Content-Type"] != "binary/octet-stream" and info["Content-Type"] != "application/x-redhat-package-manager"):
- print 'Chrome %s rpms are not on servers.' % version_string
+ print('Chrome %s rpms are not on servers.' % version_string)
remove_file_if_exists (chrome_rpm)
sys.exit(1)
@@ -274,7 +274,7 @@ if __name__ == '__main__':
version_string = "dev"
elif (not (args.stable or args.beta or args.dev)):
if (not args.version):
- print 'No version specified, downloading STABLE'
+ print('No version specified, downloading STABLE')
args.stable = True
chromium_version = args.version if args.version else check_omahaproxy(version_string)
@@ -284,7 +284,7 @@ if __name__ == '__main__':
if args.chrome:
if args.version:
- print 'You cannot specify a Chrome RPM version!'
+ print('You cannot specify a Chrome RPM version!')
sys.exit(1)
latest = 'google-chrome-%s_current_i386' % version_string
download_chrome_latest_rpm("i386")
@@ -303,11 +303,11 @@ if __name__ == '__main__':
shutil.rmtree(latest_dir)
if os.path.isdir(latest_dir):
- print "%s already exists, perhaps %s has already been unpacked?" % (latest_dir, latest)
+ print("%s already exists, perhaps %s has already been unpacked?" % (latest_dir, latest))
else:
- print "Unpacking %s into %s, please wait." % (latest, latest_dir)
+ print("Unpacking %s into %s, please wait." % (latest, latest_dir))
if (os.system("tar -xJf %s" % latest) != 0):
- print "%s is possibly corrupted, exiting." % (latest)
+ print("%s is possibly corrupted, exiting." % (latest))
sys.exit(1)
if (args.naclvers):
@@ -334,11 +334,11 @@ if __name__ == '__main__':
if (args.ffmpegclean):
print("Cleaning ffmpeg from proprietary things...")
os.system("./clean_ffmpeg.sh %s %d" % (latest_dir, 0 if args.ffmpegarm else 1))
- print "Done!"
+ print("Done!")
if (not args.prep):
- print "Compressing cleaned tree, please wait..."
+ print("Compressing cleaned tree, please wait...")
os.chdir(chromium_root_dir)
os.system("tar --exclude=\.svn -cf - chromium-%s | xz -9 -T 0 -f > %s" % (chromium_version, chromium_clean_xz_file))
- print "Finished!"
+ print("Finished!")
commit ec9d075ebbacdd8fa116137d33f073fa37713b54
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 26 19:17:48 2019 +0200
Use bundled Python 2 libraries during build
This removes the dependency on a small stack of Python 2 libraries.
There is a %global flag to control this, however only markupsafe is handled
differently when %bundlepylibs is set, other libraries seem to have been bundled
already.
diff --git a/chromium.spec b/chromium.spec
index cbc4fa4..8e251b9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -105,6 +105,10 @@ BuildRequires: libicu-devel >= 5.4
# 2017-06-08.
%global bundlelibxml 1
+# 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
+
# Chromium used to break on wayland, hidpi, and colors with gtk3 enabled.
# Hopefully it does not anymore.
%global gtk3 1
@@ -515,8 +519,11 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: python2-devel
-%if 0%{?fedora} > 27
+BuildRequires: /usr/bin/python2
+%if 0%{?bundlepylibs}
+# Using bundled bits, do nothing.
+%else
+%if 0%{?fedora}
BuildRequires: python2-beautifulsoup4
BuildRequires: python2-beautifulsoup
BuildRequires: python2-html5lib
@@ -530,6 +537,8 @@ BuildRequires: python-markupsafe
BuildRequires: python-ply
%endif
BuildRequires: python2-simplejson
+BuildRequires: python2-devel
+%endif
%if 0%{?bundlere2}
# Using bundled bits, do nothing.
%else
@@ -1257,7 +1266,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/lss' \
'third_party/lzma_sdk' \
-%if 0
+%if 0%{?bundlepylibs}
'third_party/markupsafe' \
%endif
'third_party/mesa' \
@@ -1345,10 +1354,12 @@ build/linux/unbundle/remove_bundled_libraries.py \
'v8/third_party/inspector_protocol' \
--do-remove
+%if ! 0%{?bundlepylibs}
# Look, I don't know. This package is spit and chewing gum. Sorry.
rm -rf third_party/markupsafe
ln -s %{python2_sitearch}/markupsafe third_party/markupsafe
# We should look on removing other python2 packages as well i.e. ply
+%endif
# Fix hardcoded path in remoting code
sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/daemon_controller_delegate_linux.cc
commit 5039438024ac562fb0db46dc2c07c76ead8daa0c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:56:12 2019 +0200
Add an updated patch that was missed
diff --git a/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..73db4d4
--- /dev/null
+++ b/chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
@@ -0,0 +1,21 @@
+diff -up chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc
+--- chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc.gcc-ambigous-instantiation 2019-08-26 21:02:33.000000000 +0200
++++ chromium-76.0.3809.132/services/network/cross_origin_read_blocking.cc 2019-08-27 06:58:23.963821667 +0200
+@@ -207,7 +207,7 @@ std::set<int>& GetPluginProxyingProcesse
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -219,7 +219,7 @@ base::flat_set<std::string>& GetNeverSni
+ "application/x-protobuf",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
commit 937790beb5adc1bcd8c978d0e60d064afc9ad318
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 27 07:13:54 2019 +0200
Update to 76.0.3809.132
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
deleted file mode 100644
index 587abf3..0000000
--- a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jose.dapena(a)lge.com>
-Date: Wed, 05 Jun 2019 19:46:55 +0000
-Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
-
-Use brace-list notation to wrap the already existing brace-list for
-initializing the flat-set. This resolves an ambiguous instantiation
-in GCC.
-
-Bug: 819294
-Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
-Reviewed-by: Matt Menke <mmenke(a)chromium.org>
-Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
-Cr-Commit-Position: refs/heads/master@{#666401}
----
-
-diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
-index 30999c0..60a03f6 100644
---- a/services/network/cross_origin_read_blocking.cc
-+++ b/services/network/cross_origin_read_blocking.cc
-@@ -211,7 +211,7 @@
- // confirmation sniffing because images, scripts, etc. are frequently
- // mislabelled by http servers as HTML/JSON/XML).
- base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
-- static base::NoDestructor<base::flat_set<std::string>> s_types({
-+ static base::NoDestructor<base::flat_set<std::string>> s_types{{
- // The list below has been populated based on most commonly used content
- // types according to HTTP Archive - see:
- // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
-@@ -224,7 +224,7 @@
- "application/x-www-form-urlencoded",
- "application/zip",
- "text/event-stream",
-- });
-+ }};
-
- // All items need to be lower-case, to support case-insensitive comparisons
- // later.
diff --git a/chromium.spec b/chromium.spec
index c961abc..cbc4fa4 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -171,7 +171,7 @@ Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel}
%endif
-Version: %{majorversion}.0.3809.100
+Version: %{majorversion}.0.3809.132
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home
@@ -280,7 +280,7 @@ Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
-Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+Patch52: chromium-76.0.3809.132-gcc-ambigous-instantiation.patch
# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
@@ -1908,6 +1908,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog
+* Tue Aug 27 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.132-1
+- Update to 76.0.3809.132
+
* Tue Aug 13 2019 Tomas Popela <tpopela(a)redhat.com> - 76.0.3809.100-1
- Update to 76.0.3809.100
diff --git a/sources b/sources
index b7a420d..2d38a7c 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
+SHA512 (chromium-76.0.3809.132-clean.tar.xz) = fbc5f989945adfaffb9fb5199ccb988accdc53f41a03bba9c4ab3df8585b9267b1f34cd7a6ac487eff34ebb6e65865e32ceea4ad945eec30f871d8eed41f3e6f
commit 77fd050dd942221c6dd0e8b09183bf3319e1fdfd
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Mon Aug 26 14:40:26 2019 +0200
Another noexec fix for EL7
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 99593f7..407f8de 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -18,7 +18,7 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
switch (icon_type_) {
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-26 10:13:00.815409764 +0200
@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
Swap(&other);
}
@@ -28,9 +28,18 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc
Swap(&other);
return *this;
}
+@@ -186,7 +186,7 @@ QueryURLResult::QueryURLResult(QueryURLR
+
+ QueryURLResult& QueryURLResult::operator=(const QueryURLResult&) = default;
+
+-QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) noexcept = default;
++QueryURLResult& QueryURLResult::operator=(QueryURLResult&&) = default;
+
+ // MostVisitedURL --------------------------------------------------------------
+
diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
-+++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-26 10:13:49.951881558 +0200
@@ -143,7 +143,7 @@ class QueryResults {
~QueryResults();
@@ -40,6 +49,15 @@ diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.
void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
bool reached_beginning() { return reached_beginning_; }
+@@ -278,7 +278,7 @@ struct QueryURLResult {
+ QueryURLResult(const QueryURLResult&);
+ QueryURLResult(QueryURLResult&&) noexcept;
+ QueryURLResult& operator=(const QueryURLResult&);
+- QueryURLResult& operator=(QueryURLResult&&) noexcept;
++ QueryURLResult& operator=(QueryURLResult&&);
+ ~QueryURLResult();
+
+ // Indicates whether the call to HistoryBackend::QueryURL was successfull
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
commit 2f9ffec1c569135a8630d144cb0c4e833e55aabf
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 13:48:03 2019 +0200
Another el7 noexcept change
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
index 054d42e..99593f7 100644
--- a/chromium-76.0.3809.100-el7-noexcept.patch
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -1,6 +1,6 @@
diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
---- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
-+++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 13:41:04.842597850 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 13:41:04.842597850 +0200
@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
provider_id_(provider_id) {}
@@ -16,11 +16,33 @@ diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noe
bool MediaSink::IsMaybeCloudSink() const {
switch (icon_type_) {
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
-diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.cc
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.cc.el7-noexcept 2019-08-23 13:45:57.673815531 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.cc 2019-08-23 13:47:02.463525385 +0200
+@@ -42,7 +42,7 @@ QueryResults::QueryResults(QueryResults&
+ Swap(&other);
+ }
+
+-QueryResults& QueryResults::operator=(QueryResults&& other) noexcept {
++QueryResults& QueryResults::operator=(QueryResults&& other) {
+ Swap(&other);
+ return *this;
+ }
+diff -up chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/history_types.h
+--- chromium-76.0.3809.100/components/history/core/browser/history_types.h.el7-noexcept 2019-08-23 13:46:11.455966965 +0200
++++ chromium-76.0.3809.100/components/history/core/browser/history_types.h 2019-08-23 13:46:48.022367596 +0200
+@@ -143,7 +143,7 @@ class QueryResults {
+ ~QueryResults();
+
+ QueryResults(QueryResults&& other) noexcept;
+- QueryResults& operator=(QueryResults&& other) noexcept;
++ QueryResults& operator=(QueryResults&& other);
+
+ void set_reached_beginning(bool reached) { reached_beginning_ = reached; }
+ bool reached_beginning() { return reached_beginning_; }
diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
---- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
-+++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 13:40:42.633353810 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 13:40:42.576353183 +0200
@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
PolicyMap::Entry::~Entry() = default;
@@ -31,8 +53,8 @@ diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-
PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
Entry copy;
diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
---- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
-+++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 13:40:44.224371292 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 13:40:44.190370918 +0200
@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
default;
@@ -52,8 +74,8 @@ diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.e
bool AccountInfo::IsEmpty() const {
return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 13:40:25.481165338 +0200
@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
@@ -64,8 +86,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept
CoreAccountId::CoreAccountId(const char* id) : id(id) {}
diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 13:40:25.468165195 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 13:40:25.481165338 +0200
@@ -19,7 +19,7 @@ struct CoreAccountId {
~CoreAccountId();
@@ -76,8 +98,8 @@ diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept
// Those implicit constructor and conversion operator allow to
// progressively migrate the code to use this struct. Removing
diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
---- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
-+++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-09 16:48:01.000000000 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 13:40:25.482165349 +0200
@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
const GPUInfo::GPUDevice& other) = default;
commit 250b15f9a2ed573472abda7e6cc642f2c3372167
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 11:01:37 2019 +0200
More el7 fixes
Merge the previously committed change in to the el7-noexcept patch and
revert another change that is needed on Fedora, but breaking the build
on EL7.
diff --git a/chromium-75.0.3770.100-el7-fix-noexcept.patch b/chromium-75.0.3770.100-el7-fix-noexcept.patch
deleted file mode 100644
index eaba072..0000000
--- a/chromium-75.0.3770.100-el7-fix-noexcept.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -up chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc
---- chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-06-18 11:47:55.000000000 -0400
-+++ chromium-75.0.3770.100/chrome/common/media_router/media_sink.cc 2019-06-20 10:17:27.440446569 -0400
-@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
- provider_id_(provider_id) {}
-
- MediaSink::MediaSink(const MediaSink& other) = default;
--MediaSink::MediaSink(MediaSink&& other) noexcept = default;
-+MediaSink::MediaSink(MediaSink&& other) = default;
- MediaSink::MediaSink() = default;
- MediaSink::~MediaSink() = default;
-
- MediaSink& MediaSink::operator=(const MediaSink& other) = default;
--MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
-+MediaSink& MediaSink::operator=(MediaSink&& other) = default;
-
- bool MediaSink::IsMaybeCloudSink() const {
- switch (icon_type_) {
-diff -up chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-75.0.3770.100/components/policy/core/common/policy_map.cc
---- chromium-75.0.3770.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-06-18 11:48:01.000000000 -0400
-+++ chromium-75.0.3770.100/components/policy/core/common/policy_map.cc 2019-06-20 10:17:27.444446463 -0400
-@@ -31,7 +31,7 @@ PolicyMap::Entry::Entry(
- PolicyMap::Entry::~Entry() = default;
-
- PolicyMap::Entry::Entry(Entry&&) noexcept = default;
--PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
-+PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
-
- PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
- Entry copy;
-diff -up chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-75.0.3770.100/components/signin/core/browser/account_info.cc
---- chromium-75.0.3770.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-06-20 10:17:27.444446463 -0400
-+++ chromium-75.0.3770.100/components/signin/core/browser/account_info.cc 2019-06-20 10:19:17.959532865 -0400
-@@ -51,7 +51,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
- CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
- default;
-
--CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
-+CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
- default;
-
- bool CoreAccountInfo::IsEmpty() const {
-diff -up chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept chromium-75.0.3770.100/gpu/config/gpu_info.cc
---- chromium-75.0.3770.100/gpu/config/gpu_info.cc.el7-noexcept 2019-06-18 11:48:10.000000000 -0400
-+++ chromium-75.0.3770.100/gpu/config/gpu_info.cc 2019-06-20 10:17:27.445446437 -0400
-@@ -181,7 +181,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
- const GPUInfo::GPUDevice& other) = default;
-
- GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
-- GPUInfo::GPUDevice&& other) noexcept = default;
-+ GPUInfo::GPUDevice&& other) = default;
-
- GPUInfo::GPUInfo()
- : optimus(false),
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
deleted file mode 100644
index 09fccf6..0000000
--- a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
-@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
-
- CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
-
--CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
--
- CoreAccountId::CoreAccountId(const char* id) : id(id) {}
-
- CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
-diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
---- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
-+++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
-@@ -19,7 +19,6 @@ struct CoreAccountId {
- ~CoreAccountId();
-
- CoreAccountId& operator=(const CoreAccountId&);
-- CoreAccountId& operator=(CoreAccountId&&) noexcept;
-
- // Those implicit constructor and conversion operator allow to
- // progressively migrate the code to use this struct. Removing
diff --git a/chromium-76.0.3809.100-el7-noexcept.patch b/chromium-76.0.3809.100-el7-noexcept.patch
new file mode 100644
index 0000000..054d42e
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-noexcept.patch
@@ -0,0 +1,89 @@
+diff -up chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc
+--- chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc.el7-noexcept 2019-08-23 10:35:14.911079823 +0200
++++ chromium-76.0.3809.100/chrome/common/media_router/media_sink.cc 2019-08-23 10:35:14.911079823 +0200
+@@ -19,12 +19,12 @@ MediaSink::MediaSink(const MediaSink::Id
+ provider_id_(provider_id) {}
+
+ MediaSink::MediaSink(const MediaSink& other) = default;
+-MediaSink::MediaSink(MediaSink&& other) noexcept = default;
++MediaSink::MediaSink(MediaSink&& other) = default;
+ MediaSink::MediaSink() = default;
+ MediaSink::~MediaSink() = default;
+
+ MediaSink& MediaSink::operator=(const MediaSink& other) = default;
+-MediaSink& MediaSink::operator=(MediaSink&& other) noexcept = default;
++MediaSink& MediaSink::operator=(MediaSink&& other) = default;
+
+ bool MediaSink::IsMaybeCloudSink() const {
+ switch (icon_type_) {
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.cc.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.cc
+diff -up chromium-76.0.3809.100/components/history/core/browser/url_row.h.el7-noexcept chromium-76.0.3809.100/components/history/core/browser/url_row.h
+diff -up chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept chromium-76.0.3809.100/components/policy/core/common/policy_map.cc
+--- chromium-76.0.3809.100/components/policy/core/common/policy_map.cc.el7-noexcept 2019-08-23 10:35:01.127962168 +0200
++++ chromium-76.0.3809.100/components/policy/core/common/policy_map.cc 2019-08-23 10:35:01.075961724 +0200
+@@ -52,7 +52,7 @@ PolicyMap::Entry::Entry(
+ PolicyMap::Entry::~Entry() = default;
+
+ PolicyMap::Entry::Entry(Entry&&) noexcept = default;
+-PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) noexcept = default;
++PolicyMap::Entry& PolicyMap::Entry::operator=(Entry&&) = default;
+
+ PolicyMap::Entry PolicyMap::Entry::DeepCopy() const {
+ Entry copy;
+diff -up chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept chromium-76.0.3809.100/components/signin/core/browser/account_info.cc
+--- chromium-76.0.3809.100/components/signin/core/browser/account_info.cc.el7-noexcept 2019-08-23 10:35:02.341972531 +0200
++++ chromium-76.0.3809.100/components/signin/core/browser/account_info.cc 2019-08-23 10:35:02.314972300 +0200
+@@ -52,7 +52,7 @@ CoreAccountInfo::CoreAccountInfo(CoreAcc
+ CoreAccountInfo& CoreAccountInfo::operator=(const CoreAccountInfo& other) =
+ default;
+
+-CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) noexcept =
++CoreAccountInfo& CoreAccountInfo::operator=(CoreAccountInfo&& other) =
+ default;
+
+ bool CoreAccountInfo::IsEmpty() const {
+@@ -69,7 +69,7 @@ AccountInfo::AccountInfo(AccountInfo&& o
+
+ AccountInfo& AccountInfo::operator=(const AccountInfo& other) = default;
+
+-AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default;
++AccountInfo& AccountInfo::operator=(AccountInfo&& other) = default;
+
+ bool AccountInfo::IsEmpty() const {
+ return CoreAccountInfo::IsEmpty() && hosted_domain.empty() &&
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.el7-noexcept 2019-08-23 10:52:29.047592493 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 10:52:48.243763687 +0200
+@@ -14,7 +14,7 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) = default;
+
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.el7-noexcept 2019-08-23 10:52:31.541614735 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 10:53:03.252898948 +0200
+@@ -19,7 +19,7 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
++ CoreAccountId& operator=(CoreAccountId&&);
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+diff -up chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept chromium-76.0.3809.100/gpu/config/gpu_info.cc
+--- chromium-76.0.3809.100/gpu/config/gpu_info.cc.el7-noexcept 2019-08-23 10:38:00.659317249 +0200
++++ chromium-76.0.3809.100/gpu/config/gpu_info.cc 2019-08-23 10:38:00.656317223 +0200
+@@ -166,7 +166,7 @@ GPUInfo::GPUDevice& GPUInfo::GPUDevice::
+ const GPUInfo::GPUDevice& other) = default;
+
+ GPUInfo::GPUDevice& GPUInfo::GPUDevice::operator=(
+- GPUInfo::GPUDevice&& other) noexcept = default;
++ GPUInfo::GPUDevice&& other) = default;
+
+ GPUInfo::GPUInfo()
+ : optimus(false),
diff --git a/chromium.spec b/chromium.spec
index e09a0ac..c961abc 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -310,9 +310,7 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
# Use lstdc++ on EPEL7 only
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
-Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
-# el7 only patch as it doesn't like on of the operator= change in patch59
-Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
+Patch102: chromium-76.0.3809.100-el7-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -887,7 +885,8 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
-%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
+# Revert patch58 because it's breaking the build on el7
+%patch58 -R -p1
%endif
# Feature specific patches
commit fcd18a8550ce791c6826f2ccbabb31ffef32a923
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 23 07:54:57 2019 +0200
Fix the EL7 build as it doesn't like part of the upstream GCC patch
diff --git a/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..09fccf6
--- /dev/null
+++ b/chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,23 @@
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:35:16.544308344 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.cc 2019-08-23 07:35:34.115441446 +0200
+@@ -14,8 +14,6 @@ CoreAccountId::~CoreAccountId() = defaul
+
+ CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
+
+-CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
+-
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff -up chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel chromium-76.0.3809.100/google_apis/gaia/core_account_id.h
+--- chromium-76.0.3809.100/google_apis/gaia/core_account_id.h.gcc-accountinfo-move-noexcept-epel 2019-08-23 07:36:05.994682935 +0200
++++ chromium-76.0.3809.100/google_apis/gaia/core_account_id.h 2019-08-23 07:36:13.039736302 +0200
+@@ -19,7 +19,6 @@ struct CoreAccountId {
+ ~CoreAccountId();
+
+ CoreAccountId& operator=(const CoreAccountId&);
+- CoreAccountId& operator=(CoreAccountId&&) noexcept;
+
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
diff --git a/chromium.spec b/chromium.spec
index 8a246b7..e09a0ac 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -311,6 +311,8 @@ Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
Patch101: chromium-75.0.3770.100-epel7-stdc++.patch
# el7 only patch
Patch102: chromium-75.0.3770.100-el7-fix-noexcept.patch
+# el7 only patch as it doesn't like on of the operator= change in patch59
+Patch103: chromium-76.0.3809.100-el7-gcc-accountinfo-move-noexcept.patch
# In file included from ../linux/directory.c:21:
# In file included from ../../../../native_client/src/nonsfi/linux/abi_conversion.h:20:
@@ -885,6 +887,7 @@ udev.
%patch100 -p1 -b .kmaxskip
%patch101 -p1 -b .epel7
%patch102 -p1 -b .el7-noexcept
+%patch103 -p1 -b .el7-gcc-accountinfo-move-noexcept
%endif
# Feature specific patches
commit 32351d81ff14bde0babcab29de22c9c28d8a53d7
Author: Nicolas Chauvet <kwizart(a)gmail.com>
Date: Fri Aug 23 18:15:28 2019 +0200
Clean-up gitignore using wildcard
diff --git a/.gitignore b/.gitignore
index 2bfdc54..06de94b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,51 +1,7 @@
/chromium-52.0.2743.75-clean.tar.xz
/depot_tools.git-master.tar.gz
/policy_templates.zip
-/chromium-52.0.2743.82-clean.tar.xz
-/chromium-52.0.2743.116-clean.tar.xz
-/chromium-53.0.2785.92-clean.tar.xz
-/chromium-53.0.2785.101-clean.tar.xz
-/chromium-53.0.2785.113-clean.tar.xz
-/chromium-53.0.2785.116-clean.tar.xz
-/chromium-53.0.2785.143-clean.tar.xz
-/chromium-54.0.2840.59-clean.tar.xz
-/chromium-54.0.2840.71-clean.tar.xz
-/chromium-54.0.2840.90-clean.tar.xz
-/chromium-54.0.2840.100.tar.xz
-/chromium-54.0.2840.100-clean.tar.xz
-/chromium-55.0.2883.75-clean.tar.xz
-/chromium-55.0.2883.87-clean.tar.xz
-/chromium-56.0.2924.87-clean.tar.xz
-/chromium-57.0.2987.110-clean.tar.xz
-/chromium-57.0.2987.133-clean.tar.xz
-/chromium-58.0.3029.81-clean.tar.xz
-/chromium-58.0.3029.110-clean.tar.xz
-/chromium-59.0.3071.86-clean.tar.xz
-/chromium-59.0.3071.104-clean.tar.xz
-/chromium-59.0.3071.109-clean.tar.xz
-/chromium-59.0.3071.115-clean.tar.xz
-/chromium-59.0.3071.109-freetype.tar.bz2
-/chromium-60.0.3112.90-clean.tar.xz
-/chromium-60.0.3112.101-clean.tar.xz
-/chromium-60.0.3112.113-clean.tar.xz
-/chromium-60.0.3112.113.tar.xz
-/chromium-61.0.3163.79-clean.tar.xz
-/chromium-61.0.3163.100-clean.tar.xz
-/chromium-62.0.3202.75-clean.tar.xz
-/chromium-62.0.3202.89-clean.tar.xz
-/chromium-63.0.3239.84-clean.tar.xz
-/chromium-63.0.3239.108-clean.tar.xz
-/chromium-64.0.3282.119-clean.tar.xz
-/chromium-64.0.3282.140-clean.tar.xz
-/chromium-64.0.3282.167-clean.tar.xz
-/chromium-64.0.3282.186-clean.tar.xz
-/chromium-65.0.3325.146-clean.tar.xz
-/chromium-65.0.3325.162-clean.tar.xz
-/chromium-65.0.3325.181-clean.tar.xz
-/chromium-66.0.3359.139-clean.tar.xz
-/chromium-66.0.3359.170-clean.tar.xz
-/chromium-66.0.3359.181-clean.tar.xz
-/chromium-67.0.3396.62-clean.tar.xz
+/chromium-*.tar.xz
/gelasio.zip
/MuktiNarrow-0.94.tar.bz2
/NotoSansCJKjp-hinted.zip
@@ -62,23 +18,5 @@
/Tinos-Bold.ttf
/Tinos-Italic.ttf
/Tinos-Regular.ttf
-/chromium-67.0.3396.79-clean.tar.xz
-/chromium-67.0.3396.87-clean.tar.xz
-/chromium-67.0.3396.99-clean.tar.xz
-/chromium-68.0.3440.106-clean.tar.xz
/Ahem.ttf
-/chromium-69.0.3497.92-clean.tar.xz
-/chromium-69.0.3497.100-clean.tar.xz
-/chromium-70.0.3538.77-clean.tar.xz
-/chromium-70.0.3538.110-clean.tar.xz
-/chromium-71.0.3578.98-clean.tar.xz
/node-v8.9.1-linux-x64.tar.gz
-/chromium-72.0.3626.121-clean.tar.xz
-/chromium-73.0.3683.75-clean.tar.xz
-/chromium-73.0.3683.86-clean.tar.xz
-/chromium-73.0.3683.103-clean.tar.xz
-/chromium-74.0.3729.169-clean.tar.xz
-/chromium-75.0.3770.80-clean.tar.xz
-/chromium-75.0.3770.90-clean.tar.xz
-/chromium-75.0.3770.100-clean.tar.xz
-/chromium-76.0.3809.100-clean.tar.xz
commit 02877cca954a9e0168139293baedef66fd483257
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 21 13:51:11 2019 +0200
Update the list of private libraries and remove a pak file that was removed
diff --git a/chromium.spec b/chromium.spec
index e06bcdd..8a246b7 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -54,9 +54,9 @@
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so|%{chromium_path}/lib/.*\\.so.*
%if 0%{?rhel} == 7
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg|libfontconfig
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia|libfontconfig
%else
-%global privlibs libEGL|libGLESv2|libVkICD_mock_icd|libVkLayer_core_validation|libVkLayer_object_lifetimes|libVkLayer_stateless_validation|libVkLayer_thread_safety|libVkLayer_unique_objects|libaccessibility|libandroid_mojo_bindings_shared|libanimation|libapdu|libaura|libaura_extra|libauthenticator_test_mojo_bindings_shared|libbase|libbase_i18n|libbindings|libbindings_base|libblink_common|libblink_controller|libblink_core|libblink_embedded_frame_sink_mojo_bindings_shared|libblink_features|libblink_modules|libblink_mojo_bindings_shared|libblink_mojom_broadcastchannel_bindings_shared|libblink_platform|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcbor|libcc|libcc_animation|libcc_base|libcc_debug|libcc_mojo_embedder|libcc_paint|libcdm_manager|libcertificate_matching|libchrome_features|libchromium_sqlite3|libclearkeycdm|libclient|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcontent_common_mojo_bindings_shared|libcontent_public_common_mojo_bindings_shared|libcontent_service_cpp|libcontent_service_mojom|libcontent_service_mojom_shared|libcrash_key|libcrcrypto|libdbus|libdbus_thread_linux|libdevice_base|libdevice_event_log|libdevice_features|libdevice_gamepad|libdevice_vr|libdevice_vr_mojo_bindings|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libembedder_switches|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libextras|libfido|libfingerprint|libfreetype_harfbuzz|libgamepad_mojom|libgamepad_mojom_blink|libgamepad_mojom_shared|libgamepad_shared_typemap_traits|libgcm|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_buffer_types|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_switches|libgfx_x11|libgin|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2|libgles2_implementation|libgles2_utils|libgpu|libgpu_ipc_service|libgtkui|libheadless|libhost|libicui18n|libicuuc|libinterfaces_shared|libipc|libipc_mojom|libipc_mojom_shared|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|liblearning_common|liblearning_impl|libleveldatabase|liblive_tab_count_metrics|libmanager|libmedia_blink|libmedia_filters_jpeg_parser|libmedia_gpu|libmedia_mojo_services|libmedia_session_cpp|libmedia_webrtc|libmemory_instrumentation|libmessage_center|libmessage_support|libmetrics_cpp|libmidi|libmirclient.so.9|libmirroring_service|libmojo_base_lib|libmojo_base_mojom|libmojo_base_mojom_blink|libmojo_base_mojom_shared|libmojo_base_shared_typemap_traits|libmojo_core_embedder|libmojo_core_embedder_internal|libmojo_core_ports|libmojo_cpp_platform|libmojo_ime_lib|libmojo_mojom_bindings|libmojo_mojom_bindings_shared|libmojo_public_system|libmojo_public_system_cpp|libmojom_core_shared|libmojom_mhtml_load_result_shared|libmojom_modules_shared|libmojom_platform_shared|libmpris|libnative_theme|libnet|libnet_with_v8|libnetwork_cpp|libnetwork_cpp_base|libnetwork_service|libnetwork_session_configurator|libonc|libos_crypt|libperfetto|libplatform|libplatform_window_handler_libs|libpolicy_component|libpolicy_proto|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libraster|libresource_coordinator_cpp_base|libresource_coordinator_cpp_features|libresource_coordinator_public_mojom|libresource_coordinator_public_mojom_blink|libresource_coordinator_public_mojom_shared|libsandbox|libsandbox_services|libscheduling_metrics|libseccomp_bpf|libservice|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom|libservice_manager_mojom_blink|libservice_manager_mojom_constants|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_shared|libservice_manager_mojom_traits|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libtracing_cpp|libtracing_mojom|libtracing_mojom_shared|libui_accessibility_ax_mojom|libui_accessibility_ax_mojom_blink|libui_accessibility_ax_mojom_shared|libui_base|libui_base_clipboard|libui_base_clipboard_types|libui_base_features|libui_base_idle|libui_base_ime|libui_base_ime_init|libui_base_ime_linux|libui_base_ime_types|libui_base_x|libui_data_pack|libui_devtools|libui_message_center_cpp|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libusb_shared|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libviz_common|libviz_resource_format_utils|libviz_vulkan_context_provider|libvr_base|libvr_common|libvulkan_init|libvulkan_wrapper|libvulkan_x11|libweb_dialogs|libweb_feature_mojo_bindings_mojom|libweb_feature_mojo_bindings_mojom_blink|libweb_feature_mojo_bindings_mojom_shared|libwebdata_common|libwebgpu|libwebview|libwm|libwm_public|libwtf|libx11_events_platform|libx11_window|libzygote|libmedia|libffmpeg
+%global privlibs libevents_devices_x11|libgfx_x11|libevents_x|libgl_wrapper|libmemory_instrumentation|libdevice_vr_mojo_bindings|libdiscardable_memory_common|libui_base_ime_init|libnetwork_cpp_base|libos_crypt|libmessage_center|libmanager|libdevice_gamepad|libembedder|libGLESv2|libtracing|libskia|libgl_in_process_context|libapdu|libbluetooth|libviz_resource_format_utils|libmojo_mojom_bindings|libblink_platform|libmojom_modules_shared|libwebdata_common|libshell_dialogs|libresource_coordinator_public_mojom_blink|libgles2_utils|libgpu_ipc_service|libcaptive_portal|libvr_common|libgles2|libdisplay|libgfx_ipc_geometry|libcc_paint|libandroid_mojo_bindings_shared|libipc_mojom_shared|libffmpeg|liburl_matcher|libbindings|libservice|libwtf|libcommon|libleveldatabase|libnetwork_session_configurator|libaura|libcloud_policy_proto_generated_compile|libservice_manager_mojom_constants|libui_touch_selection|libmojo_base_lib|libservice_manager_cpp_types|libservice_manager_mojom_blink|libmojo_core_embedder|libblink_embedded_frame_sink_mojo_bindings_shared|libgesture_detection|liburl_ipc|libweb_feature_mojo_bindings_mojom|libscheduling_metrics|libresource_coordinator_cpp_features|libcc|libdiscardable_memory_client|libsessions|libblink_common|libipc|libvulkan_init|libblink_mojom_broadcastchannel_bindings_shared|libheadless_non_renderer|libcbor|libmojo_core_embedder_internal|libmojo_public_system_cpp|libmojom_core_shared|libgfx|libusb_shared|libtracing_mojom|libuser_manager|libnet|libwebgpu|libplatform_window_handler_libs|libmojo_base_mojom_shared|libui_base|libprinting|libcontent_service_mojom_shared|libstartup_tracing|libdevice_vr_mojo_bindings_blink|libraster|libsandbox|libv8_libbase|libevents|libui_base_idle|libgles2_implementation|libkeyed_service_content|libprefs|libVkLayer_core_validation|libchrome_features|libdiscardable_memory_service|libcapture_lib|libperfetto|libicui18n|libdomain_reliability|libweb_dialogs|libcc_animation|libbase|libtracing_cpp|libGLESv2|libEGL|libVkLayer_thread_safety|libmedia_gpu|libparsers|libservice_manager_cpp|liblearning_common|libdevices|libvulkan_wrapper|libservice_manager_mojom_shared|libgfx_switches|libkeycodes_x11|libweb_feature_mojo_bindings_mojom_shared|liburl|libmpris|libppapi_proxy|libmojo_base_mojom|libprotobuf_lite|libui_base_features|libdevice_vr|libwm_public|libcolor_space|libseccomp_bpf|libinterfaces_shared|libui_base_x|libicuuc|libwebview|libdevice_event_log|libVkLayer_object_lifetimes|libvulkan_x11|libproxy_config|libnetwork_cpp|libextras|libVkICD_mock_icd|libv8_libplatform|libresource_coordinator_public_mojom|libwm|libviews|libsuid_sandbox_client|libEGL|libcapture_base|libnative_theme|libcrcrypto|libmojo_public_system|libservice_manager_mojom_constants_shared|libui_accessibility_ax_mojom_blink|libplatform|libui_data_pack|libgfx_ipc_buffer_types|libclearkeycdm|libmetrics_cpp|libmojo_base_shared_typemap_traits|libx11_events_platform|libcrash_key|libclient|libblink_controller|libfido|libfreetype_harfbuzz|libmojo_mojom_bindings_shared|libaccessibility|libstub_window|libui_base_ime|libpolicy_component|libweb_bluetooth_mojo_bindings_shared|libmojo_core_ports|libsandbox_services|libstorage_common|libviz_vulkan_context_provider|libcontent_common_mojo_bindings_shared|libgamepad_mojom_blink|libkeyed_service_core|libmedia_mojo_services|libmojo_ime_lib|libblink_modules|libgcm|libsql|libgeometry_skia|libVkLayer_unique_objects|libweb_feature_mojo_bindings_mojom_blink|libui_base_ime_linux|libdisplay_types|libdevice_vr_mojo_bindings_shared|libcc_base|libtracing_mojom_shared|libmedia_blink|libcc_mojo_embedder|libpdfium|libevents_ozone_layout|libgfx_ipc_color|libgtkui|libpolicy_proto|libcodec|libgpu|libcontent_service_cpp|libmojom_mhtml_load_result_shared|libdisplay_util|libcontent_service_mojom|libbase_i18n|libservice_manager_mojom_constants_blink|libcompositor|libmojo_base_mojom_blink|libui_message_center_cpp|libsnapshot|libdbus_thread_linux|libtab_count_metrics|libpublic|libui_accessibility_ax_mojom|liblearning_impl|librange|libbrowser_ui_views|libcontent|libvr_base|libppapi_host|libservice_manager_mojom_traits|libgamepad_mojom|libcertificate_matching|libgfx_ipc|libgl_init|libVkLayer_stateless_validation|libshared_with_blink|libshared_memory_support|libevents_base|libnet_with_v8|libmedia_webrtc|libsurface|libcontent_public_common_mojo_bindings_shared|libaura_extra|libdevice_base|libonc|libcdm_manager|libmojom_platform_shared|libui_accessibility_ax_mojom_shared|libhost|libblink_features|libdevice_features|libmirroring_service|libdbus|libgeometry|libchromium_sqlite3|libgamepad_mojom_shared|libauthenticator_test_mojo_bindings_shared|libboringssl|libembedder_switches|libgfx_ipc_skia|libzygote|libmedia_session_cpp|libv8|libnetwork_service|libx11_window|libui_base_clipboard|libanimation|libmessage_support|libui_devtools|libgamepad_shared_typemap_traits|libfingerprint|libviz_common|libppapi_shared|libstorage_browser|libbindings_base|libservice_manager_mojom|libblink_core|libgin|libresource_coordinator_public_mojom_shared|libuser_prefs|libui_base_ime_types|libipc_mojom|libmidi|libmojo_cpp_platform|libcc_debug|libui_base_clipboard_types|libmedia
%endif
%global __requires_exclude ^(%{privlibs})\\.so*
@@ -1753,7 +1753,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chrome_*.pak
%{chromium_path}/resources.pak
%{chromium_path}/icudtl.dat
-%{chromium_path}/views_mus_resources.pak
%{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh
%{chromium_path}/MEIPreload/
commit 234bd983cba301fe205f7b9c924fd5acbbf415c4
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 22:07:44 2019 +0200
Fix the previously uploaded patch
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
index c59702f..aec3107 100644
--- a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -12,13 +12,13 @@ diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-conste
MessageTracker::MessageTracker() = default;
diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
---- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 22:02:25.625970954 +0200
+++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
@@ -36,7 +36,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
-- static constexpr base::TimeDelta kCleanupInterval;
+- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::TimeDelta::FromMinutes(2);
commit 05ed80ce7ee4f1c18ac322cf720e62d21ec15bbc
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Tue Aug 20 21:36:06 2019 +0200
Fix the build of remoting_all target
diff --git a/chromium-76.0.3809.100-gcc-remoting-constexpr.patch b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
new file mode 100644
index 0000000..c59702f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-remoting-constexpr.patch
@@ -0,0 +1,27 @@
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.cc
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.cc.gcc-constexpr 2019-08-09 16:48:08.000000000 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.cc 2019-08-20 21:29:14.545465656 +0200
+@@ -9,8 +9,7 @@
+ namespace remoting {
+
+ // static
+-const base::TimeDelta MessageTracker::kCleanupInterval =
+- base::TimeDelta::FromMinutes(2);
++constexpr base::TimeDelta MessageTracker::kCleanupInterval;
+
+ MessageTracker::MessageTracker() = default;
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker.h
+--- chromium-76.0.3809.100/remoting/signaling/message_tracker.h.gcc-constexpr 2019-08-20 21:27:53.539653248 +0200
++++ chromium-76.0.3809.100/remoting/signaling/message_tracker.h 2019-08-20 21:28:23.371952434 +0200
+@@ -36,7 +36,8 @@ class MessageTracker final {
+
+ // All IDs older than now - kCleanupInterval will be eventually removed, but
+ // they are not guaranteed to be immediately removed after the interval.
+- static constexpr base::TimeDelta kCleanupInterval;
++ static constexpr base::TimeDelta kCleanupInterval =
++ base::TimeDelta::FromMinutes(2);
+
+ void RemoveExpiredIds();
+
+diff -up chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc.gcc-constexpr chromium-76.0.3809.100/remoting/signaling/message_tracker_unittest.cc
diff --git a/chromium-76.0.3809.100-vtable-symbol-undefined.patch b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
new file mode 100644
index 0000000..64532df
--- /dev/null
+++ b/chromium-76.0.3809.100-vtable-symbol-undefined.patch
@@ -0,0 +1,11 @@
+diff -up chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc
+--- chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc.vtable-symbol-undefined 2019-08-20 21:21:24.901899270 +0200
++++ chromium-76.0.3809.100/net/quic/platform/impl/quic_default_proof_providers_impl.cc 2019-08-20 21:19:30.361746211 +0200
+@@ -18,6 +18,7 @@
+ #include "net/quic/crypto/proof_verifier_chromium.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
+ #include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
++#include "net/quic/platform/impl/quic_flags_impl.cc"
+
+ DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
+ certificate_file,
diff --git a/chromium.spec b/chromium.spec
index f003849..e06bcdd 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -297,10 +297,13 @@ Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
-# TBD - need to submit it
-# In GCC one can't use alignas() for exported classes (as described in
-# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+# In GCC one can't use alignas() for exported classes
+# https://chromium.googlesource.com/chromium/src.git/+/8148fd96ae04a1150a9c...
Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
+# Needs to be submitted..
+Patch62: chromium-76.0.3809.100-gcc-remoting-constexpr.patch
+# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
+Patch63: chromium-76.0.3809.100-vtable-symbol-undefined.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -874,6 +877,8 @@ udev.
%patch59 -p1 -b .gcc-accountinfo-move-noexcept
%patch60 -p1 -b .gcc-themeservice-includes
%patch61 -p1 -b .gcc-no-alignas-and-export
+%patch62 -p1 -b .gcc-remoting-constexpr
+%patch63 -p1 -b .vtable-symbol-undefined
# EPEL specific patches
%if 0%{?rhel} == 7
commit f32de4175a201b0ba68395cf00dec837e06d6079
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Fri Aug 16 13:58:53 2019 +0200
//third_party dependency missing for remoting
diff --git a/chromium.spec b/chromium.spec
index de9e05b..f003849 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1207,6 +1207,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'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/google_trust_services' \
'third_party/googletest' \
'third_party/glslang' \
'third_party/grpc' \
commit 6ab36cdf55a4aa71200853ab75f3532831f1adab
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 21:14:35 2019 +0200
Backport and create more of the GCC fixes
diff --git a/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
new file mode 100644
index 0000000..5f45a8f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
@@ -0,0 +1,53 @@
+From 719df31ffd4d52b473509cf77acd9c02ec112acb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 18:38:12 +0200
+Subject: [PATCH] GCC: fix noexcept from move constructor and assign operators of AccountInfo
+
+AccountInfo declares them as noexcept and uses default implementation,
+so all its members (including AccountId) should be noexcept. But AccountId
+is not noexcept. To fix it we just need to make CoreAccountId move
+operator/assign operator noexcept.
+
+Bug: 819294
+Change-Id: Ice38654ab7cf3b9eaa6f54aa36e1fec329264f98
+---
+
+diff --git a/google_apis/gaia/core_account_id.cc b/google_apis/gaia/core_account_id.cc
+index d808082..12eefe3 100644
+--- a/google_apis/gaia/core_account_id.cc
++++ b/google_apis/gaia/core_account_id.cc
+@@ -6,8 +6,16 @@
+
+ CoreAccountId::CoreAccountId() = default;
+
++CoreAccountId::CoreAccountId(const CoreAccountId&) = default;
++
++CoreAccountId::CoreAccountId(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::~CoreAccountId() = default;
+
++CoreAccountId& CoreAccountId::operator=(const CoreAccountId&) = default;
++
++CoreAccountId& CoreAccountId::operator=(CoreAccountId&&) noexcept = default;
++
+ CoreAccountId::CoreAccountId(const char* id) : id(id) {}
+
+ CoreAccountId::CoreAccountId(std::string&& id) : id(std::move(id)) {}
+diff --git a/google_apis/gaia/core_account_id.h b/google_apis/gaia/core_account_id.h
+index 5ea602a..c2d1911 100644
+--- a/google_apis/gaia/core_account_id.h
++++ b/google_apis/gaia/core_account_id.h
+@@ -14,8 +14,13 @@
+ // for design and tracking).
+ struct CoreAccountId {
+ CoreAccountId();
++ CoreAccountId(const CoreAccountId&);
++ CoreAccountId(CoreAccountId&&) noexcept;
+ ~CoreAccountId();
+
++ CoreAccountId& operator=(const CoreAccountId&);
++ CoreAccountId& operator=(CoreAccountId&&) noexcept;
++
+ // Those implicit constructor and conversion operator allow to
+ // progressively migrate the code to use this struct. Removing
+ // them is tracked by https://crbug.com/959161
diff --git a/chromium-76.0.3809.100-gcc-history-move-noexcept.patch b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
new file mode 100644
index 0000000..2876de4
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-history-move-noexcept.patch
@@ -0,0 +1,42 @@
+From abe74a7f0c53a43a9706a42d71b7ff4a5da53380 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 10:27:19 +0200
+Subject: [PATCH] GCC: add noexcept move assignment in history::URLRow
+
+In GCC, build is failing because history::QueryURLResult declares its move
+assignment operator as noexcept using default implementation. That requires
+its members to provide a move assignment operator that is noexcept too.
+
+But URLRow was missing noexcept declaration in move assignment operator (even
+though it was providing noexcept to its move constructor).
+
+Bug: 819294
+Change-Id: I726e3cf7a4a50c9206a5d0fba8a561d363483d4f
+---
+
+diff --git a/components/history/core/browser/url_row.cc b/components/history/core/browser/url_row.cc
+index 44c22fd..aec0101 100644
+--- a/components/history/core/browser/url_row.cc
++++ b/components/history/core/browser/url_row.cc
+@@ -26,7 +26,7 @@
+ }
+
+ URLRow& URLRow::operator=(const URLRow& other) = default;
+-URLRow& URLRow::operator=(URLRow&& other) = default;
++URLRow& URLRow::operator=(URLRow&& other) noexcept = default;
+
+ void URLRow::Swap(URLRow* other) {
+ std::swap(id_, other->id_);
+diff --git a/components/history/core/browser/url_row.h b/components/history/core/browser/url_row.h
+index 8f6f9cf..31a1ef8 100644
+--- a/components/history/core/browser/url_row.h
++++ b/components/history/core/browser/url_row.h
+@@ -35,7 +35,7 @@
+
+ virtual ~URLRow();
+ URLRow& operator=(const URLRow& other);
+- URLRow& operator=(URLRow&& other);
++ URLRow& operator=(URLRow&& other) noexcept;
+
+ URLID id() const { return id_; }
+
diff --git a/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
new file mode 100644
index 0000000..cc91d1e
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
@@ -0,0 +1,14 @@
+diff -up chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h
+--- chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h.gcc-no-alignas 2019-08-09 16:48:13.000000000 +0200
++++ chromium-76.0.3809.100/third_party/blink/renderer/core/css/css_property_value_set.h 2019-08-15 21:04:30.231532746 +0200
+@@ -176,8 +176,8 @@ class CSSLazyPropertyParser
+ DISALLOW_COPY_AND_ASSIGN(CSSLazyPropertyParser);
+ };
+
+-class CORE_EXPORT alignas(Member<const CSSValue>) alignas(
+- CSSPropertyValueMetadata) ImmutableCSSPropertyValueSet
++class CORE_EXPORT ALIGNAS(alignof(Member<const CSSValue>))
++ ALIGNAS(alignof(CSSPropertyValueMetadata)) ImmutableCSSPropertyValueSet
+ : public CSSPropertyValueSet {
+ public:
+ ImmutableCSSPropertyValueSet(const CSSPropertyValue*,
diff --git a/chromium-76.0.3809.100-gcc-themeservice-includes.patch b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
new file mode 100644
index 0000000..ad40bb9
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-themeservice-includes.patch
@@ -0,0 +1,36 @@
+From d08ea83acc2f5ff395c1fe54f52687e92fe51c3b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 22:01:03 +0200
+Subject: [PATCH] IWYU: ThemeService requires NativeTheme
+
+As ThemeService referes to NativeTheme through a ScopedObserver,
+the full declaration is required.
+
+Bug: 819294
+Change-Id: I9d5bd2e87cfaa76e87f9b5509daea24848906a63
+---
+
+diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
+index d65388e2..23dc86d 100644
+--- a/chrome/browser/themes/theme_service.cc
++++ b/chrome/browser/themes/theme_service.cc
+@@ -54,7 +54,6 @@
+ #include "ui/gfx/color_palette.h"
+ #include "ui/gfx/image/image_skia.h"
+ #include "ui/native_theme/common_theme.h"
+-#include "ui/native_theme/native_theme.h"
+
+ #if BUILDFLAG(ENABLE_EXTENSIONS)
+ #include "base/scoped_observer.h"
+diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
+index 6c79c72..f93dc0d 100644
+--- a/chrome/browser/themes/theme_service.h
++++ b/chrome/browser/themes/theme_service.h
+@@ -25,6 +25,7 @@
+ #include "extensions/buildflags/buildflags.h"
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
++#include "ui/native_theme/native_theme.h"
+ #include "ui/native_theme/native_theme_observer.h"
+
+ class BrowserThemePack;
diff --git a/chromium.spec b/chromium.spec
index 64e3243..de9e05b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -291,6 +291,16 @@ Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
+# https://chromium.googlesource.com/chromium/src.git/+/138904af5d6a4158ef42...
+Patch58: chromium-76.0.3809.100-gcc-history-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/bdc24128b75008743d81...
+Patch59: chromium-76.0.3809.100-gcc-accountinfo-move-noexcept.patch
+# https://chromium.googlesource.com/chromium/src.git/+/5d7f227fa844e79568df...
+Patch60: chromium-76.0.3809.100-gcc-themeservice-includes.patch
+# TBD - need to submit it
+# In GCC one can't use alignas() for exported classes (as described in
+# https://cs.chromium.org/chromium/src/base/compiler_specific.h?rcl=a5bcc05...)
+Patch61: chromium-76.0.3809.100-gcc-no-alignas-and-export.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -860,6 +870,10 @@ udev.
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
%patch57 -p1 -b .gcc-initialization-order
+%patch58 -p1 -b .gcc-history-move-noexcept
+%patch59 -p1 -b .gcc-accountinfo-move-noexcept
+%patch60 -p1 -b .gcc-themeservice-includes
+%patch61 -p1 -b .gcc-no-alignas-and-export
# EPEL specific patches
%if 0%{?rhel} == 7
commit cfc50a59ed81324387d036954e96c08805d4f25a
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:10:04 2019 +0200
Upload the new cleaned tarball with aarch64 sources
Previously I forgot to pass the --ffmpegarm while generating the
tarball.
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index e190296..2f27435 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,7 +216,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
- libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index d6d53e4..b7a420d 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = 418ade473185717595b47fbf49ad58bd9bf7cece43f9e200108a2f4df1391bc6a09673e7c30a9958205e13650ed220ad289fe3d79d140612ec5c0bb7891fc8c8
commit 453dfe1db369095fe7f201737409eb6ff0829790
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Thu Aug 15 07:03:49 2019 +0200
Backport another upstream build fix
diff --git a/chromium-76.0.3809.100-gcc-initialization-order.patch b/chromium-76.0.3809.100-gcc-initialization-order.patch
new file mode 100644
index 0000000..3bf394f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-initialization-order.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 21:09:01 +0000
+Subject: [PATCH] GCC: XSetWindowAttributes struct initialization should keep order of declaration
+
+XSetWindowAttributes initialization of attributes in GLSurfaceGLX is not in the
+same order of the declaration. GCC fails because of that.
+
+Bug: 819294
+Change-Id: I8a97da980d5961a35a47ae4d0d8d558b85291f1f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646253
+Reviewed-by: Zhenyao Mo <zmo(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666436}
+---
+
+diff --git a/ui/gl/gl_surface_glx.cc b/ui/gl/gl_surface_glx.cc
+index f649dd4..0aa6892 100644
+--- a/ui/gl/gl_surface_glx.cc
++++ b/ui/gl/gl_surface_glx.cc
+@@ -583,10 +583,10 @@
+
+ XSetWindowAttributes swa = {
+ .background_pixmap = 0,
+- .bit_gravity = NorthWestGravity,
+- .colormap = g_colormap,
+ .background_pixel = 0, // ARGB(0,0,0,0) for compositing WM
+ .border_pixel = 0,
++ .bit_gravity = NorthWestGravity,
++ .colormap = g_colormap,
+ };
+ auto value_mask = CWBackPixmap | CWBitGravity | CWColormap | CWBorderPixel;
+ if (ui::IsCompositingManagerPresent() &&
diff --git a/chromium.spec b/chromium.spec
index f91b60b..64e3243 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -289,6 +289,8 @@ Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
+# https://chromium.googlesource.com/chromium/src.git/+/7dc76c8d9f4cfbce7cf1...
+Patch57: chromium-76.0.3809.100-gcc-initialization-order.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -857,6 +859,7 @@ udev.
%patch54 -p1 -b .gcc-feature-policy-parser
%patch55 -p1 -b .gcc-hasfraction-constexpr
%patch56 -p1 -b .gcc-move-explicit-initialization
+%patch57 -p1 -b .gcc-initialization-order
# EPEL specific patches
%if 0%{?rhel} == 7
commit 4376be3d5fd00f265b236e6bc9a7814e0b8dfa24
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:22:37 2019 +0200
Update the Pulseaudio's pa_operation_get_state() signature
Missed it while updating the Pulseaudio signatures.
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
index 37d3dfa..d4e2b46 100644
--- a/chromium-76.0.3809.100-pulse-api-change.patch
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -1,7 +1,7 @@
-diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
---- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
-+++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
-@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200
+@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info
pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
@@ -10,6 +10,11 @@ diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change ch
pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+-pa_operation_state_t pa_operation_get_state(pa_operation* o);
++pa_operation_state_t pa_operation_get_state(const pa_operation* o);
+ void pa_context_unref(pa_context* c);
+ void pa_operation_unref(pa_operation* o);
+ int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
int pa_stream_disconnect(pa_stream* s);
int pa_stream_drop(pa_stream *p);
commit a491a863e2af05db76391aec32b831d00342a716
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 23:17:42 2019 +0200
Add missing ffmpeg file on aarch64
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 2f27435..e190296 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -216,6 +216,7 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/videodsp_init.c \
libavcodec/x86/vorbisdsp_init.c \
libavcodec/autorename_libavcodec_mdct15.c \
+ libavcodec/aarch64/autorename_libavcodec_aarch64_fft_neon.S \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
diff --git a/sources b/sources
index 4e53fd1..d6d53e4 100644
--- a/sources
+++ b/sources
@@ -17,4 +17,4 @@ SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v8.9.1-linux-x64.tar.gz) = a707fd4567041c56e7f9d415e505e3fa650627f31def7fefdd7ec50f9e7066bb33332b67f479e1159d85e1105a7e6d034aad7429f4f3d034c9161170d7e0b844
-SHA512 (chromium-76.0.3809.100-clean.tar.xz) = f9fecad99618dffbfa3331b77dd82244447382761ca864380ea145d58f4bd90bb1c0fd3d433aca7d71f63e24c4120bff15c3a4dd9b86e94096cdf31c02b80cd5
+SHA512 (chromium-76.0.3809.100-clean.tar.xz) = ca39cf3df4716293d40ea78d8b6c7beb134340c42051dc5ae243f127729cc13fb60e9d168ccac29d55b4ef47aba598e3211caa8f3a8ed5689748873a36fce753
commit 8b12346860ef33607fa96d2ed9e4b0014889345c
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 16:52:41 2019 +0200
Pulseaudio changed the API in 12.99 and we need to adapt the signatures
diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch
new file mode 100644
index 0000000..37d3dfa
--- /dev/null
+++ b/chromium-76.0.3809.100-pulse-api-change.patch
@@ -0,0 +1,42 @@
+diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs
+--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse_api_change 2019-08-14 16:27:55.057702172 +0200
++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200
+@@ -24,7 +24,7 @@ pa_operation* pa_context_get_source_info
+ pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
+ pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
+ pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
+-pa_context_state_t pa_context_get_state(pa_context* c);
++pa_context_state_t pa_context_get_state(const pa_context* c);
+ pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
+ pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
+ void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
+@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream*
+ int pa_stream_disconnect(pa_stream* s);
+ int pa_stream_drop(pa_stream *p);
+ pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
+-uint32_t pa_stream_get_device_index(pa_stream* s);
++uint32_t pa_stream_get_device_index(const pa_stream* s);
+ int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
+-pa_stream_state_t pa_stream_get_state(pa_stream* p);
++pa_stream_state_t pa_stream_get_state(const pa_stream* p);
+ pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
+ pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
+ pa_proplist* pa_proplist_new(void);
+-int pa_proplist_contains(pa_proplist* p, const char* key);
++int pa_proplist_contains(const pa_proplist* p, const char* key);
+ void pa_proplist_free(pa_proplist* p);
+-const char* pa_proplist_gets(pa_proplist* p, const char* key);
++const char* pa_proplist_gets(const pa_proplist* p, const char* key);
+ int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
+-size_t pa_stream_readable_size(pa_stream *p);
++size_t pa_stream_readable_size(const pa_stream *p);
+ int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
+ void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
+ void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
+ int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
+ void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
+ void pa_stream_unref(pa_stream* s);
+-int pa_context_errno(pa_context *c);
++int pa_context_errno(const pa_context *c);
+ const char* pa_strerror(int error);
+ pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
diff --git a/chromium.spec b/chromium.spec
index bf6bdcb..f91b60b 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -141,6 +141,13 @@ BuildRequires: libicu-devel >= 5.4
%global bundleharfbuzz 0
%endif
+# Pulseaudio changed the API a little in 12.99.1
+%if 0%{?fedora} > 30
+%global pulseaudioapichange 1
+%else
+%global pulseaudioapichange 0
+%endif
+
### 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.
@@ -306,6 +313,8 @@ Patch202: enable-vaapi.patch
Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
# Fix compatibility with VA-API library (libva) version 1
Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
+# Pulseaudio changed the API a little in 12.99.1
+Patch205: chromium-76.0.3809.100-pulse-api-change.patch
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@@ -491,7 +500,6 @@ BuildRequires: pkgconfig(gtk+-3.0)
%else
BuildRequires: pkgconfig(gtk+-2.0)
%endif
-BuildRequires: pulseaudio-libs-devel
BuildRequires: python2-devel
%if 0%{?fedora} > 27
BuildRequires: python2-beautifulsoup4
@@ -871,6 +879,9 @@ udev.
%endif
%endif
+%if 0%{?pulseaudioapichange}
+%patch205 -p1 -b .pulseaudioapichange
+%endif
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
commit 6c1fd53b98f2b055fe077a77f604ce681272b4a4
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Wed Aug 14 09:52:16 2019 -0400
loosen dependency on chromium-libs in freeworld build
diff --git a/chromium.spec b/chromium.spec
index 0d575b1..bf6bdcb 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -730,7 +730,7 @@ Shared libraries used by chromium (and chrome-remote-desktop).
Summary: Chromium media libraries built with all possible codecs
Provides: chromium-libs-media = %{version}-%{release}
Provides: chromium-libs-media%{_isa} = %{version}-%{release}
-Requires: chromium-libs%{_isa} = %{version}-%{release}
+Requires: chromium-libs%{_isa} = %{version}
Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives
commit 3f2dbf438203976abc9b0107bff6bdf3297c6fae
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:41:23 2019 +0200
third_party/boringssl/linux-x86_64/crypto/third_party/sike needs to be preserved
diff --git a/chromium.spec b/chromium.spec
index f23664a..0d575b1 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1137,7 +1137,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/boringssl' \
'third_party/boringssl/src/third_party/fiat' \
'third_party/boringssl/src/third_party/sike' \
- 'third_party/boringssl/linux-x86_64/crypto/third_party/sike/' \
+ 'third_party/boringssl/linux-x86_64/crypto/third_party/sike' \
+ 'third_party/boringssl/linux-aarch64/crypto/third_party/sike' \
'third_party/breakpad' \
'third_party/breakpad/breakpad/src/third_party/curl' \
'third_party/brotli' \
commit 481c90e3a6ad165906e4760ef4739d4cc10f1376
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 15:38:35 2019 +0200
third_party/openscreen need to be preserved
diff --git a/chromium.spec b/chromium.spec
index 383bfa9..f23664a 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1232,6 +1232,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
%if %{freeworld}
'third_party/openh264' \
%endif
+ 'third_party/openscreen' \
'third_party/opus' \
'third_party/ots' \
'third_party/pdfium' \
commit fcb9e6e6edba2dee44b4896fe6e94eabc5ab8009
Author: Tomas Popela <tpopela(a)redhat.com>
Date: Wed Aug 14 14:38:51 2019 +0200
Backport more build fixes from upstream
diff --git a/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
new file mode 100644
index 0000000..587abf3
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 19:46:55 +0000
+Subject: [PATCH] GCC: avoid ambiguous NoDestructor creation in GetNeverSniffedMimeTypes.
+
+Use brace-list notation to wrap the already existing brace-list for
+initializing the flat-set. This resolves an ambiguous instantiation
+in GCC.
+
+Bug: 819294
+Change-Id: I89ddf12522d62a5140a8c2c41dc98e30ec7a0e78
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645774
+Reviewed-by: Matt Menke <mmenke(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666401}
+---
+
+diff --git a/services/network/cross_origin_read_blocking.cc b/services/network/cross_origin_read_blocking.cc
+index 30999c0..60a03f6 100644
+--- a/services/network/cross_origin_read_blocking.cc
++++ b/services/network/cross_origin_read_blocking.cc
+@@ -211,7 +211,7 @@
+ // confirmation sniffing because images, scripts, etc. are frequently
+ // mislabelled by http servers as HTML/JSON/XML).
+ base::flat_set<std::string>& GetNeverSniffedMimeTypes() {
+- static base::NoDestructor<base::flat_set<std::string>> s_types({
++ static base::NoDestructor<base::flat_set<std::string>> s_types{{
+ // The list below has been populated based on most commonly used content
+ // types according to HTTP Archive - see:
+ // https://github.com/whatwg/fetch/issues/860#issuecomment-457330454
+@@ -224,7 +224,7 @@
+ "application/x-www-form-urlencoded",
+ "application/zip",
+ "text/event-stream",
+- });
++ }};
+
+ // All items need to be lower-case, to support case-insensitive comparisons
+ // later.
diff --git a/chromium-76.0.3809.100-gcc-feature-policy-parser.patch b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
new file mode 100644
index 0000000..0dbffd5
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-feature-policy-parser.patch
@@ -0,0 +1,76 @@
+From 0aca7b8dea0f52ba7bd58dfce4ac236ee60670a8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 04 Jun 2019 19:44:58 +0200
+Subject: [PATCH] GCC: FeaturePolicyParser ParseValueForFuzzer is not in anonymous namespace
+
+Compilation fails because we are declaring ParseValueForFuzzer as friend method,
+but we are declaring it is in anonymous namespace. Moving to global namespace
+still fails (in this case in Clang).
+
+So final solution is making it a public static method of FeaturePolicyParser.
+
+Bug: 819294
+Change-Id: Iea307cb6faef675b748d6eb5da2175dcbb17fdc7
+---
+
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+index 3b7f4a9..eaee409 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc
+@@ -317,6 +317,13 @@
+ return value;
+ }
+
++void FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType feature_type,
++ const WTF::String& value_string) {
++ bool ok;
++ ParseValueForType(feature_type, value_string, &ok);
++}
++
+ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature,
+ const ParsedFeaturePolicy& policy) {
+ return std::any_of(policy.begin(), policy.end(),
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+index fd25d90..36af405 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_parser.h
+@@ -16,9 +16,6 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+
+-// Forward declare for friendship.
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType, const WTF::String&);
+-
+ namespace blink {
+
+ class Document;
+@@ -79,8 +76,9 @@
+ const FeatureNameMap& feature_names,
+ ExecutionContext* execution_context = nullptr);
+
++ static void ParseValueForFuzzer(mojom::PolicyValueType, const String&);
++
+ private:
+- friend void ::ParseValueForFuzzer(mojom::PolicyValueType, const String&);
+ static PolicyValue GetFallbackValueForFeature(
+ mojom::FeaturePolicyFeature feature);
+ static PolicyValue ParseValueForType(mojom::PolicyValueType feature_type,
+diff --git a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+index 7f8e6aa..53350e43 100644
+--- a/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
++++ b/third_party/blink/renderer/core/feature_policy/feature_policy_value_fuzzer.cc
+@@ -23,9 +23,9 @@
+ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ static blink::BlinkFuzzerTestSupport test_support =
+ blink::BlinkFuzzerTestSupport();
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kBool,
+- WTF::String(data, size));
+- ParseValueForFuzzer(blink::mojom::PolicyValueType::kDecDouble,
+- WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kBool, WTF::String(data, size));
++ blink::FeaturePolicyParser::ParseValueForFuzzer(
++ blink::mojom::PolicyValueType::kDecDouble, WTF::String(data, size));
+ return 0;
+ }
diff --git a/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
new file mode 100644
index 0000000..26bba05
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Wed, 05 Jun 2019 17:18:40 +0000
+Subject: [PATCH] Make blink::LayoutUnit::HasFraction constexpr
+
+Other HasFraction methods as in PhysicalUnit are declared already
+constexpr and using it. It breaks GCC build.
+
+Bug: 819294.
+Change-Id: I0c4bd9bd206d45cf31f7fa815ce8533718a425cb
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645222
+Reviewed-by: vmpstr <vmpstr(a)chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666336}
+---
+
+diff --git a/third_party/blink/renderer/platform/geometry/layout_unit.h b/third_party/blink/renderer/platform/geometry/layout_unit.h
+index f073986..b6dbc76 100644
+--- a/third_party/blink/renderer/platform/geometry/layout_unit.h
++++ b/third_party/blink/renderer/platform/geometry/layout_unit.h
+@@ -202,7 +202,9 @@
+ return value_ > 0 ? LayoutUnit() : *this;
+ }
+
+- bool HasFraction() const { return RawValue() % kFixedPointDenominator; }
++ constexpr bool HasFraction() const {
++ return RawValue() % kFixedPointDenominator;
++ }
+
+ LayoutUnit Fraction() const {
+ // Compute fraction using the mod operator to preserve the sign of the value
diff --git a/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
new file mode 100644
index 0000000..1d4b90f
--- /dev/null
+++ b/chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Tue, 11 Jun 2019 08:00:13 +0000
+Subject: [PATCH] GCC: move explicit specialization out of RunInfo
+
+Explicit specialization in non-namespace scope is not allowed in C++, and GCC breaks
+build because of that. Move the template specializations out of RunInfo declaration
+in shape_result_inline_headeres.h to fix the GCC build issue.
+
+Bug: 819294
+Change-Id: Id083852bcf8e9efbdc911fdad28fd8767d2905d0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1651728
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#667901}
+---
+
+diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+index 76ee6091..c14d3a0 100644
+--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
++++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h
+@@ -251,37 +251,6 @@
+ template <bool has_non_zero_glyph_offsets>
+ struct iterator final {};
+
+- // For non-zero glyph offset array
+- template <>
+- struct iterator<true> final {
+- // The constructor for ShapeResult
+- explicit iterator(const GlyphOffsetArray& array)
+- : pointer(array.storage_.get()) {
+- DCHECK(pointer);
+- }
+-
+- // The constructor for ShapeResultView
+- explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
+- DCHECK(pointer);
+- }
+-
+- GlyphOffset operator*() const { return *pointer; }
+- void operator++() { ++pointer; }
+-
+- const GlyphOffset* pointer;
+- };
+-
+- // For zero glyph offset array
+- template <>
+- struct iterator<false> final {
+- explicit iterator(const GlyphOffsetArray& array) {
+- DCHECK(!array.HasStorage());
+- }
+- explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
+- GlyphOffset operator*() const { return GlyphOffset(); }
+- void operator++() {}
+- };
+-
+ template <bool has_non_zero_glyph_offsets>
+ iterator<has_non_zero_glyph_offsets> GetIterator() const {
+ return iterator<has_non_zero_glyph_offsets>(*this);
+@@ -495,6 +464,37 @@
+ float width_;
+ };
+
++// For non-zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<true> final {
++ // The constructor for ShapeResult
++ explicit iterator(const GlyphOffsetArray& array)
++ : pointer(array.storage_.get()) {
++ DCHECK(pointer);
++ }
++
++ // The constructor for ShapeResultView
++ explicit iterator(const GlyphDataRange& range) : pointer(range.offsets) {
++ DCHECK(pointer);
++ }
++
++ GlyphOffset operator*() const { return *pointer; }
++ void operator++() { ++pointer; }
++
++ const GlyphOffset* pointer;
++};
++
++// For zero glyph offset array
++template <>
++struct ShapeResult::RunInfo::GlyphOffsetArray::iterator<false> final {
++ explicit iterator(const GlyphOffsetArray& array) {
++ DCHECK(!array.HasStorage());
++ }
++ explicit iterator(const GlyphDataRange& range) { DCHECK(!range.offsets); }
++ GlyphOffset operator*() const { return GlyphOffset(); }
++ void operator++() {}
++};
++
+ // Find the range of HarfBuzzRunGlyphData for the specified character index
+ // range. This function uses binary search twice, hence O(2 log n).
+ inline ShapeResult::RunInfo::GlyphDataRange
diff --git a/chromium-76.0.3809.100-quiche-compile-fix.patch b/chromium-76.0.3809.100-quiche-compile-fix.patch
new file mode 100644
index 0000000..98789d9
--- /dev/null
+++ b/chromium-76.0.3809.100-quiche-compile-fix.patch
@@ -0,0 +1,225 @@
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc.quiche-compile-fix 2019-08-14 09:58:07.721193200 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc 2019-08-14 09:59:33.131041525 +0200
+@@ -62,37 +62,37 @@ const size_t kStatelessResetTokenLength
+ std::string TransportParameterIdToString(
+ TransportParameters::TransportParameterId param_id) {
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ return "original_connection_id";
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ return "idle_timeout";
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ return "stateless_reset_token";
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ return "max_packet_size";
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ return "initial_max_data";
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ return "initial_max_stream_data_bidi_local";
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ return "initial_max_stream_data_bidi_remote";
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ return "initial_max_stream_data_uni";
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ return "initial_max_streams_bidi";
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ return "initial_max_streams_uni";
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ return "ack_delay_exponent";
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ return "max_ack_delay";
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ return "disable_migration";
+- case kPreferredAddress:
++ case TransportParameters::kPreferredAddress:
+ return "preferred_address";
+- case kGoogleQuicParam:
++ case TransportParameters::kGoogleQuicParam:
+ return "google";
+- case kGoogleQuicVersion:
++ case TransportParameters::kGoogleQuicVersion:
+ return "google-version";
+ }
+ return "Unknown(" + QuicTextUtils::Uint64ToString(param_id) + ")";
+@@ -390,7 +390,7 @@ bool SerializeTransportParameters(const
+ CBB original_connection_id_param;
+ if (!in.original_connection_id.IsEmpty()) {
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kOriginalConnectionId) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kOriginalConnectionId) ||
+ !CBB_add_u16_length_prefixed(¶ms, &original_connection_id_param) ||
+ !CBB_add_bytes(
+ &original_connection_id_param,
+@@ -412,7 +412,7 @@ bool SerializeTransportParameters(const
+ if (!in.stateless_reset_token.empty()) {
+ DCHECK_EQ(kStatelessResetTokenLength, in.stateless_reset_token.size());
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(¶ms, kStatelessResetToken) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kStatelessResetToken) ||
+ !CBB_add_u16_length_prefixed(¶ms, &stateless_reset_token_param) ||
+ !CBB_add_bytes(&stateless_reset_token_param,
+ in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@ bool SerializeTransportParameters(const
+
+ // disable_migration
+ if (in.disable_migration) {
+- if (!CBB_add_u16(¶ms, kDisableMigration) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kDisableMigration) ||
+ !CBB_add_u16(¶ms, 0u)) { // 0 is the length of this parameter.
+ QUIC_BUG << "Failed to write disable_migration for " << in;
+ return false;
+@@ -458,7 +458,7 @@ bool SerializeTransportParameters(const
+ QUIC_BUG << "Bad lengths " << *in.preferred_address;
+ return false;
+ }
+- if (!CBB_add_u16(¶ms, kPreferredAddress) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kPreferredAddress) ||
+ !CBB_add_u16_length_prefixed(¶ms, &preferred_address_params) ||
+ !CBB_add_bytes(
+ &preferred_address_params,
+@@ -491,7 +491,7 @@ bool SerializeTransportParameters(const
+ if (in.google_quic_params) {
+ const QuicData& serialized_google_quic_params =
+ in.google_quic_params->GetSerialized();
+- if (!CBB_add_u16(¶ms, kGoogleQuicParam) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicParam) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_quic_params) ||
+ !CBB_add_bytes(&google_quic_params,
+ reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@ bool SerializeTransportParameters(const
+
+ // Google-specific version extension.
+ CBB google_version_params;
+- if (!CBB_add_u16(¶ms, kGoogleQuicVersion) ||
++ if (!CBB_add_u16(¶ms, TransportParameters::kGoogleQuicVersion) ||
+ !CBB_add_u16_length_prefixed(¶ms, &google_version_params) ||
+ !CBB_add_u32(&google_version_params, in.version)) {
+ QUIC_BUG << "Failed to write Google version extension for " << in;
+@@ -565,7 +565,7 @@ bool ParseTransportParameters(const uint
+ }
+ bool parse_success = true;
+ switch (param_id) {
+- case kOriginalConnectionId:
++ case TransportParameters::kOriginalConnectionId:
+ if (!out->original_connection_id.IsEmpty()) {
+ QUIC_DLOG(ERROR) << "Received a second original connection ID";
+ return false;
+@@ -581,10 +581,10 @@ bool ParseTransportParameters(const uint
+ CBS_len(&value));
+ }
+ break;
+- case kIdleTimeout:
++ case TransportParameters::kIdleTimeout:
+ parse_success = out->idle_timeout_milliseconds.ReadFromCbs(&value);
+ break;
+- case kStatelessResetToken:
++ case TransportParameters::kStatelessResetToken:
+ if (!out->stateless_reset_token.empty()) {
+ QUIC_DLOG(ERROR) << "Received a second stateless reset token";
+ return false;
+@@ -597,36 +597,36 @@ bool ParseTransportParameters(const uint
+ out->stateless_reset_token.assign(CBS_data(&value),
+ CBS_data(&value) + CBS_len(&value));
+ break;
+- case kMaxPacketSize:
++ case TransportParameters::kMaxPacketSize:
+ parse_success = out->max_packet_size.ReadFromCbs(&value);
+ break;
+- case kInitialMaxData:
++ case TransportParameters::kInitialMaxData:
+ parse_success = out->initial_max_data.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiLocal:
++ case TransportParameters::kInitialMaxStreamDataBidiLocal:
+ parse_success =
+ out->initial_max_stream_data_bidi_local.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataBidiRemote:
++ case TransportParameters::kInitialMaxStreamDataBidiRemote:
+ parse_success =
+ out->initial_max_stream_data_bidi_remote.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamDataUni:
++ case TransportParameters::kInitialMaxStreamDataUni:
+ parse_success = out->initial_max_stream_data_uni.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsBidi:
++ case TransportParameters::kInitialMaxStreamsBidi:
+ parse_success = out->initial_max_streams_bidi.ReadFromCbs(&value);
+ break;
+- case kInitialMaxStreamsUni:
++ case TransportParameters::kInitialMaxStreamsUni:
+ parse_success = out->initial_max_streams_uni.ReadFromCbs(&value);
+ break;
+- case kAckDelayExponent:
++ case TransportParameters::kAckDelayExponent:
+ parse_success = out->ack_delay_exponent.ReadFromCbs(&value);
+ break;
+- case kMaxAckDelay:
++ case TransportParameters::kMaxAckDelay:
+ parse_success = out->max_ack_delay.ReadFromCbs(&value);
+ break;
+- case kDisableMigration:
++ case TransportParameters::kDisableMigration:
+ if (out->disable_migration) {
+ QUIC_DLOG(ERROR) << "Received a second disable migration";
+ return false;
+@@ -638,7 +638,7 @@ bool ParseTransportParameters(const uint
+ }
+ out->disable_migration = true;
+ break;
+- case kPreferredAddress: {
++ case TransportParameters::kPreferredAddress: {
+ uint16_t ipv4_port, ipv6_port;
+ in_addr ipv4_address;
+ in6_addr ipv6_address;
+@@ -692,7 +692,7 @@ bool ParseTransportParameters(const uint
+ QuicMakeUnique<TransportParameters::PreferredAddress>(
+ preferred_address);
+ } break;
+- case kGoogleQuicParam: {
++ case TransportParameters::kGoogleQuicParam: {
+ if (out->google_quic_params) {
+ QUIC_DLOG(ERROR) << "Received a second Google parameter";
+ return false;
+@@ -701,7 +701,7 @@ bool ParseTransportParameters(const uint
+ reinterpret_cast<const char*>(CBS_data(&value)), CBS_len(&value));
+ out->google_quic_params = CryptoFramer::ParseMessage(serialized_params);
+ } break;
+- case kGoogleQuicVersion: {
++ case TransportParameters::kGoogleQuicVersion: {
+ if (!CBS_get_u32(&value, &out->version)) {
+ QUIC_DLOG(ERROR) << "Failed to parse Google version extension";
+ return false;
+diff -up chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+--- chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc.quiche-compile-fix 2019-08-14 09:59:19.139902052 +0200
++++ chromium-76.0.3809.100/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc 2019-08-14 09:59:33.132041535 +0200
+@@ -2,10 +2,12 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
+-#include <string>
+-
+ #include "net/third_party/quiche/src/quic/core/quic_socket_address_coder.h"
+
++#include <cstring>
++#include <string>
++#include <vector>
++
+ namespace quic {
+
+ namespace {
diff --git a/chromium-76.0.3809.100-throttling-dead-beef.patch b/chromium-76.0.3809.100-throttling-dead-beef.patch
new file mode 100644
index 0000000..5e392e6
--- /dev/null
+++ b/chromium-76.0.3809.100-throttling-dead-beef.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 06 Jun 2019 07:54:05 +0000
+Subject: [PATCH] ThrottlingController::Liveness needs to be uint32_t
+
+We are setting kAlive and kDead values assigning values that
+are bigger than the maximum signed int32. It is better to use
+uint32_t in this case.
+
+Bug: 819294
+Change-Id: If72b48291a66a3a9db24b4c8e2d11d31936a66ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645772
+Reviewed-by: Kinuko Yasuda <kinuko(a)chromium.org>
+Commit-Queue: Jos Dapena Paz <jose.dapena(a)lge.com>
+Cr-Commit-Position: refs/heads/master@{#666619}
+---
+
+diff --git a/services/network/throttling/throttling_controller.h b/services/network/throttling/throttling_controller.h
+index 43751c4..3c6f87b 100644
+--- a/services/network/throttling/throttling_controller.h
++++ b/services/network/throttling/throttling_controller.h
+@@ -38,7 +38,7 @@
+
+ // TODO(https://crbug.com/960874): Debugging code to try and shed some light
+ // on why the owned maps are invalid.
+- enum class Liveness : int32_t {
++ enum class Liveness : uint32_t {
+ kAlive = 0xCA11AB13,
+ kDead = 0xDEADBEEF,
+ };
diff --git a/chromium-76.0.3809.100-weak-ptr-no-except.patch b/chromium-76.0.3809.100-weak-ptr-no-except.patch
new file mode 100644
index 0000000..a392971
--- /dev/null
+++ b/chromium-76.0.3809.100-weak-ptr-no-except.patch
@@ -0,0 +1,66 @@
+From 0370838723e786b51e7ec8ab55014811ec3e3aa3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena(a)lge.com>
+Date: Thu, 18 Jul 2019 14:26:11 +0200
+Subject: [PATCH] Make base::WeakPtr move constructor/operator noexcept to fix GCC build regression
+
+A GCC build regression has happened on DisjointRangeLockManager, as its move
+operator and constructor were declared noexcept. This was failing because the
+default implementation depended on base::WeakPtr, that did not provide
+noexcept declaration for them.
+
+So make base::WeakPtr noexcept.
+
+Bug: 819294
+Change-Id: I936784b881c7c1afea136ceedbe9341e76464f95
+---
+
+diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
+index 64fd499..0efcc44 100644
+--- a/base/memory/weak_ptr.cc
++++ b/base/memory/weak_ptr.cc
+@@ -46,7 +46,7 @@
+
+ WeakReference::~WeakReference() = default;
+
+-WeakReference::WeakReference(WeakReference&& other) = default;
++WeakReference::WeakReference(WeakReference&& other) noexcept = default;
+
+ WeakReference::WeakReference(const WeakReference& other) = default;
+
+diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
+index 72b5f1f..ccd22fd13 100644
+--- a/base/memory/weak_ptr.h
++++ b/base/memory/weak_ptr.h
+@@ -116,9 +116,9 @@
+ explicit WeakReference(const scoped_refptr<Flag>& flag);
+ ~WeakReference();
+
+- WeakReference(WeakReference&& other);
++ WeakReference(WeakReference&& other) noexcept;
+ WeakReference(const WeakReference& other);
+- WeakReference& operator=(WeakReference&& other) = default;
++ WeakReference& operator=(WeakReference&& other) noexcept = default;
+ WeakReference& operator=(const WeakReference& other) = default;
+
+ bool IsValid() const;
+@@ -153,9 +153,9 @@
+ ~WeakPtrBase();
+
+ WeakPtrBase(const WeakPtrBase& other) = default;
+- WeakPtrBase(WeakPtrBase&& other) = default;
++ WeakPtrBase(WeakPtrBase&& other) noexcept = default;
+ WeakPtrBase& operator=(const WeakPtrBase& other) = default;
+- WeakPtrBase& operator=(WeakPtrBase&& other) = default;
++ WeakPtrBase& operator=(WeakPtrBase&& other) noexcept = default;
+
+ void reset() {
+ ref_ = internal::WeakReference();
+@@ -236,7 +236,7 @@
+ ptr_ = reinterpret_cast<uintptr_t>(t);
+ }
+ template <typename U>
+- WeakPtr(WeakPtr<U>&& other) : WeakPtrBase(std::move(other)) {
++ WeakPtr(WeakPtr<U>&& other) noexcept : WeakPtrBase(std::move(other)) {
+ // Need to cast from U* to T* to do pointer adjustment in case of multiple
+ // inheritance. This also enforces the "U is a T" rule.
+ T* t = reinterpret_cast<U*>(other.ptr_);
diff --git a/chromium.spec b/chromium.spec
index 602b236..383bfa9 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -268,6 +268,20 @@ Patch47: chromium-76.0.3809.100-gcc-vulkan.patch
Patch48: chromium-76.0.3809.100-gcc-cc-no-except.patch
# https://chromium.googlesource.com/chromium/src.git/+/502e6e42633d2571c823...
Patch49: chromium-76.0.3809.100-gcc-net-fetcher.patch
+# https://quiche.googlesource.com/quiche.git/+/9424add9d73432a794b794479025...
+Patch50: chromium-76.0.3809.100-quiche-compile-fix.patch
+# https://chromium.googlesource.com/chromium/src/+/53bb5a463ee956c70230eaa5...
+Patch51: chromium-76.0.3809.100-throttling-dead-beef.patch
+# https://chromium.googlesource.com/chromium/src/+/52b5ceac95b67491b1c71f0e...
+Patch52: chromium-76.0.3809.100-gcc-ambigous-instantiation.patch
+# https://chromium.googlesource.com/chromium/src.git/+/715cb38eac889625de0c...
+Patch53: chromium-76.0.3809.100-weak-ptr-no-except.patch
+# https://chromium.googlesource.com/chromium/src.git/+/c6afbd59c997c2b64f11...
+Patch54: chromium-76.0.3809.100-gcc-feature-policy-parser.patch
+# https://chromium.googlesource.com/chromium/src.git/+/cf6d6b40d711fce93a24...
+Patch55: chromium-76.0.3809.100-gcc-hasfraction-constexpr.patch
+# https://chromium.googlesource.com/chromium/src.git/+/dcb55fb8f18abe5f43d2...
+Patch56: chromium-76.0.3809.100-gcc-move-explicit-initialization.patch
# Apply these changes to work around EPEL7 compiler issues
Patch100: chromium-62.0.3202.62-kmaxskip-constexpr.patch
@@ -828,6 +842,13 @@ udev.
%patch47 -p1 -b .gcc-vulkan
%patch48 -p1 -b .gcc-cc-no-except
%patch49 -p1 -b .gcc-net-fetcher
+%patch50 -p1 -b .quiche-compile-fix
+%patch51 -p1 -b .throttling-dead-beef
+%patch52 -p1 -b .gcc-ambigous-instantiation
+%patch53 -p1 -b .weak-ptr-no-except
+%patch54 -p1 -b .gcc-feature-policy-parser
+%patch55 -p1 -b .gcc-hasfraction-constexpr
+%patch56 -p1 -b .gcc-move-explicit-initialization
# EPEL specific patches
%if 0%{?rhel} == 7
4 years, 6 months
[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2570)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bwa
ExclusiveArch: x86_64
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- containers
ExclusiveArch: %{ldc_arches}
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 armv7l aarch64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- embree2
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- exciting
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{power64}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- expresso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fence-virt
ExclusiveArch: i686 x86_64
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fluxcapacitor
ExclusiveArch: %{ix86} x86_64 %{arm}
- fpc
ExclusiveArch: %{arm} %{ix86} x86_64 ppc ppc64
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- glusterd2
ExclusiveArch: %{go_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hcc
ExclusiveArch: x86_64 aarch64
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- insect
ExclusiveArch: %{nodejs_arches} noarch
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- josm
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libmfx
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libseccomp
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 mipsel mips64el ppc64 ppc64le s390 s390x
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maven-eclipse-plugin
ExclusiveArch: %{ix86} x86_64
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-arm-binutils
ExclusiveArch: x86_64
- nacl-binutils
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buffertools
ExclusiveArch: %{nodejs_arches}
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compressible
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-encodeurl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-finalhandler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-historic-readline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-image-size
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loophole
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-method-override
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-moment
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-negotiator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opal-runtime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-send
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stylus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typeahead.js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64
- nwchem
ExclusiveArch: x86_64 %{ix86}
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: %{ix86} x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- oshinko-cli
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- reactfx
ExclusiveArch: %{ix86} x86_64 noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crossterm_cursor
ExclusiveArch: %{rust_arches}
- rust-crossterm_input
ExclusiveArch: %{rust_arches}
- rust-crossterm_screen
ExclusiveArch: %{rust_arches}
- rust-crossterm_style
ExclusiveArch: %{rust_arches}
- rust-crossterm_terminal
ExclusiveArch: %{rust_arches}
- rust-crossterm_utils
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures-async-runtime-preview
ExclusiveArch: %{rust_arches}
- rust-futures-channel-preview
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-core-preview
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor-preview
ExclusiveArch: %{rust_arches}
- rust-futures-io-preview
ExclusiveArch: %{rust_arches}
- rust-futures-preview
ExclusiveArch: %{rust_arches}
- rust-futures-sink-preview
ExclusiveArch: %{rust_arches}
- rust-futures-stable-preview
ExclusiveArch: %{rust_arches}
- rust-futures-util-preview
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-objekt
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde0.8
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_json0.8
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded0.5
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slotmap0.2
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-async-await
ExclusiveArch: %{rust_arches}
- rust-tokio-buf
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-mockstream
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-process
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-service
ExclusiveArch: %{rust_arches}
- rust-tokio-signal
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-trace-core
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-which1
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 ppc64
- sagemath
ExclusiveArch: aarch64 %{arm} %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: %{ix86} x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches}
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64 armv7hl armv7hnl
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- termy-qt
ExclusiveArch: %{ix86} x86_64
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- toolbox
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: %{ix86} x86_64 noarch
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virtio-forwarder
ExclusiveArch: x86_64 aarch64 ppc64le %ix86
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wraplinux
ExclusiveArch: %{ix86} x86_64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-geode
ExclusiveArch: %{ix86}
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64 ia64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zola
ExclusiveArch: %{rust_arches}
4 years, 6 months
Architecture specific change in rpms/python-reproject.git
by githook-noreply@fedoraproject.org
The package rpms/python-reproject.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/python-reproject.git/commit/?id=e....
Change:
+%ifnarch s390x
Thanks.
Full change:
============
commit e7b5bbc48e2f91926e68ece34b498e2af38dc361
Author: Christian Dersch <lupinix(a)fedoraproject.org>
Date: Sun Oct 27 16:09:17 2019 +0100
Skip tests on s390x until numpy is fixed
diff --git a/python-reproject.spec b/python-reproject.spec
index 50454a5..a69a0c9 100644
--- a/python-reproject.spec
+++ b/python-reproject.spec
@@ -52,10 +52,12 @@ Requires: python3-astropy-healpix
%py3_install
%check
+%ifnarch s390x
pushd %{buildroot}/%{python3_sitearch}
py.test-%{python3_version} reproject
rm -rf .pytest_cache
popd
+%endif
%files -n python3-%{srcname}
%license LICENSE.md
commit 2ecb38e57b26f50220dbcee531d2badf26d84fba
Author: Christian Dersch <lupinix(a)fedoraproject.org>
Date: Sun Oct 27 15:58:27 2019 +0100
use un-cythonized sources
diff --git a/python-reproject.spec b/python-reproject.spec
index 31ddb4a..50454a5 100644
--- a/python-reproject.spec
+++ b/python-reproject.spec
@@ -3,7 +3,7 @@
Name: python-%{srcname}
Version: 0.5.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: %{sum}
License: BSD and ASL 2.0 and Python
@@ -18,14 +18,15 @@ License: BSD and ASL 2.0 and Python
# astropy_helpers/licenses/LICENSE_COPYBUTTON.rst
# astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/copybutton.js
#
-URL: https://pypi.python.org/pypi/%{srcname}
-Source0: %{pypi_source}
+URL: https://reproject.readthedocs.io/
+Source0: https://github.com/astropy/reproject/archive/v%{version}/%{srcname}-%{ver...
BuildRequires: gcc
BuildRequires: python3-astropy
BuildRequires: python3-astropy-healpix
BuildRequires: python3-astropy-helpers
+BuildRequires: python3-Cython
BuildRequires: python3-devel
BuildRequires: python3-pytest-astropy
@@ -62,6 +63,9 @@ popd
%{python3_sitearch}/*
%changelog
+* Sun Oct 27 2019 Christian Dersch <lupinix(a)fedoraproject.org> - 0.5.1-2
+- use un-cythonized sources
+
* Sun Oct 27 2019 Christian Dersch <lupinix(a)fedoraproject.org> - 0.5.1-1
- new version
diff --git a/sources b/sources
index d2d5f53..63534cd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (reproject-0.5.1.tar.gz) = 8e5718312ca890aa1f1b898e8f5708722974110e4a9b82d28d35774beb28aaeaa28be832769b7d0ccb2ea78bdc1eefadca48f4e04fa4708eb15c6da611d639bc
+SHA512 (reproject-0.5.1.tar.gz) = b964666fe1b7bb2e15b7257fcfae853361ec62c4a63ea29a915306a45c817734be9e0de6006c9f7f8d81ae95346cf947845c6b80a7e2af88655515e2fc434966
commit 8bd001853135a8ac9add798bfa2a27954201c4d4
Author: Christian Dersch <lupinix(a)fedoraproject.org>
Date: Sun Oct 27 15:13:17 2019 +0100
new version
diff --git a/.gitignore b/.gitignore
index 1b56206..f1c31b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/reproject-0.3.1.tar.gz
/reproject-0.3.2.tar.gz
/reproject-0.4.tar.gz
+/reproject-0.5.1.tar.gz
diff --git a/python-reproject-fix-testoptions.patch b/python-reproject-fix-testoptions.patch
deleted file mode 100644
index bc8e3c8..0000000
--- a/python-reproject-fix-testoptions.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur reproject-0.3.1/setup.cfg reproject-0.3.1.new/setup.cfg
---- reproject-0.3.1/setup.cfg 2016-09-26 17:10:00.966341712 +0200
-+++ reproject-0.3.1.new/setup.cfg 2016-09-26 17:11:27.795307367 +0200
-@@ -11,7 +11,6 @@
- minversion = 2.2
- norecursedirs = build docs/_build
- doctest_plus = enabled
--addopts = --fits
-
- [ah_bootstrap]
- auto_use = True
diff --git a/python-reproject.spec b/python-reproject.spec
index 63cbe6d..31ddb4a 100644
--- a/python-reproject.spec
+++ b/python-reproject.spec
@@ -2,8 +2,8 @@
%global sum Reproject astronomical images
Name: python-%{srcname}
-Version: 0.4
-Release: 8%{?dist}
+Version: 0.5.1
+Release: 1%{?dist}
Summary: %{sum}
License: BSD and ASL 2.0 and Python
@@ -19,7 +19,7 @@ License: BSD and ASL 2.0 and Python
# astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/copybutton.js
#
URL: https://pypi.python.org/pypi/%{srcname}
-Source0: https://files.pythonhosted.org/packages/source/r/%{srcname}/%{srcname}-%{...
+Source0: %{pypi_source}
BuildRequires: gcc
@@ -62,6 +62,9 @@ popd
%{python3_sitearch}/*
%changelog
+* Sun Oct 27 2019 Christian Dersch <lupinix(a)fedoraproject.org> - 0.5.1-1
+- new version
+
* Mon Aug 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 0.4-8
- Rebuilt for Python 3.8
diff --git a/sources b/sources
index a70c948..d2d5f53 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (reproject-0.4.tar.gz) = 5dbdb3d291ffc7820463d7bf3ce091c355da0e52158f35327ce3bf01a297e41c13fd4f05446cfdb92ac1ed123be9254a0f2af014b8d33acebe292adc5cfa7ef9
+SHA512 (reproject-0.5.1.tar.gz) = 8e5718312ca890aa1f1b898e8f5708722974110e4a9b82d28d35774beb28aaeaa28be832769b7d0ccb2ea78bdc1eefadca48f4e04fa4708eb15c6da611d639bc
commit 77fb0f88f7126e2d81e1f5cd1ee5d7d82b2e8e24
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 19 10:54:56 2019 +0200
Rebuilt for Python 3.8
diff --git a/python-reproject.spec b/python-reproject.spec
index 01a660b..63cbe6d 100644
--- a/python-reproject.spec
+++ b/python-reproject.spec
@@ -3,7 +3,7 @@
Name: python-%{srcname}
Version: 0.4
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: %{sum}
License: BSD and ASL 2.0 and Python
@@ -62,6 +62,9 @@ popd
%{python3_sitearch}/*
%changelog
+* Mon Aug 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 0.4-8
+- Rebuilt for Python 3.8
+
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 0.4-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
4 years, 6 months
Architecture specific change in rpms/python-reproject.git
by githook-noreply@fedoraproject.org
The package rpms/python-reproject.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/python-reproject.git/commit/?id=e....
Change:
+%ifnarch s390x
Thanks.
Full change:
============
commit e7b5bbc48e2f91926e68ece34b498e2af38dc361
Author: Christian Dersch <lupinix(a)fedoraproject.org>
Date: Sun Oct 27 16:09:17 2019 +0100
Skip tests on s390x until numpy is fixed
diff --git a/python-reproject.spec b/python-reproject.spec
index 50454a5..a69a0c9 100644
--- a/python-reproject.spec
+++ b/python-reproject.spec
@@ -52,10 +52,12 @@ Requires: python3-astropy-healpix
%py3_install
%check
+%ifnarch s390x
pushd %{buildroot}/%{python3_sitearch}
py.test-%{python3_version} reproject
rm -rf .pytest_cache
popd
+%endif
%files -n python3-%{srcname}
%license LICENSE.md
4 years, 6 months
Architecture specific change in rpms/eccodes.git
by githook-noreply@fedoraproject.org
The package rpms/eccodes.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/eccodes.git/commit/?id=78995fe03f...
https://src.fedoraproject.org/cgit/rpms/eccodes.git/commit/?id=1b5923d046....
Change:
+ExcludeArch: armv7hl
-%ifarch i686 armv7hl
Thanks.
Full change:
============
commit 78995fe03f857259a01185c40a69f8aa85beb720
Author: Jos de Kloe <josdekloe(a)gmail.com>
Date: Sun Oct 27 13:37:33 2019 +0100
enable excludearch statements again, and remove Provides for grib_api
diff --git a/eccodes.spec b/eccodes.spec
index 982f521..afbe771 100644
--- a/eccodes.spec
+++ b/eccodes.spec
@@ -86,20 +86,21 @@ Requires: %{name}-data = %{version}-%{release}
# So the old grib_api will need to be obsoleted.
%if 0%{obsolete_grib_api}
-Provides: grib_api = %{final_grib_api_version}
+# as stated in the note above, setting provides seems not correct here
+# Provides: grib_api = %{final_grib_api_version}
Obsoletes: grib_api < %{final_grib_api_version}
%endif
# as explained in bugzilla #1562066
-#ExcludeArch: i686
+ExcludeArch: i686
# as explained in bugzilla #1562071
# note: this is no longer part of fc30/rawhide
# but the exclude is still needed for EPEL-7
#ExcludeArch: ppc64
# as explained in bugzilla #1562076
-#ExcludeArch: s390x
+ExcludeArch: s390x
# as explained in bugzilla #1562084
-#ExcludeArch: armv7hl
+ExcludeArch: armv7hl
%if 0%{?rhel} >= 7
# as explained in bugzilla #1629377
@@ -147,7 +148,7 @@ Requires: gcc-gfortran%{?_isa}
Requires: jasper-devel%{?_isa}
%if 0%{obsolete_grib_api}
-Provides: grib_api-devel = %{final_grib_api_version}
+# Provides: grib_api-devel = %{final_grib_api_version}
Obsoletes: grib_api-devel < %{final_grib_api_version}
%endif
commit 1b5923d046b3813d5303ea742f43ffa7586e341d
Author: Jos de Kloe <josdekloe(a)gmail.com>
Date: Sun Oct 27 13:05:28 2019 +0100
update to new upstream version, and disable architecture exceptions for testing
diff --git a/.gitignore b/.gitignore
index d516662..1b658ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/eccodes-2.12.0-Source.tar.gz
/eccodes-2.12.5-Source.tar.gz
/eccodes-2.13.0-Source.tar.gz
+/eccodes-2.14.1-Source.tar.gz
diff --git a/eccodes-32bit.patch b/eccodes-32bit.patch
index 6161926..3f116e7 100644
--- a/eccodes-32bit.patch
+++ b/eccodes-32bit.patch
@@ -1,5 +1,5 @@
---- eccodes-2.13.0-Source.orig/src/grib_api_prototypes.h 2019-07-08 14:06:45.000000000 +0200
-+++ eccodes-2.13.0-Source/src/grib_api_prototypes.h 2019-07-25 12:58:22.124808129 +0200
+--- eccodes-2.14.1-Source.unchanged/src/grib_api_prototypes.h 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/src/grib_api_prototypes.h 2019-10-27 11:20:05.496702520 +0100
@@ -872,8 +872,8 @@ double grib_ieeefloat_error(double x);
double grib_long_to_ieee(unsigned long x);
int grib_nearest_smaller_ieee_float(double a, double *x);
@@ -11,8 +11,8 @@
int grib_ieee_decode_array(grib_context *c, unsigned char *buf, size_t nvals, int bytes, double *val);
int grib_ieee_decode_array(grib_context *c, unsigned char *buf, size_t nvals, int bytes, double *val);
int grib_ieee_encode_array(grib_context *c, double *val, size_t nvals, int bytes, unsigned char *buf);
---- eccodes-2.13.0-Source.orig/src/grib_ieeefloat.c 2019-07-08 14:06:45.000000000 +0200
-+++ eccodes-2.13.0-Source/src/grib_ieeefloat.c 2019-07-25 12:58:22.125808103 +0200
+--- eccodes-2.14.1-Source.unchanged/src/grib_ieeefloat.c 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/src/grib_ieeefloat.c 2019-10-27 11:20:05.497702497 +0100
@@ -392,14 +392,14 @@ unsigned long grib_ieee_to_long(double x
* grib_encode_unsigned_long.
*/
diff --git a/eccodes-soversion.patch b/eccodes-soversion.patch
index 5db7e7b..35edc92 100644
--- a/eccodes-soversion.patch
+++ b/eccodes-soversion.patch
@@ -1,25 +1,23 @@
---- eccodes-2.13.0-Source.orig/fortran/CMakeLists.txt 2019-07-08 14:06:44.000000000 +0200
-+++ eccodes-2.13.0-Source/fortran/CMakeLists.txt 2019-07-25 12:58:27.343673693 +0200
-@@ -43,7 +43,8 @@ if( HAVE_FORTRAN )
+--- eccodes-2.14.1-Source.unchanged/fortran/CMakeLists.txt 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/fortran/CMakeLists.txt 2019-10-27 11:25:48.269661718 +0100
+@@ -43,7 +43,9 @@ if( HAVE_FORTRAN )
ecbuild_add_library( TARGET eccodes_f90
SOURCES grib_fortran.c grib_f90.f90 eccodes_f90.f90 grib_kinds.h
GENERATED grib_f90.f90 eccodes_f90.f90
- LIBS eccodes )
+ LIBS eccodes
+ SOVERSION ${ECCODES_SOVERSION_F90})
- add_custom_command( TARGET eccodes_f90 POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_Fortran_MODULE_DIRECTORY}/${CMAKE_CFG_INTDIR}/eccodes.mod ${CMAKE_BINARY_DIR}/include
---- eccodes-2.13.0-Source.orig/src/CMakeLists.txt 2019-07-08 14:06:45.000000000 +0200
-+++ eccodes-2.13.0-Source/src/CMakeLists.txt 2019-07-25 12:58:27.343673693 +0200
-@@ -437,8 +437,8 @@ ecbuild_add_library(TARGET eccodes
- ${grib_api_srcs}
++
+ if( DEFINED ecbuild_VERSION AND NOT ${ecbuild_VERSION} VERSION_LESS 3.1 )
+ # Installed module directory is not in the PUBLIC INCLUDES!
+ target_include_directories( eccodes_f90 PUBLIC $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}> )
+--- eccodes-2.14.1-Source.unchanged/src/CMakeLists.txt 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/src/CMakeLists.txt 2019-10-27 11:27:56.115531419 +0100
+@@ -438,6 +438,7 @@ ecbuild_add_library(TARGET eccodes
GENERATED grib_api_version.c
LIBS ${ECCODES_EXTRA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CMATH_LIBRARIES}
-- TEMPLATES ${grib_api_extra_srcs})
--
-+ TEMPLATES ${grib_api_extra_srcs}
-+ SOVERSION ${ECCODES_SOVERSION})
-
- install( FILES grib_api.h eccodes.h eccodes_windef.h DESTINATION ${INSTALL_INCLUDE_DIR} )
- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/eccodes_version.h DESTINATION ${INSTALL_INCLUDE_DIR} )
+ TEMPLATES ${grib_api_extra_srcs}
++ SOVERSION ${ECCODES_SOVERSION}
+ INSTALL_HEADERS_LIST
+ grib_api.h
+ eccodes.h
diff --git a/eccodes.spec b/eccodes.spec
index a6832dd..982f521 100644
--- a/eccodes.spec
+++ b/eccodes.spec
@@ -1,6 +1,6 @@
Name: eccodes
-Version: 2.13.0
-Release: 2%{?dist}
+Version: 2.14.1
+Release: 1%{?dist}
Summary: WMO data format decoding and encoding
# force the shared libraries to have these so versions
@@ -8,7 +8,7 @@ Summary: WMO data format decoding and encoding
%global so_version_f90 0.1
%global datapack_date 20181010
-# latest rawhide grib_api version is 1.27.0-4
+# latest rawhide grib_api version is 1.27.0-5
# but this version number is to be updated as soon as we know
# what the final release of grib_api by upstream will be.
# latest upstream grib_api release is 1.28.0 (05-Dec-2018)
@@ -91,15 +91,15 @@ Obsoletes: grib_api < %{final_grib_api_version}
%endif
# as explained in bugzilla #1562066
-ExcludeArch: i686
+#ExcludeArch: i686
# as explained in bugzilla #1562071
# note: this is no longer part of fc30/rawhide
# but the exclude is still needed for EPEL-7
#ExcludeArch: ppc64
# as explained in bugzilla #1562076
-ExcludeArch: s390x
+#ExcludeArch: s390x
# as explained in bugzilla #1562084
-ExcludeArch: armv7hl
+#ExcludeArch: armv7hl
%if 0%{?rhel} >= 7
# as explained in bugzilla #1629377
@@ -286,14 +286,16 @@ cp examples/C/*.c %{buildroot}%{_datadir}/doc/%{name}/examples/C
mkdir -p %{buildroot}%{_datadir}/doc/%{name}/examples/F90
cp examples/F90/*.f90 %{buildroot}%{_datadir}/doc/%{name}/examples/F90
-%ifarch i686 armv7hl
- # pass (nothing to do)
-%else
- # it seems pkgconfig files end up in lib in stead of lib64 now
- # so move them to the right place
- mv %{buildroot}/%{_usr}/lib/pkgconfig/ \
- %{buildroot}/%{_libdir}/pkgconfig/
-%endif
+# also not needed for x86_64
+# maybe they fixed it for all archs?
+#%%ifarch i686 armv7hl
+# # pass (nothing to do)
+#%%else
+# # it seems pkgconfig files end up in lib in stead of lib64 now
+# # so move them to the right place
+# mv %%{buildroot}/%%{_usr}/lib/pkgconfig/ \
+# %%{buildroot}/%%{_libdir}/pkgconfig/
+#%%endif
# It seems the cmake options
# -DCMAKE_SKIP_RPATH=TRUE
@@ -317,18 +319,9 @@ cd build
# 'eccodes_t_bufr_dump_(de|en)code_C' tests run.
# These tests compile on the fly generated C code, and
# without this setting the loader does not find the libraries.
-#
-# These fail due to build flag issues, i.e. the test script does a
-# test build of some on the fly generated fortran code, but cannot
-# find the necessary *.mod fortran module definition files.
-# There is no easy way to define this as environment setting,
-# so a patch has been added to solve this for now.
-# See: https://software.ecmwf.int/issues/browse/SUP-1812
-# (unfortunately this issue is not public)
-
-#LD_LIBRARY_PATH=%%{buildroot}/%%{_libdir} \
-#LIBRARY_PATH=%%{buildroot}/%%{_libdir} \
+LD_LIBRARY_PATH=%{buildroot}/%{_libdir} \
+LIBRARY_PATH=%{buildroot}/%{_libdir} \
ctest3 -V %{?_smp_mflags}
%files
@@ -357,6 +350,9 @@ ctest3 -V %{?_smp_mflags}
%doc %{_datadir}/doc/%{name}/
%changelog
+* Sun Oct 27 2019 Jos de Kloe <josdekloe(a)gmail.com> - 2.14.1-1
+- Upgrade to upstream version 2.14.1
+
* Sat Aug 10 2019 Jos de Kloe <josdekloe(a)gmail.com> - 2.13.0-2
- apply bugfix to pc files contribuited by Emanuele Di Giacomo
diff --git a/sources b/sources
index 0f7be28..f646642 100644
--- a/sources
+++ b/sources
@@ -2,3 +2,4 @@ SHA512 (eccodes_test_data_20181010.tar.gz) = 24c24ec9e01d230cf542abe5c131f05b8e6
SHA512 (eccodes-2.12.0-Source.tar.gz) = 3dc876bde2a6c81a43bcc64ecb12969f28eae3cfbc8fed7da7797fc722dc8b446ac7be5178f55b7d395653e0718437b842296a7d4d11b372b8692404c76aa4ad
SHA512 (eccodes-2.12.5-Source.tar.gz) = ab1267dffdb3d0dbcdd65f23db2d77bc7bd8f3241083374c75bc62ebf70b7d29d8af9f657d6da05a47e363151c8d995adfadca7bbf95ebb24a27303d80f081a4
SHA512 (eccodes-2.13.0-Source.tar.gz) = bbde1b7092caad20772b21cd06040938f99e763f77a6622820e3cc2fba5c0765178822be4b3c33b41a927757da85f311c0c4f057500ca58d257dde304e7eeca3
+SHA512 (eccodes-2.14.1-Source.tar.gz) = 864b530642884baa0c3c56eee646a61af7d659e711c7ed4d08a5cc2d68812ecb96b8efabf40c4c9d5dcb3a0edeb1caddffea2ec3438571d3e90dc9cca1dabebe
4 years, 6 months
Architecture specific change in rpms/eccodes.git
by githook-noreply@fedoraproject.org
The package rpms/eccodes.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/eccodes.git/commit/?id=78995fe03f...
https://src.fedoraproject.org/cgit/rpms/eccodes.git/commit/?id=1b5923d046....
Change:
+ExcludeArch: armv7hl
-%ifarch i686 armv7hl
Thanks.
Full change:
============
commit 78995fe03f857259a01185c40a69f8aa85beb720
Author: Jos de Kloe <josdekloe(a)gmail.com>
Date: Sun Oct 27 13:37:33 2019 +0100
enable excludearch statements again, and remove Provides for grib_api
diff --git a/eccodes.spec b/eccodes.spec
index 982f521..afbe771 100644
--- a/eccodes.spec
+++ b/eccodes.spec
@@ -86,20 +86,21 @@ Requires: %{name}-data = %{version}-%{release}
# So the old grib_api will need to be obsoleted.
%if 0%{obsolete_grib_api}
-Provides: grib_api = %{final_grib_api_version}
+# as stated in the note above, setting provides seems not correct here
+# Provides: grib_api = %{final_grib_api_version}
Obsoletes: grib_api < %{final_grib_api_version}
%endif
# as explained in bugzilla #1562066
-#ExcludeArch: i686
+ExcludeArch: i686
# as explained in bugzilla #1562071
# note: this is no longer part of fc30/rawhide
# but the exclude is still needed for EPEL-7
#ExcludeArch: ppc64
# as explained in bugzilla #1562076
-#ExcludeArch: s390x
+ExcludeArch: s390x
# as explained in bugzilla #1562084
-#ExcludeArch: armv7hl
+ExcludeArch: armv7hl
%if 0%{?rhel} >= 7
# as explained in bugzilla #1629377
@@ -147,7 +148,7 @@ Requires: gcc-gfortran%{?_isa}
Requires: jasper-devel%{?_isa}
%if 0%{obsolete_grib_api}
-Provides: grib_api-devel = %{final_grib_api_version}
+# Provides: grib_api-devel = %{final_grib_api_version}
Obsoletes: grib_api-devel < %{final_grib_api_version}
%endif
commit 1b5923d046b3813d5303ea742f43ffa7586e341d
Author: Jos de Kloe <josdekloe(a)gmail.com>
Date: Sun Oct 27 13:05:28 2019 +0100
update to new upstream version, and disable architecture exceptions for testing
diff --git a/.gitignore b/.gitignore
index d516662..1b658ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/eccodes-2.12.0-Source.tar.gz
/eccodes-2.12.5-Source.tar.gz
/eccodes-2.13.0-Source.tar.gz
+/eccodes-2.14.1-Source.tar.gz
diff --git a/eccodes-32bit.patch b/eccodes-32bit.patch
index 6161926..3f116e7 100644
--- a/eccodes-32bit.patch
+++ b/eccodes-32bit.patch
@@ -1,5 +1,5 @@
---- eccodes-2.13.0-Source.orig/src/grib_api_prototypes.h 2019-07-08 14:06:45.000000000 +0200
-+++ eccodes-2.13.0-Source/src/grib_api_prototypes.h 2019-07-25 12:58:22.124808129 +0200
+--- eccodes-2.14.1-Source.unchanged/src/grib_api_prototypes.h 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/src/grib_api_prototypes.h 2019-10-27 11:20:05.496702520 +0100
@@ -872,8 +872,8 @@ double grib_ieeefloat_error(double x);
double grib_long_to_ieee(unsigned long x);
int grib_nearest_smaller_ieee_float(double a, double *x);
@@ -11,8 +11,8 @@
int grib_ieee_decode_array(grib_context *c, unsigned char *buf, size_t nvals, int bytes, double *val);
int grib_ieee_decode_array(grib_context *c, unsigned char *buf, size_t nvals, int bytes, double *val);
int grib_ieee_encode_array(grib_context *c, double *val, size_t nvals, int bytes, unsigned char *buf);
---- eccodes-2.13.0-Source.orig/src/grib_ieeefloat.c 2019-07-08 14:06:45.000000000 +0200
-+++ eccodes-2.13.0-Source/src/grib_ieeefloat.c 2019-07-25 12:58:22.125808103 +0200
+--- eccodes-2.14.1-Source.unchanged/src/grib_ieeefloat.c 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/src/grib_ieeefloat.c 2019-10-27 11:20:05.497702497 +0100
@@ -392,14 +392,14 @@ unsigned long grib_ieee_to_long(double x
* grib_encode_unsigned_long.
*/
diff --git a/eccodes-soversion.patch b/eccodes-soversion.patch
index 5db7e7b..35edc92 100644
--- a/eccodes-soversion.patch
+++ b/eccodes-soversion.patch
@@ -1,25 +1,23 @@
---- eccodes-2.13.0-Source.orig/fortran/CMakeLists.txt 2019-07-08 14:06:44.000000000 +0200
-+++ eccodes-2.13.0-Source/fortran/CMakeLists.txt 2019-07-25 12:58:27.343673693 +0200
-@@ -43,7 +43,8 @@ if( HAVE_FORTRAN )
+--- eccodes-2.14.1-Source.unchanged/fortran/CMakeLists.txt 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/fortran/CMakeLists.txt 2019-10-27 11:25:48.269661718 +0100
+@@ -43,7 +43,9 @@ if( HAVE_FORTRAN )
ecbuild_add_library( TARGET eccodes_f90
SOURCES grib_fortran.c grib_f90.f90 eccodes_f90.f90 grib_kinds.h
GENERATED grib_f90.f90 eccodes_f90.f90
- LIBS eccodes )
+ LIBS eccodes
+ SOVERSION ${ECCODES_SOVERSION_F90})
- add_custom_command( TARGET eccodes_f90 POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_Fortran_MODULE_DIRECTORY}/${CMAKE_CFG_INTDIR}/eccodes.mod ${CMAKE_BINARY_DIR}/include
---- eccodes-2.13.0-Source.orig/src/CMakeLists.txt 2019-07-08 14:06:45.000000000 +0200
-+++ eccodes-2.13.0-Source/src/CMakeLists.txt 2019-07-25 12:58:27.343673693 +0200
-@@ -437,8 +437,8 @@ ecbuild_add_library(TARGET eccodes
- ${grib_api_srcs}
++
+ if( DEFINED ecbuild_VERSION AND NOT ${ecbuild_VERSION} VERSION_LESS 3.1 )
+ # Installed module directory is not in the PUBLIC INCLUDES!
+ target_include_directories( eccodes_f90 PUBLIC $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}> )
+--- eccodes-2.14.1-Source.unchanged/src/CMakeLists.txt 2019-10-10 13:33:52.000000000 +0200
++++ eccodes-2.14.1-Source/src/CMakeLists.txt 2019-10-27 11:27:56.115531419 +0100
+@@ -438,6 +438,7 @@ ecbuild_add_library(TARGET eccodes
GENERATED grib_api_version.c
LIBS ${ECCODES_EXTRA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${CMATH_LIBRARIES}
-- TEMPLATES ${grib_api_extra_srcs})
--
-+ TEMPLATES ${grib_api_extra_srcs}
-+ SOVERSION ${ECCODES_SOVERSION})
-
- install( FILES grib_api.h eccodes.h eccodes_windef.h DESTINATION ${INSTALL_INCLUDE_DIR} )
- install( FILES ${CMAKE_CURRENT_BINARY_DIR}/eccodes_version.h DESTINATION ${INSTALL_INCLUDE_DIR} )
+ TEMPLATES ${grib_api_extra_srcs}
++ SOVERSION ${ECCODES_SOVERSION}
+ INSTALL_HEADERS_LIST
+ grib_api.h
+ eccodes.h
diff --git a/eccodes.spec b/eccodes.spec
index a6832dd..982f521 100644
--- a/eccodes.spec
+++ b/eccodes.spec
@@ -1,6 +1,6 @@
Name: eccodes
-Version: 2.13.0
-Release: 2%{?dist}
+Version: 2.14.1
+Release: 1%{?dist}
Summary: WMO data format decoding and encoding
# force the shared libraries to have these so versions
@@ -8,7 +8,7 @@ Summary: WMO data format decoding and encoding
%global so_version_f90 0.1
%global datapack_date 20181010
-# latest rawhide grib_api version is 1.27.0-4
+# latest rawhide grib_api version is 1.27.0-5
# but this version number is to be updated as soon as we know
# what the final release of grib_api by upstream will be.
# latest upstream grib_api release is 1.28.0 (05-Dec-2018)
@@ -91,15 +91,15 @@ Obsoletes: grib_api < %{final_grib_api_version}
%endif
# as explained in bugzilla #1562066
-ExcludeArch: i686
+#ExcludeArch: i686
# as explained in bugzilla #1562071
# note: this is no longer part of fc30/rawhide
# but the exclude is still needed for EPEL-7
#ExcludeArch: ppc64
# as explained in bugzilla #1562076
-ExcludeArch: s390x
+#ExcludeArch: s390x
# as explained in bugzilla #1562084
-ExcludeArch: armv7hl
+#ExcludeArch: armv7hl
%if 0%{?rhel} >= 7
# as explained in bugzilla #1629377
@@ -286,14 +286,16 @@ cp examples/C/*.c %{buildroot}%{_datadir}/doc/%{name}/examples/C
mkdir -p %{buildroot}%{_datadir}/doc/%{name}/examples/F90
cp examples/F90/*.f90 %{buildroot}%{_datadir}/doc/%{name}/examples/F90
-%ifarch i686 armv7hl
- # pass (nothing to do)
-%else
- # it seems pkgconfig files end up in lib in stead of lib64 now
- # so move them to the right place
- mv %{buildroot}/%{_usr}/lib/pkgconfig/ \
- %{buildroot}/%{_libdir}/pkgconfig/
-%endif
+# also not needed for x86_64
+# maybe they fixed it for all archs?
+#%%ifarch i686 armv7hl
+# # pass (nothing to do)
+#%%else
+# # it seems pkgconfig files end up in lib in stead of lib64 now
+# # so move them to the right place
+# mv %%{buildroot}/%%{_usr}/lib/pkgconfig/ \
+# %%{buildroot}/%%{_libdir}/pkgconfig/
+#%%endif
# It seems the cmake options
# -DCMAKE_SKIP_RPATH=TRUE
@@ -317,18 +319,9 @@ cd build
# 'eccodes_t_bufr_dump_(de|en)code_C' tests run.
# These tests compile on the fly generated C code, and
# without this setting the loader does not find the libraries.
-#
-# These fail due to build flag issues, i.e. the test script does a
-# test build of some on the fly generated fortran code, but cannot
-# find the necessary *.mod fortran module definition files.
-# There is no easy way to define this as environment setting,
-# so a patch has been added to solve this for now.
-# See: https://software.ecmwf.int/issues/browse/SUP-1812
-# (unfortunately this issue is not public)
-
-#LD_LIBRARY_PATH=%%{buildroot}/%%{_libdir} \
-#LIBRARY_PATH=%%{buildroot}/%%{_libdir} \
+LD_LIBRARY_PATH=%{buildroot}/%{_libdir} \
+LIBRARY_PATH=%{buildroot}/%{_libdir} \
ctest3 -V %{?_smp_mflags}
%files
@@ -357,6 +350,9 @@ ctest3 -V %{?_smp_mflags}
%doc %{_datadir}/doc/%{name}/
%changelog
+* Sun Oct 27 2019 Jos de Kloe <josdekloe(a)gmail.com> - 2.14.1-1
+- Upgrade to upstream version 2.14.1
+
* Sat Aug 10 2019 Jos de Kloe <josdekloe(a)gmail.com> - 2.13.0-2
- apply bugfix to pc files contribuited by Emanuele Di Giacomo
diff --git a/sources b/sources
index 0f7be28..f646642 100644
--- a/sources
+++ b/sources
@@ -2,3 +2,4 @@ SHA512 (eccodes_test_data_20181010.tar.gz) = 24c24ec9e01d230cf542abe5c131f05b8e6
SHA512 (eccodes-2.12.0-Source.tar.gz) = 3dc876bde2a6c81a43bcc64ecb12969f28eae3cfbc8fed7da7797fc722dc8b446ac7be5178f55b7d395653e0718437b842296a7d4d11b372b8692404c76aa4ad
SHA512 (eccodes-2.12.5-Source.tar.gz) = ab1267dffdb3d0dbcdd65f23db2d77bc7bd8f3241083374c75bc62ebf70b7d29d8af9f657d6da05a47e363151c8d995adfadca7bbf95ebb24a27303d80f081a4
SHA512 (eccodes-2.13.0-Source.tar.gz) = bbde1b7092caad20772b21cd06040938f99e763f77a6622820e3cc2fba5c0765178822be4b3c33b41a927757da85f311c0c4f057500ca58d257dde304e7eeca3
+SHA512 (eccodes-2.14.1-Source.tar.gz) = 864b530642884baa0c3c56eee646a61af7d659e711c7ed4d08a5cc2d68812ecb96b8efabf40c4c9d5dcb3a0edeb1caddffea2ec3438571d3e90dc9cca1dabebe
4 years, 6 months