summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2021-10-14 19:01:18 -0400
committerGravatar Chris Xiong <chirs241097@gmail.com> 2021-10-14 19:01:18 -0400
commit846cdbdbf965fc50478bcc4c6436e3dc6a489f3f (patch)
tree4a39385c982291a110f513871aba340f0a7a061e
downloadppo-846cdbdbf965fc50478bcc4c6436e3dc6a489f3f.tar.xz
Initial commit.
-rw-r--r--.gitignore4
-rw-r--r--README22
-rw-r--r--app-benchmarks/s-tui/Manifest6
-rw-r--r--app-benchmarks/s-tui/s-tui-1.0.0.ebuild29
-rw-r--r--app-benchmarks/s-tui/s-tui-1.0.2.ebuild39
-rw-r--r--dev-cpp/pystring/Manifest2
-rw-r--r--dev-cpp/pystring/pystring-1.1.3-r1.ebuild37
-rw-r--r--dev-util/apitrace/Manifest5
-rw-r--r--dev-util/apitrace/apitrace-9.0-r3.ebuild86
-rw-r--r--dev-util/apitrace/files/apitrace-9.0-brotli-unbundle.patch158
-rw-r--r--dev-util/apitrace/files/apitrace-9.0-disable-multiarch.patch53
-rw-r--r--dev-util/apitrace/metadata.xml8
-rw-r--r--dev-util/gammaray/Manifest1
-rw-r--r--dev-util/gammaray/gammaray-9999.ebuild22
-rw-r--r--media-libs/rtmidi/Manifest4
-rw-r--r--media-libs/rtmidi/rtmidi-3.0.0.ebuild29
-rw-r--r--media-libs/rtmidi/rtmidi-4.0.0.ebuild29
-rw-r--r--media-sound/fluidsynth/Manifest2
-rw-r--r--media-sound/fluidsynth/fluidsynth-2.1.6.ebuild115
-rw-r--r--metadata/layout.conf2
-rw-r--r--net-misc/modem-manager-gui/Manifest3
-rw-r--r--net-misc/modem-manager-gui/files/mm-strftime-null.patch52
-rw-r--r--net-misc/modem-manager-gui/modem-manager-gui-0.0.19.1.ebuild24
-rw-r--r--profiles/repo_name1
-rw-r--r--www-client/chromium/Manifest336
-rw-r--r--www-client/chromium/chromium-73.0.3683.10.ebuild727
-rw-r--r--www-client/chromium/chromium-74.0.3702.0.ebuild733
-rw-r--r--www-client/chromium/chromium-75.0.3745.4.ebuild723
-rw-r--r--www-client/chromium/chromium-76.0.3783.0.ebuild722
-rw-r--r--www-client/chromium/chromium-76.0.3800.0.ebuild717
-rw-r--r--www-client/chromium/chromium-77.0.3824.6.ebuild725
-rw-r--r--www-client/chromium/chromium-78.0.3876.0.ebuild725
-rw-r--r--www-client/chromium/chromium-78.0.3880.4.ebuild718
-rw-r--r--www-client/chromium/chromium-78.0.3902.4.ebuild727
-rw-r--r--www-client/chromium/chromium-79.0.3921.0.ebuild731
-rw-r--r--www-client/chromium/chromium-80.0.3955.4.ebuild726
-rw-r--r--www-client/chromium/chromium-80.0.3970.5.ebuild728
-rw-r--r--www-client/chromium/chromium-81.0.4000.3.ebuild728
-rw-r--r--www-client/chromium/chromium-82.0.4056.3.ebuild732
-rw-r--r--www-client/chromium/chromium-83.0.4093.3.ebuild745
-rw-r--r--www-client/chromium/chromium-83.0.4100.3.ebuild744
-rw-r--r--www-client/chromium/chromium-83.0.4103.7.ebuild747
-rw-r--r--www-client/chromium/chromium-84.0.4115.5.ebuild752
-rw-r--r--www-client/chromium/chromium-84.0.4122.7.ebuild754
-rw-r--r--www-client/chromium/chromium-84.0.4136.5.ebuild748
-rw-r--r--www-client/chromium/chromium-84.0.4147.13.ebuild752
-rw-r--r--www-client/chromium/chromium-85.0.4164.2.ebuild754
-rw-r--r--www-client/chromium/chromium-85.0.4183.15.ebuild752
-rw-r--r--www-client/chromium/chromium-86.0.4214.2.ebuild757
-rw-r--r--www-client/chromium/chromium-87.0.4259.3.ebuild758
-rw-r--r--www-client/chromium/chromium-87.0.4263.3-r1.ebuild894
-rw-r--r--www-client/chromium/chromium-87.0.4263.3.ebuild760
-rw-r--r--www-client/chromium/chromium-87.0.4278.0.ebuild892
-rw-r--r--www-client/chromium/chromium-88.0.4298.4.ebuild905
-rw-r--r--www-client/chromium/chromium-88.0.4302.0.ebuild901
-rw-r--r--www-client/chromium/chromium-88.0.4324.11.ebuild907
-rw-r--r--www-client/chromium/chromium-89.0.4343.0.ebuild912
-rw-r--r--www-client/chromium/chromium-89.0.4381.6.ebuild894
-rw-r--r--www-client/chromium/chromium-90.0.4430.19.ebuild911
-rw-r--r--www-client/chromium/chromium-91.0.4442.4.ebuild910
-rw-r--r--www-client/chromium/chromium-91.0.4469.4.ebuild917
-rw-r--r--www-client/chromium/chromium-92.0.4503.0.ebuild919
-rw-r--r--www-client/chromium/chromium-92.0.4512.4.ebuild937
-rw-r--r--www-client/chromium/chromium-93.0.4535.3.ebuild939
-rw-r--r--www-client/chromium/chromium-93.0.4573.0.ebuild954
-rw-r--r--www-client/chromium/chromium-93.0.4577.8.ebuild941
-rw-r--r--www-client/chromium/chromium-94.0.4606.12.ebuild937
-rw-r--r--www-client/chromium/chromium-95.0.4628.3.ebuild935
-rw-r--r--www-client/chromium/chromium-96.0.4662.6.ebuild957
-rw-r--r--www-client/chromium/files/chromium-71-gcc-0.patch57
-rw-r--r--www-client/chromium/files/chromium-73-gcc-0.patch108
-rw-r--r--www-client/chromium/files/chromium-73-gcc-1.patch99
-rw-r--r--www-client/chromium/files/chromium-73-gcc-2.patch51
-rw-r--r--www-client/chromium/files/chromium-73-gcc-3.patch69
-rw-r--r--www-client/chromium/files/chromium-73-gcc-4.patch59
-rw-r--r--www-client/chromium/files/chromium-73-gcc-5.patch65
-rw-r--r--www-client/chromium/files/chromium-73-gcc-6.patch88
-rw-r--r--www-client/chromium/files/chromium-74-gcc.patch25
-rw-r--r--www-client/chromium/files/chromium-75-vaapi.patch254
-rw-r--r--www-client/chromium/files/chromium-76-arm64-skia.patch41
-rw-r--r--www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch39
-rw-r--r--www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch32
-rw-r--r--www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch91
-rw-r--r--www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch97
-rw-r--r--www-client/chromium/files/chromium-76-gcc-gl-init.patch33
-rw-r--r--www-client/chromium/files/chromium-76-gcc-include.patch10
-rw-r--r--www-client/chromium/files/chromium-76-gcc-noexcept.patch347
-rw-r--r--www-client/chromium/files/chromium-76-gcc-private.patch63
-rw-r--r--www-client/chromium/files/chromium-76-gcc-pure-virtual.patch50
-rw-r--r--www-client/chromium/files/chromium-76-gcc-uint32.patch30
-rw-r--r--www-client/chromium/files/chromium-76-gcc-vulkan.patch115
-rw-r--r--www-client/chromium/files/chromium-76-quiche.patch239
-rw-r--r--www-client/chromium/files/chromium-77-blink-include.patch28
-rw-r--r--www-client/chromium/files/chromium-77-clang.patch13
-rw-r--r--www-client/chromium/files/chromium-77-fix-gn-gen.patch11
-rw-r--r--www-client/chromium/files/chromium-77-gcc-abstract.patch61
-rw-r--r--www-client/chromium/files/chromium-77-gcc-include.patch56
-rw-r--r--www-client/chromium/files/chromium-77-std-string.patch130
-rw-r--r--www-client/chromium/files/chromium-77-system-hb.patch13
-rw-r--r--www-client/chromium/files/chromium-77-system-icu.patch20
-rw-r--r--www-client/chromium/files/chromium-78-include.patch13
-rw-r--r--www-client/chromium/files/chromium-78-protobuf-RepeatedPtrField-export.patch13
-rw-r--r--www-client/chromium/files/chromium-79-gcc-protobuf-alignas.patch81
-rw-r--r--www-client/chromium/files/chromium-79-span-stlcompat.patch12
-rw-r--r--www-client/chromium/files/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch30
-rw-r--r--www-client/chromium/files/chromium-84-blink-disable-clang-format.patch33
-rw-r--r--www-client/chromium/files/chromium-86-ConsumeDurationNumber-constexpr.patch32
-rw-r--r--www-client/chromium/files/chromium-86-ImageMemoryBarrierData-init.patch31
-rw-r--r--www-client/chromium/files/chromium-86-compiler.patch159
-rw-r--r--www-client/chromium/files/chromium-86-nearby-explicit.patch25
-rw-r--r--www-client/chromium/files/chromium-86-nearby-include.patch24
-rw-r--r--www-client/chromium/files/chromium-87-CrossThreadPersistent-template.patch32
-rw-r--r--www-client/chromium/files/chromium-87-CursorFactory-include.patch36
-rw-r--r--www-client/chromium/files/chromium-87-SystemMemoryPressureEvaluator-namespace.patch70
-rw-r--r--www-client/chromium/files/chromium-87-Thumbnail-noexcept.patch46
-rw-r--r--www-client/chromium/files/chromium-87-anonymous-struct.patch61
-rw-r--r--www-client/chromium/files/chromium-87-compiler-r1.patch166
-rw-r--r--www-client/chromium/files/chromium-87-openscreen-crypto-include.patch11
-rw-r--r--www-client/chromium/files/chromium-87-ozone-deps.patch15
-rw-r--r--www-client/chromium/files/chromium-87-remotesyscall.patch13
-rw-r--r--www-client/chromium/files/chromium-87-std-max_align_t.patch43
-rw-r--r--www-client/chromium/files/chromium-87-thread_cache.patch25
-rw-r--r--www-client/chromium/files/chromium-88-angle-renderer.patch13
-rw-r--r--www-client/chromium/files/chromium-88-compiler.patch147
-rw-r--r--www-client/chromium/files/chromium-88-compositor-dcheck.patch13
-rw-r--r--www-client/chromium/files/chromium-88-dawn-include.patch12
-rw-r--r--www-client/chromium/files/chromium-88-dawn-size_t-std.patch13
-rw-r--r--www-client/chromium/files/chromium-88-gpu-internals-ozone.patch21
-rw-r--r--www-client/chromium/files/chromium-88-mediasource-uniqptrostream.patch22
-rw-r--r--www-client/chromium/files/chromium-88-pcscan-nonfinal.patch13
-rw-r--r--www-client/chromium/files/chromium-88-service-worker-registration-crash.patch14
-rw-r--r--www-client/chromium/files/chromium-88-system-icu.patch13
-rw-r--r--www-client/chromium/files/chromium-88-tree-formatter-include.patch14
-rw-r--r--www-client/chromium/files/chromium-89-CursorFactory-include.patch20
-rw-r--r--www-client/chromium/files/chromium-89-EnumTable-crash.patch71
-rw-r--r--www-client/chromium/files/chromium-89-angle-display.patch1747
-rw-r--r--www-client/chromium/files/chromium-89-compositor-dcheck.patch13
-rw-r--r--www-client/chromium/files/chromium-89-content-dcheck-uniqueptr.patch13
-rw-r--r--www-client/chromium/files/chromium-89-dawn-string-include.patch13
-rw-r--r--www-client/chromium/files/chromium-89-pcscan-include.patch12
-rw-r--r--www-client/chromium/files/chromium-89-quiche-uniqueptr.patch13
-rw-r--r--www-client/chromium/files/chromium-89-quiche-uniqueptr_r1.patch13
-rw-r--r--www-client/chromium/files/chromium-89-sstream.patch344
-rw-r--r--www-client/chromium/files/chromium-89-uigfx-image-skia.patch22
-rw-r--r--www-client/chromium/files/chromium-89-webui-config-include.patch12
-rw-r--r--www-client/chromium/files/chromium-90-blink-disable-clang-format.patch19
-rw-r--r--www-client/chromium/files/chromium-90-compositor-dcheck.patch13
-rw-r--r--www-client/chromium/files/chromium-90-disable-nomerge.patch13
-rw-r--r--www-client/chromium/files/chromium-90-langdetect-include.patch12
-rw-r--r--www-client/chromium/files/chromium-90-quantization-util-stdint.patch12
-rw-r--r--www-client/chromium/files/chromium-90-quiche-uniqueptr.patch13
-rw-r--r--www-client/chromium/files/chromium-90-ruy-include.patch24
-rw-r--r--www-client/chromium/files/chromium-91-clipboard-ozone.patch48
-rw-r--r--www-client/chromium/files/chromium-91-compiler-r1.patch165
-rw-r--r--www-client/chromium/files/chromium-91-compiler.patch154
-rw-r--r--www-client/chromium/files/chromium-91-disable-nomerge.patch13
-rw-r--r--www-client/chromium/files/chromium-91-libyuv-aarch64.patch91
-rw-r--r--www-client/chromium/files/chromium-92-ClassPropertyCaster-namespace.patch46
-rw-r--r--www-client/chromium/files/chromium-92-base_atomic_include.patch12
-rw-r--r--www-client/chromium/files/chromium-92-glibc-2.33.patch146
-rw-r--r--www-client/chromium/files/chromium-92-platform_thread-include.patch24
-rw-r--r--www-client/chromium/files/chromium-92-sql-cursor.patch231
-rw-r--r--www-client/chromium/files/chromium-93-AXPropertyNode-private.patch43
-rw-r--r--www-client/chromium/files/chromium-93-EnumTable-crash.patch79
-rw-r--r--www-client/chromium/files/chromium-93-InkDropHost-crash.patch25
-rw-r--r--www-client/chromium/files/chromium-93-cart-include.patch13
-rw-r--r--www-client/chromium/files/chromium-93-devtools-msg-dispatcher-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-dnsprefetch-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-ext-autoconfirm-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-gpu-ipc-include.patch13
-rw-r--r--www-client/chromium/files/chromium-93-hid-chooser-include.patch13
-rw-r--r--www-client/chromium/files/chromium-93-lang-prefs-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-login-detection-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-media-ffmpeg-type.patch36
-rw-r--r--www-client/chromium/files/chromium-93-media-history-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-net-http-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-payment-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-pdfium-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-phishing-classifier-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-pwdmgr-include-r1.patch12
-rw-r--r--www-client/chromium/files/chromium-93-pwdmgr-include.patch25
-rw-r--r--www-client/chromium/files/chromium-93-quiche-logging-include.patch13
-rw-r--r--www-client/chromium/files/chromium-93-site_settings_helper-initialzation.patch37
-rw-r--r--www-client/chromium/files/chromium-93-sms-fetcher-include.patch24
-rw-r--r--www-client/chromium/files/chromium-93-sql-virtual-cursor.patch231
-rw-r--r--www-client/chromium/files/chromium-93-tint-include.patch24
-rw-r--r--www-client/chromium/files/chromium-93-ui-event-include.patch13
-rw-r--r--www-client/chromium/files/chromium-93-url-loader-throttles-include.patch13
-rw-r--r--www-client/chromium/files/chromium-93-webapp-include.patch12
-rw-r--r--www-client/chromium/files/chromium-93-worksp-ext-include.patch37
-rw-r--r--www-client/chromium/files/chromium-94-ConversionStorageSql-lambda.patch31
-rw-r--r--www-client/chromium/files/chromium-94-CustomSpaces-include.patch24
-rw-r--r--www-client/chromium/files/chromium-94-compiler.patch218
-rw-r--r--www-client/chromium/files/chromium-94-sql-virtual-cursor.patch216
-rw-r--r--www-client/chromium/files/chromium-94-translate.patch98
-rw-r--r--www-client/chromium/files/chromium-95-hash_traits-include.patch30
-rw-r--r--www-client/chromium/files/chromium-95-libyuv-aarch64.patch31
-rw-r--r--www-client/chromium/files/chromium-95-text_fragments_utils-include.patch37
-rw-r--r--www-client/chromium/files/chromium-96-AppliedTextDecoration-include.patch25
-rw-r--r--www-client/chromium/files/chromium-96-EnumTable-crash.patch76
-rw-r--r--www-client/chromium/files/chromium-96-ax_platform-list-init.patch15
-rw-r--r--www-client/chromium/files/chromium-96-compiler.patch200
-rw-r--r--www-client/chromium/files/chromium-96-coupondb-include.patch13
-rw-r--r--www-client/chromium/files/chromium-96-template-friend.patch34
-rw-r--r--www-client/chromium/files/chromium-angle-inline.patch118
-rw-r--r--www-client/chromium/files/chromium-axobj-ancestoriter-cat-84.patch33
-rw-r--r--www-client/chromium/files/chromium-axtree-incomplete-type-83.patch41
-rw-r--r--www-client/chromium/files/chromium-base-include-84-r1.patch24
-rw-r--r--www-client/chromium/files/chromium-base-include-84-r2.patch12
-rw-r--r--www-client/chromium/files/chromium-base-include-84.patch281
-rw-r--r--www-client/chromium/files/chromium-blink-include-bitset-84.patch13
-rw-r--r--www-client/chromium/files/chromium-blink-include-limits-84.patch13
-rw-r--r--www-client/chromium/files/chromium-blink-include-memory-83.patch13
-rw-r--r--www-client/chromium/files/chromium-blink-template.patch15
-rw-r--r--www-client/chromium/files/chromium-bluetooth-tuple-84.patch51
-rw-r--r--www-client/chromium/files/chromium-browser.xml13
-rw-r--r--www-client/chromium/files/chromium-build-gn-83.patch36
-rw-r--r--www-client/chromium/files/chromium-cc-matrics-include-84.patch12
-rw-r--r--www-client/chromium/files/chromium-cert-share-encrypted-85.patch13
-rw-r--r--www-client/chromium/files/chromium-char-max-84.patch12
-rw-r--r--www-client/chromium/files/chromium-clang-format-path-82.patch13
-rw-r--r--www-client/chromium/files/chromium-compiler-76.patch160
-rw-r--r--www-client/chromium/files/chromium-compiler-77.patch160
-rw-r--r--www-client/chromium/files/chromium-compiler-78.patch160
-rw-r--r--www-client/chromium/files/chromium-compiler-82.patch166
-rw-r--r--www-client/chromium/files/chromium-compiler-83.patch150
-rw-r--r--www-client/chromium/files/chromium-compiler-84-r1.patch150
-rw-r--r--www-client/chromium/files/chromium-compiler-84.patch150
-rw-r--r--www-client/chromium/files/chromium-compiler-86.patch162
-rw-r--r--www-client/chromium/files/chromium-compiler-87.patch147
-rw-r--r--www-client/chromium/files/chromium-compiler-r10.patch185
-rw-r--r--www-client/chromium/files/chromium-compiler-r4.patch168
-rw-r--r--www-client/chromium/files/chromium-compiler-r6.patch170
-rw-r--r--www-client/chromium/files/chromium-compiler-r7.patch176
-rw-r--r--www-client/chromium/files/chromium-compiler-r8.patch164
-rw-r--r--www-client/chromium/files/chromium-compiler-r9.patch160
-rw-r--r--www-client/chromium/files/chromium-core-management-svc-84.patch12
-rw-r--r--www-client/chromium/files/chromium-crx-install-err-include-83.patch13
-rw-r--r--www-client/chromium/files/chromium-cursor-80.patch99
-rw-r--r--www-client/chromium/files/chromium-deque-constructor-82.patch13
-rw-r--r--www-client/chromium/files/chromium-disable-mojovdec.patch18
-rw-r--r--www-client/chromium/files/chromium-ext-no-vector-const-84.patch40
-rw-r--r--www-client/chromium/files/chromium-fix-char_traits.patch14
-rw-r--r--www-client/chromium/files/chromium-gamepad-include-84.patch12
-rw-r--r--www-client/chromium/files/chromium-gcc-89311.patch88
-rw-r--r--www-client/chromium/files/chromium-gcc-initlist.patch16
-rw-r--r--www-client/chromium/files/chromium-gpu-vp9-include-84.patch13
-rw-r--r--www-client/chromium/files/chromium-harfbuzz-r0.patch80
-rw-r--r--www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch65
-rw-r--r--www-client/chromium/files/chromium-include-limits-83.patch13
-rw-r--r--www-client/chromium/files/chromium-include-limits-84.patch12
-rw-r--r--www-client/chromium/files/chromium-inline-node-ptr-84.patch13
-rw-r--r--www-client/chromium/files/chromium-launcher-r3.sh39
-rw-r--r--www-client/chromium/files/chromium-launcher-r6.sh48
-rw-r--r--www-client/chromium/files/chromium-launcher-r7.sh59
-rw-r--r--www-client/chromium/files/chromium-layer_tree_impl-stlcompat.patch13
-rw-r--r--www-client/chromium/files/chromium-link.patch17
-rw-r--r--www-client/chromium/files/chromium-math.h-r0.patch29
-rw-r--r--www-client/chromium/files/chromium-media-alloc-84.patch22
-rw-r--r--www-client/chromium/files/chromium-memcpy-r0.patch35
-rw-r--r--www-client/chromium/files/chromium-mojo-ltm-83.patch84
-rw-r--r--www-client/chromium/files/chromium-nearby-inc-86.patch10
-rw-r--r--www-client/chromium/files/chromium-ngphyscontainer-iterator-cat-83.patch17
-rw-r--r--www-client/chromium/files/chromium-noexcept-2.patch26
-rw-r--r--www-client/chromium/files/chromium-noexcept-3.patch26
-rw-r--r--www-client/chromium/files/chromium-noexcept.patch26
-rw-r--r--www-client/chromium/files/chromium-ntp_backgrounds-include-84.patch12
-rw-r--r--www-client/chromium/files/chromium-opencv-include-84.patch12
-rw-r--r--www-client/chromium/files/chromium-pa13.patch82
-rw-r--r--www-client/chromium/files/chromium-pdfium-stdlib-r0.patch30
-rw-r--r--www-client/chromium/files/chromium-remove-no_check_targets-86.patch621
-rw-r--r--www-client/chromium/files/chromium-renderer-std-nullptr-83.patch13
-rw-r--r--www-client/chromium/files/chromium-revert-crrev-2147485-84.patch369
-rw-r--r--www-client/chromium/files/chromium-revert-e7963c4-78.patch335
-rw-r--r--www-client/chromium/files/chromium-serviceworker-83.patch130
-rw-r--r--www-client/chromium/files/chromium-shim_headers.patch48
-rw-r--r--www-client/chromium/files/chromium-simhash-include-84.patch26
-rw-r--r--www-client/chromium/files/chromium-simhash-include-85.patch15
-rw-r--r--www-client/chromium/files/chromium-sqrt.patch13
-rw-r--r--www-client/chromium/files/chromium-std-nullptr-83.patch22
-rw-r--r--www-client/chromium/files/chromium-stdint.patch21
-rw-r--r--www-client/chromium/files/chromium-stdset.patch13
-rw-r--r--www-client/chromium/files/chromium-string_view-79.patch78
-rw-r--r--www-client/chromium/files/chromium-swiftshader-77.patch53
-rw-r--r--www-client/chromium/files/chromium-unbundle-zlib.patch25
-rw-r--r--www-client/chromium/files/chromium-union.patch54
-rw-r--r--www-client/chromium/files/chromium-unique_ptr-80-r1.patch13
-rw-r--r--www-client/chromium/files/chromium-unique_ptr-80.patch12
-rw-r--r--www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch17
-rw-r--r--www-client/chromium/files/chromium-vaapi-76-r1.patch213
-rw-r--r--www-client/chromium/files/chromium-vaapi-76.patch218
-rw-r--r--www-client/chromium/files/chromium-vaapi-77.patch213
-rw-r--r--www-client/chromium/files/chromium-vaapi-78-r1.patch220
-rw-r--r--www-client/chromium/files/chromium-vaapi-78.patch178
-rw-r--r--www-client/chromium/files/chromium-vaapi-79.patch220
-rw-r--r--www-client/chromium/files/chromium-vaapi-80.patch168
-rw-r--r--www-client/chromium/files/chromium-vaapi-81.patch181
-rw-r--r--www-client/chromium/files/chromium-vaapi-82.patch186
-rw-r--r--www-client/chromium/files/chromium-vaapi-83.patch186
-rw-r--r--www-client/chromium/files/chromium-vaapi-87.patch137
-rw-r--r--www-client/chromium/files/chromium-vaapi-fix-87.patch200
-rw-r--r--www-client/chromium/files/chromium-vaapi-signature.patch26
-rw-r--r--www-client/chromium/files/chromium-vector-include-81.patch13
-rw-r--r--www-client/chromium/files/chromium-vector-init.patch13
-rw-r--r--www-client/chromium/files/chromium-vk.patch21
-rw-r--r--www-client/chromium/files/chromium-vr.patch47
-rw-r--r--www-client/chromium/files/chromium-webrtc-include-84.patch10
-rw-r--r--www-client/chromium/files/chromium-webrtc-r0.patch34
-rw-r--r--www-client/chromium/files/chromium-webrtc.patch13
-rw-r--r--www-client/chromium/files/chromium-widevine-80.patch11
-rw-r--r--www-client/chromium/files/chromium-widevine-r2.patch39
-rw-r--r--www-client/chromium/files/chromium-widevine-r3.patch23
-rw-r--r--www-client/chromium/files/chromium-widevine-r4.patch26
-rw-r--r--www-client/chromium/files/chromium-wpt-gn-78.patch13
-rw-r--r--www-client/chromium/files/chromium-zlib-78.patch11
-rw-r--r--www-client/chromium/files/chromium-zlib-82.patch9
-rw-r--r--www-client/chromium/files/chromium.default5
-rw-r--r--x11-libs/libva-intel-driver/Manifest4
-rw-r--r--x11-libs/libva-intel-driver/libva-intel-driver-2.4.0_pre1.ebuild55
-rw-r--r--x11-libs/libva-intel-driver/libva-intel-driver-2.4.1.ebuild55
-rw-r--r--x11-libs/libva-intel-media-driver/Manifest2
-rw-r--r--x11-libs/libva-intel-media-driver/libva-intel-media-driver-19.2.0.ebuild43
-rw-r--r--x11-wm/fvwm3/Manifest3
-rw-r--r--x11-wm/fvwm3/files/fvwm3_perl528.patch13
-rw-r--r--x11-wm/fvwm3/fvwm3-1.0.3.ebuild139
325 files changed, 54711 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4a2c80b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+metadata/cache/
+metadata/md5-cache/
+profiles/use.local.desc
+
diff --git a/README b/README
new file mode 100644
index 0000000..5398ccf
--- /dev/null
+++ b/README
@@ -0,0 +1,22 @@
+Chris' Private Gentoo Portage Overlay
+
+A lot of these ebuild files are just stolen from other overlays. As a principle
+I do not add third-party overlays to my system. Ebuilds are just shell scripts
+and despite being sandboxed malicious ones may still do unexpected harm to the
+system. Here is where I review third-party ebuilds and add them to my system.
+Occasionally I also add updated versions or fixes if some official ebuilds
+become unmaintained. All ebuilds here are only guaranteed to work with my
+particular setup. I don't test them for the sake of testing, i.e. This overlay
+is for private usage only. Use at your own peril.
+
+Chromium ebuilds until fairly recently (Chromium 87 I believe) were maintained
+by me. Those contain the VAAPI patch from Debian and are verified to be working
+on Intel iGPU. I stopped working actively on them since a) Chromium VAAPI works
+(almost) out of box on Linux desktop now and b) Stephan Hartmann
+(sultan@gentoo.org) stepped in and started doing God's work. You will probably
+never feel the pain to fix those stupid build errors with libstdc++ on an
+outdated dual core ULV processor... Current Chromium ebuilds are just forks of
+those in the official portage tree with minor tweaks. AND YOU SHOULD NOT USE MY
+OLD CHROMIUM EBUILDS BECAUSE NOBODY SHOULD USE AN OUTDATED BROWSER. They will be
+removed shortly.
+
diff --git a/app-benchmarks/s-tui/Manifest b/app-benchmarks/s-tui/Manifest
new file mode 100644
index 0000000..743e2fa
--- /dev/null
+++ b/app-benchmarks/s-tui/Manifest
@@ -0,0 +1,6 @@
+DIST s-tui-0.8.2.tar.gz 2231439 BLAKE2B 528144c449bd8c517421d8eac4ce4b45d212adfdbfb038fea7a3e224e89cfc9ff6c4a60edb7464f47fc2fe6996ea13142ee923957b7a83132281c641b7d2a02c SHA512 1e9f815083d23edb8d31a64537d2029c52de7e8ebefad6de6c3100727abc27775103749ce93d1b49df24997ea42240b85ec9983cbfa286087453e471c978c71b
+DIST s-tui-1.0.0.tar.gz 2607169 BLAKE2B cc1bc151bb54ef4b4d844e0f090cc801aade109d35a20f581d21587f90d7b25e69375b19c88bd662a7b094535848d77eb23df10ec9d2c1133e79e7dd1cf71c41 SHA512 feb659d731c10bacb666043148664e29359e90558970f145fae063fb3b4c1301c73d3437f92ca9439a1c6029c087f5be9afdcb3f4ad45e057795b1c959c74602
+DIST s-tui-1.0.2.tar.gz 2607552 BLAKE2B 8ed54c44aeab0ccf5806e8fa1cb566b23d9f27f82a281882b36de85c4800515385c558da59b1ba8f039da15d08696865d5ac201c85c1b74316a7757fc2f02125 SHA512 7b475a4be69b702bd0a916e5c4fbec2dc9976e5033d6afb24af0583eba62292d5f7ab26779e1b55d8adaa113c32984a15311d050e9457d791778734b9236d530
+EBUILD s-tui-0.8.2.ebuild 758 BLAKE2B ef60b5c3ac73e7f544b9d2f54213e1f75ae1156b512118ff71024a6b0f72f7c62f58eec0a1d3cab87e36ce159ebf6bdc9b93d0d5e093bdea1e65c696300aa454 SHA512 a4d1f5d307aff5edf1df747afb239214b11e8f8c75590979ad30333a990a21d16d3bf04fff844d044e88c631c8fa8426e38ac296905d8e007adcc45dad848cf2
+EBUILD s-tui-1.0.0.ebuild 675 BLAKE2B 76d8526ce4f363fe1e047ad58edf0a5423c94a8f14a48d844bf81d939942569f84c0d4ab6062f6ca2a7014cee3e874df0c36cea88c54db1175deec305a8fae04 SHA512 c69110313fe3f7f8bd666a559265fec4812bf9f62ea139a6636de3813df0d6594ad51ce7a0239e60bb4226779ba99c5a8544d38d5c13853699658ceafd014d6d
+EBUILD s-tui-1.0.2.ebuild 926 BLAKE2B 8293586b2ad6752a6447a81a5a4f434fcc4223710fdc3e8536e0eaadf681c6850d51a13ca886a016eff81d80fd4bc34bec2fbfc5e243a4c47efa0ee4e163af50 SHA512 ac0ef439723a86da6230467e69f82d69b1f15a22629db8de70861a8822604f10c2d164d5c14292c147a9ab1685f33054ec1d28894039d1916f90dadadb61ff93
diff --git a/app-benchmarks/s-tui/s-tui-1.0.0.ebuild b/app-benchmarks/s-tui/s-tui-1.0.0.ebuild
new file mode 100644
index 0000000..005cb68
--- /dev/null
+++ b/app-benchmarks/s-tui/s-tui-1.0.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit distutils-r1
+
+DESCRIPTION="Stress-Terminal UI monitoring tool"
+HOMEPAGE="https://amanusk.github.io/s-tui/"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/amanusk/s-tui"
+else
+ SRC_URI="https://github.com/amanusk/s-tui/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+stress"
+
+DEPEND="${PYTHON_DEPS}"
+RDEPEND="${DEPEND}
+ >=dev-python/urwid-2.0.1[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ stress? ( app-benchmarks/stress )"
diff --git a/app-benchmarks/s-tui/s-tui-1.0.2.ebuild b/app-benchmarks/s-tui/s-tui-1.0.2.ebuild
new file mode 100644
index 0000000..53f18e0
--- /dev/null
+++ b/app-benchmarks/s-tui/s-tui-1.0.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9} )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+
+inherit eutils distutils-r1
+
+DESCRIPTION="Stress-Terminal UI monitoring tool"
+HOMEPAGE="https://amanusk.github.io/s-tui/"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/amanusk/${PN}.git"
+ EGIT_SUBMODULES=()
+else
+ # Pypi source doesn't include tests
+ SRC_URI="https://github.com/amanusk/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+RDEPEND="
+ >=dev-python/urwid-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.6.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+
+pkg_postinst() {
+ elog "To get additional features, some optional runtime dependencies"
+ elog "may be installed:"
+ elog ""
+ optfeature "Stress options in program menu" app-benchmarks/stress
+}
diff --git a/dev-cpp/pystring/Manifest b/dev-cpp/pystring/Manifest
new file mode 100644
index 0000000..a6e3704
--- /dev/null
+++ b/dev-cpp/pystring/Manifest
@@ -0,0 +1,2 @@
+DIST pystring-1.1.3.tar.gz 18364 BLAKE2B caab1a3b1dc688ad6ecbb32e5e8139bb883a88b78ce8a021229924d57376e94b17d89277e2fccf4f7ec478c81ee9259c5e56848f4388c44b2eab9cfb841bcfb8 SHA512 a46bb2e96d6eb351a4a8097cde46ac2877d28e88f9e57e0ac36c42e8fc8543517c4be70306a01e2f88a891fc53c612494aeb37f47a200d94b8e1b050ed16eff6
+EBUILD pystring-1.1.3-r1.ebuild 845 BLAKE2B caf0280c8b205c0b4663aa72a55cf287dc35a2a3edfad560f9dd3a18c938708a67ac06e912e8ffcc31b00cdf6e5db206e8d87966bda2ced5d9c878b8c4874887 SHA512 5616b6e847d6599d46d5b708a0963b7117a9ee09f4d9d788e04b78d69dd07ef9f7bb4d6e2867edbdecc6446e26d37a7bb4d03ac3f6f4c736ed0546b88d35630f
diff --git a/dev-cpp/pystring/pystring-1.1.3-r1.ebuild b/dev-cpp/pystring/pystring-1.1.3-r1.ebuild
new file mode 100644
index 0000000..7694add
--- /dev/null
+++ b/dev-cpp/pystring/pystring-1.1.3-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2020-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="C++ functions matching the interface and behavior of python string methods"
+HOMEPAGE="https://github.com/imageworks/pystring"
+
+if [[ "${PV}" == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/imageworks/pystring.git"
+else
+ SRC_URI="https://github.com/imageworks/pystring/archive/v"${PV}".tar.gz -> "${P}".tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+BDEPEND="
+ virtual/libc
+ sys-devel/libtool
+"
+RESTRICT="mirror"
+
+LICENSE="BSD"
+SLOT="0"
+
+src_compile() {
+ sed -i -e "s|-O3|${CXXFLAGS}|g" Makefile || die
+ emake LIBDIR="${S}" install
+ #Fix header location
+ mkdir ${S}/pystring || die
+ mv ${S}/pystring.h ${S}/pystring || die
+}
+
+src_install() {
+ dolib.so ${S}/libpystring.so{,.0{,.0.0}}
+ doheader -r ${S}/pystring
+}
diff --git a/dev-util/apitrace/Manifest b/dev-util/apitrace/Manifest
new file mode 100644
index 0000000..9059ddb
--- /dev/null
+++ b/dev-util/apitrace/Manifest
@@ -0,0 +1,5 @@
+AUX apitrace-9.0-brotli-unbundle.patch 4728 BLAKE2B 66ff205968db551cdd8ebc7ba33dfcd39fd36356691722f593f7ce0fa615279c0e440077b3e29c5a643bf5be8a2406a656bfa91fb9f128c2afa922b3ad832a35 SHA512 0690f8d178fd7a5ca11b26d1e23c9c26e984214cef2e3619a22fc6cf58a7ee96fe0b046dd038c202cd6f60b9175dbdd346813c53ca85932f9a4d9dd40e9bdba1
+AUX apitrace-9.0-disable-multiarch.patch 1796 BLAKE2B c687c87b23f3711bd9ac70a345e7e2fbe7dab36f48cbf5a949d7fbeab41ac670054bcee203bf4db8df24cdabc418b7a04980fd1436962a15a8c6371e7d8d0f05 SHA512 5bb89dc98e5bbd92b707988d301ec50ea57f1562bd9a54fc2dada9b5ddafde5da66dd02d03efc377cbcf2bdc7d430f0b1353ed7a7f2d8703aabfeb9b563c1278
+DIST apitrace-9.0.tar.gz 3623693 BLAKE2B 885cfd22d1cc82e36f7f0d65b816784986a8a693d04b483c059d3cffb0328c2cbbfd043793b964cea84d7b09a0dc8dda5f464099e91df26fd5eecef4bbeb28cc SHA512 4234bc2d14378b1bd9554752d83f8ce0703b4e08c3edc85769dc988a2b3a44b8e55d2f5856954658155a11d69802849bae6350ed5031a5916c7ac7bc7287918c
+EBUILD apitrace-9.0-r3.ebuild 2254 BLAKE2B 93bc1e1e10ddc8a8668f8e90388117ddfbeb4638974d9232903da5196d0bbf4acf5841818a3bd37cabc9a698b9b5f75490d4114d401196b2ef3ef8208110de93 SHA512 b140bfe57ab70a8e0f2b8b7986875170f0b4f7db35ad1c4e7a7f8b4dbd9137c75d96ce1dc39cfbd379df3d9ba82ba665407c5187b640ef1bc318faa10ad1a2be
+MISC metadata.xml 249 BLAKE2B eb5bf02945b5d031a07adba28359ab63035d1ce8601c8dc1d9c6aea54de6a55899672c4606b472a308e61a4b8a45d2f752d4472d7b45bb368fccec9c4c3fc739 SHA512 7230e2d97a0540aed68eb2d1f8383c4e5df9b0c09a628db997fea6224615f76744537e5476a7c1984934d27b9ee05d53b0294d00234b2d16cbc722f822a27f21
diff --git a/dev-util/apitrace/apitrace-9.0-r3.ebuild b/dev-util/apitrace/apitrace-9.0-r3.ebuild
new file mode 100644
index 0000000..b6a27ff
--- /dev/null
+++ b/dev-util/apitrace/apitrace-9.0-r3.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7,8,9} )
+inherit cmake-multilib python-single-r1
+
+DESCRIPTION="Tool for tracing, analyzing, and debugging graphics APIs"
+HOMEPAGE="https://github.com/apitrace/apitrace"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="qt5 X"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+DEPEND="${PYTHON_DEPS}
+ app-arch/brotli:=[${MULTILIB_USEDEP}]
+ >=app-arch/snappy-1.1.1[${MULTILIB_USEDEP}]
+ media-libs/libpng:0=
+ media-libs/mesa[egl,gles1,gles2,X?,${MULTILIB_USEDEP}]
+ >=media-libs/waffle-1.6.0-r1[egl,${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ sys-process/procps:=[${MULTILIB_USEDEP}]
+ X? ( x11-libs/libX11 )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5[-gles2-only]
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5[-gles2-only]
+ )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # TODO: upstream
+ "${FILESDIR}"/${P}-disable-multiarch.patch
+ "${FILESDIR}"/${P}-brotli-unbundle.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # The apitrace code grubs around in the internal zlib structures.
+ # We have to extract this header and clean it up to keep that working.
+ # Do not be surprised if a zlib upgrade breaks things ...
+ rm -rf thirdparty/{brotli,snappy,getopt,less,libpng,zlib,dxerr,directxtex,devcon} || die
+}
+
+src_configure() {
+ my_configure() {
+ local mycmakeargs=(
+ -DDOC_INSTALL_DIR="${EPREFIX}"/usr/share/doc/${PF}
+ -DENABLE_X11=$(usex X)
+ -DENABLE_EGL=ON
+ -DENABLE_CLI=ON
+ -DENABLE_GUI=$(multilib_native_usex qt5)
+ -DENABLE_STATIC_SNAPPY=OFF
+ -DENABLE_WAFFLE=ON
+ )
+ cmake_src_configure
+ }
+
+ multilib_foreach_abi my_configure
+}
+
+src_install() {
+ MULTILIB_CHOST_TOOLS=(
+ /usr/bin/apitrace$(get_exeext)
+ /usr/bin/eglretrace$(get_exeext)
+ )
+ use X && MULTILIB_CHOST_TOOLS+=( /usr/bin/glretrace$(get_exeext) )
+
+ cmake-multilib_src_install
+
+ make_libgl_symlinks() {
+ dosym glxtrace.so /usr/$(get_libdir)/${PN}/wrappers/libGL.so
+ dosym glxtrace.so /usr/$(get_libdir)/${PN}/wrappers/libGL.so.1
+ dosym glxtrace.so /usr/$(get_libdir)/${PN}/wrappers/libGL.so.1.2
+ }
+ use X && multilib_foreach_abi make_libgl_symlinks
+}
diff --git a/dev-util/apitrace/files/apitrace-9.0-brotli-unbundle.patch b/dev-util/apitrace/files/apitrace-9.0-brotli-unbundle.patch
new file mode 100644
index 0000000..5715eda
--- /dev/null
+++ b/dev-util/apitrace/files/apitrace-9.0-brotli-unbundle.patch
@@ -0,0 +1,158 @@
+From 3a07d551949ff488d1d669600a07d9c73ff4cc55 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Mon, 29 Apr 2019 21:08:02 +0200
+Subject: [PATCH 1/2] Import FindBrotliDec.cmake and FindBrotliEnc.cmake from
+ Igalia S.L.
+
+MIT License, which fits well.
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ cmake/FindBrotliDec.cmake | 35 +++++++++++++++++++++++++++++++++++
+ cmake/FindBrotliEnc.cmake | 35 +++++++++++++++++++++++++++++++++++
+ 2 files changed, 70 insertions(+)
+ create mode 100644 cmake/FindBrotliDec.cmake
+ create mode 100644 cmake/FindBrotliEnc.cmake
+
+diff --git a/cmake/FindBrotliDec.cmake b/cmake/FindBrotliDec.cmake
+new file mode 100644
+index 00000000..abb06f44
+--- /dev/null
++++ b/cmake/FindBrotliDec.cmake
+@@ -0,0 +1,35 @@
++# Copyright 2017 Igalia S.L. All Rights Reserved.
++#
++# Distributed under MIT license.
++# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
++
++# Try to find BrotliDec. Once done, this will define
++#
++# BROTLIDEC_FOUND - system has BrotliDec.
++# BROTLIDEC_INCLUDE_DIRS - the BrotliDec include directories
++# BROTLIDEC_LIBRARIES - link these to use BrotliDec.
++
++find_package(PkgConfig)
++
++pkg_check_modules(PC_BROTLIDEC libbrotlidec)
++
++find_path(BROTLIDEC_INCLUDE_DIRS
++ NAMES brotli/decode.h
++ HINTS ${PC_BROTLIDEC_INCLUDEDIR}
++)
++
++find_library(BROTLIDEC_LIBRARIES
++ NAMES brotlidec
++ HINTS ${PC_BROTLIDEC_LIBDIR}
++)
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(BrotliDec
++ REQUIRED_VARS BROTLIDEC_INCLUDE_DIRS BROTLIDEC_LIBRARIES
++ FOUND_VAR BROTLIDEC_FOUND
++ VERSION_VAR PC_BROTLIDEC_VERSION)
++
++mark_as_advanced(
++ BROTLIDEC_INCLUDE_DIRS
++ BROTLIDEC_LIBRARIES
++)
+diff --git a/cmake/FindBrotliEnc.cmake b/cmake/FindBrotliEnc.cmake
+new file mode 100644
+index 00000000..4be347db
+--- /dev/null
++++ b/cmake/FindBrotliEnc.cmake
+@@ -0,0 +1,35 @@
++# Copyright 2017 Igalia S.L. All Rights Reserved.
++#
++# Distributed under MIT license.
++# See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
++
++# Try to find BrotliEnc. Once done, this will define
++#
++# BROTLIENC_FOUND - system has BrotliEnc.
++# BROTLIENC_INCLUDE_DIRS - the BrotliEnc include directories
++# BROTLIENC_LIBRARIES - link these to use BrotliEnc.
++
++find_package(PkgConfig)
++
++pkg_check_modules(PC_BROTLIENC libbrotlienc)
++
++find_path(BROTLIENC_INCLUDE_DIRS
++ NAMES brotli/encode.h
++ HINTS ${PC_BROTLIENC_INCLUDEDIR}
++)
++
++find_library(BROTLIENC_LIBRARIES
++ NAMES brotlienc
++ HINTS ${PC_BROTLIENC_LIBDIR}
++)
++
++include(FindPackageHandleStandardArgs)
++find_package_handle_standard_args(BrotliEnc
++ REQUIRED_VARS BROTLIENC_INCLUDE_DIRS BROTLIENC_LIBRARIES
++ FOUND_VAR BROTLIENC_FOUND
++ VERSION_VAR PC_BROTLIENC_VERSION)
++
++mark_as_advanced(
++ BROTLIENC_INCLUDE_DIRS
++ BROTLIENC_LIBRARIES
++)
+--
+2.24.1
+
+From 08a410f238aaf6488759e023b66d16cbbd7f6d66 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Mon, 29 Apr 2019 21:11:57 +0200
+Subject: [PATCH 2/2] Find system brotli instead of bundled
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 5 +++--
+ cli/CMakeLists.txt | 2 +-
+ lib/trace/CMakeLists.txt | 2 +-
+ 3 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c71d24e6..88e6b156 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -491,8 +491,9 @@ if (ENABLE_STATIC_SNAPPY OR NOT SNAPPY_FOUND)
+ endif ()
+ include_directories (${SNAPPY_INCLUDE_DIRS})
+
+-include_directories (${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/brotli/c/include)
+-add_subdirectory (thirdparty/brotli)
++find_package(BrotliDec REQUIRED)
++find_package(BrotliEnc REQUIRED)
++include_directories (${BROTLIDEC_INCLUDE_DIRS} ${BROTLIENC_INCLUDE_DIRS})
+
+ if (NOT WIN32 AND NOT ENABLE_STATIC_EXE)
+ # zlib 1.2.4-1.2.5 made it impossible to read the last block of incomplete
+diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt
+index 3a3c127e..0b33ddb5 100644
+--- a/cli/CMakeLists.txt
++++ b/cli/CMakeLists.txt
+@@ -39,7 +39,7 @@ add_executable (apitrace
+
+ target_link_libraries (apitrace
+ common
+- brotli_dec brotli_enc brotli_common
++ ${BROTLIDEC_LIBRARIES} ${BROTLIENC_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+ ${SNAPPY_LIBRARIES}
+ ${GETOPT_LIBRARIES}
+diff --git a/lib/trace/CMakeLists.txt b/lib/trace/CMakeLists.txt
+index c68bd00f..ce2e469e 100644
+--- a/lib/trace/CMakeLists.txt
++++ b/lib/trace/CMakeLists.txt
+@@ -31,7 +31,7 @@ target_link_libraries (common
+ guids
+ highlight
+ os
+- brotli_dec brotli_common
++ ${BROTLIDEC_LIBRARIES} ${BROTLIENC_LIBRARIES}
+ )
+
+ add_gtest (trace_parser_flags_test trace_parser_flags_test.cpp)
+--
+2.24.1
+
diff --git a/dev-util/apitrace/files/apitrace-9.0-disable-multiarch.patch b/dev-util/apitrace/files/apitrace-9.0-disable-multiarch.patch
new file mode 100644
index 0000000..37085b1
--- /dev/null
+++ b/dev-util/apitrace/files/apitrace-9.0-disable-multiarch.patch
@@ -0,0 +1,53 @@
+From 556397e399994b005524b88171c9c103b8cc1b25 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 29 Apr 2019 20:32:04 +0200
+Subject: [PATCH] Use CMAKE_INSTALL_LIBDIR for LIB_INSTALL_DIR
+
+Respect the libdir cmake already set up for us instead of using
+debian-specific multiarch paths.
+
+Patch was rebased multiple times from 4.0 to 9.0 now.
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 17 ++---------------
+ 1 file changed, 2 insertions(+), 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 19316e60..6c3c4b85 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -438,15 +438,6 @@ endif ()
+ ##############################################################################
+ # Installation directories
+
+-if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+- # Debian multiarch support
+- execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH
+- OUTPUT_VARIABLE ARCH_SUBDIR
+- ERROR_QUIET
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- )
+-endif()
+-
+ if (WIN32 OR APPLE)
+ # On Windows/MacOSX, applications are usually installed on a directory of
+ # their own
+@@ -455,12 +446,8 @@ if (WIN32 OR APPLE)
+ set (LIB_ARCH_INSTALL_DIR lib)
+ else ()
+ set (DOC_DEFAULT_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME})
+- set (LIB_INSTALL_DIR lib${LIB_SUFFIX}/${CMAKE_PROJECT_NAME})
+- if (ARCH_SUBDIR)
+- set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME})
+- else ()
+- set (LIB_ARCH_INSTALL_DIR lib${LIB_SUFFIX}/${CMAKE_PROJECT_NAME})
+- endif ()
++ set (LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME})
++ set (LIB_ARCH_INSTALL_DIR ${LIB_INSTALL_DIR})
+ endif ()
+
+ # Allow customization of the doc installation dir (Slackware uses different
+--
+2.24.1
+
diff --git a/dev-util/apitrace/metadata.xml b/dev-util/apitrace/metadata.xml
new file mode 100644
index 0000000..0a166ed
--- /dev/null
+++ b/dev-util/apitrace/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">apitrace/apitrace</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-util/gammaray/Manifest b/dev-util/gammaray/Manifest
new file mode 100644
index 0000000..9831c72
--- /dev/null
+++ b/dev-util/gammaray/Manifest
@@ -0,0 +1 @@
+EBUILD gammaray-9999.ebuild 450 BLAKE2B 155b0c42716f4e723aba7bb433fb036ccf14089fecc3b5916bf03a3503b1de77238c1096d4005b3e024db6f7390e232e48d0d83c6cbaf9271488174e16cbfdca SHA512 ea9d150dae5a15fbe9ab134e68f386debbf6e760cebe001a93da3623f0d69e2eb5c08e2bcbae99bf3a12fecf59422c26fa17f6be1f5ccc9325ae1f094f3e79c8
diff --git a/dev-util/gammaray/gammaray-9999.ebuild b/dev-util/gammaray/gammaray-9999.ebuild
new file mode 100644
index 0000000..4cac866
--- /dev/null
+++ b/dev-util/gammaray/gammaray-9999.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils git-r3
+
+DESCRIPTION="Tool to poke around in a Qt-application and also to manipulate the application to some extent"
+HOMEPAGE="http://www.kdab.com/gammaray"
+EGIT_REPO_URI="git://github.com/KDAB/GammaRay.git"
+
+DEPEND="
+dev-qt/qtcore
+dev-qt/qtgui
+"
+
+RDEPEND="${DEPEND}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS=""
+IUSE=""
diff --git a/media-libs/rtmidi/Manifest b/media-libs/rtmidi/Manifest
new file mode 100644
index 0000000..6ce7544
--- /dev/null
+++ b/media-libs/rtmidi/Manifest
@@ -0,0 +1,4 @@
+DIST rtmidi-3.0.0.tar.gz 486434 BLAKE2B 189d308dfd55f95780c316dab0e28ef6a4947b874176a6fe491ff6bf25f845e3481b0d0a9caa57f58ac1418d6b14c831ca5f83115a99da2aaa7822970f06a793 SHA512 b5cba769e4641ac453493e2e6ca6f947d7ef5fe71870dd10aa19c93ad18dd62ed01358c468c0e1e326dbc29bd00ecc32b9d8895276d9f46e9e0aa20ed6e0b70f
+DIST rtmidi-4.0.0.tar.gz 509743 BLAKE2B 16a43e0c30e49775e7fcf8af1318fb2240b97d2f5e32e043763e51896b95c38d508b3cdbbf712d562f6e57b7b3ed99f74b5a22c50cd298ebb020215c3e78eed8 SHA512 1b7e6698944104f6a80c17c9af85a9fad4b215af47277f4d9f5e61668cdea86886aae8296c79948313b3efbaa8569c441c38b0b1f3bad20dce3cee19d6a5eaa8
+EBUILD rtmidi-3.0.0.ebuild 683 BLAKE2B e146781aea65315ec642c1a7d2ec6777affe2dcc11b17340c3c414ad5100db74163a19cf0bae7c02bc57e7924fe1b6e456a79b9e276e4c1cdc4022a7130a162a SHA512 16188e414de566d229104815eb821c278bb717de4e8c20229b50686ac8598b8c3765ab118c2de95bc4f28865bb1078b2ba66f946fa9c4917ba5462e3fb6d8877
+EBUILD rtmidi-4.0.0.ebuild 658 BLAKE2B 367438b97aafa5a6d96ac3195b11cc1b22d07d0be28311799f1bdfdcd125a191a0a962b09f86fbcc97d6a670a21540838cf6edbbfc10d1589f6821db99214078 SHA512 664f2829df0bf5f7b34a5358b5baf279e3607c2dcb28cce6ef5a5de7f57fcc534b222db02560e0a8cfed107eff7c1ac2ec3b613d6c34af7726c04153e48bf5ab
diff --git a/media-libs/rtmidi/rtmidi-3.0.0.ebuild b/media-libs/rtmidi/rtmidi-3.0.0.ebuild
new file mode 100644
index 0000000..8ccc4a1
--- /dev/null
+++ b/media-libs/rtmidi/rtmidi-3.0.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="common C++ API for realtime MIDI input/output"
+HOMEPAGE="http://www.music.mcgill.ca/~gary/rtmidi/"
+SRC_URI="http://www.music.mcgill.ca/~gary/rtmidi/release/${P}.tar.gz"
+RESTRICT="mirror"
+
+LICENSE="MIT-with-advertising"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa doc +jack"
+RDEPEND="alsa? ( media-libs/alsa-lib )
+ jack? ( media-sound/jack-audio-connection-kit )"
+
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ eautoreconf
+ eapply_user
+}
+
+src_configure() {
+ econf --libdir="/usr/$(get_libdir)"\
+ $(use_with alsa) \
+ $(use_with jack) || die "./configure failed"
+}
diff --git a/media-libs/rtmidi/rtmidi-4.0.0.ebuild b/media-libs/rtmidi/rtmidi-4.0.0.ebuild
new file mode 100644
index 0000000..3a4081a
--- /dev/null
+++ b/media-libs/rtmidi/rtmidi-4.0.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="common C++ API for realtime MIDI input/output"
+HOMEPAGE="http://www.music.mcgill.ca/~gary/rtmidi/"
+SRC_URI="http://www.music.mcgill.ca/~gary/rtmidi/release/${P}.tar.gz"
+RESTRICT="mirror"
+
+LICENSE="MIT-with-advertising"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa doc +jack"
+RDEPEND="alsa? ( media-libs/alsa-lib )
+ jack? ( virtual/jack )"
+
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ eautoreconf
+ eapply_user
+}
+
+src_configure() {
+ econf --libdir="/usr/$(get_libdir)"\
+ $(use_with alsa) \
+ $(use_with jack) || die "./configure failed"
+}
diff --git a/media-sound/fluidsynth/Manifest b/media-sound/fluidsynth/Manifest
new file mode 100644
index 0000000..10ec73f
--- /dev/null
+++ b/media-sound/fluidsynth/Manifest
@@ -0,0 +1,2 @@
+DIST fluidsynth-2.1.6.tar.gz 1368770 BLAKE2B 46e049cf46f96d921bc053fd677ea28f77f73451129253bbc3d7d0fe3ca069a46be34e05db6c3047278fb3e41712d42d5fbd6a3fdaebe09d11953de4beb9b210 SHA512 168c882167089b067ec2056c92b19134136f574ca1f793473662274bdb0ae73236711d38ff75a84a738dd866a0f6dd790412d801ecf847e4416d4fb5cd20ae45
+EBUILD fluidsynth-2.1.6.ebuild 3312 BLAKE2B 1c8a6afa7230da8a6873b141fd8d8e04c1bc028fa554e8fbb7ec0e22dcac7e4bc54f061276aa00d5ad68d95036ce45d17749b6158f6de6a0209d7eb448f9d46e SHA512 28eed5a1a2dc075479633380c28f4be8f46270b7244cb900b37a9d922e4e014da67aa690671a593b174f013799d9145281cabb9ac44c23cc34a7fda1700172bb
diff --git a/media-sound/fluidsynth/fluidsynth-2.1.6.ebuild b/media-sound/fluidsynth/fluidsynth-2.1.6.ebuild
new file mode 100644
index 0000000..d5fdde4
--- /dev/null
+++ b/media-sound/fluidsynth/fluidsynth-2.1.6.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib systemd
+
+DESCRIPTION="Software real-time synthesizer based on the Soundfont 2 specifications"
+HOMEPAGE="http://www.fluidsynth.org/"
+SRC_URI="https://github.com/FluidSynth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0/2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE="alsa dbus debug examples ipv6 jack ladspa lash network oss portaudio pulseaudio +readline sdl +sndfile systemd threads"
+
+BDEPEND="
+ virtual/pkgconfig
+"
+DEPEND="
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ alsa? (
+ media-libs/alsa-lib[${MULTILIB_USEDEP}]
+ lash? ( media-sound/lash[${MULTILIB_USEDEP}] )
+ )
+ dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ jack? ( virtual/jack[${MULTILIB_USEDEP}] )
+ ladspa? (
+ media-libs/ladspa-sdk[${MULTILIB_USEDEP}]
+ media-plugins/cmt-plugins[${MULTILIB_USEDEP}]
+ )
+ portaudio? ( media-libs/portaudio[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
+ readline? ( sys-libs/readline:0=[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[${MULTILIB_USEDEP}] )
+ sndfile? ( media-libs/libsndfile[${MULTILIB_USEDEP}] )
+"
+RDEPEND="${DEPEND}"
+
+DOCS=( AUTHORS ChangeLog README.md THANKS TODO doc/fluidsynth-v20-devdoc.txt )
+
+src_configure() {
+ local mycmakeargs=(
+ -Denable-alsa=$(usex alsa)
+ -Denable-aufile=ON
+ -Denable-dbus=$(usex dbus)
+ -Denable-debug=$(usex debug)
+ -Denable-dsound=OFF # Windows
+ -Denable-floats=OFF # loat instead of double for DSP samples
+ -Denable-fpe-check=$(usex debug)
+ -Denable-ipv6=$(usex ipv6)
+ -Denable-jack=$(usex jack)
+ -Denable-ladspa=$(usex ladspa)
+ -Denable-libinstpatch=ON # https://github.com/swami/libinstpatch
+ -Denable-midishare=OFF # http://midishare.sourceforge.net/
+ -Denable-network=$(usex network)
+ -Denable-opensles=OFF
+ -Denable-oboe=OFF # requires OpenSLES and/or AAudio
+ -Denable-oss=$(usex oss)
+ -Denable-libsndfile=$(usex sndfile)
+ -Denable-pkgconfig=ON
+ -Denable-portaudio=$(usex portaudio)
+ -Denable-profiling=$(usex debug)
+ -Denable-pulseaudio=$(usex pulseaudio)
+ -Denable-readline=$(usex readline)
+ -Denable-sdl2=$(usex sdl)
+ -Denable-systemd=$(usex systemd)
+ -Denable-threads=$(usex threads)
+ -Denable-trap-on-fpe=$(usex debug)
+ -Denable-ubsan=OFF # compile and link against UBSan (for debugging fluidsynth internals)
+ -Denable-waveout=OFF # Windows
+ -Denable-winmidi=OFF # Windows
+ )
+
+ if use alsa; then
+ mycmakeargs+=( -Denable-lash=$(usex lash) )
+ else
+ mycmakeargs+=( -Denable-lash=OFF )
+ fi
+
+ if use systemd; then
+ mycmakeargs+=( -DFLUID_DAEMON_ENV_FILE="/etc/fluidsynth.conf" )
+ fi
+
+ cmake-multilib_src_configure
+}
+
+install_systemd_files() {
+ if multilib_is_native_abi; then
+ systemd_dounit "${BUILD_DIR}/fluidsynth.service"
+ insinto /etc
+ doins "${BUILD_DIR}/fluidsynth.conf"
+ fi
+}
+
+src_install() {
+ cmake-multilib_src_install
+
+ docinto pdf
+ dodoc doc/*.pdf
+
+ if use examples; then
+ docinto examples
+ dodoc doc/*.c
+ fi
+
+ if use systemd; then
+ multilib_foreach_abi install_systemd_files
+
+ elog "When using fluidsynth as a systemd service, make sure"
+ elog "to configure your fluidsynth settings globally in "
+ elog "/etc/fluidsynth.conf or per-user in ~/.config/fluidsynth"
+ fi
+}
diff --git a/metadata/layout.conf b/metadata/layout.conf
new file mode 100644
index 0000000..c673a95
--- /dev/null
+++ b/metadata/layout.conf
@@ -0,0 +1,2 @@
+masters = gentoo
+auto-sync = false
diff --git a/net-misc/modem-manager-gui/Manifest b/net-misc/modem-manager-gui/Manifest
new file mode 100644
index 0000000..93c35c2
--- /dev/null
+++ b/net-misc/modem-manager-gui/Manifest
@@ -0,0 +1,3 @@
+AUX mm-strftime-null.patch 1701 BLAKE2B c98d1e9d5d20a33f8f4c8f849242dadeeb74120039ede011feb01acbd0647540f1913c207b8758dea1b2aa866b8b3436b0432a98e6a4afa83acebaad3e6d9193 SHA512 fdb69213bef0fabdebf23a5d083ea1610b5836e396910ce3dc06eb9f37ac5c86bc887185b61c35b49d5edf551e5f0c6b5232949b4230350c84afff217f3bc060
+DIST modem-manager-gui-0.0.19.1.tar.gz 1055105 BLAKE2B 940633a933638361ce4630387af96180d7ac2b8a5e14ea352d96e6654d9ec374d91f6e86a510cb6fd146b72b3919cc5a9133cee2b42dc8b8e028259838270f05 SHA512 b369965c0f8c4804aed649ec2d449910324fd68979ad13fc1a16a58a2a61fb88795c5922ce725fb48b701ce5f5295f62e266bd049395ead5385dbc04c1636e19
+EBUILD modem-manager-gui-0.0.19.1.ebuild 504 BLAKE2B 16c690550853c4709c854c15022c865672df4ce61a3d93460ebbeb5ebfeb44bc820cb53add77f28ff56e3bed7dad880a2a54f0fd441e3c9c0864870be86f584f SHA512 4731e44baf284c070f25cd09aac2162ab5d25d86d0eb6979245203483299ae59c30dd4409b7c0b39274d55b63d2dd64a4c6e814d76171a68a4c68c77b173ed8c
diff --git a/net-misc/modem-manager-gui/files/mm-strftime-null.patch b/net-misc/modem-manager-gui/files/mm-strftime-null.patch
new file mode 100644
index 0000000..b73e028
--- /dev/null
+++ b/net-misc/modem-manager-gui/files/mm-strftime-null.patch
@@ -0,0 +1,52 @@
+# HG changeset patch
+# User Alex <alex@linuxonly.ru>
+# Date 1558782045 -10800
+# Node ID 83553d042443c71be71533b6b91ee10f228d935f
+# Parent de113e8953ae708043823578b64882cfc5a45ca2
+Fix segfault in strftime_l() because of timestamps from future
+
+diff --git a/src/strformat.c b/src/strformat.c
+--- a/src/strformat.c
++++ b/src/strformat.c
+@@ -1,7 +1,7 @@
+ /*
+ * strformat.c
+ *
+- * Copyright 2013-2014 Alex <alex@linuxonly.ru>
++ * Copyright 2013-2019 Alex <alex@linuxonly.ru>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -182,18 +182,22 @@
+
+ memset(buffer, 0, bufsize);
+
+- if (delta <= 0.0) {
+- if (strftime(buffer, bufsize, _("Today, %T"), ftime) == 0) {
+- g_snprintf(buffer, bufsize, _("Unknown"));
+- }
+- } else if ((delta > 0.0) && (delta < 86400.0)) {
+- if (strftime(buffer, bufsize, _("Yesterday, %T"), ftime) == 0) {
+- g_snprintf(buffer, bufsize, _("Unknown"));
++ if (ftime != NULL) {
++ if (delta <= 0.0) {
++ if (strftime(buffer, bufsize, _("Today, %T"), ftime) == 0) {
++ g_snprintf(buffer, bufsize, _("Unknown"));
++ }
++ } else if ((delta > 0.0) && (delta < 86400.0)) {
++ if (strftime(buffer, bufsize, _("Yesterday, %T"), ftime) == 0) {
++ g_snprintf(buffer, bufsize, _("Unknown"));
++ }
++ } else {
++ if (strftime(buffer, bufsize, _("%d %B %Y, %T"), ftime) == 0) {
++ g_snprintf(buffer, bufsize, _("Unknown"));
++ }
+ }
+ } else {
+- if (strftime(buffer, bufsize, _("%d %B %Y, %T"), ftime) == 0) {
+- g_snprintf(buffer, bufsize, _("Unknown"));
+- }
++ g_snprintf(buffer, bufsize, _("Unknown"));
+ }
+
+ return buffer; \ No newline at end of file
diff --git a/net-misc/modem-manager-gui/modem-manager-gui-0.0.19.1.ebuild b/net-misc/modem-manager-gui/modem-manager-gui-0.0.19.1.ebuild
new file mode 100644
index 0000000..bf04b6e
--- /dev/null
+++ b/net-misc/modem-manager-gui/modem-manager-gui-0.0.19.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=7
+
+DESCRIPTION="GUI for Modem Manager daemon."
+HOMEPAGE="http://linuxonly.ru/"
+SRC_URI="http://download.tuxfamily.org/gsf/source/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+PATCHES=(
+ "${FILESDIR}/mm-strftime-null.patch"
+)
+
+DEPEND=">=x11-libs/gtk+-3.4.0
+ app-text/po4a
+ dev-util/itstool
+ app-text/gtkspell:3
+ x11-libs/libnotify"
+RDEPEND="${DEPEND}"
diff --git a/profiles/repo_name b/profiles/repo_name
new file mode 100644
index 0000000..1821bfd
--- /dev/null
+++ b/profiles/repo_name
@@ -0,0 +1 @@
+localrepo
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
new file mode 100644
index 0000000..9a9497a
--- /dev/null
+++ b/www-client/chromium/Manifest
@@ -0,0 +1,336 @@
+AUX chromium-71-gcc-0.patch 2531 BLAKE2B 141886b7e9c6b627ba562d33729b60bc8b9cefd7792175e542527cb97c16a772f8b7a868fb3bdef8d2e89bec5e991b88a5fb074afc7dd2467de20cc6acdeeb47 SHA512 1c9875c087776b1675049bdfb132b55ea74a6015ebbbcfa9be412017bc877469ddde35ddb775338d8598fcc045de7e3c6c39d5b8a1d59c82447eb4bf5214b2bc
+AUX chromium-73-gcc-0.patch 4483 BLAKE2B b0759cf95146f483bf246c20d3c62956f6ddb5138c9436f9bf823956eaaab06de150eb90ec1d535d86965077a1d0e051e81d00a49d8674b836085d8a69f75570 SHA512 de7101ba00d8c1f00cd3f557574653cb9df80e59efe869c4fb127736b0f0793b20157169af74c8e38057c460e29a7e90e05274c749dbb6a30aa0aa7886b74b36
+AUX chromium-73-gcc-1.patch 4194 BLAKE2B 23d94aad7e77fae0d11b44d3e4cbc1af7e01f62cf2991b6a625d65ba8fc53a2ef369e55e2308739a89a1d68df09f99f8382d5bccab798074b206728c7f666b1d SHA512 802ac452eece4b64757990315bb5c38d7cb2ab9f4916b0c5457d9f04a47729e81b3b1dc52c68c641f5cbc20e45a509e721c211d42abfc22ebb0c48af421ec688
+AUX chromium-73-gcc-2.patch 2193 BLAKE2B c1a165a02428a4c033a5266d8cd607b54f2f5c98c08a332c566e2db2625e95cc9313f7524922915f6bc66b73936e2a628bfbed1b33da60cc64ef6cc430000c1c SHA512 a242e7669d9c4b86f39dfe0516bced6b234336f4671514b1eca647b3d82228602dda96c69370326eacb3f68b5a47d58a2d6e4f5d97ea67583caf0c2b4430f0d4
+AUX chromium-73-gcc-3.patch 3683 BLAKE2B 5da3b1a107a67afe837a6baefd74e68e1f643e5e2f6edb6098a77015bf4a7b819f7cdc5947aec95dd7243243fcb970a0dde73d0ce355d9beaeeecbe189aaadbd SHA512 93173033df16138b94dda215b088dd63937f738536d6cbcc4133258502e1f5bdda45bcbbd95250bc7f781839544c3d45e2dfa8aa4477a0617cfaa723e9140085
+AUX chromium-73-gcc-4.patch 3500 BLAKE2B 0446dc3d5a073d0960fee4338a59452002734dd0f7bb9afcc9a8e56f70ae5bf755e3a5e772a2682df2734e928f87906630ed87d2a1ba4c3114a9665983ead970 SHA512 c3f505fe943460774a4f5269cad878b37cae45edae2838e6fec8228f5d7c77cb0435a1952fe0230a33e57798ebcc5cd5f0640ae67c301d9983224bb7f81ff70a
+AUX chromium-73-gcc-5.patch 3388 BLAKE2B e8a2940ad9e6e23fe62d0897e5f24c38e9e9b75a08326ea0109eace1f3be8afba269d207a208289e0c9bfbf5be165e345594b97f2733ff0d895c6e054105b714 SHA512 524b3a0f9fdcb5a78a9e94a1e6ba8bfaa632471cb3cf3b2d4d32704744154ebec2b81178234259e2d1486694395c707050696874527375290564672417e64daf
+AUX chromium-73-gcc-6.patch 4452 BLAKE2B 0798c713701fcf438a388e47d89de454e27e7376494192630cc7bbf9edd4690163ba3ed450e52629a4adff67ce36a09c01dc95f450a5bb603bfcb02582a2c164 SHA512 f5d8ab6bd3e4cdb4aee6a7b7ecb552b675893c8902425b2451032372a2905ef2aef983e1a0660ca891dfaf5603c7ce79d979068ba8aafa2c5735d9051f7dc58e
+AUX chromium-74-gcc.patch 746 BLAKE2B 24a9ace196f32a0db8ca5e572d21afba9ef7903945f22181e003a13bd58690a062863a48dbcf25610f173c7c0f7b643b2ee8101d9def7f23c5bf4be0821cdc66 SHA512 331dc70a793e867fd19bfdf12246eff6be1b940bd7bd1220fe1036a19ea7c45b25e5ae8a90a6bdff808313da13cf9efa48b41d38c918506615890fc9096b1052
+AUX chromium-75-vaapi.patch 10170 BLAKE2B fd1707255d7eb3ad12c633703f672acb6aedda21a7ad851db1e997046bf58f2926ffbaa87a60766b2ecab62bc0a31ed4dda295dd04898c0e989f579009801ce0 SHA512 a98e6fafa92da18d6a9915676524cc8b2ac1dd63e13502d787d10d7cbd051ca1800bf48fb2d4d570ec0327f1a938d778b142e16950084d99d55db1909751ae12
+AUX chromium-76-arm64-skia.patch 1747 BLAKE2B 7f01fb83d1d7d71fcc98a6e144b1f83a72c15c3d98e1619b2c850000d5c7f9c5aa50bb343ec5da8ce7accb9a2752dff1993d04e83b1ce7c28924735bca730926 SHA512 76944f24374f2a751ae547501dbd3aa3e6c07c09b31d5a3911009db09aec2742aab6e46d3615122db83a5e2fbd1a9d98736671c081ba2734549e4002a86a1608
+AUX chromium-76-gcc-ambiguous-nodestructor.patch 1697 BLAKE2B 80b49601d4ed8b2c315cd6586829d0dc6ad984955837b52908446ddaddaf5f682feb160e81b68c33eaf29d51564d481e1911352b2a043f9fbf92a9c6bfe37ee7 SHA512 c61cdb814541eacc3b78a950b5c9cac312f00e06748beb1dc7f1ab64089ed6e5189981538c0b992eec2dd9444e44fdd7067323fd9cc9a11fd2c5d90593000a56
+AUX chromium-76-gcc-blink-constexpr.patch 1329 BLAKE2B f1edcd6d8ef86ebc9659838a30d2ab1ae886494f4c8fa8cc5cdd71ac22fc78bbd0aa4bf68a7111e050e28271a951affaaea088eff71ce059e76c930bffbf9a8a SHA512 adc40210cb1b5a863e61ae08d6b62bf9e294159b75572a6e9de1615a641293e5b2931a4c92f07d15a4ae1e557c98cf7c5ef5ff6f476325fb1bca5e28396e9aa0
+AUX chromium-76-gcc-blink-namespace1.patch 4188 BLAKE2B 31db4c911676c8982d897bc10ad9544b166b224259612c2cca9420c347f45d99d430faf9678df3dff493f0af10bf8104c2b8e20b1e92f8729def89bbb68c9327 SHA512 dda3ccd155e6929604f67a40386dd9cec3c2cd0697b3a62d579f696142d1bccc6ad9d414765a028ea630473944a33b9a63beb5eb49b4b0ec666473cc674fef38
+AUX chromium-76-gcc-blink-namespace2.patch 3529 BLAKE2B 0b71f2dc7ce1d1859e0e00f31afebbc452ece141b4a0b75c58a8da05dc2f5af3f157d8e1afb6e6022d4b6c68248e5f8c6e492d07b2d4d129f3af66d3bf3b3599 SHA512 42050d3f1c12c469197698e11f411dd76bc35abda0a94484153a9f4b0541e7e2708aa0abfb80747618eda67b85bac6915950e711338799f858202ec17f806389
+AUX chromium-76-gcc-gl-init.patch 1288 BLAKE2B 6055ec1281e601c8442a2708da7bd7d0265c53b61922394cd38239d02ff8d180a4300a514ee2dc97ba436ed36b990e77fe617fbd8d62494a5710687e7f93783e SHA512 0d6ee660150c1fdcc81ecc31488d423c9126eb8443ee29329d97579509f25c52da34e05f267804a4c3eaf0f3708839524eaed9ff66fe5247b665308329ece340
+AUX chromium-76-gcc-include.patch 410 BLAKE2B 7df5a173aa6db4ffde17fe522bf87ab20cb11d5a8b1869eda70a472af9c172a613e7a94b6d7758bc2f3341ed9b770d8b662aa5a5e0b76285857d96c769199838 SHA512 9fc238c81de198551d29579bffed031e5c837feff76cafbbdbddc182ccdb26a231ed95c8d1851281f705763a50e89b66e05603a754671c376b2b184d66a1d7df
+AUX chromium-76-gcc-noexcept.patch 14063 BLAKE2B 589ae76cc5f465f9e034fe2994ad0b389983c221a77c84cb679ff478b0cf727514852245183c1ab05433733a618de029c9bff4f90ed5eafa006168db0d29239d SHA512 17dbcaa8eb76a1d515ee782b71008ae760be552a3c4cc3656ba496560c0495ca1ac4d093b76de8b7f90102581d86060b3f761b03fd185c2f70dcccc2b201384b
+AUX chromium-76-gcc-private.patch 3159 BLAKE2B 0b902c4f3e679af034cbe557b057cfd6800c0ba000c2760367b147e3715726742426c94b0efaedd9a572cd91c0ae8ef30145528aa847e6a01e445a180b62e281 SHA512 6095fdcc33832fab6ab61be5a2c62610a3db0a4b86ad044594b9fca53325dece4930b3d8ee317d75e2fdc81499dd4ba6b4ab15f6fe00c8a23eb3607a7b9f212e
+AUX chromium-76-gcc-pure-virtual.patch 2358 BLAKE2B e591bdeb128877e2d0ee1e873033220efd4c75f4130bf1cda940cd2596c7ccec92d8f39e6b57b55fc72c4a9c58ff3ca634b9cb66064b5e4eed6906ef24c97071 SHA512 0401d9c105a1e8d13018a1d06e15e163c4db40810188a8f2623808e5ef2c220b5a9da520e20ffac8a91220ee13f51f391a82401b8d1de47476557e30d853cb65
+AUX chromium-76-gcc-uint32.patch 1203 BLAKE2B f87e17576c32cdebcb59d158bd102b12207549d553d94c05b397f357308eb89eb44a317f2368247670cd74b8ea17be2d6f81545da411f5b4ad3fe7d5cc27466c SHA512 ff840d0520b1515b64ba5c4e7d8f17f58ef783b8b9002f6952e194887dd7b78ca19c743e7c3c5ef8d427ee03559d3ad5b00bb518ef12e8688fa7335ef50b9dbc
+AUX chromium-76-gcc-vulkan.patch 5870 BLAKE2B 3bbe5eca8b70d244a734e1c2b4e237dfb67f1782206d50663caf47035c53d422ab33c82ba13af9ee668463f2c55329b228f03cbce4152f0b809f7f486c2fa4bb SHA512 77ccefbed977e92dc1645760569a51c1602b0701aaaddf9141ea946f1762fa2eeb7e9e8b2486589e7a21822835ea70ca230dd9fa392d3a444efbf14afeaa746b
+AUX chromium-76-quiche.patch 10020 BLAKE2B 54b2bd89ac3bdba6e770e55c03957af9149c6259ae33e1e57a50feb7fbc7d6b98f02f0a9212acab8a075f682121f4e8413b3f5cd03cf3a557ce0329c17a7f661 SHA512 759db973253687e915e446aa92ae882d0e9a030b10ac134bbae37c6b43b3e91cb47a11d50957a860e3d0c41f3ae07e091c917626d38a0eafa06b9fbb68f91915
+AUX chromium-77-blink-include.patch 1065 BLAKE2B 09efdaac62f5bf47fd368b08c90b58d0f61d849a8a365fe3963712d3adc3dcea4fef36e15666b5fd907e8204c7bedc400c8c2021425fc9b98b2e2328b6c5ffe7 SHA512 2e7ec441108ef36a6cfd711a35ca728a5464bfd0dd3ee78ee9659eed3266ce673b53402499fd8b8ca5f1366e2d1b8f8c5903585fd20924d0393a655d5d0ef369
+AUX chromium-77-clang.patch 411 BLAKE2B 95209cbf367f62cd77c7acad3b4a0e55e0f3fd509e58a53cbd3579edf37211f4a55180f77e8b1589fdeb0b6e1d38ca6eada6d67b08c19fe2a1bd019c587afeb2 SHA512 501c33ef25abf8148c4b0ae474cb354c2a32edfb36a4f041a14a5d1a8706a80395a2e2f117bcc31e5671e6e58710faa29f9ac9dcae8b4af8952310f578a572cc
+AUX chromium-77-fix-gn-gen.patch 383 BLAKE2B 63cc165468ef1db93b9b4764d73790526cb71d91c384dd2d7d3a4c9e212e34ef8edbdab3a01213a0fc7f378cbe80d3a6e726f2448a1e9f97fa31848a80b854fb SHA512 3e690af4cd5e5631da30abb75704270fd5176419e515c8e6541265a73d490df2018646b27e867bd2f26d7ca918ea276a2a7608b463d8a2acc26ec43f8f52ee6c
+AUX chromium-77-gcc-abstract.patch 2667 BLAKE2B ad316c185b12e1c7b2a378eac908590e7db546ab72387266db4315bf7a40015381a0cc494aa9d3d6e14873cf28d7e5bb5f6dde4576f301297e0f711eeaa6fbc8 SHA512 e2c69dd72d7cb9f0fa29b56f5c9788cea7c60e753129a69731b94e1854a3db0e07cd4cb53e3c8c2bb1a999cdda546886292e47ba159f3138c211ee3c3e3ffca6
+AUX chromium-77-gcc-include.patch 2306 BLAKE2B 6a5189df9411e4f1ad71d68cd28a24fbf7b5aad6ed48e8da98efe0e68252a0758cbf84726462205a5f1f9223d01554a6e54d9ea489d32f9ff37f340099f46e83 SHA512 11ba37fbca5fe32ca94473e8cfd1d5124745f63bbb9dec318828727e4f9ac03ea9946dc20fdfa920c5ccf3681cb9922c2a16b119266e7c541663da3d588ab04e
+AUX chromium-77-std-string.patch 4640 BLAKE2B 9561bf2049364960b0cfd340eb29b86810354a5d20f5785b2c1fbe8c44e584f2c98c4af9e80633760c09f3908266765c0c234a38dd3e26601b5fc21f0dd6127f SHA512 9dbad2497cd3e5a47e9135c1553eebbc8ae8098dd6cf2a9a5625a6bbed70a478434167f2de7c52ff84711a8da0c9636c499dd6c4495bf6904796fdb023a6510d
+AUX chromium-77-system-hb.patch 459 BLAKE2B b1ac6e0007ca3aa26acd7f60e1c48ef8c0bdd80fa3e7f6ac97dc6a977864208e66e333b28bc64b9410fc368c27166b177669d09caa42909a9249059848a9f4aa SHA512 03696d8083127fd689a7953724c625a5eda3f67bad8121531dbaaefa01e2a91007d4c27bca07d137f50c5c03f14d45ba76e79ca859abf36f0fe34b9ec56dd1ac
+AUX chromium-77-system-icu.patch 649 BLAKE2B 7910fcb64460ef965eafdd05e98d41d14399fd337ac8f79bcb2c7059fccd61d552ab6efa1dbf8bdcce564716b3d12b41a587077034cb72ef610eff76f4e052d6 SHA512 7413e0cca7102008dd5bee443dcde90be69ef1d0973fee576f70544f0d0a66aa8bc7099e619c89160915d6cd6186384be46ffab4a1d747000133dda9a84e15e5
+AUX chromium-78-include.patch 534 BLAKE2B 831b26734ca029b64069f80c339170f8d06e6300f8f3c1228eeecf6054bba4f58b9a384607414da3b2467ea1ccedb7db8d6294ff30258f10f00197e54400ee7a SHA512 bc27d07fcc8747948976f80b538dae304d2f3387caeb2e93dd89e03d4c0a32ce8158c250e1e26c152c0ceecf40861ac3639949dd166308f7bffaa7dd94fdd547
+AUX chromium-78-protobuf-RepeatedPtrField-export.patch 694 BLAKE2B 3fffcb6a7289bac848b89275a9f76e4302042362fa9bcf2689df01e0a00806c7e838210fa8696ee8e2134127ec4cfb5c3b632e2739c225f8e9586e01de7035ce SHA512 e3a80775d958740eedc7c3df0e9dd12b0e6a51ccf871a2085ab77246814e748428133d27c60322a102eb8f50bb65fc2c607e0d2665a92393be55befcbf566ab0
+AUX chromium-79-gcc-protobuf-alignas.patch 3581 BLAKE2B aac0afac1b67639e630fd974118e62b05e2b4871eb62f8e6f13c10b360a5369568d3b12780262700d4ab6079e3c3fc9b0291e32b306c0f82f3ca2e19c936c658 SHA512 c4d2924d1169f4e8f81babeddf4b009c135997e87c188faecad3f2fb85d0ee731cac7a437b8a4f4f237d84e5450d7d8b95409c979ca89a3adbcf978722e1e6e5
+AUX chromium-79-span-stlcompat.patch 547 BLAKE2B 29eb5960c1d4ef44e76f9a90d9b4b284ca8912a4eea36d2b777761cfc45e6fbcd93d8ca55476176f9c8503914367a8f8973aa6ef8313040e7a28d467fa948345 SHA512 10c27f2654d9379be21a17a22ec23b8151f601ee3cd1ce0ae33811bc65636c43122afd5b4ca047ae78067592420c8abb2f3068bd48dd65a8cd3bb0c9c684560a
+AUX chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch 1351 BLAKE2B 7bd967a9f3cd544368c623d3612632cd2bade48ac2c099c4570d5ead62ba28487e1fa222ee0bfe108f3d4f853744d799d2860f703eae3b7d6d36af77cd328508 SHA512 2f147e77d0737370c5dea8b575c0e631476bbce54a7b1c46d0bffeb56706d6ab695b8a9a7e61402430c57ec1f28668dd6682aa5d32d32762fc3ba1735f37542b
+AUX chromium-84-blink-disable-clang-format.patch 1571 BLAKE2B 98da06d2bd7ba764b9ba105e0831f0b9284b6c6d11356a37c7729b595680e8f7defa10bc12d01f9e998a44bee7b7acae1c64e958e50d7b5cebee46299f14cbd5 SHA512 4319b487f08f076832c6235c5f1b802c89db09658f8aaf7778f43e1e3b41665f9f14da0a8bed6ea34643df388c9a730ec37da5491b98d53a5f60379c6e5a58d0
+AUX chromium-86-ConsumeDurationNumber-constexpr.patch 1685 BLAKE2B 411529b2e6ee4af4981bcdd4b290ba858d736718460886fb3c37a493731eb346fcfdddc05e5d89b1abb0d9535d0cdd81f409f0417921e6db9fbc3249445b8e97 SHA512 8631cab051332bd7b005b0681b9f59867b015667acb0b2a084e61264178a29230a17c905bd45aa5b18c6ae1261cbff05c0a91449272f25117ea342cb8f95ab59
+AUX chromium-86-ImageMemoryBarrierData-init.patch 1185 BLAKE2B d9e7676e3adc73eb0399db15f479e88c45d49786fa021c8da722c3958f3ea2c0c18b85a375041c9270418abadef386a4b3fda3a7cb707f9916a09c810371ab33 SHA512 d7e1cc221fb42fd2028ae80daf708ccbfc71d8dc43ce6af09d72f81d2f061d67d548463f5863f20d4213741d87aafec8c2eceec056ec0d01935516f5a4c0a89b
+AUX chromium-86-compiler.patch 5160 BLAKE2B 8dd3041fd68c5813e4d95be9876fcb1e976a4a3d5b54f87d631b5ad1d8f64e4a2dff8bf3c17db1873af778a20588573aaccefa8fd098565190436a5bc1357e77 SHA512 50d7821c02e8cee151c92d3a6c0ff2b97aac0e89a10b3a8bf34d5d87fec0074cb8a74f269cc04bea823c2285751f10cc4332a35c270e3f0b6730e33c93dd3537
+AUX chromium-86-nearby-explicit.patch 1036 BLAKE2B 3b276d7bc048c8482fa9c47316370a2207aea3358f648d52d393b5212c5aac97dff077774e9f17b9d0ebb23af0e0929494f5342e6f61ebf368471f95f0f75ed1 SHA512 2c24c4d85b4ad555b55351d786a6601bf4cb0c559e5fc496433ad064e3f26062c96ab55ba12de0cf474ccc90c6644190e112410cb3ac3b16cd4611e66efdecda
+AUX chromium-86-nearby-include.patch 748 BLAKE2B e7aed70358baef16cecbba929b263a445632f52f33ef18f681ac71f347f1e29b116e52f5b5a0360950d7c427e638f5ce80aae9146e8dfb30703b39f367d5886c SHA512 7d4afc7ed2c9534543d4e27ef813be4438da4a46d6c7e9cedd8f3a7db1b67b8228b92a85ef95fbe216043f3ea9fb0736f59392e15f62b7764bfb391863c83e56
+AUX chromium-87-CrossThreadPersistent-template.patch 1519 BLAKE2B a2a9707f94a6d659235cb81017dc1786ff269d5ffbcddc4907d08c18c0332f56e3876bdd5eba69b93a197cb2ba32a6fa5ba5e24fd27c22df6f7cc093a8544576 SHA512 cdd37bd2329d6931922054531723414375bd2fb83152527c983d20af197885117d6ffee3d8590d49522542e78b927e003e9c457dd6776b861a148225500eb84b
+AUX chromium-87-CursorFactory-include.patch 1251 BLAKE2B a9f559bb26023c2ce73d11c77e7ee657b322bb615782e3877b58b1e4bccc46b8ae12f91e6677c98a6b5ab3297a53d178ef4e1d6dd577bd31e586b384642b7aa1 SHA512 03f8dddab38c9893e6dc79c8157d9401c2bf9b34daef38974ee3200a205ea154794e2c982bb9f3b6ddfcf38b974265cfc2cff5ae0c494af38adc5c8c0c2edab1
+AUX chromium-87-SystemMemoryPressureEvaluator-namespace.patch 2957 BLAKE2B 78ac47cefacc2c508a278784001b50bdcd2df1c9942d6253ee5a80ec53680b1c628517118dcf3802e7644a60de20463dcd85ab1cef0f1aca6681a92107cdab6a SHA512 0ae36256cb7b8cae26a49eef46037fa89629490a8c61614d3f7348d9f1d693289874edc52d0644114d1d3b094f01b00deb956ddfd1fd4dc259fc7a9188e39e5a
+AUX chromium-87-Thumbnail-noexcept.patch 1477 BLAKE2B 959f305da3b387ad724ccd7e53874554e525a97fc5bb5ddd91315b6425b1436dad53212814fc386ec108392b9e9355b0765404120d4eb331c004718a02441a68 SHA512 72827bcc70103784a5134b61978c604b4aa422f4a4240e459291d0de1cd26694b649f6cc44629dc574a6c3a8bef4fd11d18c8a01384b0c4b53ec53cc0dae659e
+AUX chromium-87-anonymous-struct.patch 1578 BLAKE2B a849cf216f76bdc6aaeb02220281c0fbc01a01afc48869cadcc8d558654e9ea0f6f37bd5f3a2c5955355cfa2ba04c7b9b8b5dd9ad8c3ae27d5d46eaa849fe950 SHA512 90d581c0d625fe8d7de409963caa3979c3d9b8fc8471fd29af151d1f8f4112cb7582c7fbd5c7abdf7f44cb83a26f8f2f8dd5d9a589f8eeb83d2b4bec69b5db59
+AUX chromium-87-compiler-r1.patch 5467 BLAKE2B c1137773271cbf0ce884913ab1c009a08a391603ed4fc5749f7813fb8175cf894bc72cb80edc321322a2a534d28469a530b51b2db99e0eddbd1ade1deef08d1e SHA512 6a75b09195caf40f1e029e2c78092eb5c3dcc3e442a8212206338755d21d1e9f10a5f18f19cfdbe249c84256c14bf913ddc9d6e5754db3948eb970c11778932b
+AUX chromium-87-openscreen-crypto-include.patch 351 BLAKE2B c05481da0bfed1b2f10b7a8aa89ed2a7df902ce1d467eafcc8df8305f78e8388240ac7e5c76e703e6fd6aede6ae94494884c63d9b1b7d9dfe340b41c38897b12 SHA512 d279ef4b7342960dff7c1f5a2e2913156e2b4fed43b5c1f0a32999a8a1880a7f1e63b0de242f364720a9b5fba696ab4252d9a250c5098e1133c4b9b677102351
+AUX chromium-87-ozone-deps.patch 446 BLAKE2B 4d57b75e23a3315d5ff6a5cce32a195559b9ea0563da02a52f820c9d7307a7ddf46938b1862ea6c3da10129f9168a1cf62e79af505e6c01de67be99b2fb741c8 SHA512 9600b8a7c9a753190728b7601859d56b96b8086fe921074ffc5aff41c070142f58deb07e7c03a9057a67dd79ec7cb4e79fbf34922530bb1864704103193fab3f
+AUX chromium-87-remotesyscall.patch 484 BLAKE2B 98e4f1bd25b2573f66f69afb511b15956fb6473bf08c258dffe69205085b7c46db14702d1d3ceaf53d09518ee5af1013e75176f1182ea30c10b6d58dbffdc3a0 SHA512 29c5a99b56c117a15b7d76646920fa38aff2c491216f7582757f319ca1e93539fd9489f18612e316c0dab7e2e42e5a3c786a72909624de8b8bb24bf437fc208d
+AUX chromium-87-std-max_align_t.patch 2002 BLAKE2B 430062e76986bdf13f5e438fc280c97e2984660eeed25b51fd6713c3216433ffbc04d4eb2fcafb3dc49cd24b601fcb9fa1431653fc425b97a43f2b2414e85102 SHA512 ceb945709fdcb4d59ae0f190d1ba87aefc4c40793ed8d576cf43998e3c25b22f17880b758b542a0a5b3d5dc9f9fc96711b839c4de559efc8aa2746ac3570912b
+AUX chromium-87-thread_cache.patch 1043 BLAKE2B b815b245bbc2e4d8c09dc7ff531e1f4c0fcabae8f8ef426e16b7465bf8bbac9181d04e982c5999414889b5834dd7733ee4bbb1bb0766121e6208e89efcc7097f SHA512 24273d25853ac0cc35bdccf4031d916efa41329784b11a87d1eac737909f81fc6669fed54f82c6ec0b7eb4bfb17b02242511a3fb90fa7c1db1fd2f8a973bad7c
+AUX chromium-88-angle-renderer.patch 399 BLAKE2B 7cdc6570fee2347837cb50b5240fd9a4049bf1b5f153fff5bcbec691e809d565cb29bbee8c9bc1d6ed7b1a90a0868c6e321545d25bb0aa0dc078d2b4094526e9 SHA512 d0a93a16021405828fd3caa41cfbba0e88e2e63829b128d94b28e9afc2d0edda987cba27f3eafa6d06d10be93f7f6649cdfffebed7650d585d58eb87d056721a
+AUX chromium-88-compiler.patch 4825 BLAKE2B 4a18c5ffd635a62ec3fc7adafcf9526f86220da3287674eab1ba83a8dc0d614e503ccc92b8776ed5b82d4d0c4c38beb6bee803fe405ab821b1d7fd06cbf1fdc5 SHA512 8d3841fc1eb184ca1a4ccbcf9918f84e9955797133d8a9e1c9c3f8b6412d0528131e94d81de8a70e118f44fa8a7bdd38b187944808eb96800772c24a6533a14f
+AUX chromium-88-compositor-dcheck.patch 697 BLAKE2B b1094753885af979726efc2fcf6e45dc69b9925d88e808c9c7a28cec0d5381392339b2c3cc1ac4d8d381985df5e71f3e65d56fdcddd4fb43edaaf879dac15c2d SHA512 cd7965553de11cd98fe4de20f74b37f4dc644bdc114f8679b113fda39ccacd69294ffecfd95a88a0e28ffd7daff5d4243246faa8a5397d63ea5fbc742fa048c8
+AUX chromium-88-dawn-include.patch 401 BLAKE2B 8fafc8e69e747752b7c3774389f1e90ae42f4dd9367dc494fc4c9be2be3d9b631ae9de8143ba23cf4f5e042230b3d202f9a87c9bf5418ad67a840e09001b69a3 SHA512 9ba5dcc71d6d7f4e630d2e7f6ceb3dc679fe9d577c4b34c94d29cce31181ff3dde97ec0e71ae68ef2136dc968b3cdf84d83c783c0775f112523df118b3c34d63
+AUX chromium-88-dawn-size_t-std.patch 746 BLAKE2B cec4e83c34d779c333c657a4ba15e365b8a5b823bd99a6c56ed3b24db6cf9cae49e57fd8e2fa7d28075e4f49d41d240ea93e7bf8445129857b9fe58320c2d59d SHA512 16c5f89018710dfbcace56439fd31823af50f1a5882c63e8e693655bf9351bd165f71e705c240640e6b5cfdc45adad84906a71076e0409b1ff308d50e1d4201f
+AUX chromium-88-gpu-internals-ozone.patch 796 BLAKE2B bd29e0882171b367dfb316d4254b80fb156f84bf95d83ebc160a549c5ae7e4af134e6f0c27e389fcc78d0530485f85955ee983800d4fb4ff7c7df294cdb6fef1 SHA512 21e3ae4326b8f517dea88213e5c8486e1936be38d40953f69b9f9c0d51e7b08676d481e093c06c7354e1cb330d11d6095d2bc8d18b41b6784656079a66617722
+AUX chromium-88-mediasource-uniqptrostream.patch 1242 BLAKE2B 24fa44c5c4a426c31a5f3a27af88d18c2892d921dc7cb9fc1117b126b6364da3fc03b644b6fd6e7ae101c1a0896f6a6ff8b0403a71e878b1cba0ef26ac35300e SHA512 273c7551605aad9345136199059702583fc964248ba2d5b5444a732977efa427eed340131e54620e73aeae7ad91f1b300d35b2987f4e576d25827288070f8f43
+AUX chromium-88-pcscan-nonfinal.patch 523 BLAKE2B 60dc93f9761f806676ffebce9afdfac5dbbdcfd7cbc1c9b277200dc09a250d8e69a19d9f46aa78a47d41b59a8bcaccf439703db89319cc29d7f8334787882037 SHA512 94a32754161ccc2072abceb8cf74387391fe4e3e82849a29c5dccae015aedb39fd061805a61d7951c3704869217bfe59cbc092b548988c8f58c5704bcf83cd5b
+AUX chromium-88-service-worker-registration-crash.patch 800 BLAKE2B 54dbf204cfa1e224cc14db10bf120801b895ef17dd606598773aa11b44ecdf1448b703c6e9c81e98e63bba45944bc4a5286cc60bec994de41df9cfd5e562e062 SHA512 8927694e96ee99c29e7a0a4f2f85e8760ccbdbb533b1edd89b46fd7b8f392a7073e85cfb24ee387897f495193b8e4a4727015a00bac037b7c276666a02857d5a
+AUX chromium-88-system-icu.patch 842 BLAKE2B 5df9efa7b51832347787dc7de1c00a0a72d575f27248ae75f89be54530b0da6ec61263b3d05b3f278f538a2f727de78aa94b4aac5bc8294f60c81d640df4731e SHA512 1c8fc55bf33b06179920f2bf3004ff61c7372b2305dbbb7aaf72d4d6e925ec05213bb47ce7c4e8f89ae8613a17f3707454d276ef7df3610f5e9db93ad6e4cd42
+AUX chromium-88-tree-formatter-include.patch 544 BLAKE2B fd6444550cde4434c0471b439df70edd4dfed41c30dbacaef95dd280642e6f38bd0b45951f5eb2dbb18c59a571d38ba7c23dcd17467a5bf0c398a4ce693c320e SHA512 a00cb3bb2d5d4969bc18cd78ba41b6119c9a81f4077a3834249181fe38c76b92157dbfb657031b9d83f31de075bc57d1df182669f98ada07dc26925ae653f20e
+AUX chromium-89-CursorFactory-include.patch 866 BLAKE2B 4aa06aaf0a8af6f2dc047d55cf0ad6a1e84a035ec29cae85b22c4c677dfc39e7f102fbef96aeb91f1c65af1a6b0a9687765027f3dffddf5ca97e7918138545a3 SHA512 59b3c37e25c30bc266569f816e5443e2d7ae8491372a1bf2afb0b77ef471682bbed4a5937fa64a7ea6ee654aca4e8e2254162baeab941078fe98007bdb75da92
+AUX chromium-89-EnumTable-crash.patch 2712 BLAKE2B 6715f98a5cd2c9886050f9d360938e261308a3def252e25642a473e86626594fa6c06cb3231dd57dc5428db8ee118848a0a085abf741c9555778f3ae3d9d374f SHA512 07ecb68d5ca2d732c9ca58b4dc007eb2f4b842bdf6ba46cca9050bf1c582439ebb23db1149c76d5a27f4d8de548de946e80eff0c5b1759e4b6714e0c6a7b26c9
+AUX chromium-89-angle-display.patch 92655 BLAKE2B 18ba36e96bf613c0605c79e7b19a986db9412890c626a77a02ca77d23714a8b8416038e654961f0a1f0811edac917b8d1950da626d3ca7e097454b77d2c1eadc SHA512 8bee41e9596684bb852ab3cbccfcba146ad24ed403532321d4408d04d031b897c514d38fa2cadcc29d0359fe41a8b383a8b9ac59305797bff8459ba2a3b7c8be
+AUX chromium-89-compositor-dcheck.patch 673 BLAKE2B d9013016bb4a130e4296fef2b2cee92bb169671fe06c0a9b14eccdd8d008cdfb1d56da178a0b07e49000c511ff2f68ed3289b1de2dae3fc81ac64d31534dd55c SHA512 91a45748d30eeca45d2d6f2eda5eeb4a05fdfcb3f7310cfdbd37d12f9b556fc72eb7cd161703777a89ccbbe36ecf57fbcb57f74f3a04511f1c7881ba004dad2a
+AUX chromium-89-content-dcheck-uniqueptr.patch 879 BLAKE2B 1153d5357d2d932e635831282dabb666d3651eca96a7581cce511a53ef3b1e165f9e739750c5800beef12c91ccf43d9c87134a3fe0a9cbe075902c720551f247 SHA512 3d152d56f45e95092c6560b4b6dc53110592fb8e08b7256f1a0312c446f62e940b1f5b65905369f99fabe000a305e452af812c33018bb8d79f640018f3285103
+AUX chromium-89-dawn-string-include.patch 427 BLAKE2B b15a85d432c4f2996d3aeab08ecf09310abd0fd5893a9ebd9d1f3bf6c277defc634ffec7f3291dd70590a827346930bd79a75a8b4c1baed5f21ace398c474059 SHA512 5f9358a088c5baf90246bea9c2a0546ce0ebe0d6cf8ed6b184e7dbabda906fc647fef7acf12c7e5350b912737c533b548bc6bdf2b16d220e4b8ae46274289d16
+AUX chromium-89-pcscan-include.patch 399 BLAKE2B ed12634e3c7d1228fcd9f9eb032fb3754b5a94171f460cac592c94ba74fe4b0d3b29b1614c62562f14ac2f817057885d50cad07a3129bae3732991f75199f862 SHA512 1d6c7016a6da664e9d291bed37bc8d76a93d4ddebfa25ee8a2c0680f477ad7175d26af78f18ae368a55ddccdfee0f6e33a23f3d1e2a93ec5db08f03e19b059c1
+AUX chromium-89-quiche-uniqueptr.patch 698 BLAKE2B bd445db77129684e62185107f7faa79479cf064001def7143e0e3419cb8a29a2be52e54bafe94dbea045977433e3f576e9a7e9ffc213373cf8e1a0a82e0a1736 SHA512 1d8f219f9ba5d721dc1ad233d9f52ec53e8852f863f8e20fd98feea81c7fef2595a7f4fe096653f3223941a29c02034998f6e03ba9ab9eb4a55f17472c037764
+AUX chromium-89-quiche-uniqueptr_r1.patch 787 BLAKE2B 8baa60543f23556c1bdff9fa48b9d8011a8e1890afeeaee96c93322c93599585c45c2fffa30333e13592c74164fe5028eb3c964a4efc230e57b4473e10f955ce SHA512 3077f794c1ddc9eba282a8441d0fcb67c747ae400b3f51c9e02553326d128c6ec04dd4b636b07878623d7cebb960fc545b29ca5632ca233d681cb492f69c3d4a
+AUX chromium-89-sstream.patch 16863 BLAKE2B 92f7cfc1faf89bc4bb9106c8fa01a9d5bb0571d7d6a9673c4bc0486ddd3b31dd95c927c1bdd3545181b8f879a24a616c7931e03b7a1e145bd40b8bc11e21d818 SHA512 41a756bd421b8c1aba3b6b5245e0bf067ff757b3cd6e6e5e25aeb9111268a0a5447872c65f06c884576974cb858d93200b24c27c38631cf8346e7fdc85b1fd3a
+AUX chromium-89-uigfx-image-skia.patch 1049 BLAKE2B b12b11dcd6696db6d76c7da9521b936bf79aa25449c75ba512099c7fa6ac4c8ca5f80a832e104d529ce211a3783b120b0e4514d4e1d9e20584f7cbb05414c98e SHA512 718f7747a084967240ce2bb938a151758d5535ea373e3dbe6be57edbec8a1f20934cf76bb28c793e3e7db94c5814b2b163bc8c9d5cc6527396b1c45f0b23c494
+AUX chromium-89-webui-config-include.patch 291 BLAKE2B a78689e0b0f3c233159053219415714a7800816835446efe7cf28fed75cdb75b92279c39ec79d542135fddc0f1cef6877a1883fd108369dc3149302da7f25a90 SHA512 9b2f064c6a1502bb90b618d7efbe034f54906aec98d3db3eb5bcf66aa8e85d252bb9fde204e8e8af63640a0499ec1a3e017cc2f6bf6afb53e6609b34bb2ba222
+AUX chromium-90-blink-disable-clang-format.patch 1052 BLAKE2B 8841a44b1b55175459ed10e9535d5baf6c56b03b405c661e134f15a93cb3ee67de922d1b04c53e695e2ea29c292e486102c34e63e5a7786e056f59a66fbf0317 SHA512 586d7e11f238e22ab172861b7aa65edbf7776efe00e6acb3c326fc5cb76540b7ec7f83ce293583030d847cde106a3ab2bcf6d3bb1ac715a482c1867961542194
+AUX chromium-90-compositor-dcheck.patch 659 BLAKE2B 584a45a4b21b0544c0b475bbd41d07f153cf1c23c116615b0c2d28b7c37f53046e6bdb131a58f597fd39855c3a3d0b67b837846c1f61ad6776319ff306eb769f SHA512 6a031d434872eb165cde58bb43864d5fda14289ba2e6aa2362704f112fb60aa43bc98082ff4037675815ba1700392783dbc4719c572b218a2bfc6223a438d368
+AUX chromium-90-disable-nomerge.patch 501 BLAKE2B abdd4afab53b6aa825d8831c1b656f7aaaee135434e284a3b9a5eae3c4a7de3173e6e86842cce459b384926d78a43ea6ef883f2d2da3565f62557a59dbdc303c SHA512 dc6b00e9b164afb43dc76147bc1ba63ad7b7e796449dd74e5c9b12fcbc4c5da0202105dce465e9c61355813cd072a61336e17d16f76d484a3a14fd524d2a837f
+AUX chromium-90-langdetect-include.patch 524 BLAKE2B 8c45800f03c4a185f19a6ef24215dcb3b5b292e7c37cc30c0585c54633e90683230377d35e687c10afeb5181bab9880f13788071546625f591ba1215557ae17c SHA512 0c25db8178f135bd2f6a04b79c9c631fa3d8a6da2f9417c3592ca70996a698c519f29bcb94f808fe90a682185f7b6f7cd81d585a9ff5a4f74594c653b2f3bed9
+AUX chromium-90-quantization-util-stdint.patch 430 BLAKE2B eb05fc1f04a171b3e0e0664540de2490a326aff8a68c6e04feb453dd9f9e02efa540b193c2dc675ea6249a9a83153854ff5f9e43bf883b449783d227c6c88906 SHA512 2e4f97f3393e9c26e4c87caef8b52969825fe1f5639e25b4f90adc77663993f2b2070d9631aa7d6e80c9d3cc9e2c96ecc8183011694d5c0d82ae6091f51ca715
+AUX chromium-90-quiche-uniqueptr.patch 777 BLAKE2B f010f67ca9273d6b4e632f20454d8351aed3220a9d621c08b3f2378e3eb688444fe401a0e036612c2dc10a1bb82ef839bacb7f9687053038cfb39705c2121669 SHA512 739195d07df3789a2773afb6523ed5b43ee276d12288974014caf8d3537b98ca125bff024f74c3f235b5cf0794994e237cca1a1c8d39b08a35a8ba40cb286a4e
+AUX chromium-90-ruy-include.patch 680 BLAKE2B be143d5b653f26a96b8d68dd0a3f525446bbdc66c16e746b5ea6c693616e2b52bdfb7dcfcdc464d6ff01381475ba1618204af8b54e22b349af18c75b4f6c939e SHA512 83986a58df6cae77890190dbc6a4ec8097794de6ced274e5e269bb086dde1e6fad6af01fef53c73f80d2afb8572b01e12c28f5ba47cac0465933551008c177e7
+AUX chromium-91-clipboard-ozone.patch 1909 BLAKE2B 280d4e3bab64d5b889be1bb2aa42e1e88cb000966e671752db2179a1f8ffd473aa772c646c91de91f6d432ecd0853eb198387dec426c44084f240b9bcabba989 SHA512 365c9a2efde3ff0740480434458564061246e7ddaa47d6abc88ac51227905a929be11228cc57f8407164e27450f37c44c94bd39769b679bffbcb673d879ec50b
+AUX chromium-91-compiler-r1.patch 5406 BLAKE2B bebb5a2fbb65ad3a217089b497e526a2d6bedcfca1ed1322aa6fd30f99b1901cd1a3a5a54901c531a841e06637b9a89f0987037f907000ab681a91e879db60b0 SHA512 ddda71d8d8cc88a4cfd2a9fe3afb0eaa3c1bea2891e3833bc3d7590d2d024c919e4ff88585f3bf39c786d757d946e7cb8a4f69cad8002a831440a51104ce6f3b
+AUX chromium-91-compiler.patch 5073 BLAKE2B f09c254942dc3656de2b869e59ec75877d2c38a504093995d3978cae467017f384f4fe8bcb80ae1f473e99435781fc75a6edd3f2b096477883ffa74e20bdd5b0 SHA512 b1732483e3fbba25b70742f138a0a809fd91f2a5c558dd58541ed62e5768377e3d6e0e27c094bacb63f98d861965999c444a79998d2f614276d835ca7ccbf2f4
+AUX chromium-91-disable-nomerge.patch 476 BLAKE2B f41353f235beb815dc3e95bfdb73c3a3c58911c5226450fcc258fe00dcf33c76683da71d630b0bc1cbfaf70ab681ca19659492d0fbcbada9613d6ccdf4bac484 SHA512 638e846481f2a6b7d73fc1faa2be32b711e79cd84f277a13900bee2f9231773cf2a8d892444be0bb32ebdd912cf4c620a6d644e287e331e98c22816df947b244
+AUX chromium-91-libyuv-aarch64.patch 4724 BLAKE2B 1caf26df50e181970960461a8b9d5531b37b46cf16f6dacf79fc69d6e468dd815a02de2cf18a77daea9e6723305bb000c0c1bbe2dfb063b41261c84eca24f606 SHA512 0106f7c3b6fa32872ed1f59a6786168d0ab69dbf5722ece10623d37bc3282b144ac6b120f86f8696ec2344ba5d67dfc4f46864916fd6a253cafa20a5427b40b4
+AUX chromium-92-ClassPropertyCaster-namespace.patch 1377 BLAKE2B d6bf4f14045ebe4eec47c5a0fcbb81631bd8b13d3b436fbbc65c38b8d968a4de0c4b07d0574d76da27bce987ccfd44ba75e4fdfbeb005e0818b931e8df7bc9ab SHA512 939fd46dfa89cae2d6d23a84c8f20ccef31b53cc58f6d1f6134fd3a18d22b9550344a1f8027c8207bd98aee8b33fc452f352dc99fee211cac0b862ad07a3980a
+AUX chromium-92-base_atomic_include.patch 334 BLAKE2B 3ddccfdac06d4bf5e64b83c2add91457da7bd9b03d909a2a1fa0538591782a39feafce6eadc46a6904f7dc6c1f3e7441f2a044d50bcdf9eed4555310c5243bc7 SHA512 d56b9a95d58aa0acab21b0ef418c27b5c4339589e23f789dfe43cfcb28fb9f743c6ef46e65232708dbeaa68558188d90f99fdf97ca1c9fb18603c1f985f72ba5
+AUX chromium-92-glibc-2.33.patch 5263 BLAKE2B 35d47398818faf4804d3ce95a4af070083a24120b8c87747652bbd66f2fa1aed9fe1b0d4b25d543eaba2f93b31062fec465ed1115d2700cfbc56ab9e6888d432 SHA512 168a18fd844076891fc87d0b9060a0c9185bd6d911bbd7864726832e904162832628ab0b49a619f2b5874bdb5b8fd3f1012d8a71211858325d0a79b8b384b92d
+AUX chromium-92-platform_thread-include.patch 630 BLAKE2B 6fcfc173e908b1a6381437cc9705b3e15949d08a0bf8a4c864e0e815acd3db011c1bef17ff5845bcb5ca99eb89ca6b44f78b21af1178a113392ad722d33092ee SHA512 633cc3dff3d6efbc75eb5f187627185577bcc5783104968696d766dfba37a44b399cfe369cd0609b83412104277cba6a098325cd8b6a82009156869a9f3bba48
+AUX chromium-92-sql-cursor.patch 8289 BLAKE2B c7ed88ced33c23b016da150eceeaa2738c8ef9b77ba9028cf2321b287491e021289f951ca626b14ca659ba41f7826b01e8988e56102b8c56d566583781485faa SHA512 9914bc6e9a3354c5eab565b3570a68979cc376e379d4ba61b838e6298bd6283bef84cf9eb32fd779bdbd956e46d2786a5aecaafda35987d44f0a09292b04e799
+AUX chromium-93-AXPropertyNode-private.patch 1707 BLAKE2B ab638613b0dbec1aff1e994863418f152d45f8ab42a5ca64f7406308b67f11db9e5d7f1633dcde7efddd4eb1533f97a5f169372da39f5646b3ebf389781cf662 SHA512 a1ed5312b0b3d3c2d2266c502aab6dc058f6343e534b34d091818c2ac7fe2c332ca468a7e978888820ad8aad9df09c018ade1daddd7ea7a12decf16ced723295
+AUX chromium-93-EnumTable-crash.patch 2863 BLAKE2B 72025b6fb1b8a2c3bb6d54ca9063c0cca8b8dda1344813abf55d361d197b28ccfffcc9d0bab7ef685752a8f9a4848f13b1de61e676b1d4386ea59b5cc137b68c SHA512 8a56fefbf99f9bb0262251685fa47166b27786f283ee3b84664a3b054da160647d7e359bbd051b6516c92472e5b19e55b1ff23b0021877712a78c8fc2d81963e
+AUX chromium-93-InkDropHost-crash.patch 1134 BLAKE2B 1593c406c48b629ea3170a518cf86e936af36c554bc97a380324ab6fc930e49a359dc3ef6787ab08314a6a8f5da85714b0fa9d8589d6a46b1d06cbbd7e401f22 SHA512 474d7f55505e1275238d71d1723d74a66fc9f27a16ed293aa80ffefbe5500cd65a0bf13ec76a9bca0334a245f22120099fb367d12b93adc14500104d11cd3bff
+AUX chromium-93-cart-include.patch 373 BLAKE2B 7ba9e04a6bb0f7db129442d34f4cf0db16a0a14e898cb482026e94e6cbc5d904b678945f8d37df1fc87734ee7ba189b686d6de5299eccb3271037a045b18a37d SHA512 239157b2718bfcf5b7516af409c0e53c8ce6b25d4c31bf392c7f1f8243c16137d1bb491566259b3b3914f7a0343798a262e14d2f01d8934c94755175f579f95c
+AUX chromium-93-devtools-msg-dispatcher-include.patch 469 BLAKE2B 61411c6491d9e8ccf12af4ffa5733a73885e66680dd51b8c4b974e1a877365fd4021d252fc60ff3182f9357d69fbdbec2812760943b2956c747f2a7f4363e192 SHA512 5b97fad78f085dcd72c5b643cc08d249575afdcea2a3b42315091bfc1b19ace18559dceb67c96ee94180ff5f3304e8e06e6eb2535fde8b4309b67a97fb01eeff
+AUX chromium-93-dnsprefetch-include.patch 423 BLAKE2B b82dd08f6c472921809a65f33264170f8561e9875b9584bd02048b408fef2f5eed46e29232cedcb32c4d1a5c478247bac0f640ebe2934e42af993b6b5f9f652d SHA512 93d08f55a79a6ba5884d09652c4bbeefca44660839d1b858438d25ea2d449e8c20db103ab08e9cf2895e641efdcbbf5a189358537f400f638cdfb32aebe84df8
+AUX chromium-93-ext-autoconfirm-include.patch 419 BLAKE2B f165fb97876bc85b6c266f0c5fe2340f197fcd884f02f635f59f1c05f380ab07e1cd23f0f9f2bfa8df29cbd501b4c2e6cb587cfc1c7255ff9c7385e78c7a19fd SHA512 6de1b10b0691f7c1e6682abcdc1048bf7fe84251bbd3dc8836baab1462414ef5fb521eacb852aee71a14f9978904351147e4195e399b26a6612fe7a42f9af2a3
+AUX chromium-93-gpu-ipc-include.patch 468 BLAKE2B d15c40382ee211aa482a9f0bdb1dd7f1348c5c4c6121d22c1679bafbe709086c1c6630cb7cf892bf09d5e4b687ec15d98604aa489d9fb12047d23760de277918 SHA512 4017e590995eaeb2a864aa9e53f0a81cf17d241a8e8ae8121f0460d3f6eace2b8212d8247955014a8f133a3cb459f193df5918cfe8496a13d9b6cec3136b94be
+AUX chromium-93-hid-chooser-include.patch 448 BLAKE2B 20e3e0ba1312b79ad8e1d8eb6f1c8b58b5a9edbdee946b2ad7ed2883c6bd8a48a169f633b509a35cedcb273cef72bc60a57dfd55e47a6ddd234c98f96c788af3 SHA512 e1607c771e209f468a003cfb9863180e999a3dcd05e1d65cf125ccb49a6e916c6f2c511bc7219948d97a6d789097d4e7b3b26de531851b98dd6981c621037c40
+AUX chromium-93-lang-prefs-include.patch 401 BLAKE2B a59f44feebbf792cab5a17fcddbac9d540bec365d1ee9232c5aea56729888decbd03af2a9d84eaf7ded7b70ee52d44478bb610cc69931a61b22a57b0fc223dd6 SHA512 debc36ed698472ebd282b5fba1fd0ba61d1b9d34e627648d6b0f8e421c72f005772ce34a24ef591ef2f256c1112eb8d1536a77a87b88e1dab0660e9f0b315689
+AUX chromium-93-login-detection-include.patch 431 BLAKE2B 2149fe7d73f530f78598bfcb60b0afd2d159266fbc24abd673100733d7e0a0ed05560113c9d7553b7dbb01658f217baf89d141f6dfd5668625e9cea2ec65be56 SHA512 87c4ebf9af169521ffd29eeb88f40d1c3be7253b3e1354747c5c8354c2e01a6d97e036cb56a96581a1fcaf471775a60fc5e707e846eb962cf2ed5a9181c86027
+AUX chromium-93-media-ffmpeg-type.patch 1550 BLAKE2B 12f7738dccbdb63b1171c3faaee86d9278b3b37569b284897e22b978d120827b5f37963f87679a40a0060818aa22db0771db34ad833c63a3183f37b707070ff8 SHA512 85c4dec91e6555bef2f445662ecef00e14b7a4f93a23c9ef6a0e2913c45f48754bafcda1df357a659b3c8fb02420372870afd45b0dbf19581c1e907bb8dc7001
+AUX chromium-93-media-history-include.patch 539 BLAKE2B 453d9182f81fae0362c0d7953f4dd809a89dcd0c122519a21a59b19c9a6ebf48d7d0a3e397c33828302c85a119cdb144e9156549adffdc0fb21c15f72f60eef0 SHA512 92f8fce962a67f1f61b3362845f53b24052ff9d797c3968c15902ed0e947e15603457b48cb68c583f3afc11d6d3b5066ef933cd539b20132eb867322706cda01
+AUX chromium-93-net-http-include.patch 316 BLAKE2B f5bbe5b7619d8279a1162a38b2d8e10d724c39d05ef958af84476d981a9bb53bc7b21db90a2284f58e557705c009cb12165c8c13bed7b75900fd3c88f09c9dc8 SHA512 1b663e3c3edb68cbc047aa2ce2678beec1bb578c8d619df818ef50af9269e3f5aecd6c200f2056efe5bebec590682cf2aee4a4969da36a3d2e6a501ffd6f44d3
+AUX chromium-93-payment-include.patch 394 BLAKE2B d5438ac23a10c2b0583831870b00cb4adcf524002d7c0fbb9faf6bd5a9882446718c55876848702859998d3993d63490721410ea15d0853d70fcf8e12429bef9 SHA512 986cfbf0a73932dd189031e61d014f6cce1ed90026fed7ef41ad4c6a73333ac008e68d78b5c49a9599b9e59953ce41c07e4ee9bb6ea4beda799ec3c83dc01ca7
+AUX chromium-93-pdfium-include.patch 418 BLAKE2B 7f13285432973ada1cc0fae4ad9742e18c36cb326af47d6f0731095932eef52ad81db4c2410c0696090ea01b4359d452bc380418ae51f94e72eeccb1fda9014c SHA512 43b3064d24f75f356801f8e9e62200fd6e8ca0431c65fe4486cdf51327c3632a0d5bc9c5907653db58ce003b556244ad16fe4fc6cfa0b87ab00c2a6aeade5045
+AUX chromium-93-phishing-classifier-include.patch 544 BLAKE2B 04f3dacb77f1a77cbafcad9b9a03f8a31d74f9de866ee6aa4ee2547489051b7e71b4f014b572501842563a6da95d04e86825907bfd4d8fd4bcb8e025ebd62b48 SHA512 e4f12e1517f0ae1afdf8e76f3b7d45c06dbd1e010dc36e7bedda0a853f5d54c32738aa18d972d0491f47831984c4e5c56bf8f5084ff0443c679757b0b0ef7394
+AUX chromium-93-pwdmgr-include-r1.patch 515 BLAKE2B 8a72606de29c4db5b29843410d225b6ba1e4c437c20e24e21487e68ca93f6ffab5c67232cf6621cd3c5f7f40278e94eb58d7c644f75c9cf7e0ea307baf16fbb8 SHA512 7dc22d06d2554765b43142fca08ac842a78efffc9e5e561e38dd255c3c02117a7c0bb5c0aadd1e64165c026baa27ff4c7e3ea50b5278ce8a6c3c30f6dcaf78ce
+AUX chromium-93-pwdmgr-include.patch 1109 BLAKE2B 89884b2eb1a18e65695b2321052a8f0d267f489460027c85d878e60f46c4c815b9687069c74541b513aebda18772ae9cb8ecc5b6809986200d85a23d6a7af0de SHA512 d7a28c829dcba07eb019bcd2d19c0b231a5c643f902476b7ebef474748df3ad3ab744143de519dfc99379ed0cba633b58494ec45ef9bad24cc59f14c663005f9
+AUX chromium-93-quiche-logging-include.patch 661 BLAKE2B 824e823c774992f46f7c9eabc03e3a27233c10726eda1347395e78022f2089c4378603cdadca49c4fdbd5ec6b9b74a492fd87df015cb27a56848d152f307efe5 SHA512 1010e9f935b0d2e4c5f3340a1c75cc97ff022ed1a31ee281b0cbd5441924889b141aca2446878127ac3b1b818ed5f5e3a6623b96936030d23976c532224f6ebe
+AUX chromium-93-site_settings_helper-initialzation.patch 1806 BLAKE2B 506f5e835cd87436976a92ec983eb950dd22785a7f62f71a892066664cd1c833d0d57ec383592628b6f00ce6cba17edb064873f83c58c932a13c94b6435d318f SHA512 dd389207ea9f43fdd934e3b24b08a74d7172d153e8f3014a0861895fd98803510964604ceaef53f7d828055991f042fc586334007bc1a26a1c84643e7f843a57
+AUX chromium-93-sms-fetcher-include.patch 851 BLAKE2B 6c79debbd8087e89b1d79133a5f659dfa35bfebeafb5992d27486030802d585142badb156023a4bcab003816e1be32ea7c04f12a1695edc0e560cbccc399faed SHA512 0f6ad37e7798dc96dbe28723bd2b5debc9f730f831d34596424372c6f46563a3400e36f235cb8d51256d5c133f8e899f91da6ed26d8ce2813d30241aed5706d3
+AUX chromium-93-sql-virtual-cursor.patch 8289 BLAKE2B c7ed88ced33c23b016da150eceeaa2738c8ef9b77ba9028cf2321b287491e021289f951ca626b14ca659ba41f7826b01e8988e56102b8c56d566583781485faa SHA512 9914bc6e9a3354c5eab565b3570a68979cc376e379d4ba61b838e6298bd6283bef84cf9eb32fd779bdbd956e46d2786a5aecaafda35987d44f0a09292b04e799
+AUX chromium-93-tint-include.patch 780 BLAKE2B 155322a7eb6eacf6b5eec38304b6f6e0e8ab5b9d40240da6a3928305c8d6edc15e0cc91dd1f7df531bbf1d5b8fb8a656686fd5ce0b0d83e83ce8dbb4748e7768 SHA512 211bbd5972cb9b56e26626c931b9f86a3b3d8c2f1b2b89b76df162647546414d0e00f8a93d3ede40f143734dc505c9dc59afeca4e737839544488d493c0f5de7
+AUX chromium-93-ui-event-include.patch 390 BLAKE2B 54e78d7abde93e3beff1075a0334a93647293a2f7d495a117bc4e46a0b7f76f471b743e4ad4fc90ef4c9be7a1d7af6c50a0dec997f070a9de5aa4a802303a063 SHA512 54c7ca3a8700d59e0cc7aaa42c01847de8040c6a808585f2f29c81555b84b8f431b8b82ad8c2fb6b3953748671f2469c614beae20e2994ebd6e34735255057b6
+AUX chromium-93-url-loader-throttles-include.patch 470 BLAKE2B 71f1c4b73157f8ff9bf99035ec10f583e2c8b6871f333bdbd0947da984649ae84e5ea38694e62ad7ca3c4b9fb9709be28c9d2dcffb70fce81073bc5e8b70b89c SHA512 61abfc84052f6210ff7809224e87793d010c2eba8fb6b9ba533ef6f398024fc4814503be6ae35129eb5b8f161e046d43938ca1745db148569ba95df8dc292f81
+AUX chromium-93-webapp-include.patch 499 BLAKE2B 69824ebe5cf6a3d1b5a665f782b22231891ad8dcc160d7fee1e92f00d82217b204887ae8ce04e397490f3b4e40a16112b89ad8836e4524a393a5f847795fc70e SHA512 ac982e06acad9a9d86f8507f5991fafcf7f7158dec77d3af949fa62f3bfce99b65a7300a7d76615710ff3fd73ef4e9427aab6c4871a18cbb899edcaac6d65584
+AUX chromium-93-worksp-ext-include.patch 1141 BLAKE2B 3257a298c4f8cc596f3c587a08429d9a7d700b8a5ae04c13023319df1341f371692b440e6c236ee72fd4f0fcc96be49191039734725dbcfa00dd236b95bdd96b SHA512 b435bf4e57448946c1d66be38735ea0119c31827abb92ff201069c965245fdd88c3a11f2acc1d52c8a925684872c38d0a65eb0f4ceddcb874bf6af388593b712
+AUX chromium-94-ConversionStorageSql-lambda.patch 1359 BLAKE2B b4aa74d6f8890043992cc15ec4ec4b34526fe51066ca912e655d47435d0ae9994fc11103f8b3f85e964ecdcf75795e8e5d71014fec264b0ba71082a69487965d SHA512 ec88f7474329972cdb7a770a1dcbc7b7892fd23e3f0b38000cb5772ac20a539e452ecd2fa6b35589c1a44b35a20f5fdf89425bb97abeb03bdd8881794a852d71
+AUX chromium-94-CustomSpaces-include.patch 964 BLAKE2B 965c6082af90eee07654f1dcb7678e6dd2d6a3a767c86a84762d9f11f5bb4c322d2e261fedf5d736b31f726f01548f33be30252fd8b937c2633394487ea4eee1 SHA512 b4df37e944f6b9997cd1eac6d3a3bb85fae7e268dbc8ee5b52f019990a3bc43c7dbb16925589038e26351b32cd12e1fe1698c1827fa196776191d07fb79afa38
+AUX chromium-94-compiler.patch 7553 BLAKE2B bb9b9364b7c1ed994a9e69ee5f16419482975f59cfbb4b8bd832bbf8b65c7be475f181e14b8b9f7287217bdf0b57d57627e1991769dd7426e811309688ab2e12 SHA512 512fe012b75d3f1a2014d31118f380b61013fc977579b7dd1f2a096a71bd06f3e44f4e6c7723aebbd907e62c51dbfa33543093a545890fcea2f54fd67311699c
+AUX chromium-94-sql-virtual-cursor.patch 8262 BLAKE2B 228f1b361ff67c2f6417e49bbdd53f4e0e9fba2e2ef04462a9a5463b9e9785dce93b471a8118a30b56084d38fe2f58be25bb716cb0dbb6ffd5ce1d13c4f77f22 SHA512 5289e79b7bd684da65f340abb7b2f77c9dda63c5f7761afa8d2cacb7d98632e85d30d2ad46fad526c04cd587e3018f991890775a24b8548af252d820b38c3f85
+AUX chromium-94-translate.patch 3869 BLAKE2B e8376032b98174634b209586fbf93379b8a7695330f4f0ca8c3f6ef0dd8e977ebfba009556ebca0d7c5798448d848707eeb6778bd175c8b1c3e03e774d319000 SHA512 8885e1a6cf7478a8f10d0944b47e4c0ad834b33565ee929dee1fc54503ef5639667d5fa9accefc39c5c2f45ec502eb6c600010b656a5813cc8f6bcae6f781a70
+AUX chromium-95-hash_traits-include.patch 1066 BLAKE2B af4ec0696a81d1a4ce215a5223460622b625d9391553f718f183d3738ae4695c228c6af177e03813a9961614d1ea7a3c98ececacca03eb1e68c0acfb58bf162a SHA512 abdb327436cbbc17d7a3d9190b709a826d34a452b46aaaa3037e290593c0381427352e7747abec27e89c11fee7b3b28897d0dd9b69ad87552b4445ea68f55596
+AUX chromium-95-libyuv-aarch64.patch 1215 BLAKE2B 85a29aeff0f89a7a7979b5b85d8e212bd631c2ec4c1ec1bfba2ca751beb8fe9765cbb2683630a92908bb91f8b9539195d07b031a248b009e7bcd933632625351 SHA512 6375f8a3c8033af000f424ffb21e5b5077b3cc6881bf5d2dfb88eda0cd2f5b21ac2ae286afc9f83ce91dee93a88d21ac411027fe2331e99c67cbf1698c79e576
+AUX chromium-95-text_fragments_utils-include.patch 1371 BLAKE2B b2a7055834ea7e56dbf2cdc2c32644619cc360dab18d0a539ae1a495f996601888a221151f3a8632b3bf8db245da4c9e385bbb3425664ad19a5b59c124660e3b SHA512 7a700239b522f27f1e90edf3c3fefdc5524f55ae40ba323695287809a09afe39e78705af5bc2ff557741e6e93eecc85b01c41d7ec993f15b404b90c52430e67d
+AUX chromium-96-AppliedTextDecoration-include.patch 1079 BLAKE2B 8a8ffbc2b4dae1204d0ca5f1c971bb8242504276d079808bf4d41865e6bb5bddf777a04241c6797776d481f3b47b94c5e5b749045875cd6e6c95027888223352 SHA512 55e303672c5c5971a317f6e51df1516b0bff436796516aed3b6b29e99f036048be515dfb0591b32f04ca2e6711a12654de9589f4f0cfb74ff5d1a1baa7e8c1ff
+AUX chromium-96-EnumTable-crash.patch 2850 BLAKE2B 196f5f739e96cab32d9ac7585ad4a04505f71e2e147b03e5f6e618ceed5cb37591240fdea48e388c0aefc567ecf6b369026a1d9c250112e4c0b2bf7952fcd21d SHA512 c968cc19160a4d91e0000a7ff2efdaaf97a1cd43ec68dbb335493f1bb1ff3798a6b5f33baa836ddc601c7017863655b00cf4d32cd9c9c94dbfcea7187dbec937
+AUX chromium-96-ax_platform-list-init.patch 917 BLAKE2B 8442723fa8e4bfc2eb1362cdefbc915694f865bda7917fb761568504db56f35eb194860cde76408591fd222ed4d4bc5d3caa5c897016aee6f1a3d1156eba147e SHA512 db54293ec7829801ac8a53023e5605da94315479c4da672fafbd40f8e62d0496b9be7d2a6fc555e11de8945484719352959318358247511035d3dc3fb4ebabb3
+AUX chromium-96-compiler.patch 7005 BLAKE2B 02d46e8093b50a2e791a44d6e2d5154365cf0c8ab9d36cbbd01c417afbb80bdf57f3734fc3ff35cc1ea4821e702bd8fae9f0f0c1b5626c23b02f9f13539312f4 SHA512 167db2af5eb2fa347e28e1c2c97a6d849ec969e8d53b6b513f2dd4853381ff977933ea5258446340fb10bace310f26131bb0e0208ea08396a754910fe3668078
+AUX chromium-96-coupondb-include.patch 478 BLAKE2B 5ee5693d06f9731e63049e34c416b2e6302d5480692eb53c13f1a00bd863d2ddff01f69d60ad829fe84b679f44fe3ef12130750fa5aebf1f82a6c4c556a050e3 SHA512 02089dc550657608194a967767e01efeba95bfb096cd910ee4adfb4166d2bddd09c0ed2652a956c275011132de9842d096f12a9a40b89c6375a017545ca0fa50
+AUX chromium-96-template-friend.patch 1257 BLAKE2B 2b413e3b5058cebcc86d8b0491dab0d9d8902a467db521ed85cafcb2b93e382e001bbf6b840a56b0a933b012c26e63f39ef788ff3572bafc33684d47e00bdc6b SHA512 8680cf842f5149a89cfcbb0d8cdddc6a3a80724557da1b0d1371b144d71bc399a5016e61cf192c0b0f6f2095246b8ec4fb934811a915f5868e570cd7f55aaf05
+AUX chromium-angle-inline.patch 4775 BLAKE2B a4021ec1e11309bf901b09e6925d7bc90f1b30c4db08dae7d80d97a9ca4111f1f34c169465017b50f459f2c638b0ba8696fd8ddf01aa27bad3c2b3bfbf22ebb9 SHA512 ad413e8178b6004ec03887132d77d8648e5a0c9bf48552c8665f0782c8cb342d4ea417caabbae3a1e62d32046afaab0033574aff2399b0b74a721d44fcd257e3
+AUX chromium-axobj-ancestoriter-cat-84.patch 1401 BLAKE2B 21951725d5011f043ad9c9b9203916fc4098d751eee0913c976f51bf3d7f180a97817386497da09c97dcdf5ecd7f9ee8f39b2e1cea179dba57b5b7c18c19ad00 SHA512 7d6b58e1fb4389593e76a9268f7bd0b0e899c08c9aff3862467b72408b5628ab8518acc7eeb6377362f4e2f246a2230c13fb43eb72737a4b74da08fdbd164a4f
+AUX chromium-axtree-incomplete-type-83.patch 1378 BLAKE2B da3347aef28e36ad4d5622d7fb3e471ba7c73f99afd6755b5b42da02a5cb13c478eb806ac4f9f5581a988bb6232294fdaaad1f43fa5db2e75cb94e2802db7657 SHA512 cca71653c65d4d8cd74b4ffbfad8a4bad7d890ed0a293131a7a25c47e2a2d6b9e51f99734010c951e1abf39f34bbf2de6cd355f5712358de45ea4bdf0cbf99e0
+AUX chromium-base-include-84-r1.patch 542 BLAKE2B 7156e2c2a66026e1e589beb34a44afbcdb6674dd6d9d892e8d740664247cded529c99d6d71e8d68419192ec4c41d283165f246d49fd710db1104a243dec94b41 SHA512 97f200c5575e1edf77b267ac66636a57cc146dcf9c5984c24661a2f196135463b968eb55f2aa253f52ffc19ce2f38627bb86194d9d89a119b7830ac78a90d95c
+AUX chromium-base-include-84-r2.patch 260 BLAKE2B 2df23b7a96f58b01ff135fd8ec2749757462ce76965cd93a89fdd4aa3d4a1d811fea9f695f350601571466f226c606d1e0b749822c91a3606e531206b72e9bd9 SHA512 f0199b9d4c5bfa05814c506405254a5ec04d2dd0ae5402a0706de020a99351c65cc9fe971d865f4208689f478548831665d164d4e12348fba503753eb55853af
+AUX chromium-base-include-84.patch 9653 BLAKE2B da0a79c56323e6d40ec5a21979e7071d391430c964882b2cdef58872a5929881191efb0c742173a59200102f583bae318feaba9e40ecc53735d699faab7e7670 SHA512 d4194153560dc603b95324df4614c7010245556b873ed442d94c4e88fe1c234c402ff09d94551c6ea498228eadf409beb6e9f9131bb932476693fc7472c6bef3
+AUX chromium-blink-include-bitset-84.patch 404 BLAKE2B c5e9c2e6bb202e4d18c2ca419e18fe8de811a094a5aef672bfea0a0d0905dfcf4d3b4ba60ac6f5e337a5dc83960dbf41e58d467253c007b498f063be61014808 SHA512 446a1f4e016bb6c012e8ce0b9f03e758498a7f95d09841071549df386836e583732ccbd7425f5db2e2e51af96af85f4a714a5bb8e38f9e15737b46544aaacb46
+AUX chromium-blink-include-limits-84.patch 522 BLAKE2B a2a40c1eae860c1c6b4bb156557cffaa684557ff8a4dc2c89e6d75c06d10da80ca8291a8d33d4a2e596534c6d92e591e00a2da9309382ac7a9ad9a4576a940cb SHA512 a4da82942cf22be09fb51aca26a4b8828af4f03c630d9cc6cf0e1b480af9f176ff19bd4ca6b006fbbe0f1171cfaec821100c11136fbb571ae056812773b58be3
+AUX chromium-blink-include-memory-83.patch 697 BLAKE2B a775f5b0e46b3c289f55d947596a195ff9bf958b681e2aec4978f445cab0f08c78973b85fb8219e6bf478ed5761536ecb061afba433e553ea12e81cd652b68cf SHA512 75aaa1ff27faa42c4bbb17c9b29e05307f511bbc93b4c2468b538cad2906a27993cc1997f5254b046ef19782f41e3afe48627d00602b549407e0cdb253743f3c
+AUX chromium-blink-template.patch 891 BLAKE2B 00ed2629b466bbfce015f473bb7b50e7a97bd442271ead146aac7e488548a71aef637f28dfbd09d26e7fbe0b6a437d874949f2662902f72ae460a6a13d6f930c SHA512 534b811ca3a381ed3344a3406e1114fb5bab45cc153bd3086f94627e596def4d341f29f1cd997b8c9bf5a9687e2313f55c7ac4b8f1229f58ddee3e30d0b68dc7
+AUX chromium-bluetooth-tuple-84.patch 2421 BLAKE2B 251ea94dc9aad3322be90fc95628703028bddad6003278d51112b0fc6d6f6ad5fb2a875144238fc845349d47d12139cae3eabe8d28ec639d281edd0d45061cab SHA512 09891aa82e30b5b85e5f6d996d2448607ff4ab7231ca1aa382536cd03791bc233ba1b93ac82106eeed6e452af6e9083bbcb0b24da22a8383e2a8a9dc4774577b
+AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca
+AUX chromium-build-gn-83.patch 1520 BLAKE2B 8a1abe464e071f138d7d02324f0559b5ddd65b772ffdd5b5235f5ab667b2a83987507f9ccff1109ba2935fe1d1b2c7b5617f38fb521ad52cdd6015eb2d326e9b SHA512 b98afcfddd235e5b5cb359f14f9428e9ed74decd5442c963ce46a43d646850aff8e49ea74f90e5822af8975fe2aa33da014a6f333f8eb07999cd0facefc943ef
+AUX chromium-cc-matrics-include-84.patch 381 BLAKE2B 416cbfeaa579e6837ae718883a8cd695784f8a2195fdc92f24f804eda576eba30d30e0ed3041faedd55c0bb265d9a871d5b0e31dc97b3e162a60bb4e664318c1 SHA512 a656337365d3ea26a3a28cf3fa5d173b52fd2730a156af5eef7bba539bb43032557297396726682808b1bb2cdc5d9024709b4ccc0a9cb8d0f9e74edf97f955d0
+AUX chromium-cert-share-encrypted-85.patch 704 BLAKE2B 2997e18b236024fa2bfcd81224884c503119d10a799265ed6a278966fea43171ae176eb1383527cc47c1ffd2604429e6935f81ed99bf55be8d72783509927f07 SHA512 68761073a38fc34c396e986b1260a257222987c04c9882c2147de7bb44eb4cb1cba6df983a42ca07068adbdde0b2a24e03cfc9b6f645ac21289a204befb96134
+AUX chromium-char-max-84.patch 342 BLAKE2B 91a499599f1cfc583fd877337427895118270f4414b7fa8ed628ed1314a43914bc3eb2a4240ad5e7d00204b19c3e458fb4e78e4a8389e88f789dd5ac43a5e7e3 SHA512 64c4962dc6fec6f7f291a50fada0e8fc655c6c34cf6087382fe0cb9b4ebc334ec1610f9914d38328336bf7d05026e5021c238b9c81f7f1f17bb5d982364ddeea
+AUX chromium-clang-format-path-82.patch 712 BLAKE2B 19d7b0be31dc4120c5f0b8a7a8c63cc3c09049d630c7fa5dfbb7a8ff32b995497f5c652e29ad0e68d8208c723ac6ca613ed882b2493bcc6e33e1dc2e9d39dfe4 SHA512 042e6be2d623f8f08d37a77cfcc8135b0a7fc46aaf57655203f46f00b68c3e997eeb5bdfa1f976dfb14ce0418292597461085632860f6323facc6808326ee48d
+AUX chromium-compiler-76.patch 5130 BLAKE2B ca5cd4d035f8f598561a5d15a7c63bcc0c1d9923cdfeaab1ba25242aac8e62a77f98b8f7f789ac4810fbd7e64b71fd3f4d1f3e4746ed3aaeb5fa399f875a9f95 SHA512 5c5fdf71dfb5a7f54acf95dc501499356d46f5ad3b99731cca80ac9ba8114f0c488dbf860eebbae313f9ca14edd47ea4bf54bb7c454dabf4e0b4cd2855f14f55
+AUX chromium-compiler-77.patch 5134 BLAKE2B 432695dc82015369c71cc5bf81c2b9ea64ac624b111eff16792b56ef28b75483eb0a748bb7c682f0926becde55d2d7ccfca288c4e911fe6a605ee0e78f2a9575 SHA512 4b9cef01907bfd752ed685e13134084af0aff7ee8e2cdddcc03727e12769053ca85be6532ef0dd20c07e647ee163d6d6d7614d8195b8dd4891bcf50cc9b794ad
+AUX chromium-compiler-78.patch 5134 BLAKE2B d9db40f91aac56a974c83f9df42e432f90758ae421677d2fc286ff583bece58308f47a8533b1e81f689e64c8fceb1f8627c1a8c88e1aef90b83342391bc4acf6 SHA512 85725be4e33bdfab3439894ed360ce4f8cec3b485ba752ca18080bfed2c96294bd670370a8c53c7afbb397a20be8cc56c3c6f7f05eae9c65b92e92925685281c
+AUX chromium-compiler-82.patch 5361 BLAKE2B ce8adc543d6923758bdd880862e19025556d7dd93726740b3a4492b18bc6c739cab7b018d942a53373b4dfd3bda026faa2598655b00b0467bd734bc31e0e5a19 SHA512 cdf89e3090247c9b6f1d2b8cb49431604b6cd383181a3f97aad4dabe3bc92f7fe1d7827656f38216a4dcb422c634023888c5bd66b7c321e0d3ecc154c41e2e9e
+AUX chromium-compiler-83.patch 4872 BLAKE2B e272c4b64250346698d06f3a8d358106880240de35ff516bb1fe3935c4e88a54f1f7f70aabeb8d5563682769219306c4be265d993f57c47c1be364b9bfd8a3da SHA512 9f340b7c407be819a5d4181fd58de7af63e19320746c3bbb39a4ae059156f3d72bfcd7f634ca4006a6a76577eda1a96adbc3e782f36777ae416b4ececcca3066
+AUX chromium-compiler-84-r1.patch 4923 BLAKE2B 226e5de095618a0e62d4230473fda9c420e9ad07aec4bc9689a6772063a5269f33de916abc2b86f640dfaffac2b4ffa33addf3dc213b3136ccebc6b5907f4a5b SHA512 c1d114fd0f260d1548f6b8a2bcdb8e2a2ca59b64b90f08bc2d7aecf8bac5aa29ecb7a59305dadb102e783b2b562ffaac6e8a9dac33bfc8bdac2962c4d372d80b
+AUX chromium-compiler-84.patch 4919 BLAKE2B 42da305e7cb47752fe6782cb2baa251b1de1624f1be732ca38408ca15cae459d67e1b637bc33de4ca12ff46fdf962dea1bc1b1fbd937300046db0e7006a5c9a9 SHA512 6100dc1f1d860e1224d0e7569b112e7379cb78a7d6194746196e2435c82ba02c3cb8ede5f121d17f3291a663c2327dcf4a52a18384a03524c94743cec44dee03
+AUX chromium-compiler-86.patch 5293 BLAKE2B 3cabe5c5a6aabfd98e3c0b7e2fd69863c97bd50d4af2f5c57403ae4f2e264320e014ef7d2620038805b21416a021e187f1f674f06a62d80fad692b231fc4a318 SHA512 90b3f51e279bedcf16d055476ea77bfa271783e9afd79e807870e3f045b909812af2fb4eaa03ff80f0b97851f177f64e0b8b98bf726404d65bef2a66cbb5b85e
+AUX chromium-compiler-87.patch 4821 BLAKE2B d12781fed9ba543823b93184a3996b63ac5a5fd93ddce5b973bd1c19576bb910fde1488ee7ed991664bbb7293ee05c5a34d960399a7e921167f5d47882703c34 SHA512 ce022cb2937ba4f540bd2b89c3735b0f388031e43cf3b6beec25b7f06396643503a243e81de16fa8e46fbaed5383f33b6b71c31c2411420ef5955a8554798390
+AUX chromium-compiler-r10.patch 5917 BLAKE2B a16ea6a1eee56a7de06f82e161536dab19a507f675fe8268b5a455bf36b9f5e6c1df02de73b303ab61e33153f06f118e22623d01f654d4a7c88ca8c3f8326401 SHA512 e64f9f75e685868cb8da8851e84362952a18e5dbca674c853a41feb582bdd4dc59219727f2c77440ec2030e21d7b436f144c552c30b2a4960cbe0da32c6f6c5e
+AUX chromium-compiler-r4.patch 5640 BLAKE2B 2fe93975237f112bb280bd5b51f48e0e8454d11a91b81ce2ae0520fb59ff2c00498319e202e34f4c2abb1330ba2c7dbe9dd1a75bfd578453da533531b7dfaf8e SHA512 34e32d9e46a5981b021cffee3440582ef312e78ec1bf287c6d0f14f5ff7921a5b229238394259b8df5aa081360dd76aa6d7db095ed4e1841479d8fe55cde9fe8
+AUX chromium-compiler-r6.patch 5675 BLAKE2B 94b38e63deae80aa5f98edf60d35d2c49d57b84feda2944b363a8a230f1282e6da1c7175383bad8ccb7e272a88532fa9a718b824edfb1d52902490abc3b832e9 SHA512 455f7d1e5eed767c7917cd8cac842c51447f05d51110da5f3509fc21870e3bc1775029cb90c39b0522ac16b239565ba5e19fe0513e609128eb59a1759a0de6cd
+AUX chromium-compiler-r7.patch 5729 BLAKE2B 66e7b417d685a3371684a4e173bfa2e6fa49415311ccbd16b60806c3b9f70c805db13c973861033444336d6f714270e5953f961bc54d42fca645c940ba30b706 SHA512 5c6ec5bae53c7b2a1b409a9b4ce8f2e7b1cf95421647b3c1ab49e6f3886aefdb858980065cd7a214e89dfe348f4a5b557c304a94bd7681f5bf4c73c74328d1d7
+AUX chromium-compiler-r8.patch 5383 BLAKE2B 1b746feecca55f4a0c4d154f4c0799fd21b073826025b161ed992d8ff812bb6fb8f45cd10dfb65bf20c0c3239d0f56a44abecbd893aeedf46d8c6d7781f247a0 SHA512 bee5ce216210ae8d69666a992517ff49e4b0170c2df2f6fb414dc510e47e680dd56a9e0e45294201b291f80a922d7f7b84dfec5c5f0fd0ffe4aecac119c55a94
+AUX chromium-compiler-r9.patch 5216 BLAKE2B b61d5a931b4501ae4d0b22a9c27317f464b57293d6ebe4ded52d094a78b5be3877306095598742abbded523b6bab40aa4a9cf7dd60f07c23ef42bb2f7868bcd2 SHA512 e780012264d6bbe09d871486b9624516e7e0d9b6bc714b66d4a1a768e3f7be02ca13c1e585f5da65cdd8da1c84dbe27c2e0119b330d98e5ea4c096b9da62c7d1
+AUX chromium-core-management-svc-84.patch 455 BLAKE2B aa156824199a2cbbb4f9459dbaadb6d7da64111698406ec8df131f8e6461d6e548179ccbb3c95c90b3be78dbd2b9372adb2e4fa18aaab19ab453cf28593c97c0 SHA512 966afbb727b2000c98b45ddcda37435fe0e15af4a31efe6de7c43aac3ac46e9e70630f2a8dd4d7bdee2e3c75dfd5e418411ba94682b0c1376b9aca41bf084f2f
+AUX chromium-crx-install-err-include-83.patch 483 BLAKE2B a789afc760f37c4c0ff6238ad1fd818315b5e7074414540ba9d871b257d8edc21f03e196e30ce8b3ec3dffbb4a33d9abe8338ba045f593e549ba55d182805676 SHA512 33fa91504a9b512c09a3745a6d28d10552a840d43f857382f8e411d67948bfa3929b7ca8ff6ad3027b7805c1afefdcea66b8fa768f20cd35b5098b1607451513
+AUX chromium-cursor-80.patch 3845 BLAKE2B 2ac398eca2229b3497f1ce4e12d196217e7893251aea77b575b4814363764f9a9257eced12d22f3d1776c255712f1fc54126f407aa8b8e2f2d426207cc80e2b6 SHA512 c6d6a8eda1a02e41ee638df21bafa4f0e7cbd9f674907923912b7c221aef83be7d8858fe08d34aa16dc043e82212b9208887a7f79de049ef320e4a95ced534a5
+AUX chromium-deque-constructor-82.patch 502 BLAKE2B eed6b6fcd582dbf8495854ab10cbf19cf0c288d2a2b90c951339d82d5cc0ff93d7e2fbee260203f9bd4830af5bc5e9e41cff980f3d2ab8edc17efa7a856ec95a SHA512 07478fd059bd3aba62c519d87a28d41bc050296b3b6d542cd6435ac6a685b77af722a5fc88ec3e49afdd5fcd30ec476cad4b32f0c19850ac3eda0309db8977ed
+AUX chromium-disable-mojovdec.patch 761 BLAKE2B 6d321fa5a7d4e82cc2150c8d7270bb3d7e2a964093dba7e599355d47b19518318f94ee8968bd1e5f587eafc9bcea0f8808350d195843fb98b5d363d6e4512548 SHA512 f291c3c8953b92e55e71d4617ef2b4db9d69a41148e823baadb5d697c469980012b54d24f0d9d6f61b1380b0d7805c7fd796256d78ab91074705612afb1a4767
+AUX chromium-ext-no-vector-const-84.patch 1853 BLAKE2B be5e898bce8ee78894f8562baf9ccce4062f790cc620ce854e7704f559d337945b423acc60d9ea14acfbfb11b3f02bc3ce744754a89b0e9b3529575baff45a9a SHA512 17dc1fceec1d560133020133ecbb990e10e59c51f646a3150d3bb9692193894ffa7c56a284137780655f6f9e943d32d2dd55c90de0f24a82adad6eb2e279c8cf
+AUX chromium-fix-char_traits.patch 355 BLAKE2B 5269c43c4d36dc1cd190aedc04e3172fbef0048484ac7e4db15fffd69009c8ba02f0ed786c64b292fbbcd2409ad70545817cd7d45a2cb51fd76bf72250ca0018 SHA512 85ab70f168f56c01e01bdf210d107bebd7c344e95dcb692a19a0f7883ed6aec5325b38c35cd3c9b37c1915820d5e8d401e8ee92c289436fb8bc8341c3c6007a8
+AUX chromium-gamepad-include-84.patch 357 BLAKE2B 3295dc05f9718d88facdcb867ba59d8bfcc0fd2d9eedc4e78eaf630a69074a1767373127f9ed555cbdc154562b8214912e788704db553610720ff80d458330c3 SHA512 667af18a9650c55f1764e61c7c5d87976d62fffe273934b2f8deaac97bc04b1b319bc3a714e0b79e54b2d21e5c98e5f25cc9b535ab7042c9e41c7f02f861afe6
+AUX chromium-gcc-89311.patch 4280 BLAKE2B 3a1705033464f6421698d281d43aa68903fda2d268aae54295b94c75343facb87b67e5b6570e8ab28759cf478abb0ce44be47b6ad36c86ed32a275bb03974496 SHA512 869b694928ee2255cabb24f4be26e8a174395f36560835229d6381aee02ac95b4f9dbcd2c5c67c7e0c50a27bc7ee005370bd18919ac6c48048e9ae0762856fe8
+AUX chromium-gcc-initlist.patch 923 BLAKE2B cbe7020ef5c1f738a02e4e064fb7ff23e6aac6dcf659a06e7d3a47014a864e2fcf7afa9598dfdc9dd3a29c411b9136c0b902f68f427ff4715cbb2b425cb6d18d SHA512 a3365245184953cbd927e222cce7fcf6b36f2b6bd111cc31311fdc2852c6649bbaa37ddadc43ed401b23f79833f48c5ce4931f50e32d8763825254b63d5f9fc7
+AUX chromium-gpu-vp9-include-84.patch 373 BLAKE2B e572af184c5c63c1da8d85b706f62144418450f807f5a2245acb859488d0e625bbbec04a7f0303fcc91286d3ef5983512af23777bd154b902d3915a0c294588e SHA512 e9a6b3023418f36c629202ab2d2ee1d34cb72951b2e3a2d324b1cd6805ff8f36f7612ebcb6c0958782e82c6ebe53f450e54ff24486ea2cd5d0e114fcbf4be94b
+AUX chromium-harfbuzz-r0.patch 4173 BLAKE2B 5c74627b52d004a6b108c69a87ecf7472a7d1c213cba3801d28e83806df5604de55831ac348561a3cd9471b3b3a69c6e08a2b1271b980478c1b815f14435c575 SHA512 174b1fbaec1b8a88f41a06855f0475ca18f40ee5c0a9ac8a9223c7d06fcc1173f36c85d90a332dbf48bd315bf646ca1d4943d351ba510f3045500264e82c037c
+AUX chromium-hashtable-iterator-cat-83.patch 2767 BLAKE2B 5af4d1ed4e3af95c6f7d77f44c3432d3783ad11075b00fac0b15d79150f271aec374ab6d6ce8db586662b534e708b67992ad78cc3b627c7f89cdf949ee652f37 SHA512 c2527b6f59999bb883418a1c62efa30895bdd939fb7e720826354f525c4fde3ae8ec7ff72f356a3e0632e0cd6883566bf798d81fc42172294065144509dd3adc
+AUX chromium-include-limits-83.patch 701 BLAKE2B 60a2be430c24effb4e22f77d67cea8ef5ae90499c096034e99c046103a22608ec88adb5546a700f87d6bdd3a33031324ff57a3aa766035a68469b5478cc2d592 SHA512 e00369db46c1c0db2c78580e4e992b9f55c6fdf6948e08e1205de417a9632d19b297c0ec162a544b19cefd61c3b9a90a7cc7b0f6e1b0cdaf45b3721eea17b16e
+AUX chromium-include-limits-84.patch 614 BLAKE2B 698d2803f738c7e693f5a2929f8bc22cd70b5660ffa44979dc933ef867c8d7df5fba79a2c82301a568ba68f093cec63668c8b807f028326c0199d6c3d7894079 SHA512 ff6b1e1159535e9143454d2ce3f810a5eb38dee1ba4465972492b87d4fcdae2944301b0096f2e18e3a1e516fa91bc2ad07eca17dbed0a4e1a90dc749c65d0fd4
+AUX chromium-inline-node-ptr-84.patch 716 BLAKE2B 51a7927355df912de5779e0ec92ee838e10d671280a580789804733a6a661df1ec8944ee78ffc2057f095ab7e201ffb7c32512d07b99f6d269abc59973b54af6 SHA512 a44c9883f978313d8167723db608f46d33566a96703d7ae8562d77c4900cdb639c3a68d887e13285f8a5c62b5a19e0641570447a78be451b710f5bf0fe96302f
+AUX chromium-launcher-r3.sh 1199 BLAKE2B 85f57b380cdc25bd000cf57d3c129b67f6e55d96dd958190040b0680f8d4d358ac777e0c1ebd6a1b32dd3821a377bcf9f598e073584528d0480460978c4c1fb1 SHA512 f1909314ae74985c85740d26c9bfab694f3202de8ccc392a1c4ec5c8760db21b6cc46146c78a9abebd09e6d24f37e19466f0c4d2d61815400b48d859f8ce154d
+AUX chromium-launcher-r6.sh 1593 BLAKE2B a871bd572239552390b216c89269dfe132474e1f57bfd0429f605af8285634659725c550b701e537f56adf20cba2dcb27dd9dadd390366dedc147f1ee987f462 SHA512 c01cb376eae2871dfa7a488d96ac8cc3445230eeb0fbd865948c5b3b601820468e85f2f0b9b30fff940c736aded050b7802759b8562e6378747af93c1d4f08a3
+AUX chromium-launcher-r7.sh 1631 BLAKE2B ae28d758264446511fd2b64ba69fe920144b351e8833e0e98f43d00633e850094c288b5d97d1a84801ea13aceb294623692c86c1b9be5811b7b97fa8a07a1ecd SHA512 1e97f8394bd8bb4b29570b1b85176efe6258314a596f079bee1c4018113e0023aa54a93690ba8de2a00d127af10dbe2cc3fb3127b72b841c6f28f9e7bed820e0
+AUX chromium-layer_tree_impl-stlcompat.patch 599 BLAKE2B 5e0f1267f87df14d3d7a46f5f567886ac9603fa977a80c34564de9567a288d06fbd92f1013a750accbf43e2c382696f7864a92174b654c9c78c83412bb8374f9 SHA512 00725253785311f6f9ce98f03de331fc781ac7dd7f6d824628fffbacbafabfdec8176ec5a95260bc8a54d8fb4791cad3b8081a373adc85fe6b3304573d442550
+AUX chromium-link.patch 676 BLAKE2B 8ee29004a66d2499bde54c1f81914f0530014ea3fd5ec3cc3c3edea8fd9b01cccb40ddb9bc9569b82e1097065679e51f8664f0b168f7bb66d15cc8102629ff92 SHA512 36a66351ab51ccde888048af51fdd9abfa2c01de890ff9f97333f33123573793f009de752e5f466f65b46a61117a32194f3d139882589ab44fe2c9454d9f8e4b
+AUX chromium-math.h-r0.patch 1092 BLAKE2B abdef69cacaa5af0cd84b293b300fa5db631b7df8d4f1237449e858dc3ff56589a3f46d8228fc0c969552f41bd9cf2a0c2cbf4a1936c2729f701aa1d4ad86b94 SHA512 91a0d74ec51a6776bfc4212a132963fbc4688c47ee1da40cfbebf696ef26a766f5189cb0a972ef2cf4338daa5355ce79002d624b5f30a7c2de36e40b07355f8d
+AUX chromium-media-alloc-84.patch 674 BLAKE2B 9b2cc7170e5ba39804e4654a6e906003a85aa3d85482bebb37db3dfb9fdc6cf92740c1bce5caf6a5d26d3b47ccb73bb72a4256515f5f6ea6c92513a677bf0949 SHA512 c54fdb3be12b4e0b166ce4a5a4abd7aa1ded9b0dc3ce1079bea62c0860f936073dea8e2062ae9248a89f475daadc621bfe6d2b22bdd567e9875e472fc8e30189
+AUX chromium-memcpy-r0.patch 1306 BLAKE2B 585c015fbc6cfda61fb28c451da1433047c21e439c6a23e2f27844c308984a2066a70913669b3e1797233f86e25a119e494156c0b869eccc94d21c2abaeadba4 SHA512 1aeeb70929acee529dea66860b42f106afe18c0f6219eb03c9c710faf8d20a997135550e289839599ec325d8f032243fd70c07d397bd89302a192c41e8c4660a
+AUX chromium-mojo-ltm-83.patch 3300 BLAKE2B 714691d9e0766718151ef4afa9c4ffee9ec0ea554bcfdb663b61d32d87816a6b391249923483207dca0c025fcdc765e763b4f0e81bc90f4ac06801b95b236868 SHA512 08c3ae8e0dc950af3a0d0bc8363adbc977574aef57e2293dc57f6f0d7409997d315200f8c29977a4a2747445f64c0d31f8eb0053efbab787ca3bb913578eb153
+AUX chromium-nearby-inc-86.patch 339 BLAKE2B 7e3f5d89d38b0e36504181bb978b662ba8285c6fe7916ccf126301632f4052ef58b78bae4e2d080856a3c6f7b4592ec1ef12b5096a0bf454b8696e20f8fab274 SHA512 8161ba06a708dc31700b108b6ff6ea228522680d3247d9575485a17aef7cbd955d811dbe1bc408a29f4bc1f8618db3bfb2e43b1371a0a3126597fd26ecdb27f2
+AUX chromium-ngphyscontainer-iterator-cat-83.patch 857 BLAKE2B 3ec9228375531323beac35c266ffcf73253e7232284b90cdb4a6218ada0dc74e743b46f72105721575224a153a3b434e490baf15a47acdebe7ce9f09e4a6ba13 SHA512 f78aec5874f7ed5ef74682604e46de2b04121f7a54fab9877e68d6981ef57b7004f3cb54bfc2533e543b505556b57e09f0f46fd73abb8d7e54719bc0442ba4ca
+AUX chromium-noexcept-2.patch 1503 BLAKE2B 74ece36641a0a41e2c2a0cfd21fbf0b5b3a23c0282c0fde85dfe5d99289d147c9322abd99f29a09ddaa69be581487e599c73233181ef003186e08ee9308cd0d4 SHA512 c4eb7e177774351c0adf68504b3329f66145531c3d75b7bf93799dae889b1609aa34a27a02f78aba12132376d3684a7b57b5e548eb17b4b4dabd2248dc3441d6
+AUX chromium-noexcept-3.patch 1221 BLAKE2B 2e3e7b73d45fd06624d7e1b195c9d87239685bc4d3b18e1ca162c9a77779e52adeeea924754e28d2147a15ec9d67ac2650eaf57dd5a2413bd1ec6dffa767e9d9 SHA512 6bfade674951bf3e7752b201d328a058c54cd1a20526b97dd5ee874cba137dfb54ae8995ed3620473ec13adb588b69c11f9bbab755bf1cded5f570eafe8cc295
+AUX chromium-noexcept.patch 1235 BLAKE2B 22d4a86b33f4c9eda93486bc5dfd6dfed615baa07c74cf182b3501be0f05397b365006f765300c1a362ddccfe0713b98f3b2c5ee147b3979c91db9eea6e6ba1d SHA512 3f79ea57f264f125c5ef2b9609beff90cdeafcea1b4f8ec1048e91bc0998813944c17e1d5e4557d910ba70b263a52da6a6855914df4a7a5be3e2b967af69aaf8
+AUX chromium-ntp_backgrounds-include-84.patch 458 BLAKE2B a54a17eb402c6f11607d72bfd938bece610e55dca5aeed5875bdf60c5c79fa3d01d4c122a760ba4097ada7e8aa0aad032708b9ab46cebdab0a30530dcc750c05 SHA512 ca16a12e91ab025d49ffdf930fb19357efe39dd516dd559c872ba7044d1b4f56438e195374659b29a4141e7d9bea2e4cf340644439b3f3e9262859cc3477a405
+AUX chromium-opencv-include-84.patch 318 BLAKE2B 641c499e0ca35cf670c56b084c9d013b5c32ec218bdf16fcbf9d095bde46a50561d5442f097c6f944794c2e3fa575a0c0c7b43b76a177b3d70f12e3d749fd593 SHA512 d18e7804fc4de56a48f8a14ba6edf6b43b8b9d83cb7e28524d0cb8c8942a5cf6f1386a1c479a941c8e300050578d653b2d3f4a3ea3313ebfee906f7d1d0b53e4
+AUX chromium-pa13.patch 4402 BLAKE2B 967593e1fdf05d9bb1c7a489b9156024cef3fc7c49a1b1bfefbb8438c42b9bfb807422cc67568d425a37f181e6863d12c9629856852d5ba37f93c0c45919a1d9 SHA512 4aee9b0d31a682da2e4362856532965608a5d718f8f74812bb240b03f94620acb502c9f806c788ea26da386eff0b6c5dfba15cd4ce84b11e6381d70bf59bc483
+AUX chromium-pdfium-stdlib-r0.patch 986 BLAKE2B 58dadfcf17149382890e168cbfffefd245a7df5b6a1465bb9706a5b08aaafa2fa94683a7c3c73a98c832d08a053bd20e8d81de13e89a52651b591a545ca849fb SHA512 f401b632ec6cba9a119b623aa08e222ef72cc080d61bbb3fd58eaf44ff950f89ab0a6bce1d5b134ed6d389de8375c0dcc3a8b4ef4ff78005e05490f6cef3e4fa
+AUX chromium-remove-no_check_targets-86.patch 34863 BLAKE2B 3d09f864df6c283de45694c331d1589992c3cc06f8c3f1f65c6c0186496f9ca385d3e46eb16b3132718a918def96e936183ad62502970d8d8565492b1dd0050c SHA512 c6196c85d966f0649f83dd03ba4a95844a1363c24100c14becc9b175dc7e3ae7211906275ee56b22608e340410664c7ca5cfe35a48053f9797ac7620fdb6eea8
+AUX chromium-renderer-std-nullptr-83.patch 641 BLAKE2B 6db9bb8470d35a59391ce7cdd0a3755068d1f710f9b140ee6b54fd4beee3330927641ceb32370aa209625d92eb6066f51126093c3e3a6022bdcc60112baf2cde SHA512 77122d0ce2d57c7758e8ecbbb665d9ea5e1ef77d161edcfca7f42c347819d11458cb82ce72e7b5cda6bcea71538bfb757e0f27fb59b9c7b7f20ffba63f8dcc63
+AUX chromium-revert-crrev-2147485-84.patch 16187 BLAKE2B c4150693fcbc3e73e8107054c2ee81ea4ae65a5cb842a299216ed3cee120c1470a413422d777f632ca322719bcfdc1ded1fdbea6b2b9ad9d744fabc63179c65d SHA512 d9dcd9788a6c87e5de2b3d0fcbdb2f3371853a5d6bf527adc47f10dd8f4612f9c1f2d7601ce8a0386e947259b320ea4a69372df4ece5d2aabc4bc375d3faff36
+AUX chromium-revert-e7963c4-78.patch 13922 BLAKE2B 988948a7c61e5282b58e6d0c010238ce3e036038bc2988a4a1560db6619c33f712c24169b3bb653ed01ad1331c3455bc31de37e4d0b229f2632fc0ee957df24e SHA512 dd7bc2f4a6bae70dae39bece16a3dd2279dd66f75efb6418518e317ee05fefa92d2714041072558b494aa63f5ea8678154d2f482b8479308000b92fd3959e233
+AUX chromium-serviceworker-83.patch 5784 BLAKE2B 04716147312146254b4507750e0f946032692ce12186eb710d9373ff24b80b07e8bfcf449fa4cff622c35946f07de44d7115297e3a42d9fd679e17db9b88d99d SHA512 8cc321621a2412859fe436340186a5de0a042d1bc2fa1d99e828222a14b3f4117bc2ec2a1af976d51b433347d3ff0a2d99caa785a6a6c49134ac16b9f350e6cd
+AUX chromium-shim_headers.patch 1510 BLAKE2B 9716cd250b249c6255aca01a385ef8a2a6f1df9ea3cf7499715543c14f8be62fd323b6048b890aa2be45891e7a765d92de3f41c3b3a88c08dae4b806c048e20f SHA512 c74bcf690a41b4f9b364477d23408d493aa674e3bd014940098a594471297c2a425241f908510061b5f11c9cfe009c4a803370edd757d3c0ab8d9c0cc128135c
+AUX chromium-simhash-include-84.patch 820 BLAKE2B 0bafca40d5a09d8e3c38393db7ac4755a9c1c0df25b4c4bce8e9763bd8c3a98999c4a2cab9c14d6157ad2f5c49dd5af645ea2b3737fe64be66622fa467acfa53 SHA512 cb4ea9a550d49c8905cfacb7f5938f5d07369d1f5bb84cc2646391128c232ca47cb57ea0704398d29886c18e02ebc48feea7622817abd64f775da252f09bf194
+AUX chromium-simhash-include-85.patch 464 BLAKE2B 7729543d0e8e1075b62c0f1177bba72d2a00c4a81859c85315f880c00b20fd7713c61199890661827dc6ca720f957801f867fe6a4a506a5c8dad35baffdb4365 SHA512 b9a68a1c421babb3a044ae1a7797d80244097e31187686789f99645e261d5a60aea482278fea42d25cb309575f2c45f3db68ba9f4c20fc1bd36efdf5b09620b0
+AUX chromium-sqrt.patch 610 BLAKE2B 84614133989e8856529099b17df099496b569599a7d94bcab64cbdc40343cd51dafd2ff054c4af22ba55a2731951bd3a24209b4c5e13721b6c4d3f69db8d5cc6 SHA512 297cd7586358b6add1ea8d29f69738b3c1c2da166fa8fbd3f13cc575df40dfcf18ce527149692e446b775b5965e07adaf3e964df19ba726beb0988ede49c65f8
+AUX chromium-std-nullptr-83.patch 1225 BLAKE2B d794d1b576b6a236b27ae824e8b63badea2aec0fa3a6e0dee27022a6af3cca196837c93cf93c538172699dcb2da22690e6ff8513a200e435343817d4a1663812 SHA512 de1fdabe36f6256792036cd75407b20bf8ef45e4922c89c74d7dfb9c859beb38434e103567f3c2c5c9548bad16cddbfbd31acea03eb09dbb817f88162f67197a
+AUX chromium-stdint.patch 623 BLAKE2B a4bc24a472bef266cc8e67fde8249b17dcd407fd86e6f614f24bb5acb18426b620b7b5e8e4d392940cab3474e8e8ee9633c61a99853f6316c77417ff78f1c034 SHA512 adfd265ecb2326f221eae07f910b7217f5bccf6be4ba750069bc05d7ae458f3b32ae825782d032299330e7c29a93a76fc732c5f5865669ea5eecbe167e04133a
+AUX chromium-stdset.patch 600 BLAKE2B a5d8c42aa9bd618b9afec02f08fe37b04cbcbf34b7ac038de37a0cac4ea044af9575c7c4d11b84d1f7b519dcbdc528f73548015fef1b8d11c1ef8df3518178e2 SHA512 329dcacd4d688809f73e439574747bd96aa9891481067d1136832ce049f25dcf8c6c7bc51f01b3622368caee2d1d708f4f760bbd07100ef73149fc2a8d26bbdf
+AUX chromium-string_view-79.patch 3433 BLAKE2B 8f7e6cefc0e98179f5c64db59fb542b5f2acbcfdced0186d4871d16c49885fb1b731cecd370aeb8d152c5ebab82bc7fbe42f04e47085e4b31869af4d88f6c64a SHA512 a68b9176f1e88bf64d552f99637b4142a40a4db7f17f82a0f4a6a8186d00fd18b4a65d97a79d09a98052a8d03bbfb9d16938b9deb02267bf66a34dd1e5c04b1e
+AUX chromium-swiftshader-77.patch 1780 BLAKE2B 5f7636ab6871e164258be3937aa0aff4e8c2b76a7ed1e07a7ea9b98c0283929937e2a22435e9d0dc75eff967de7f364a1332d3d7516726a994fe11a7bdb55768 SHA512 cd0d5478ec42a7c9340016f68b4ba9b026bcaf2be66bc908089f33fdfeeef951613e13b50880b663a57f3d1467eeff33ddf78897b48c36fef3058ac10ff08477
+AUX chromium-unbundle-zlib.patch 750 BLAKE2B ffce4f4069fa8f04c41b8395105d4dbe2f7e38fb9a3b2fa826972b894825dd64ed23c2a86d1445e454a96d35ebaa059ae7c2df3d2baf986be068a47be072563d SHA512 539990ce23d38c10274d9f44bf61ad53adacccaa16646ebe9535c03d2fd468d5e722aadeae82ac244d64851bbfa48832ae0895743b957fc0f4e8f47f959b1e97
+AUX chromium-union.patch 1455 BLAKE2B a644ea8d7454182cde00b62a17e5511e25523f011b0e004cc906ecd54b3124f25c15e17247c6d4883c3df23e96071afc94c0da3727187e5af26d16bb8b5b4a58 SHA512 41e6c2bc3562dbd4af9306d5651e703ae23b8228c78374ba7a3e5e248c662db889c3067e51f1eadd77521fc46314e4e57c2352981a389d705965c84d793088be
+AUX chromium-unique_ptr-80-r1.patch 599 BLAKE2B d9072fd4f5bfc37224c4266e7a164d5329e3cd7d9527652f49c88531659ac0c99b4a1f448a58a5f4fd19fe188820acd99de825a05f73c5ec347cec717081cef2 SHA512 29ac28df532937cfa9dfe54fea582e8b37ae11d23d0d170b1d75bd5d35c8eaea878c518439d43f4a22fc72ab69b3c733cc5b05a4c73650cbcb3263f2db0006c3
+AUX chromium-unique_ptr-80.patch 295 BLAKE2B b4366bd7afbc02def60e1052df921338e80b7f7fdaa2472ddf6069b9b5d5e93761e5df5ce2cc8aac27bef32b93613310bcbe5a4e5c781da703a8399832631909 SHA512 2e8ee541dccc37d37924cd189c47dc7398f1ea1214d01bfdebfdc721742c0e09b1044b5e8906f93a19971eff2f2793734d37274c001efde0a48644283de4349b
+AUX chromium-use-oauth2-client-switches-as-default.patch 1085 BLAKE2B baf3c463305934c126af4f7c5be305863edc7eec3add5b5ada30565b49b5944021eb40f1a9643e7eec3f973c502d9b02426f00b760570fcea5f1509219e41c6f SHA512 fe2878ee45778bac894ea17a668511d27ad2ca40988d5f11439790b700bfefd6560f3931415b4e6c543fcbbfc7cfef55cc757ed4ace1d111039ae78c46b81945
+AUX chromium-vaapi-76-r1.patch 8406 BLAKE2B 856a012bec286fb153f371c75f96e2667b8f5a405f4870dbf46d55dda42b0b9daca216b6a2cd7c70e5c851ff95b8782adac1e19980d684ac82799f76d581eba8 SHA512 2c6a5f8703ccec3118c798043199b853b7cd0f13aa9781fe2a48eb6248ae915fc9bedd95b59c603550a7a6b429d837e0af5cd8ca05936e53dee0976ac030a0df
+AUX chromium-vaapi-76.patch 8464 BLAKE2B 5759a5ff237c15c9667bd303eb32b36e095f6b962a3374d54d849c1eefd483252a1652c0c7da70455838a226caa9f78fb7acefaca4bf6c930a049dd2df9f2338 SHA512 2ea428757cbe0d27f5f6d57d2e0c81ca449120d7f53045a3dde6e37f2bc3eaa183ce008029b7b882c4a540348122ca2a14948dcaee376a17659a19c796e811f0
+AUX chromium-vaapi-77.patch 8412 BLAKE2B 68688ce1fc410aeee78a7702e0963f973354f0590d448048ef2e4a6d99748aa2e6e9156d825f98f519302a82b666c1cc17fe32fbd3e04d5ca8654b6eb081bf26 SHA512 d8e759b7ecbd415ee9b00d7fe9105fb34ebcaed4ab941fe4375a8d67c4abd9b03de77cd2d349ca5e200d7ef848574f8e82f623dd3e45c16cd663a28c6cec70b7
+AUX chromium-vaapi-78-r1.patch 8384 BLAKE2B 63ec4860823b38eeb686f629f4200937eac97dcfc1b67a8cdeae723151570c1bb1e0f126d5a9c6d7ba648705e08c95d2a3d3a4cc0537dd27a7132982b2e5e752 SHA512 72c37f29762fec712712d0010555a2ab5cba6f3dd050fe541ab775ab9aff7686d27da5eeaceeef963ff90c1678ecb0e2a95b81437cbe8bb13fe0b04f9ae0d524
+AUX chromium-vaapi-78.patch 6538 BLAKE2B e3db5bd4d99ed9dfe08738f9ede01f7390b2699dac7fd01102ea3e93274af37a1e000fb4909ab0e70625905ba494d2c07e02fe368d809885027e91f97811cfd1 SHA512 6c48a3e33d5b0b135d251441ec925bce401e5ecb48f2a575e84ea44b06d0dcc548825716622f2226231de63f7af74cfdd42b527d077d2c6169fccb77a17a46d1
+AUX chromium-vaapi-79.patch 8396 BLAKE2B 52eae5579e090f4107da874634beb17d31472f0eb86f7fe2d150921f2cd2841246b70aa10b7276b3fb761b572b92e15d0ff0ed09e347d0d1bb1c7350b34d2fc8 SHA512 80b7882122a0bfc49aa9af802150bf45fb751fd6cc1967362672d61a06dcad5fcfcff96516e71a6d66c7d9b655756e8ee60b895f16025ef879c2b4117358625f
+AUX chromium-vaapi-80.patch 6259 BLAKE2B 6b51a93f998e03e176b42ea2344ff5e7685fb1ca311af3b43f05d2aa7644290829ed35cacc34b907b3588740c5f70b4b0038bc1e34db215dd90ed36c527d3172 SHA512 9dcbd1af04687991e1993c52ee870ec3649cd2b1fdfca67b17b9392845283ba8715655726eda5fc6cf5762baf7b2d2c197bc654ff7085d0fa1289bdf9bbf78f3
+AUX chromium-vaapi-81.patch 6626 BLAKE2B 3a186a2a112338cbda944b9397ecc55ccfe28abfb701fb0bfde3d4c567c89992a9c3f4a7faa61cefc65f44d279d6a36329fe9b63d897b2be8255b57277045301 SHA512 ee0d66789344c755bff39a5902d5f302f2e46e7ad49be2c7d8d128e71b40e9d03c469868a639fff59176132479c4e89c203b33f375d37be9a8c88cfc427f2bff
+AUX chromium-vaapi-82.patch 6710 BLAKE2B 83a2b8d82da55bbc6ca29ac7a668653940798f573f6f0a22e6e69729cbb752aabfbacd79628bc9a1d76e7a9e4d7c457085dc4da375311b5f643a00d7b23dfdd0 SHA512 c78e114e57d636bee67e9cb48a8c3be44e94882dc7d46f1680de12cb37a0bc4f438a73e834430b9865abbf1842ee417d0aead105e321158bdf03eb81c54a4625
+AUX chromium-vaapi-83.patch 6731 BLAKE2B e93b896c9884a92d96da4ed555177015250f5f60233cde07a728c3b779f363b8e1bb18d65e38a3883da5e267ba8b82a9b096532878c41e539714d6f1fdb59cdc SHA512 6c5a4c76f6e1e188c6dd3803e5d7c6ff50aa9a345e339928e31997085756fe8c786ab3444c1e70379aa8a834bf2fe098eebcbc8228b4cb5dcc5106c1082c861d
+AUX chromium-vaapi-87.patch 5202 BLAKE2B eb93513c311f11d2de6aa7d4ce2edc8b7cb78354611e4fafc44e497ae956d42aae3a555b8d074e60844e2003f7f7ebb2ae69932c43f3b0a33bd7f22062473085 SHA512 df26b0076d1a04cb24467b78b72c8d25d7b46588be1bbdc7d86d05d6011450a393ad1500a77aa7447c00e629600f3f5c0bd38ba9f597befeeda769d3d2b3275c
+AUX chromium-vaapi-fix-87.patch 6993 BLAKE2B 93efb66324a850d73fdc4105ddde6bdd873fcd1e1ef750dadfd6dd31c712bcf2c552119472f52ff66cc6721bb3ec525a2817199fad2ee1f1323257ae9b09b4a4 SHA512 d056d98a69a62478949eb057ad5b86edb7dbfefb71cde23b256947fd2b3988b1ee91ddece09437f8afe4ee072c5c922c87d662c6f2dd00ba208ab569ee712ab4
+AUX chromium-vaapi-signature.patch 1275 BLAKE2B 9a06778c32dea2b2114125ce1558d3a2063b04b43fb72aae994ecd20227a35be0dfefe3d62f531b765aa8fa339b04e488de4ffb0a2fbe5dabb49960d11e4ca86 SHA512 e394a135bf1b1efc3892782e69a79826360ccce65a3bcc6f9db2d6c5486df64aa5d9fe1146423805550ed15a5753c3e83ce4c8acc5be9f27f24aacca951b8137
+AUX chromium-vector-include-81.patch 658 BLAKE2B 033c9113aedd8c08d3ef45638d1e04e2e1d12c7250b308682e249164a436f869a5ece63a83a4852c79fbb2737050fc2063d41d371c2fdea816f5a478f18d7bc3 SHA512 e1d32fc474090130d9affac38dad7917030de3c10b9788f5dc2d378842b03f8c7dbf6712163aa6d3543ad5012d2f69f55112189d78075637d639b1f2e813e203
+AUX chromium-vector-init.patch 495 BLAKE2B 7bf63961346d2be39941d878bf5e5b22203db5f0f16d6290ab44aa9409ce201c3d211094c544ddf3ea6e1b785e2583035945bc26139b02946a895d6ede305bd6 SHA512 86f597835edcfefc6d37042634353f2d0097c5bd36d614a9d9c8babfb00fe89175fb6972fe8a01ddca915301622fadf36e9f3fd4a636d0d4dadfad1c0462f5f0
+AUX chromium-vk.patch 797 BLAKE2B dc48f2085b170b07729d2ac608976965649cacd1398f8402b7e742493b6936230e9fe732f121fbc3979f991226bfcfc9abb98467a0eb8a2710d10a3e2c2c8191 SHA512 1f000a145add62cffd046f0c7819f727bfea423c8fa0664cbb4d1c929864be24eb3e85ea73168c00a5b8f60924ece592a5213f10354f6a1c497f87513f8b1622
+AUX chromium-vr.patch 1646 BLAKE2B 5a381a897dc664e8c0dc99404ff6c70c89e2f485b3cf1821ae89c742d151450eedad63ee313c84cb1f736828a71d63575a8ba31dbfcf127bec6c8461e5e1fc33 SHA512 bd29969eb1af322c23c88c694e413e706a5fa95de6507db9530bed208db64fe4d07ec8edc68b5e59a56602a3a7417459de190020667f816f909a4217fb852ace
+AUX chromium-webrtc-include-84.patch 430 BLAKE2B a75a502f1cb17446a1756b9cc0f57ad8cadc94e629c2740806133a643c1cf9804df93173b86db0d1e0f64135320ccc58b5596a7c5af3dea829f956fc459d3eef SHA512 ac4868de1fd353fa53ba0c81c051dc9b2f0824d80cd5d304844ab9dda8df00eef9f488e33f7ee89a5459b6a87fd446264e86f60bb70ca735674f8bb1ca9d930a
+AUX chromium-webrtc-r0.patch 972 BLAKE2B 1c49db0ba631c8e517a5b361e2882e7f00d9b018af2bbe7e701b878b78f1480317bfb6394b0184b49da3c4361acebf6f6eb164b12246a61a9b205e209d8e598b SHA512 325e269e6c24e9d3103ae360653e0bda764356655534be08cfe308d8c63ed8c93c80c09f58d023afbc6e141f7cbe5b86f7983c57b8f6c794b7675d332439b051
+AUX chromium-webrtc.patch 563 BLAKE2B 0b819b72f1eff3eb456c58fd54f4663934707d3c2f9d814fc6a4c64c9d7f944024782e12202f0c268e210f88d18c04f0c5613e8c27980c3795106b2225841c58 SHA512 642b2d77233b09fc674598643f6bedad7e3a996c2871ea0b90569227affc6e19a573048124172747da19722bc2822e151e9b2ca01e71a8ce02b04892533b69ad
+AUX chromium-widevine-80.patch 538 BLAKE2B d94b0c48652de93fbc377b234c07b0903fdabc14cadb8c5854b2a07fe83eaa620224b1b8b42ed62d13348d2687819f56f25cccc00bfbc862fc43f873f53563f8 SHA512 ded21174bd168ee8cef847eb51d1158e69c886c4326484d3ed941dd54067e9945e105f13a4d9943acb83a7e33f92ae69c251b3dba94d1f32f6beef1298ed5a10
+AUX chromium-widevine-r2.patch 1488 BLAKE2B fc4dc6ce40b2d2a152a0bbc5958d8050d9a7f4176cd0121d81ae1a9e76d361c064f54e034fb9213fc802e0a4b1b8d661788dbe9089daf8b197414724a057d4e4 SHA512 6fe8eb7b0e6c88e00d1b3dadf433b886c71cbf9b3dd4e712845a636a689cad6bc58fa8b20b412a1f7a8a1b649bccc8c961e762fa5f4d4ae092355e70db0a9cfe
+AUX chromium-widevine-r3.patch 854 BLAKE2B 27c0366bc9a7a38024a4ad6a1ee2f4730443984ea70fc1b248147f18f3f73bf87fc4c0231c071fd712f2b9cedc17126f53d8f95c96dd608d7281404222558e08 SHA512 997199a748fa8e9f552f6238364cd2430675a6eee915f76454c0d5eab01eb089d14f8ab5fa78eb37acfa1fba527e206320ba9a3ea13bdab39a5d001238df8c91
+AUX chromium-widevine-r4.patch 1155 BLAKE2B 7ba02c4b80883fa7ae5c46d95072798683bdc5c9d65b3cab40e6a3c21b29ce7eb9c45493ec10e522341033a80132818f946569ee774c662daafa4e09fbc2a988 SHA512 8f78c0e22f14f81f1903a77b315c7818603caaadbb5d517a3184a11e9553b99fd42d5a1d2ff19b3d79c03352b2e279a5102afa2fa66f276da2d9c42988a94366
+AUX chromium-wpt-gn-78.patch 503 BLAKE2B 1d3aad8a4781b5e43e1eb59dd1b2fdff28a920da9929584b2d3fe1556b4453a4252d3e4ae73b4f60c6be4a2b5f5be9b7a548faed39ef96193236fb2c63a9aba7 SHA512 adbfc58a527a7c0915e67c76524153a387aea4a4e28b5c8887efebf983347c19d6f4649d406499c9df03e6b91cba2520cf638ca72b1d65fb90e2797aa36205a7
+AUX chromium-zlib-78.patch 408 BLAKE2B b623e5ce39b53718779bb0418ac6af4f90c05e8f8e65c9018dd8c8ac8176494d07943969fb39ab32cc1b3843398d9557d071c590df3c5a4b284b9e5087ebcef1 SHA512 ed73488dc7cb0cc4afc4b30d619a6b5302edd5acae46bb20175e02469fc6248f7cbd052b4dfacd6d5dfb7bed215b5ac28c9c8a82a64c6ca7e6670059937bad69
+AUX chromium-zlib-82.patch 398 BLAKE2B a7e4f98bbd0c19765b819dc322b14eb1abdc94ebdbec2f14fa0e19a8601125f347edd8e8275ff98328791657ef4968bc97a8321ba2ce64968ce26092ac11d08c SHA512 138001d8b638e12e9649be41058bcc71d7ae291423adcea6f074c977ac6868489b5108ed7fe689dee61619bbf07934cff58d7a65d303b80babaf31876981ad0d
+AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9af6ef7153edb55c5b9080cc16a5a115b0c5b3c381aa87ce57a7b12bdd2070e67dac10a6c2995ddbaf SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739
+DIST chromium-73.0.3683.10.tar.xz 710000528 BLAKE2B f9b3d9387f47a2a07d9b4876d032a9c7f6be5c381028cefe7c2d70d59df0ad732049bdc05a1b1242b3699b3fcb9696368e835607da9c980c96cb11c10605c0ca SHA512 b034b04c8ed402a590a5140a642864698fcd8a42b9da401cd72e44e755d6e949d388bc9b609dee6d3f61f4cc0a896e1fef60f9c7cde2998b1e2b546be48f053e
+DIST chromium-74.0.3702.0.tar.xz 709828348 BLAKE2B e59a1d591299f38f92c94a13088ab2eb79814b0458e6391d6979d1d5c370c88453799d8a90bff2dc9fd94d1ba3f7330fe713d4eca45f09a953d1ac201b7f2f6e SHA512 fc063bc89a48b0301c4f4e6c7eec6199ded9980b20712c22f320e01947d40b3b7776149b21caa16df5dfa37aa160ad12377347c2573fb693c93f891fb70009fd
+DIST chromium-75.0.3745.4.tar.xz 749282112 BLAKE2B a6f231c1fcbb2063356222d8698ec97a369a949a01015de9e40fc3423da7800580bd4d52ddd5622bbad8f764c90cf530c48db5b29cca02ec33937945e5477e1f SHA512 2f1cc85bc8f7d07ae5e6e4a96e7087a666e7dd8342ddec9dd2e4cf70d5f989a951a5e0a6fcedd0f18060e57325b5f15afb2b19887f3b04eccfd6523026d76db2
+DIST chromium-76.0.3783.0.tar.xz 705120060 BLAKE2B 56923249fb5497e3f12f44d0c24da96a05c84e0b3fa2a19e6caad5238fcc7ad842d666d0dbca4a0deaeb8a0aef3095decf52926bd1362367c988c35d716e72e6 SHA512 09c2d450dc2639365b1f6d78c8b534c098715e0b327235b9cb934136db579a0cb1da8e7b4e01790d248c8898e46376ba6fd850759b24ccd9af03a26b1c2c8366
+DIST chromium-76.0.3800.0.tar.xz 690561748 BLAKE2B b476db5b707a00f0cbdd9a0c8348c7bf8cba72bcf5c634152ec4e50fe0e665feb3629e9928924d8ffe2f5936a6febcf26dcd6e397950c26a677d69530d4adf13 SHA512 b63e484082c6496b54d9a8ee0dcba64f0463836d84cc9a462c4330010cc7604b25cd65aaa157635a2943ca870b502b88fa3fb051c1cd47268a3bc5db98150762
+DIST chromium-77.0.3824.6.tar.xz 730704840 BLAKE2B ec4a5552633170c20427daf22a36638528db42e49935048d156e8b1054b611b1e28dae0f5758cb65358dc9ed1e1b5cfb2ed86606e578b25436821838a202bfb5 SHA512 9d5b37c69c018ae59a53da70bfc0a97ddfad45ac8c0abd817c0011df7d4e550d88573c86405843d2f81b0dab5932c88bc6b71cf532a46696c7850c0e316509f6
+DIST chromium-78.0.3876.0.tar.xz 734181968 BLAKE2B 8f9d368718dec697f8e1d5fb850739395247c65fd1cfe9a420c46ea2254a97c54893a0fec9a3366b3b0a62720ea20d5f090f7edde3503cca1d2fd725aae6bbd1 SHA512 9b0b71a4084db3e5ceedea5eaa1173e168e73ace3215ca2cc37309b6cd7150ed6dc63d2ec43387d305a4340036988493f1644db354c620bc80a02b97ec3e0315
+DIST chromium-78.0.3880.4.tar.xz 734959036 BLAKE2B e93497cdc00c123f31b98be87c2b4c7e4e7ac18fdddf15e9c4ba6c08c89386c38f9451e432a8365cc6e1a47af244ba8d10da94acca3f108c0993f993b47a18b6 SHA512 4adf66caca7565c17571b2c9056acac3b1edbcf29ad9f8937cde241406242f4e30ac361047dddf2a60f4319245698d6872a24eae0374a142d13e3fea0c5b12ea
+DIST chromium-78.0.3902.4.tar.xz 741347064 BLAKE2B 496082e9b11efc77a544d513051c39d257c5dbe9b220eb888a5aeae323f0483a4bad95845682284fb4e3fcb14e92165672b79da2aa26ae754aec51131280e7c5 SHA512 ace315c9ad6b72f1481bd18d26504c7b23606dbe6df70719b710f8f9f06307e8d0a8c3c15a011d8b8b3f85dff9ea11feaae9f2cc1629982c5f2ade8062505cb3
+DIST chromium-79.0.3921.0.tar.xz 756661964 BLAKE2B cd1255ce87cff5f55c8a5e447bf0e316a8489f013e902c209d5296c34ef6d9a21547eaeceaf06388f56056c5e04ebf4e67d015c79dc3d5753d8c1c7478bb7e3f SHA512 b8b50d2c1708d5c29ed0d4c92ee4bba3807932811479edbf91625e367e4815d8f0fef9c6471c4823a37acc63138e648ac262c3282f1456241ca10007bb48ec2c
+DIST chromium-80.0.3955.4.tar.xz 797260532 BLAKE2B 3744b5cdf6bf2230461987eb97c88faf3b72558e9561e5a7aaa7d4648accd173bf377925dc747dd32fdd929bcd6a266252a435fb89148161ee919ca3b2cd9714 SHA512 f676ab4b9ec1373f6427b5f868b4604a7a8788a2cf7b06d2c6c4dcbd87c41332085a343062f291bdb79dce5df86a4435ec99021907fd6596078fa3d0d1d4d39f
+DIST chromium-80.0.3970.5.tar.xz 789810132 BLAKE2B 400fcefeb58cb784412eca7011267c9224786036494337ecb8dbc7f3f483ec05d6e26c424ef55286cbebdbc872e1c15acfb62413264bb8843334a11bbe73ab4d SHA512 398666d81beaeef3eeb3f00a9a512b2d4c4e74bd9f01f20fab06901eadcb6fdbd345c39c54f2af57c4e485f2cd35700cde6f6a3d6301df7ee920bf067bee31d6
+DIST chromium-81.0.4000.3.tar.xz 807382668 BLAKE2B e36ea286c3d47509d79390069abd332cc2aa9aa7bc4a571047aed2bfe6b6e9b1185056fac0ede0c3440dfc2e141e06bbbe31a428467fcbe830f1da98be49dbe1 SHA512 7c46d915b8e15072f3c57339b99b54b7f2cef21a0d350279d67ebf17ff5ac27cd46a6fcbc7499701d8b3ae522f6e52466129ce26c30270641b8376b467e127f8
+DIST chromium-82.0.4056.3.tar.xz 796919020 BLAKE2B 89d010fef567b3b3f76614f8097697f71b5b1222faaa9738c639001748d8fc103eef0c6b0c90154be36e2deeb5b7c2b1b5a61c9fe7c11836d8723819466c265e SHA512 83a160ffad9f9b10fb498b61e0f6427ee88fe73928d5956b60e7bd0690bb279c1fa749105c4996da67d1ade80d62e9ccad0b9a8bfb3691a17574ad22399ae55d
+DIST chromium-83.0.4093.3.tar.xz 793608324 BLAKE2B 014eff6deacfb308eecc76a2d9a13ddf13b2eefffe044df25e2c20c3695f2c908604751ed7e794e053280fc32449381e8dfd73300201e67a9d84854f9fd851e5 SHA512 d37ae4912d3a39e4b06c91601d941ffb8a77a4b7380a603455c2839f6b8940acb8803aa32e8ae14c5033c141681ee41716a54ac2f8632240e54367a3819e091a
+DIST chromium-83.0.4100.3.tar.xz 801342020 BLAKE2B 504c4d905f7ed91050f54e19e215fc2827c7299dff75e57282895f6f550ad323070ab49a2c597abfe0e88308d31fe613e8bd5bbcbfbc1b63bbc968148f939332 SHA512 d9037a7db5adad46d562f22e5ee53016170f257678d25acb124c432dc4ed4c0eb936ff9c4e0e39653a33621208e5037924ff94a9c98730da6ef68cb29a5a0f52
+DIST chromium-83.0.4103.7.tar.xz 802381832 BLAKE2B 5e1d204dd799a11726e9e8247598e28268e0689462cdd0b35867c63b1f578fcd356fbaa0f9181e26ed67f798100464f0cd218d83874df6d3b9c55f29aa4e176f SHA512 42bc38921ece136cfc24a5b9c15739f336524a5a178e57b11ffebd897b1092354e35da144f9b11d91569f07ed480c3e565e4d6086ca3be84d139633e000a71d6
+DIST chromium-84.0.4115.5.tar.xz 813755400 BLAKE2B 44d87e3f9bf26b30caaa64c3781c066978dd7092dea514306133698d9b3e7b76b2cc95daf6a9c67a0de1a6a23b405d671b0d751c02d349a81ef3ad2f23144ec2 SHA512 a4bfb212b6f45246fc24c74f223cfbc063a3316377ec32821a62be90a55bedff8f2ea989d23dfae56d29713e29203948ae1a9eb6d78adb8bc296132a4422e91e
+DIST chromium-84.0.4122.7.tar.xz 814208068 BLAKE2B 7457cfac173b8d111d6f31286ba93a565d5474fb2d5f6876e22c475d5ec02a093b9fc442709f9d0dca3fffdd41457fc81091796485bdd0e0d9fb506d24fe6696 SHA512 777212d49c2c53c5d630ce3a8a56508a683d95e4f6fef14b0941316deff3bc754426a8f43b551ffc71f9639d713eebd6e358bc6224a4e55a1f68acb5d9dc042a
+DIST chromium-84.0.4136.5.tar.xz 840308252 BLAKE2B 3f10ea5dbb48dd2a39cfb8d39289ad439d0257bea6e40ff130d427f96252890a6164a8dae3b5d30b7e74bcb87815055a6f27826add3ef5e9849e72c6a7dcc3b1 SHA512 9b6285ec2bb9790b8e1593473f8e1f2642a6fa851fb5645c282c48911dffabc2107aa99c90b6d6450eb8c0dc38daa089c514801921bc1ac782b25e34d9b8fd84
+DIST chromium-84.0.4147.13.tar.xz 844860980 BLAKE2B 814fc5f94ed3f272b147d0b74bd2c5a5b8ea47886ffe4bdabc103343c79f2737ff62ad448c4a6916261fe0f2cd2854e24ed03d9df349e65634bab6d0fa38c4a2 SHA512 1ba3d59300336ef1ba63f66495c573fc10195b827821d0b558e498195fdda4b12936a7ca0b792673433c994992522c188dac62a13670fd5785f16cd25608da15
+DIST chromium-85.0.4164.2.tar.xz 853630768 BLAKE2B 5e653a98ffb4efcefcdb266ff2c82c873e71e8ca7bfd82d39adba73f1bc9367fa426a5e24ccdf90e09dea015730c089b030b436229c1e88a2622d14e56f880ac SHA512 037bdfe2338bb3589721f66f6229efb748821e0214ea41aac3385b921834380c560c5c8428139ecdc0237b387124d7f4a81e8bf0c60850b73ea35341bdf354db
+DIST chromium-85.0.4183.15.tar.xz 863644932 BLAKE2B e244ff567894c5fce623bfe0e799130fcef447fee26469fcdda3c372ddf054e354d6ead7201332f1aa5e91d0826d838de1af5838a38d1e4849511fb4d96f5e08 SHA512 e92b8325b27e485ff2ac0db5c47661c935f874a9d2d0c6df597bb02faa448ff54b81e7528619bc0dd28b523852e03e4ff8bfddfa9ddcee3d27d9cb39eef1af0a
+DIST chromium-86.0.4214.2.tar.xz 838340928 BLAKE2B 02e9e25b7872a6f66569c52e3655838e2c02d0f2932efe8fba3e6611f8b7e30b579cefa4a9619e6cc97ae41dd24b7a3f9109b2979ab22d93ff1476a4bf1d6c04 SHA512 04bc070f679814d9324340bc2515609b1447b3ba7be8a2ced037a4dcc189b4f63a2dc9d64f81ef4e48da12f444265ff6a9ad414b36201374bc2075654f6f9017
+DIST chromium-87.0.4259.3.tar.xz 830367636 BLAKE2B 94a2335e4afbaea06745dddc6277afd43c879fd3c6d1611ad3b6b7213eccd081aa925e281460b463dcf45da720f983ff38e567ab376420116147629c4f253f71 SHA512 a9acd2ad9521b32e5e877d19226ab4ee5c0f0e8e291b7bf28929ff5d2e397dbc74fc0e556c231f2e004efd55df22db39b3944c54a5fb0a77afb8ffd73fdcd6f0
+DIST chromium-87.0.4263.3.tar.xz 830924908 BLAKE2B 8388732772ae84671a3cf90a04663a1f71d4ee51310bf494a9bcbb60867648ac30920ab5eca83b236784cb6f3bb44ecde94b5d74f92e22f5bddd456bc01308fe SHA512 071cc9f88ad7229619b101911202f9c0fa094c99238a20ade793a9e013e2bb497033fb1a1c4458218003f1892e4a3018ac103ea0bf28a44ea689cb4b4cb4c17d
+DIST chromium-87.0.4278.0.tar.xz 832042784 BLAKE2B 5f02a03ddd076aa543a2c9620295d99f87a337f22afb7ebdee6533a57cfe947aa887522d53e83431b83ee213e56d4415624112d9bf094f39381d9cdf30a590ad SHA512 32ce81904659e07b63ced9ff0bbf9a1a61f6a201701e8154674d7107d0e62173c544fa4724bd1326e47209db44f65a7b29ae5c3832e59863126a7714f2947e0f
+DIST chromium-88.0.4298.4.tar.xz 844814060 BLAKE2B bb102ba538215a05d6898fad59f3d6a130b36a24979ccda61512d6ff7ccd66b109f50293780be21e78ee7042f29477eeb7a3013a16ad565786d8bd4fbbb03e07 SHA512 6581da68d8201ea9d9478c58ab7547102f5b08b3575c798d1250e6810bf830d4c18fd3d9df69de0fc08b9e190fe9557fb3a673b85e7276b8eeaa642149a55386
+DIST chromium-88.0.4302.0.tar.xz 844359824 BLAKE2B b473485cc5d57c108be23fe1987d7e2d71e61b4c099131b5bf87f8c79697930423046bce64bfbbc721928aecec3954a164eb297c0bb3301a85b52bba4f0a2381 SHA512 ac14232f2a9a785bcb23d561e8484d510bc736e2926321ea255fc67bfe4efea28837e23acff103df571cbc3fd079c412efbeae073105045c48b08706f0b1d844
+DIST chromium-88.0.4324.11.tar.xz 857506624 BLAKE2B 4ba54ceb848d9d7b9d3b9d5dc2a1dc80ea7da49150beb4ee5509f51db7d85cd72de79803ed25be52d0e6f8ff176a7154d05be5f36d604c4efe0a5b86c2fcd533 SHA512 736d77ba1c100cb6a0e6518920acf839f15213eaaa5f350f304c8ce9afbbeb47195b9927609ac01829e04f11f23cd2f8ab06493c1b14639c5b57f3ef5d01d5ee
+DIST chromium-89.0.4343.0.tar.xz 882541680 BLAKE2B fd3232c6906ec0d169f1baa14602b767ca85806cd3decf73568123b88a6c7b31645f3c5f7c07f61841edb6dac7b39d6c5cebbf489d2a4f315a95514db04ebc48 SHA512 4d80a016f5cca6ffe205c1067472b12e4c4cf97dd33d036e65d984568f78f4b06f3ec1a87d35372b6a3ca780f18d87711da4e74a141766784345250d64534d04
+DIST chromium-89.0.4381.6.tar.xz 890366840 BLAKE2B 45c49669140e84c3ab19cd0bf643a87903a1da7dcd001c0f6ba0d9ffc61db004d471bab6e32d84262d6e4e1692abbfc411c4be46a71ba535c0fa6907521c27ad SHA512 ce0b63fb08cb123c9d8e07b22956467ac1f625cdf75a06308af42aa846d3b75070797b9f5675349c7aed562b8a2811932b77fe80e7a21cfea7467ce08a8046fd
+DIST chromium-90.0.4430.19.tar.xz 917743624 BLAKE2B 8f6ef8ff88c5cf22808a236b37c730bfe8efff2211d9029771626337652f28dfe6fcfdd494c025c096614eefe173c7f65cc82b33360f166dbb0cc8edf9ac86dc SHA512 ee29547fbd8ded9085e5ada331abd22f2a71ce9b81a0c652b6998811960c8b5514d07fec8e6574d330a9540abe778dae8c6682eadbdc4eafec6fde49a1633869
+DIST chromium-91.0.4442.4.tar.xz 923889152 BLAKE2B f5379849eecd58c9e42dcc05c3446dd50a9c3c3fc7b07e385ff429059ca9e192e5e0182a896618c75ddd85472e1ad9ae3873655c14284f6e5ee83c1295bfe0b7 SHA512 c0c5f05355b6d04fb4b545bbdaebbb38fbeb68b2ac476d0824f92cb516fc27ed68813cff40482dc950e7c3bff640bbd3b9f414ce6664d644fedd926aff7e7f21
+DIST chromium-91.0.4469.4.tar.xz 949712784 BLAKE2B 99453196fb9f2336afffb03affcf7441a1ee5f8c9ce50c76888783b8520f2490299e5fc3448c7f61c270c175e48e55a1f947f8cfdf0053a02513676d9ed8daeb SHA512 413452da449198713e6d10f05b937f95a6c0ffb11b2408dc9ced1048af6f7a406af07f8112fe39f73482723802ff25e51ce0085c598d03dba207a5658385871d
+DIST chromium-92.0.4503.0.tar.xz 957887500 BLAKE2B cdaeffa87547635d1f5366895d4f54e2f7b278a5653ccf72510afc40bff01681aa19261877a811f6843de4379346d1cc046e55a6b0e22ff3ece70c9137563ccc SHA512 a4b351a77605565d5ea230b569d2ee9bcd1035aa25f0d951ee7aa78625000c935ac68c98126a9a6b83f3227fbb7492a7e6c199d5bffb4746164a322ffb64036c
+DIST chromium-92.0.4512.4.tar.xz 961899172 BLAKE2B 8525a5059c9350e36a232b49847f7bf4f561f9c1542a0761d31a06a2bd08a579e98c1cfe15fcd55af9ccc6aad701add35ba71f3ef7f942a0788d3d41057aaf99 SHA512 ac5a2c4b28c1518e848677dadc7ec53214484f9e53e057b4d8c8148d53b7cda97c0fd5397c2cf2cc5569c900b49139ba8cdd2795b706d79d53bccdfb55dc827c
+DIST chromium-93.0.4535.3.tar.xz 966263580 BLAKE2B 88166ea8f11f41aa088859ecd193873d695ca04731d36d795a8d31f1b49884235203bebf93c80531003b5c6d6fcc73bb14715d3c8284240cb4400c8c05a09eb0 SHA512 b09eff9129ea9e1cdfa72747d30f624b223c07622536b085096652e48d7c1e72aea2de08bb77533ef4101a707474c8bf3cd861b43fa589a70b536f46b4b3af73
+DIST chromium-93.0.4573.0.tar.xz 1040160544 BLAKE2B 6beb23070129c6ec3365fc78306605b77fbcdbc11f0a09a5f86d6f2e30745cda512e983eef34ecf059778970b6ac29a03cd67c04a9bd0742aa9f3b011b17a823 SHA512 7443ade555fb03f7a48e949df2a9d8b14ab8e8075b68ec5e7773dfdcbf9f326e99667e99db404a3bbf52230a29c022b3e8cc5841703e3c9cdaceea77277a9dbe
+DIST chromium-93.0.4577.8.tar.xz 1041484708 BLAKE2B 7978b7771c9e964efc28e691fc16e7b0679372ef86d7477327f40e8f7682638606e88711cce438f12616011e1e3bc4ad2d0b9be741a409cc8001a78f0632c0a7 SHA512 8940dee8186244bca134b83a452a7d2668d2a382ef32034cf4b7e8c781d709c679418e4fc97f744f14d10f8bdf0d9104eaadbd32efd0dce43d600b4cf5b933e4
+DIST chromium-94.0.4606.12.tar.xz 1042728660 BLAKE2B 250509ba893b58ded24f65ca77eba42c929cfaa94076469ca7ef20576c0b9204b5fc1e7c780286f795c5c0031b6e383f960d20bab4ea1acf9facd87386b71750 SHA512 82bf09c7bfbb1d9652439a65911ec18b8ea48e7f74a41227b328be95baf0b11ea0a96a7ef612d419f00b38b3ef6b2bef7936b8e53bbfdaaa2570b9e8f6a41252
+DIST chromium-95.0.4628.3.tar.xz 1214022616 BLAKE2B 308f1f8411a8963352da4c1464152e750ee7e33d5830a7bcd76d5f9887622dafb17ee0968c27f17270d994a6946508a24cbefab27aeb1f00085236085db5b86c SHA512 32133bd50b98cd33bef6e6d6a5b3d44db8e38ce89a6961f308a656e4c27fe6056645318d1dfb6a8ed23562de76035e4d0b1a908ce0320d159bef3d27a0f19ad8
+DIST chromium-96.0.4662.6.tar.xz 1220630676 BLAKE2B 821a42f67ef45fb1305489aa1720bc1f87da95fd3d6b92a28224d25a9c047ed6f5d33656126b92c53875600de8fe821d5cb2b20282be49cd8adb5f51d2ee2063 SHA512 781d9b7b4b096e6d8ca6bdbcd25611f2f37ac6a07e787a052bc98cdd90df32f2fc208be171b06c08786dd71595657856926c5cd7401d92d7cd71776f7bf286db
+DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf
+EBUILD chromium-73.0.3683.10.ebuild 22130 BLAKE2B 0807f35a843542fc85c2becb60c4962e6c6331596194f23bf6e3580623d56b40875dc0885848041568aae50ef5c4280b8410c86f2bd4e4470583cc3e59ead9bc SHA512 40936fc2a0dfb00e728ee2d75c87be59bb5edcd5e019a05e9b22010e1e0cd6c2d6198809de5e996e11b71ed41aa1a4f6cf2edecfb114eb8c19d0e913f405dccf
+EBUILD chromium-74.0.3702.0.ebuild 22298 BLAKE2B c9bfe7c15521cc0bf9a3dfc396fb328b85d504d11f6bb8aa5e793ba29b40488e1c60cde4572b1ab5110faf01614aec3aba55730b8af40c73763ee5db528f69ac SHA512 4247220d728f2d5627d0e5e3888c032d152796b6ce837927aca93122bf6f7aea1b1785f0412ce6bd7444ecba53980f6cdb2af4039b9e8660d1eecb97f41e9cd6
+EBUILD chromium-75.0.3745.4.ebuild 22034 BLAKE2B 0273d868c6d0855f173b3cedd5cdffe7b063a2f32d921a83617ba3efc8e7ef713935bd039a11a91e4690384f6b252621af4bb445469454e90d8e080a1462f6c9 SHA512 25ac24f33163c2b1fd7abef0ae296c0df1304f9fda7481e05d61f3cca93540b8b2a658f3bd0d8747b9f3fad30d609b8d5bb0c69029c6c37010661682497f25d4
+EBUILD chromium-76.0.3783.0.ebuild 21984 BLAKE2B 3f6b495e311b68d9b9c96da7c20f509a37d21921c0eb129e9f78b2ea72fe8490ebb91d5d2631acf09222f4feac6c0cbf19ab4ec6770386c3d8555a00314616d6 SHA512 3f72dafce4b023cf71b418563367cf52b8e204893897849124fcaa3e2e527d7a91f3bdc1072cc598e465db696d533f635059e4254f2888eaa84f5bf63b134432
+EBUILD chromium-76.0.3800.0.ebuild 21801 BLAKE2B e4aa8c1172743ad3f97bb38f8a822de939f020d72c730a0f8b0f6837cd191b1c06f8a53f4ddd69d44e7fcecd4461f99bb4c6058dbed988e2285ff0ad6651a235 SHA512 b375c7742df812c61299eef7ebd721b9ac38034c50a3f5df539b8a2d632cf7c2beca04c074d69855f1cb64edde6e54a2081f6739072a45f3c51328b3e47a996c
+EBUILD chromium-77.0.3824.6.ebuild 22124 BLAKE2B 15d2ffd29d5dcbf3237fde439c2f93415318e74863520588ff93139827dc58cbcfcd39959cca3d895d420b6a80226f7891b62d7a75e48f5822ae64fc68abe561 SHA512 c15760790c34ed94994af81d75825ef5fa448873aa01e942ce4e6ccdbc004e4fab8344ae5c38388fedca01c1f69d50ba37e0b93a7238f6530a4446b01de128a4
+EBUILD chromium-78.0.3876.0.ebuild 22123 BLAKE2B b024185330e2f69b850763ee04329f7d1b0c15763cab83237dcf6fdbf7a04e23017847a4e65d623503561d6be84fca2ce14467de95875d829e25fcc86ef61a5b SHA512 7dbe93ef5d2d23a07e668f0fd6afa75413ce7e51dfec8515f3adc9170c4330e0381282fe9405571d49f3a12227f3a746831f9cf4e22f0bf1690f1bd6f6635677
+EBUILD chromium-78.0.3880.4.ebuild 22050 BLAKE2B a7f6ebbe320ec41947b75d0cdedb1ac5979b417a06a143ce4271b403cb19f5959fcb9999bccd12a5f38303300d88d50132040723e6d465873e156cc5f1d85e8d SHA512 fe35ff6461a856e51e855bf273fe85071db60ca85eb9bd0043428da39f558eb641ba233f0171569e5338f71ce786c7c8c046217696f9fb14bb5f92a9185a9400
+EBUILD chromium-78.0.3902.4.ebuild 22292 BLAKE2B 5f19d0bb604412d6d940041da35bea69d426cb1c5739e88edb5518057e7ab11a051b98c708ddb854f38f1eaac473ad701384e1441f7527ae8517872a1480991f SHA512 073bd9de16074dc6def2a39c84f498cadc1adab5792c48d49d662a0bfff5aa455381f5fe3296ec78a302fb952d204fa33f4bf06d58b0d329f18720b0ff6ebfea
+EBUILD chromium-79.0.3921.0.ebuild 22468 BLAKE2B a4f35ad2d8d7109f7184f8f3ea1f563cc149be19ba9cd9e078ce07a0d829e507297862174a920fb50373bb95b3b839c4a4f91f27868dc93da29f4715d96a7132 SHA512 73dd30c1e1e847659185527e66e6374e633477dff4b5530c70ab914e70d61853fea8125f4810a3446266ca8ebb02d3802e961fff03dae2de6a2eed1ff36b363e
+EBUILD chromium-80.0.3955.4.ebuild 22207 BLAKE2B fc62d87651bae5db9530ffb58b488bb7494a3a6c1d64265419313b091fbde011b1736766a63934d62dfd2a0d2a2051622dc4690b6755301b16e606830b1a27ce SHA512 12c7ddffc1246f109027797e7bfdd335e61aa14fe5cb3fb93a2ad83f4d1a15d10b36553bcfec53590070974eff5b4d477fd3590993d796b141be5c61f3fed2f5
+EBUILD chromium-80.0.3970.5.ebuild 22262 BLAKE2B af8e145ba30bb288e40c318630bf9a8b5b9a7fb16060ca6d8125b3887d471221ed37ac090d8d4e4a81d88b365de3747649ac62d6a8069662526264b2180e1ee9 SHA512 e6f3812a100d9852f59b872184a6d1757b46c07504e1d6b90951a77eb085e5af717875645c59a0b615444ea2a5e10ce2b34215ca2c0b04541e5ce64899a7f3eb
+EBUILD chromium-81.0.4000.3.ebuild 22299 BLAKE2B 1bf404d66b6a7b1f45a3670dc5c9961fd6774a0333ca4567f57353a4df0ad56757a50198b2880449304d9bc135e8ce24b671fbfffda8123ea53eee5df5cd6c4f SHA512 a62b20802e3f5d418e0a4e30b4aa9c86dfc0842bc0c35ffbbcb02f1f4bccfc6a5f61580bda8cbbb3054a1a5a65a2fc71a1a34a6979cf268fa5f17bcaddb3d088
+EBUILD chromium-82.0.4056.3.ebuild 22487 BLAKE2B 3f5ffd9c59a2626adcabecc5f21c5a14901f2dc50ac9cbddacd8288c2826b0b0e619c6a312fcabb6722e9e23a027ea5151e452fbb7e662f4df19068dabc18a59 SHA512 786ffdb51f56267cfb17693aca5b1e0a4a688b2c2b784a79fd9edc1ce500f06f7d2c437a6e565295ec37b9ef0e5f97dffd89cbf92d675e5811d25633d0139105
+EBUILD chromium-83.0.4093.3.ebuild 22935 BLAKE2B 614eae81f047e4c4625b890b51cd316889b24eded08ee339799ea0a58eb1fd7c360faefe139959966f77d7569106039b6b4f338f4e80b7f1268d1a66ca39cf07 SHA512 49b171731c3a73caec5da28df93be07e08c24c5311ab28ed01c725fb980087313c8cb38594a5459fac7b5a6293461587bcd8d45ed5b81852bd6361b9998d4e5e
+EBUILD chromium-83.0.4100.3.ebuild 22893 BLAKE2B b421dd4c2ba779397c51888df69c18dac6bcf3bf23c2e0abcd976c8cc03ea9b73b3103484225d196ab09dbccdcfae1f30928da488c9581cc8c485d3d2db1a325 SHA512 460904bb0f9d5863a0c27604c1d430b08cfb34b9cbe432fbaa4dd00997580a2f8bc202474f740e1ef09b74bfe786e6da493516a5243c9a71b637a5b320b0b493
+EBUILD chromium-83.0.4103.7.ebuild 23051 BLAKE2B 373f9785fb5ad69c65d16c90374aa33f238ea7b263dd0dbdbdd7dc3c24e99e9a0bbfaf05f439bccaa8ca8992d59e3bf7b54c14223fe99679d75c6abffdf9dfa4 SHA512 d62c6b855cce0852440cf103aee4a5fc13231c5feb43f469dd6db09cde546dd6efb89a4287ef44c5c009a4aeb79545a273592f55ac9ad2564d4912efea7de5cb
+EBUILD chromium-84.0.4115.5.ebuild 23264 BLAKE2B e4c84e5aab25b19c343f2d7ff10fd2589301bd68d74aec7f1484f90945310a4d0d685f0fa1415036fbea4feb8fc9e9fde5d5dd593abb93bb2de01db57f538278 SHA512 5b1e1594ad10669f2025260f4c72cbfeb85c55db539ffd73eac8d1b2d9baa5ff8dfa5d98591c0b3da1faae89004cae1697ddf260de20255998187bdc12912d5b
+EBUILD chromium-84.0.4122.7.ebuild 23360 BLAKE2B e7f5daa8f0e37997409ffc175ee82a4cb5a67de4c7dc5faee93bece2a7ba11839dfca7801bdd7dba2a1f493d7383256fdd5bd5653f836b9846b9bdc8f22f784a SHA512 8c92888e8696ba5c6c29e205e75acab7d74f0f4c1de103ea44cdea031b19424bb602c7b64cc8b1551bc61c7ade2989a1a43657779b2b801b8aa3e265dbca6d93
+EBUILD chromium-84.0.4136.5.ebuild 23118 BLAKE2B 7cb71fe164cf0add19fcadb5e914da3d395935c2d56f7c415354d577e891ed44213dadc5ff2789e3842aa68815599af178a0fb2b995f6756a49d7e3762fe7d5d SHA512 a27128554b35baf944fb414ccfe7fb87cb7357e9612d7d8f599699c6d2747be2e46d87055c37685df200b42382fc8e84c1a4ad1bf4bbdbf63ae15b60bd3de0b5
+EBUILD chromium-84.0.4147.13.ebuild 23316 BLAKE2B 587622889fae14b46cf15bcaff59f727fd671723f413252af3f99e53685dfd7ee54b46c29df527abf3f399eb55a890331ffbb94bb2e73e2ecd0d1925e86a3473 SHA512 9bcf521b4e5e523d582af9f44dd987b26486de7ed3292940eeecc20478d7150a833460917f36e8906f500485a0b072e793f9d6c81449d5535814847836a8ec7f
+EBUILD chromium-85.0.4164.2.ebuild 23366 BLAKE2B 4125df0f13df39f2652a3b3634f39a71ec61f0a14aa88fad5e51afc4335da4a97d104cdf14d233b16b67fc0238951500a664d1c22a6cb9501229728cc76bdeed SHA512 c2bce086e716ccaa08bd95de177aea99697911ccd38c4444e13b7394f853ccc013ceb0d8436b50c1d1743633f91feea618bc5a5434a44003ac543a2e9b2b2c03
+EBUILD chromium-85.0.4183.15.ebuild 23270 BLAKE2B 0976ef509d69aa9097ca41b9f9c430113341dcfbb19ebf5195c30355a2ebdf3fa2bfd1c03addd3b2e3df571f4ab218d90d0b984ce973baf883541a2456545af1 SHA512 1b27c2065a9a3829821dd7c17f21f30432325ec4dadaf24182a7a26ce09573aaec7eee7938bf400e666263327cb0fe163b853e43adaa382a6144ad9e0bb120dd
+EBUILD chromium-86.0.4214.2.ebuild 23526 BLAKE2B 74151cae8859ecc3be53f0bc4ad1b8e7e7694778562e60e9b2055b55b6e190c7f8bfba8683f9ce01df78517795c445415ac80ed6b477ba4898dd7c3472fd7707 SHA512 91f84275a66e39c4cc89b10969fca7c3a97846ed4e5587321ec611aefc7e64ff438b3d22abea92a31c6518045029b4b27730859a3e3e217594e3110d6046f228
+EBUILD chromium-87.0.4259.3.ebuild 23496 BLAKE2B a6cf6142063e0cb863def3601fe942859fad3629a20ace47729df8dd02f2ac72a0c3256033137090de3067f42527974cac39f07065c4d9584050b691958c7be7 SHA512 989df45d435cd3c9b30707ae0b8cd6a6b425c2aabd146a3fda96aaaff04ffa4f70cf6ac8e55d562d031c7e1adbe3d0414909e5f2051f30d2aad87ac3e8ac2cf8
+EBUILD chromium-87.0.4263.3-r1.ebuild 28466 BLAKE2B 43842df2b1372526270b29f48dfc48ab817d3a7990158c6b65cb01adb556a4a8f0165978b0a6d5350a345a75f1afc93f9213000942854e1fcba4f42a6305c2e5 SHA512 e4b95df7f05cab3c9048a16829b47225ef901151266bac841a6e33a867860954d8ce8cb1ea3940a4cc0bb0e11a32b001621fd93c7c78d898990e12f4c0cc5a9d
+EBUILD chromium-87.0.4263.3.ebuild 23607 BLAKE2B 9352f81766ea56ea0faf6effc2a2a65c3d9dda170fdaab3332a8cdeee2cdedc27d2ee2d5810855e979cbd9a1a4f6889b466d9bafbe8bb969ba14410f04e4201d SHA512 ced8116c72b122b44786a181c682f0c18f209692e2ec397f0de7252cc4719722eac848b84bf1905adff53c62462d54432972d1326653be9b5133ccbf5e0bb82e
+EBUILD chromium-87.0.4278.0.ebuild 28273 BLAKE2B f6ef1d7fbdedae31313bb4073cc2e81b3842366d6a72ea2d043ac9eeb2d591c81e3ee5127b5c09ded944269b66a7375bff2641b4683b73b2199abbba5de0e733 SHA512 a86d7a2660d16cc43a35acb2a7030fb5adfd4d6fde85ca53db8a3728660be5f5492aae8b81176b4f2e0e4483ec323bf461e15017e1a49ac04a0c13fa27c2a0fc
+EBUILD chromium-88.0.4298.4.ebuild 28760 BLAKE2B 077725e13850ef6545c5953c003d1a83cd8e44df3e34c109d53472a006929610042b372d3c1aff89415b3c58297e564d24891ef0b052d40fb8af5381b6379c1a SHA512 1fdf69832f8af451f0c029fd26ec9a3c95fb22821580e990ef2df78d5148fb013b182ce990e0d07ff798789785a1ab5bf834aaa57ca7cd9e8ba55227797498b7
+EBUILD chromium-88.0.4302.0.ebuild 28557 BLAKE2B 66fe7003b64b98d07e73399e2e03b1357b43e80d781fb0ca2eb62d401f6768add06179c214d2a47cbd054653b1ea49dac60ea2e50aeb3cafe76994404bed8e4e SHA512 98d17ef673da75ac20e167ab212b786dd1741ef2989c328e42c00f72895173a1a3a0c1b69ebc79edc79b8aabf518afff9561e677d3789ff651f3a287a0a8635b
+EBUILD chromium-88.0.4324.11.ebuild 28741 BLAKE2B 0c3d1b22055c543a9900ca72f46d80b93aed76ade76e637048faa626cb0649b22b65cb9f3b6b5b1d3bf0b79d52f73f4a8480610161ca8a86f15c1c20fe93e878 SHA512 03ff990905d85c18263a38dda5d0fe65e5d1d5a39edd10538f9fad2e5afecafe90fcaee3b6b2613bcdf8c089bc827008100e60371005f68e9ff2918d33d107a5
+EBUILD chromium-89.0.4343.0.ebuild 28969 BLAKE2B 34673c2561fee8e610462a82e7164eb9887b84b84e20b22bdd6583719b96a72390dd292a3d99d5783c19a598ec69f3f8c202a8d585d5414e8882207202155c8e SHA512 7d08e01d5fef5162013c31fd12dcc022e80dd00b1dcd6ac7a12b0c2757199aa6863510eee4acb4559046612505a645c165a68f47cb96e044b1047fcaed7668b8
+EBUILD chromium-89.0.4381.6.ebuild 28170 BLAKE2B 87f3130b28537547f48581f9c59409ba937fa9705de2de6104c1832b5221938836c0104581f84371d5c8317e532c7544f801121f874973a1abacb4671dfbde36 SHA512 0030eed370a8d2d39ac0b25dc51fb23100b0c49bf0ab426fc09b93d95b8cd111e399bec838faf23033e0e64b6ed73e6bf7274bf0b4374f37f9926573e439f17d
+EBUILD chromium-90.0.4430.19.ebuild 28683 BLAKE2B c9e8271b0d696898de0a8e063e0bd0f4ecf2c5ed8097449c0cfbe29b57ca8922d46495a0141c23e7108285d316eeca6ced26571d6a295b38d099385c4120d2d1 SHA512 492716b7914305465a0c384cb152b3f68621b91613ac3737bb9a5459a09569e0e84b995f226a2f26a914e2c2cf3a3328a3898a72b44870eb389cf51615765e38
+EBUILD chromium-91.0.4442.4.ebuild 28622 BLAKE2B d7d7c593768a581ebe7cf13e4d74c7aac69e5308ed7a2e5020b7ee9edc6d197bd31ba631f902bd9366bab3fea6e9be7e3b1b633ff514e49523362126abcbb0e0 SHA512 034eb2bbbbb6a825f8a823a2e58e5c53c2814b39cf437afbfbbd37f67e80bf9520c9b98fea148629c53393a50ade522cf2c51dc59739bf7dfbc8d11844092b59
+EBUILD chromium-91.0.4469.4.ebuild 28949 BLAKE2B ac9d053ab3c84863378af815f5aef8545a770c648e4dc92e2d7152f4084112c75909035352e516c2fbc34d3bdd94175516002c00e3553c1a1e83efe7cf5ef88e SHA512 c9139a9b69281ff6eef76e2b34d91775056fe388b8ceb4550cecdba6a702b5b05d77aa1199a28f02c8c71b8aa723f09fc7d48a5701dce3807e5c3dd96d3e9381
+EBUILD chromium-92.0.4503.0.ebuild 29036 BLAKE2B 53bb3a6ff34623bd1a8007c8177510881a1245d3313278f9a489eb763f9d5c34404d5f5c19d4a9608d8f44163e5a26bd477da592dd84b249a2539a6fdf53a92e SHA512 d07ab291ee82644724d23f5e54479b891556d35378e4300936be1cbbc66eeb087bb1a700c29b7f625c5ce7bdd0e05167ec1a4e86ae465eac056fd480f1572669
+EBUILD chromium-92.0.4512.4.ebuild 29689 BLAKE2B 8f2447d843ff77cd43453508adae1200f59c7f61cf9908a638fd087065ab5886e0d9d445f64dbe969e596c10ad952af7d3ca7c1a1407c67958b5e55add134719 SHA512 571f89ab2edb9764980a676923126728a3e18511e953ae005f4e54e4d47e166bbe83e81f3c598a60b70842683b1bd00e80509bd8ab8e6f311d1a05a74e65a53d
+EBUILD chromium-93.0.4535.3.ebuild 29826 BLAKE2B 8efa9083501daad41022daf14e09af3e8396e8524171c1f17af224354db97a998cd713f730eef8ed7eaa4df9015d7f3b6e07b1b33e7959b436e644c366637879 SHA512 dd89cf16e5d4e459915fb3c1c17260bfd181a32bfe64285fa5b4b4d6a63643157917e6fcd6212274ab9749b5f83dcd35e7da1b7b54225c9d1e0592795054f8da
+EBUILD chromium-93.0.4573.0.ebuild 30649 BLAKE2B 3fdee48eb37042797d91121c561c5a0b973819282c76eb98cdb12c40926b9da310c09bff1915d693603e5b0a41d0f9a893c25dc01d3c48a6ab62c47a73427967 SHA512 d10e2fb95a4d89318ae42ad8005bc2eaa70297ce6246a213cacc254891227b043eb4bc9ba42e8aec24bd4f44b4ce0a99b4ff756fbd0a6b0765979eaccb26aa2b
+EBUILD chromium-93.0.4577.8.ebuild 29954 BLAKE2B 580f3cce56840c579fae76efa949fc25c2ea069c4440f1c3082a292bf4f9f411db8d742556be472a5dbeea8fd0b95facdeac65636cb81dc8b4d40bf4b3409353 SHA512 70b0a7dcf048ef59ef356aa44fd935f9ccb8c9372a2cbedf42d3c0452d03b67580ce2d8443b59cf640a917a039b1d480f043947456a9027df1a3f1aaa7be74ff
+EBUILD chromium-94.0.4606.12.ebuild 29619 BLAKE2B 93ad5a1483f9bf5c55bf61d8e077484bb5f9c34dfde0b84ed214b8a89caf10d5ac7f2f9f15b65ba93fbf904b23e83698e28b44bb57adee0dedf0b6059024bf49 SHA512 7d3acb48194712224fbd82c91b868cd17c8640e5a794074df372e01956c94d140f29079cde4c2588894215eec9efc480f323bb8bea7528af49f960a2bb8bf3ab
+EBUILD chromium-95.0.4628.3.ebuild 29527 BLAKE2B f9f57ba359e792100fb134e7f7e17664f5500e6c6eb60d8ff809687a4258567f375b05a3653f6b4ca2d05870eea93a360c0a9e00c8d16dd2b6905f918fd4b3ed SHA512 928760d02022f58b10ed91adb4d37e6ce00728921d98ff466a7d9defa0fae546d0cb436c92ca8ce4c29bc94253eec50dba4846633887c2ca9a46386a8145a38b
+EBUILD chromium-96.0.4662.6.ebuild 30540 BLAKE2B 1cefd0ecbb97f493f41b1cc9d918937e6039b6c299c7b5f0aa9ddfe5f4ae643580c51cabac1071f09dcfc44271f7b2e2984bea05f2ec1f2d675820bfaef03ec3 SHA512 079fbd986714ae4d1228a835e06a456715e5398bbf8d05ad1e050d06e7df802c65fba71f0adcd264f49816ccd5d333ab21d9d9dd12863fb43afd6480a14737ce
diff --git a/www-client/chromium/chromium-73.0.3683.10.ebuild b/www-client/chromium/chromium-73.0.3683.10.ebuild
new file mode 100644
index 0000000..7dc459d
--- /dev/null
+++ b/www-client/chromium/chromium-73.0.3683.10.ebuild
@@ -0,0 +1,727 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-59:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.0.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ dev-vcs/git
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-r8.patch"
+ "${FILESDIR}/chromium-widevine-r3.patch"
+ "${FILESDIR}/chromium-webrtc-r0.patch"
+ "${FILESDIR}/chromium-memcpy-r0.patch"
+ "${FILESDIR}/chromium-math.h-r0.patch"
+ "${FILESDIR}/chromium-stdint.patch"
+ "${FILESDIR}/chromium-noexcept.patch"
+ "${FILESDIR}/chromium-noexcept-2.patch"
+ "${FILESDIR}/chromium-sqrt.patch"
+ "${FILESDIR}/chromium-gcc-initlist.patch"
+ "${FILESDIR}/chromium-blink-template.patch"
+ "${FILESDIR}/chromium-link.patch"
+# "${FILESDIR}/chromium-vk.patch"
+# "${FILESDIR}/chromium-harfbuzz-r0.patch"
+)
+
+pre_build_checks() {
+ #if [[ ${MERGE_TYPE} != binary ]]; then
+ # local -x CPP="$(tc-getCXX) -E"
+ # if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+ # # bugs: #601654
+ # die "At least clang 3.9.1 is required"
+ # fi
+ # if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+ # # bugs: #535730, #525374, #518668, #600288, #627356
+ # die "At least gcc 5.0 is required"
+ # fi
+ #fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="5G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+# net/third_party/http2
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+# net/third_party/spdy
+ net/third_party/uri_template
+# third_party/WebKit
+ third_party/abseil-cpp
+# third_party/analytics
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/fips181
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+# third_party/glslang-angle
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/openmax_dl
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/ply
+ third_party/polymer
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/skia/include/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+# third_party/spirv-tools-angle
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+# third_party/vulkan-validation-layers
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ # https://bugs.gentoo.org/588596
+ #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+ append-cxxflags $(test-flags-CXX -std=gnu++17)
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Work around broken deps
+ eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+if false; then
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+fi
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 22 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-74.0.3702.0.ebuild b/www-client/chromium/chromium-74.0.3702.0.ebuild
new file mode 100644
index 0000000..270ccf4
--- /dev/null
+++ b/www-client/chromium/chromium-74.0.3702.0.ebuild
@@ -0,0 +1,733 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-59:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.0.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ dev-vcs/git
+"
+
+: ${CHROMIUM_FORCE_CLANG=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-r8.patch"
+ "${FILESDIR}/chromium-widevine-r3.patch"
+ "${FILESDIR}/chromium-webrtc-r0.patch"
+ "${FILESDIR}/chromium-memcpy-r0.patch"
+ "${FILESDIR}/chromium-math.h-r0.patch"
+ "${FILESDIR}/chromium-stdint.patch"
+ "${FILESDIR}/chromium-noexcept.patch"
+ "${FILESDIR}/chromium-noexcept-2.patch"
+ "${FILESDIR}/chromium-noexcept-3.patch"
+ "${FILESDIR}/chromium-blink-template.patch"
+ "${FILESDIR}/chromium-link.patch"
+ "${FILESDIR}/chromium-74-gcc.patch"
+ "${FILESDIR}/chromium-webrtc.patch"
+ "${FILESDIR}/chromium-gcc-89311.patch"
+# "${FILESDIR}/chromium-vk.patch"
+# "${FILESDIR}/chromium-harfbuzz-r0.patch"
+)
+
+pre_build_checks() {
+ #if [[ ${MERGE_TYPE} != binary ]]; then
+ # local -x CPP="$(tc-getCXX) -E"
+ # if tc-is-clang && ! version_is_at_least "3.9.1" "$(clang-fullversion)"; then
+ # # bugs: #601654
+ # die "At least clang 3.9.1 is required"
+ # fi
+ # if tc-is-gcc && ! version_is_at_least 5.0 "$(gcc-version)"; then
+ # # bugs: #535730, #525374, #518668, #600288, #627356
+ # die "At least gcc 5.0 is required"
+ # fi
+ #fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="5G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+# net/third_party/http2
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+# net/third_party/spdy
+ net/third_party/uri_template
+# third_party/WebKit
+ third_party/abseil-cpp
+# third_party/analytics
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/fips181
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/glslang
+# third_party/glslang-angle
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/openmax_dl
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/ply
+ third_party/polymer
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/skia/include/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+# third_party/spirv-tools-angle
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+# third_party/vulkan-validation-layers
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ # https://bugs.gentoo.org/588596
+ #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+ append-cxxflags $(test-flags-CXX -std=gnu++17)
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Work around broken deps
+ eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+if false; then
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+fi
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 22 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-75.0.3745.4.ebuild b/www-client/chromium/chromium-75.0.3745.4.ebuild
new file mode 100644
index 0000000..e274f16
--- /dev/null
+++ b/www-client/chromium/chromium-75.0.3745.4.ebuild
@@ -0,0 +1,723 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-59:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.2.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-r9.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-73-gcc-5.patch"
+ "${FILESDIR}/chromium-vr.patch"
+ "${FILESDIR}/chromium-75-vaapi.patch"
+ "${FILESDIR}/chromium-stdset.patch"
+ "${FILESDIR}/chromium-vaapi-signature.patch"
+ "${FILESDIR}/chromium-disable-mojovdec.patch"
+# "${FILESDIR}/chromium-union.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="5G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/glad
+ third_party/dawn/third_party/picojson
+ third_party/dawn/third_party/tinygltfloader
+ third_party/dawn/third_party/vulkan
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/fips181
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/glslang
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/openmax_dl
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/ply
+ third_party/polymer
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # https://bugs.gentoo.org/588596
+ #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Work around broken deps
+ eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 22 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-76.0.3783.0.ebuild b/www-client/chromium/chromium-76.0.3783.0.ebuild
new file mode 100644
index 0000000..f31574a
--- /dev/null
+++ b/www-client/chromium/chromium-76.0.3783.0.ebuild
@@ -0,0 +1,722 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-59:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.2.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-76.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-vr.patch"
+ "${FILESDIR}/chromium-vaapi-76.patch"
+ "${FILESDIR}/chromium-vector-init.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="5G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/glad
+ third_party/dawn/third_party/picojson
+ third_party/dawn/third_party/tinygltfloader
+ third_party/dawn/third_party/vulkan
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/glslang
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/openmax_dl
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # https://bugs.gentoo.org/588596
+ #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Work around broken deps
+ eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 22 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-76.0.3800.0.ebuild b/www-client/chromium/chromium-76.0.3800.0.ebuild
new file mode 100644
index 0000000..f7e98ec
--- /dev/null
+++ b/www-client/chromium/chromium-76.0.3800.0.ebuild
@@ -0,0 +1,717 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-59:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.2.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-76.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-vaapi-76-r1.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="5G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/glad
+ third_party/dawn/third_party/vulkan
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/glslang
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # https://bugs.gentoo.org/588596
+ #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Work around broken deps
+ eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 22 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-77.0.3824.6.ebuild b/www-client/chromium/chromium-77.0.3824.6.ebuild
new file mode 100644
index 0000000..1f7c191
--- /dev/null
+++ b/www-client/chromium/chromium-77.0.3824.6.ebuild
@@ -0,0 +1,725 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-59:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.2.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-77.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-vaapi-77.patch"
+ "${FILESDIR}/chromium-swiftshader-77.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="5G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/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
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/glad
+ third_party/dawn/third_party/vulkan
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/glslang
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ #zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # https://bugs.gentoo.org/588596
+ #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Work around broken deps
+ eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 22 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-78.0.3876.0.ebuild b/www-client/chromium/chromium-78.0.3876.0.ebuild
new file mode 100644
index 0000000..ccc1842
--- /dev/null
+++ b/www-client/chromium/chromium-78.0.3876.0.ebuild
@@ -0,0 +1,725 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-59:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.2.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
+DEPEND="${COMMON_DEPEND}
+"
+BDEPEND="
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-5"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-77.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-vaapi-78.patch"
+ "${FILESDIR}/chromium-wpt-gn-78.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="5G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/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
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/glslang
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ #zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # https://bugs.gentoo.org/588596
+ #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Work around broken deps
+ eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ if type gtk-update-icon-cache &>/dev/null; then
+ ebegin "Updating GTK icon cache"
+ gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
+ eend $?
+ fi
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-78.0.3880.4.ebuild b/www-client/chromium/chromium-78.0.3880.4.ebuild
new file mode 100644
index 0000000..da73ace
--- /dev/null
+++ b/www-client/chromium/chromium-78.0.3880.4.ebuild
@@ -0,0 +1,718 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts jumbo-build kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-64:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-78.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-unbundle-zlib.patch"
+ "${FILESDIR}/chromium-wpt-gn-78.patch"
+ "${FILESDIR}/chromium-77-system-icu.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-77-blink-include.patch"
+ "${FILESDIR}/chromium-vaapi-78.patch"
+ "${FILESDIR}/chromium-revert-e7963c4-78.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/dmg_fp
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/boringssl/src/third_party/sike
+ third_party/boringssl/linux-aarch64/crypto/third_party/sike
+ third_party/boringssl/linux-x86_64/crypto/third_party/sike
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-78.0.3902.4.ebuild b/www-client/chromium/chromium-78.0.3902.4.ebuild
new file mode 100644
index 0000000..d8233a1
--- /dev/null
+++ b/www-client/chromium/chromium-78.0.3902.4.ebuild
@@ -0,0 +1,727 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts jumbo-build kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-64:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-78.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-78.patch"
+ "${FILESDIR}/chromium-77-system-icu.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-78-r1.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/boringssl/src/third_party/sike
+ third_party/boringssl/linux-aarch64/crypto/third_party/sike
+ third_party/boringssl/linux-x86_64/crypto/third_party/sike
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-79.0.3921.0.ebuild b/www-client/chromium/chromium-79.0.3921.0.ebuild
new file mode 100644
index 0000000..f835db2
--- /dev/null
+++ b/www-client/chromium/chromium-79.0.3921.0.ebuild
@@ -0,0 +1,731 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts jumbo-build kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-64:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-78.patch"
+ "${FILESDIR}/chromium-widevine-r4.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-78.patch"
+ "${FILESDIR}/chromium-77-system-icu.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-79.patch"
+ "${FILESDIR}/chromium-pa13.patch"
+ "${FILESDIR}/chromium-layer_tree_impl-stlcompat.patch"
+ "${FILESDIR}/chromium-string_view-79.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/boringssl/src/third_party/sike
+ third_party/boringssl/linux-aarch64/crypto/third_party/sike
+ third_party/boringssl/linux-x86_64/crypto/third_party/sike
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
+ myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-80.0.3955.4.ebuild b/www-client/chromium/chromium-80.0.3955.4.ebuild
new file mode 100644
index 0000000..01938b3
--- /dev/null
+++ b/www-client/chromium/chromium-80.0.3955.4.ebuild
@@ -0,0 +1,726 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-64:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-78.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-78.patch"
+ "${FILESDIR}/chromium-77-system-icu.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-80.patch"
+ "${FILESDIR}/chromium-unique_ptr-80.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-80.0.3970.5.ebuild b/www-client/chromium/chromium-80.0.3970.5.ebuild
new file mode 100644
index 0000000..7085b0b
--- /dev/null
+++ b/www-client/chromium/chromium-80.0.3970.5.ebuild
@@ -0,0 +1,728 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-64:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-78.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-78.patch"
+ "${FILESDIR}/chromium-77-system-icu.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-80.patch"
+ "${FILESDIR}/chromium-unique_ptr-80-r1.patch"
+ "${FILESDIR}/chromium-cursor-80.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/flot
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/gif
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-81.0.4000.3.ebuild b/www-client/chromium/chromium-81.0.4000.3.ebuild
new file mode 100644
index 0000000..4a0fd04
--- /dev/null
+++ b/www-client/chromium/chromium-81.0.4000.3.ebuild
@@ -0,0 +1,728 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-64:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-78.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-78.patch"
+ "${FILESDIR}/chromium-77-system-icu.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-81.patch"
+ "${FILESDIR}/chromium-vector-include-81.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/sfntly
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-82.0.4056.3.ebuild b/www-client/chromium/chromium-82.0.4056.3.ebuild
new file mode 100644
index 0000000..06647dc
--- /dev/null
+++ b/www-client/chromium/chromium-82.0.4056.3.ebuild
@@ -0,0 +1,732 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-64:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2016.11.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-82.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-82.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-deque-constructor-82.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons and desktop entry.
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ local mime_types="text/html;text/xml;application/xhtml+xml;"
+ mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
+ mime_types+="x-scheme-handler/ftp;" # bug #412185
+ mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
+ make_desktop_entry \
+ chromium-browser \
+ "Chromium" \
+ chromium-browser \
+ "Network;WebBrowser" \
+ "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
+ sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-83.0.4093.3.ebuild b/www-client/chromium/chromium-83.0.4093.3.ebuild
new file mode 100644
index 0000000..b02eb94
--- /dev/null
+++ b/www-client/chromium/chromium-83.0.4093.3.ebuild
@@ -0,0 +1,745 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-83.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-std-nullptr-83.patch"
+ "${FILESDIR}/chromium-ngphyscontainer-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-renderer-std-nullptr-83.patch"
+ "${FILESDIR}/chromium-axtree-incomplete-type-83.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-83.0.4100.3.ebuild b/www-client/chromium/chromium-83.0.4100.3.ebuild
new file mode 100644
index 0000000..abbfd6e
--- /dev/null
+++ b/www-client/chromium/chromium-83.0.4100.3.ebuild
@@ -0,0 +1,744 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-83.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-ngphyscontainer-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-axtree-incomplete-type-83.patch"
+ "${FILESDIR}/chromium-crx-install-err-include-83.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-83.0.4103.7.ebuild b/www-client/chromium/chromium-83.0.4103.7.ebuild
new file mode 100644
index 0000000..8e28715
--- /dev/null
+++ b/www-client/chromium/chromium-83.0.4103.7.ebuild
@@ -0,0 +1,747 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-83.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-ngphyscontainer-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-axtree-incomplete-type-83.patch"
+ "${FILESDIR}/chromium-crx-install-err-include-83.patch"
+ "${FILESDIR}/chromium-hashtable-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-blink-include-memory-83.patch"
+ "${FILESDIR}/chromium-include-limits-83.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-84.0.4115.5.ebuild b/www-client/chromium/chromium-84.0.4115.5.ebuild
new file mode 100644
index 0000000..178184f
--- /dev/null
+++ b/www-client/chromium/chromium-84.0.4115.5.ebuild
@@ -0,0 +1,752 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-84.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-ngphyscontainer-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-axtree-incomplete-type-83.patch"
+ "${FILESDIR}/chromium-crx-install-err-include-83.patch"
+ "${FILESDIR}/chromium-hashtable-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-blink-include-memory-83.patch"
+ "${FILESDIR}/chromium-include-limits-84.patch"
+ "${FILESDIR}/chromium-base-include-84.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/VulkanMemoryAllocator
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/fft4g
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-84.0.4122.7.ebuild b/www-client/chromium/chromium-84.0.4122.7.ebuild
new file mode 100644
index 0000000..48a2d14
--- /dev/null
+++ b/www-client/chromium/chromium-84.0.4122.7.ebuild
@@ -0,0 +1,754 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-84.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-ngphyscontainer-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-crx-install-err-include-83.patch"
+ "${FILESDIR}/chromium-hashtable-iterator-cat-83.patch"
+ "${FILESDIR}/chromium-blink-include-memory-83.patch"
+ "${FILESDIR}/chromium-base-include-84-r1.patch"
+ "${FILESDIR}/chromium-inline-node-ptr-84.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-char-max-84.patch"
+ "${FILESDIR}/chromium-cc-matrics-include-84.patch"
+ "${FILESDIR}/chromium-blink-include-limits-84.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/VulkanMemoryAllocator
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ third_party/yasm/run_yasm.py
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ yasm
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-84.0.4136.5.ebuild b/www-client/chromium/chromium-84.0.4136.5.ebuild
new file mode 100644
index 0000000..fc1b627
--- /dev/null
+++ b/www-client/chromium/chromium-84.0.4136.5.ebuild
@@ -0,0 +1,748 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-84-r1.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-base-include-84-r2.patch"
+ "${FILESDIR}/chromium-inline-node-ptr-84.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-serviceworker-83.patch"
+ "${FILESDIR}/chromium-blink-include-bitset-84.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/VulkanMemoryAllocator
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-84.0.4147.13.ebuild b/www-client/chromium/chromium-84.0.4147.13.ebuild
new file mode 100644
index 0000000..28d8d0e
--- /dev/null
+++ b/www-client/chromium/chromium-84.0.4147.13.ebuild
@@ -0,0 +1,752 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-84-r1.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-base-include-84-r2.patch"
+ "${FILESDIR}/chromium-inline-node-ptr-84.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-webrtc-include-84.patch"
+ "${FILESDIR}/chromium-axobj-ancestoriter-cat-84.patch"
+ "${FILESDIR}/chromium-ntp_backgrounds-include-84.patch"
+ "${FILESDIR}/chromium-ext-no-vector-const-84.patch"
+ "${FILESDIR}/chromium-revert-crrev-2147485-84.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-85.0.4164.2.ebuild b/www-client/chromium/chromium-85.0.4164.2.ebuild
new file mode 100644
index 0000000..80df496
--- /dev/null
+++ b/www-client/chromium/chromium-85.0.4164.2.ebuild
@@ -0,0 +1,754 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-84-r1.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-base-include-84-r2.patch"
+ "${FILESDIR}/chromium-inline-node-ptr-84.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-gamepad-include-84.patch"
+ "${FILESDIR}/chromium-bluetooth-tuple-84.patch"
+ "${FILESDIR}/chromium-simhash-include-84.patch"
+ "${FILESDIR}/chromium-opencv-include-84.patch"
+ "${FILESDIR}/chromium-core-management-svc-84.patch"
+ "${FILESDIR}/chromium-gpu-vp9-include-84.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-85.0.4183.15.ebuild b/www-client/chromium/chromium-85.0.4183.15.ebuild
new file mode 100644
index 0000000..4ffd415
--- /dev/null
+++ b/www-client/chromium/chromium-85.0.4183.15.ebuild
@@ -0,0 +1,752 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+closure-compile component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ closure-compile? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-84-r1.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-77-clang.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-base-include-84-r2.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-core-management-svc-84.patch"
+ "${FILESDIR}/chromium-gpu-vp9-include-84.patch"
+ "${FILESDIR}/chromium-cert-share-encrypted-85.patch"
+ "${FILESDIR}/chromium-simhash-include-85.patch"
+ "${FILESDIR}/chromium-media-alloc-84.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/cacheinvalidation
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/third_party/axe-core
+ third_party/devtools-frontend/src/third_party/pyjson5
+ third_party/devtools-frontend/src/third_party/typescript
+ third_party/depot_tools
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-7.0
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" closure_compile=$(usex closure-compile true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-86.0.4214.2.ebuild b/www-client/chromium/chromium-86.0.4214.2.ebuild
new file mode 100644
index 0000000..3ad74ef
--- /dev/null
+++ b/www-client/chromium/chromium-86.0.4214.2.ebuild
@@ -0,0 +1,757 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+js-type-check component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ js-type-check? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-86.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-vaapi-83.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-base-include-84-r2.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-core-management-svc-84.patch"
+ "${FILESDIR}/chromium-gpu-vp9-include-84.patch"
+ "${FILESDIR}/chromium-media-alloc-84.patch"
+ "${FILESDIR}/chromium-remove-no_check_targets-86.patch"
+ "${FILESDIR}/chromium-nearby-inc-86.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/xcbproto
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-87.0.4259.3.ebuild b/www-client/chromium/chromium-87.0.4259.3.ebuild
new file mode 100644
index 0000000..123d16f
--- /dev/null
+++ b/www-client/chromium/chromium-87.0.4259.3.ebuild
@@ -0,0 +1,758 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+js-type-check component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ js-type-check? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-87.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-base-include-84-r2.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-core-management-svc-84.patch"
+ "${FILESDIR}/chromium-gpu-vp9-include-84.patch"
+ "${FILESDIR}/chromium-nearby-inc-86.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/wayland
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/xcbproto
+ third_party/zlib/google
+ third_party/zxcvbn-cpp
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-87.0.4263.3-r1.ebuild b/www-client/chromium/chromium-87.0.4263.3-r1.ebuild
new file mode 100644
index 0000000..7c83611
--- /dev/null
+++ b/www-client/chromium/chromium-87.0.4263.3-r1.ebuild
@@ -0,0 +1,894 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-79-gcc-protobuf-alignas.patch"
+ "${FILESDIR}/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch"
+ "${FILESDIR}/chromium-84-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-86-compiler.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-86-ImageMemoryBarrierData-init.patch"
+ "${FILESDIR}/chromium-86-nearby-explicit.patch"
+ "${FILESDIR}/chromium-86-nearby-include.patch"
+ "${FILESDIR}/chromium-87-anonymous-struct.patch"
+ "${FILESDIR}/chromium-87-CrossThreadPersistent-template.patch"
+ "${FILESDIR}/chromium-87-CursorFactory-include.patch"
+ "${FILESDIR}/chromium-87-SystemMemoryPressureEvaluator-namespace.patch"
+ "${FILESDIR}/chromium-87-Thumbnail-noexcept.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-vaapi-fix-87.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/libgifcodec
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-87.0.4263.3.ebuild b/www-client/chromium/chromium-87.0.4263.3.ebuild
new file mode 100644
index 0000000..f75a2d6
--- /dev/null
+++ b/www-client/chromium/chromium-87.0.4263.3.ebuild
@@ -0,0 +1,760 @@
+# Copyright 2009-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="http://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="+js-type-check component-build cups cpu_flags_arm_neon gnome-keyring +hangouts kerberos pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="component-build? ( !suid )"
+
+COMMON_DEPEND="
+ >=app-accessibility/at-spi2-atk-2.26:2
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ >=dev-libs/atk-2.26
+ dev-libs/expat:=
+ dev-libs/glib:2
+ system-icu? ( >=dev-libs/icu-65:= )
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/libxslt:=
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=dev-libs/re2-0.2019.08.01:=
+ gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
+ >=media-libs/openh264-1.6.0:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ !=net-fs/samba-4.5.12-r0
+ media-libs/opus:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libXtst:=
+ x11-libs/pango:=
+ app-arch/snappy:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ !<www-plugins/chrome-binary-plugins-57
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+ widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ !arm? (
+ dev-lang/yasm
+ )
+ dev-lang/perl
+ dev-util/gn
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ js-type-check? ( virtual/jre )
+ virtual/pkgconfig
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-7"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-compiler-87.patch"
+ "${FILESDIR}/chromium-widevine-80.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-zlib-82.patch"
+ "${FILESDIR}/chromium-clang-format-path-82.patch"
+ "${FILESDIR}/chromium-base-include-84-r2.patch"
+ "${FILESDIR}/chromium-mojo-ltm-83.patch"
+ "${FILESDIR}/chromium-core-management-svc-84.patch"
+ "${FILESDIR}/chromium-gpu-vp9-include-84.patch"
+ "${FILESDIR}/chromium-nearby-inc-86.patch"
+ "${FILESDIR}/chromium-vaapi-fix-87.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
+ die "At least gcc 8.0 is required"
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ CHECKREQS_DISK_BUILD="25G"
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgifcodec
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/openscreen/src/third_party/mozilla
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/wayland
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/xcbproto
+ third_party/zlib/google
+ third_party/zxcvbn-cpp
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ #libxml
+ libxslt
+ openh264
+ re2
+ snappy
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Prevent linker from running out of address space, bug #471810 .
+ if use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
+ fi
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ doins out/Release/*.so
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-87.0.4278.0.ebuild b/www-client/chromium/chromium-87.0.4278.0.ebuild
new file mode 100644
index 0000000..7539055
--- /dev/null
+++ b/www-client/chromium/chromium-87.0.4278.0.ebuild
@@ -0,0 +1,892 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-79-gcc-protobuf-alignas.patch"
+ "${FILESDIR}/chromium-84-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-compiler-r1.patch"
+ "${FILESDIR}/chromium-87-CursorFactory-include.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-87-ozone-deps.patch"
+ "${FILESDIR}/chromium-87-thread_cache.patch"
+ "${FILESDIR}/chromium-87-openscreen-crypto-include.patch"
+ "${FILESDIR}/chromium-87-remotesyscall.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/libgifcodec
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shaka-player
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-88.0.4298.4.ebuild b/www-client/chromium/chromium-88.0.4298.4.ebuild
new file mode 100644
index 0000000..66467b3
--- /dev/null
+++ b/www-client/chromium/chromium-88.0.4298.4.ebuild
@@ -0,0 +1,905 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-79-gcc-protobuf-alignas.patch"
+ "${FILESDIR}/chromium-84-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-compiler-r1.patch"
+ "${FILESDIR}/chromium-87-CursorFactory-include.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-87-ozone-deps.patch"
+ "${FILESDIR}/chromium-87-openscreen-crypto-include.patch"
+ "${FILESDIR}/chromium-88-service-worker-registration-crash.patch"
+ "${FILESDIR}/chromium-88-dawn-include.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-88-angle-renderer.patch"
+ "${FILESDIR}/chromium-88-pcscan-nonfinal.patch"
+ "${FILESDIR}/chromium-88-mediasource-uniqptrostream.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/libgifcodec
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shaka-player
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-cross
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tint
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-88.0.4302.0.ebuild b/www-client/chromium/chromium-88.0.4302.0.ebuild
new file mode 100644
index 0000000..6b66aff
--- /dev/null
+++ b/www-client/chromium/chromium-88.0.4302.0.ebuild
@@ -0,0 +1,901 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-79-gcc-protobuf-alignas.patch"
+ "${FILESDIR}/chromium-84-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-compiler-r1.patch"
+ "${FILESDIR}/chromium-87-CursorFactory-include.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-87-ozone-deps.patch"
+ "${FILESDIR}/chromium-87-openscreen-crypto-include.patch"
+ "${FILESDIR}/chromium-88-service-worker-registration-crash.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/libgifcodec
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shaka-player
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-cross
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tint
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-88.0.4324.11.ebuild b/www-client/chromium/chromium-88.0.4324.11.ebuild
new file mode 100644
index 0000000..e6bc8e9
--- /dev/null
+++ b/www-client/chromium/chromium-88.0.4324.11.ebuild
@@ -0,0 +1,907 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-79-gcc-protobuf-alignas.patch"
+ "${FILESDIR}/chromium-84-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-88-compiler.patch"
+ "${FILESDIR}/chromium-87-CursorFactory-include.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-87-openscreen-crypto-include.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-88-compositor-dcheck.patch"
+ "${FILESDIR}/chromium-88-system-icu.patch"
+ "${FILESDIR}/chromium-88-tree-formatter-include.patch"
+ "${FILESDIR}/chromium-88-gpu-internals-ozone.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/libgifcodec
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shaka-player
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-cross
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tint
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-89.0.4343.0.ebuild b/www-client/chromium/chromium-89.0.4343.0.ebuild
new file mode 100644
index 0000000..c6cafc8
--- /dev/null
+++ b/www-client/chromium/chromium-89.0.4343.0.ebuild
@@ -0,0 +1,912 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-fix-char_traits.patch"
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-84-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-87-openscreen-crypto-include.patch"
+ "${FILESDIR}/chromium-88-compiler.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-88-compositor-dcheck.patch"
+ "${FILESDIR}/chromium-88-system-icu.patch"
+ "${FILESDIR}/chromium-88-tree-formatter-include.patch"
+ "${FILESDIR}/chromium-89-CursorFactory-include.patch"
+ "${FILESDIR}/chromium-89-dawn-string-include.patch"
+ "${FILESDIR}/chromium-89-angle-display.patch"
+ "${FILESDIR}/chromium-89-pcscan-include.patch"
+ "${FILESDIR}/chromium-89-quiche-uniqueptr.patch"
+ "${FILESDIR}/chromium-89-sstream.patch"
+ "${FILESDIR}/chromium-89-content-dcheck-uniqueptr.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/angle/third_party/glslang
+ third_party/angle/third_party/spirv-headers
+ third_party/angle/third_party/spirv-tools
+ third_party/angle/third_party/vulkan-headers
+ third_party/angle/third_party/vulkan-loader
+ third_party/angle/third_party/vulkan-tools
+ third_party/angle/third_party/vulkan-validation-layers
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/libgifcodec
+ third_party/glslang
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libva_protected_content
+ third_party/libudev
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shaka-player
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/spirv-cross
+ third_party/spirv-headers
+ third_party/SPIRV-Tools
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tint
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-89.0.4381.6.ebuild b/www-client/chromium/chromium-89.0.4381.6.ebuild
new file mode 100644
index 0000000..1c1c565
--- /dev/null
+++ b/www-client/chromium/chromium-89.0.4381.6.ebuild
@@ -0,0 +1,894 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-84-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-88-compiler.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-89-compositor-dcheck.patch"
+ "${FILESDIR}/chromium-89-quiche-uniqueptr_r1.patch"
+ "${FILESDIR}/chromium-89-uigfx-image-skia.patch"
+ "${FILESDIR}/chromium-89-webui-config-include.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/emoji-segmenter
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/libgifcodec
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libva_protected_content
+ third_party/libudev
+ third_party/liburlpattern
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shaka-player
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tint
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/adobe
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-90.0.4430.19.ebuild b/www-client/chromium/chromium-90.0.4430.19.ebuild
new file mode 100644
index 0000000..9bc361f
--- /dev/null
+++ b/www-client/chromium/chromium-90.0.4430.19.ebuild
@@ -0,0 +1,911 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-88-compiler.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-90-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-90-compositor-dcheck.patch"
+ "${FILESDIR}/chromium-90-quiche-uniqueptr.patch"
+ "${FILESDIR}/chromium-90-disable-nomerge.patch"
+ "${FILESDIR}/chromium-90-quantization-util-stdint.patch"
+ "${FILESDIR}/chromium-90-langdetect-include.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/libgav1
+ third_party/libgifcodec
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libva_protected_content
+ third_party/libudev
+ third_party/liburlpattern
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/libzip
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/ruy
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tensorflow-text
+ third_party/tint
+ third_party/tflite-support
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-91.0.4442.4.ebuild b/www-client/chromium/chromium-91.0.4442.4.ebuild
new file mode 100644
index 0000000..d6e872a
--- /dev/null
+++ b/www-client/chromium/chromium-91.0.4442.4.ebuild
@@ -0,0 +1,910 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-88-compiler.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-90-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-90-compositor-dcheck.patch"
+ "${FILESDIR}/chromium-90-quiche-uniqueptr.patch"
+ "${FILESDIR}/chromium-91-disable-nomerge.patch"
+ "${FILESDIR}/chromium-91-clipboard-ozone.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/libgav1
+ third_party/libgifcodec
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libva_protected_content
+ third_party/libudev
+ third_party/liburlpattern
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/libzip
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/ruy
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tensorflow-text
+ third_party/tint
+ third_party/tflite-support
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-91.0.4469.4.ebuild b/www-client/chromium/chromium-91.0.4469.4.ebuild
new file mode 100644
index 0000000..43245a7
--- /dev/null
+++ b/www-client/chromium/chromium-91.0.4469.4.ebuild
@@ -0,0 +1,917 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-87-std-max_align_t.patch"
+ "${FILESDIR}/chromium-91-compiler.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-90-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-90-compositor-dcheck.patch"
+ "${FILESDIR}/chromium-90-quiche-uniqueptr.patch"
+ "${FILESDIR}/chromium-91-disable-nomerge.patch"
+ "${FILESDIR}/chromium-91-clipboard-ozone.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter versions
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+ sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
+ sed -i -e "s|python|python2\.7|g" \
+ third_party/dom_distiller_js/protoc_plugins/json_values_converter.py || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/libgav1
+ third_party/libgifcodec
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libavif
+ third_party/libjingle
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libva_protected_content
+ third_party/libudev
+ third_party/liburlpattern
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/libzip
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/ruy
+ third_party/s2cellid
+ third_party/schema_org
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tensorflow-text
+ third_party/tint
+ third_party/tflite-support
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-92.0.4503.0.ebuild b/www-client/chromium/chromium-92.0.4503.0.ebuild
new file mode 100644
index 0000000..4d64594
--- /dev/null
+++ b/www-client/chromium/chromium-92.0.4503.0.ebuild
@@ -0,0 +1,919 @@
+# Copyright 2009-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless js-type-check kerberos official pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc wayland widevine vaapi"
+RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
+REQUIRED_USE="
+ component-build? ( !suid )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libXScrnSaver:=
+ x11-libs/libxcb:=
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ system-libvpx? ( >=media-libs/libvpx-1.8.2:=[postproc] )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ dev-libs/libffi:=
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon:=
+ )
+ )
+"
+# For nvidia-drivers blocker, see bug #413637 .
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+ tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-10"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-10"
+ DEPEND+=" >=sys-libs/libcxx-10"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-67.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-86-ConsumeDurationNumber-constexpr.patch"
+ "${FILESDIR}/chromium-91-compiler.patch"
+ "${FILESDIR}/chromium-88-dawn-size_t-std.patch"
+ "${FILESDIR}/chromium-90-blink-disable-clang-format.patch"
+ "${FILESDIR}/chromium-90-compositor-dcheck.patch"
+ "${FILESDIR}/chromium-90-quiche-uniqueptr.patch"
+ "${FILESDIR}/chromium-91-disable-nomerge.patch"
+ "${FILESDIR}/chromium-92-base_atomic_include.patch"
+)
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
+ if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
+ die "Component build with tcmalloc requires FEATURES=-usersandbox."
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ if use component-build; then
+ die "Component build with clang requires fuzzer headers."
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="7G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter versions
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+ sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
+ sed -i -e "s|python|python2\.7|g" \
+ third_party/dom_distiller_js/protoc_plugins/json_values_converter.py || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/eu-strip
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/depot_tools/third_party
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/fabricjs
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/libgav1
+ third_party/libgifcodec
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/highway
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libavif
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libva_protected_content
+ third_party/libudev
+ third_party/liburlpattern
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/libzip
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/ruy
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tensorflow-text
+ third_party/tflite-support
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if ! use system-libvpx; then
+ keeplibs+=( third_party/libvpx )
+ keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+ fi
+ if use tcmalloc; then
+ keeplibs+=( third_party/tcmalloc )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if use system-libvpx; then
+ gn_system_libraries+=( libvpx )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ if use wayland || use headless; then
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" use_ozone=false"
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0:${PYTHONPATH+:}${PYTHONPATH}"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so)
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+}
diff --git a/www-client/chromium/chromium-92.0.4512.4.ebuild b/www-client/chromium/chromium-92.0.4512.4.ebuild
new file mode 100644
index 0000000..2ddcb4a
--- /dev/null
+++ b/www-client/chromium/chromium-92.0.4512.4.ebuild
@@ -0,0 +1,937 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+ component-build? ( !suid )
+ screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxcb:=
+ x11-libs/libxshmfence:=
+ vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libxkbcommon:=
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ screencast? ( media-video/pipewire:0/0.3 )
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ dev-lang/python:2.7[xml]
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-12"
+ DEPEND+=" >=sys-libs/libcxx-12"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ CPP="${CHOST}-clang++ -E"
+ if ! ver_test "$(clang-major-version)" -ge 12; then
+ die "At least clang 12 is required"
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="8G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-90-ruy-include.patch"
+ "${FILESDIR}/chromium-91-compiler-r1.patch"
+ "${FILESDIR}/chromium-92-sql-cursor.patch"
+# "${FILESDIR}/chromium-89-EnumTable-crash.patch"
+ "${FILESDIR}/chromium-shim_headers.patch"
+ )
+
+ # seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
+ if has_version -d ">=sys-libs/glibc-2.33"; then
+ ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
+ ewarn "still not work correctly. In case of issues, try to disable seccomp"
+ ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
+ ewarn "in /etc/chromium/default."
+ PATCHES+=(
+ "${FILESDIR}/chromium-92-glibc-2.33.patch"
+ )
+ fi
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter versions
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+ sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ buildtools/third_party/eu-strip
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/compiler
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4
+ third_party/catapult/third_party/html5lib-python
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/highway
+ third_party/libgifcodec
+ third_party/liburlpattern
+ third_party/libzip
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libva_protected_content
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tcmalloc
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite-support
+ third_party/ruy
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ if use js-type-check; then
+ ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+ fi
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+ myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ # Disable pseudolocales, only used for testing
+ myconf_gn+=" enable_pseudolocales=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use wayland || use headless; then
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ myconf_gn+=" use_thin_lto=false"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ # Disable PGO, because profile data is only compatible with >=clang-11
+ myconf_gn+=" chrome_pgo_phase=0"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ # don't inherit PYTHONPATH from environment, bug #789021
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ mv out/Release/chromedriver{.unstripped,} || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+ doexe out/Release/crashpad_handler
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use vaapi; then
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+}
diff --git a/www-client/chromium/chromium-93.0.4535.3.ebuild b/www-client/chromium/chromium-93.0.4535.3.ebuild
new file mode 100644
index 0000000..f01fdb2
--- /dev/null
+++ b/www-client/chromium/chromium-93.0.4535.3.ebuild
@@ -0,0 +1,939 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+ component-build? ( !suid )
+ screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxcb:=
+ x11-libs/libxshmfence:=
+ vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libxkbcommon:=
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ screencast? ( media-video/pipewire:0/0.3 )
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ dev-lang/python:2.7[xml]
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-12"
+ DEPEND+=" >=sys-libs/libcxx-12"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ CPP="${CHOST}-clang++ -E"
+ if ! ver_test "$(clang-major-version)" -ge 12; then
+ die "At least clang 12 is required"
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="8G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-90-ruy-include.patch"
+ "${FILESDIR}/chromium-91-compiler-r1.patch"
+ "${FILESDIR}/chromium-91-libyuv-aarch64.patch"
+ "${FILESDIR}/chromium-93-sql-virtual-cursor.patch"
+ "${FILESDIR}/chromium-93-AXPropertyNode-private.patch"
+ "${FILESDIR}/chromium-93-site_settings_helper-initialzation.patch"
+ "${FILESDIR}/chromium-93-tint-include.patch"
+ "${FILESDIR}/chromium-shim_headers.patch"
+ )
+
+ # seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
+ if has_version -d ">=sys-libs/glibc-2.33"; then
+ ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
+ ewarn "still not work correctly. In case of issues, try to disable seccomp"
+ ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
+ ewarn "in /etc/chromium/default."
+ PATCHES+=(
+ "${FILESDIR}/chromium-92-glibc-2.33.patch"
+ )
+ fi
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter versions
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+ sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ buildtools/third_party/eu-strip
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/highway
+ third_party/libgifcodec
+ third_party/liburlpattern
+ third_party/libzip
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libva_protected_content
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tcmalloc
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite-support
+ third_party/ruy
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ tools/grit/third_party/six
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ if use js-type-check; then
+ ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+ fi
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+ myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ # Disable pseudolocales, only used for testing
+ myconf_gn+=" enable_pseudolocales=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use wayland || use headless; then
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ myconf_gn+=" use_thin_lto=false"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ # Disable PGO, because profile data is only compatible with >=clang-11
+ myconf_gn+=" chrome_pgo_phase=0"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ # don't inherit PYTHONPATH from environment, bug #789021
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ mv out/Release/chromedriver{.unstripped,} || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+ doexe out/Release/crashpad_handler
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use vaapi; then
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+}
diff --git a/www-client/chromium/chromium-93.0.4573.0.ebuild b/www-client/chromium/chromium-93.0.4573.0.ebuild
new file mode 100644
index 0000000..8058db7
--- /dev/null
+++ b/www-client/chromium/chromium-93.0.4573.0.ebuild
@@ -0,0 +1,954 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+ component-build? ( !suid )
+ screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxcb:=
+ x11-libs/libxshmfence:=
+ vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libxkbcommon:=
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ screencast? ( media-video/pipewire:0/0.3 )
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ dev-lang/python:2.7[xml]
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-12"
+ DEPEND+=" >=sys-libs/libcxx-12"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ CPP="${CHOST}-clang++ -E"
+ if ! ver_test "$(clang-major-version)" -ge 12; then
+ die "At least clang 12 is required"
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="8G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-90-ruy-include.patch"
+ "${FILESDIR}/chromium-91-compiler-r1.patch"
+ "${FILESDIR}/chromium-91-libyuv-aarch64.patch"
+ "${FILESDIR}/chromium-93-sql-virtual-cursor.patch"
+ "${FILESDIR}/chromium-93-net-http-include.patch"
+ "${FILESDIR}/chromium-93-quiche-logging-include.patch"
+ "${FILESDIR}/chromium-93-ui-event-include.patch"
+ "${FILESDIR}/chromium-93-media-ffmpeg-type.patch"
+ "${FILESDIR}/chromium-93-pwdmgr-include.patch"
+ "${FILESDIR}/chromium-93-lang-prefs-include.patch"
+ "${FILESDIR}/chromium-93-gpu-ipc-include.patch"
+ "${FILESDIR}/chromium-93-pdfium-include.patch"
+ "${FILESDIR}/chromium-93-payment-include.patch"
+ "${FILESDIR}/chromium-93-webapp-include.patch"
+ "${FILESDIR}/chromium-93-dnsprefetch-include.patch"
+ "${FILESDIR}/chromium-93-phishing-classifier-include.patch"
+ "${FILESDIR}/chromium-93-devtools-msg-dispatcher-include.patch"
+ "${FILESDIR}/chromium-93-hid-chooser-include.patch"
+ "${FILESDIR}/chromium-93-url-loader-throttles-include.patch"
+ "${FILESDIR}/chromium-93-sms-fetcher-include.patch"
+ "${FILESDIR}/chromium-93-cart-include.patch"
+ "${FILESDIR}/chromium-93-login-detection-include.patch"
+ "${FILESDIR}/chromium-93-media-history-include.patch"
+ "${FILESDIR}/chromium-shim_headers.patch"
+ )
+
+ # seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
+ if has_version -d ">=sys-libs/glibc-2.33"; then
+ ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
+ ewarn "still not work correctly. In case of issues, try to disable seccomp"
+ ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
+ ewarn "in /etc/chromium/default."
+ PATCHES+=(
+ "${FILESDIR}/chromium-92-glibc-2.33.patch"
+ )
+ fi
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter versions
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+ sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ buildtools/third_party/eu-strip
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/highway
+ third_party/libgifcodec
+ third_party/liburlpattern
+ third_party/libzip
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libva_protected_content
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tcmalloc
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite-support
+ third_party/ruy
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ if use js-type-check; then
+ ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+ fi
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+ myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ # Disable pseudolocales, only used for testing
+ myconf_gn+=" enable_pseudolocales=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use wayland || use headless; then
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ myconf_gn+=" use_thin_lto=false"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ # Disable PGO, because profile data is only compatible with >=clang-11
+ myconf_gn+=" chrome_pgo_phase=0"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ # don't inherit PYTHONPATH from environment, bug #789021
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ mv out/Release/chromedriver{.unstripped,} || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+ doexe out/Release/crashpad_handler
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use vaapi; then
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+}
diff --git a/www-client/chromium/chromium-93.0.4577.8.ebuild b/www-client/chromium/chromium-93.0.4577.8.ebuild
new file mode 100644
index 0000000..6ea058a
--- /dev/null
+++ b/www-client/chromium/chromium-93.0.4577.8.ebuild
@@ -0,0 +1,941 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
+ https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+ component-build? ( !suid )
+ screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxcb:=
+ x11-libs/libxshmfence:=
+ vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ media-libs/freetype:=
+ >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libxkbcommon:=
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ screencast? ( media-video/pipewire:0/0.3 )
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/gzip-1.7
+ app-arch/unzip
+ dev-lang/perl
+ dev-lang/python:2.7[xml]
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-12"
+ DEPEND+=" >=sys-libs/libcxx-12"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ CPP="${CHOST}-clang++ -E"
+ if ! ver_test "$(clang-major-version)" -ge 12; then
+ die "At least clang 12 is required"
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="3G"
+ CHECKREQS_DISK_BUILD="8G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-90-ruy-include.patch"
+ "${FILESDIR}/chromium-91-compiler-r1.patch"
+ "${FILESDIR}/chromium-91-libyuv-aarch64.patch"
+ "${FILESDIR}/chromium-93-sql-virtual-cursor.patch"
+ "${FILESDIR}/chromium-93-media-ffmpeg-type.patch"
+ "${FILESDIR}/chromium-93-pdfium-include.patch"
+ "${FILESDIR}/chromium-93-devtools-msg-dispatcher-include.patch"
+ "${FILESDIR}/chromium-93-worksp-ext-include.patch"
+ "${FILESDIR}/chromium-93-pwdmgr-include-r1.patch"
+ "${FILESDIR}/chromium-93-ext-autoconfirm-include.patch"
+ "${FILESDIR}/chromium-shim_headers.patch"
+ )
+
+ # seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
+ if has_version -d ">=sys-libs/glibc-2.33"; then
+ ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
+ ewarn "still not work correctly. In case of issues, try to disable seccomp"
+ ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
+ ewarn "in /etc/chromium/default."
+ PATCHES+=(
+ "${FILESDIR}/chromium-92-glibc-2.33.patch"
+ )
+ fi
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter versions
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+ sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ buildtools/third_party/eu-strip
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/highway
+ third_party/libgifcodec
+ third_party/liburlpattern
+ third_party/libzip
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng/utils
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libva_protected_content
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tcmalloc
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite-support
+ third_party/ruy
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ if use js-type-check; then
+ ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+ fi
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+ myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" fieldtrial_testing_like_official_build=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ # Disable pseudolocales, only used for testing
+ myconf_gn+=" enable_pseudolocales=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use wayland || use headless; then
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ myconf_gn+=" use_thin_lto=false"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ # Disable PGO, because profile data is only compatible with >=clang-11
+ myconf_gn+=" chrome_pgo_phase=0"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # https://bugs.gentoo.org/717456
+ # don't inherit PYTHONPATH from environment, bug #789021
+ local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ mv out/Release/chromedriver{.unstripped,} || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+ doexe out/Release/crashpad_handler
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use vaapi; then
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+}
diff --git a/www-client/chromium/chromium-94.0.4606.12.ebuild b/www-client/chromium/chromium-94.0.4606.12.ebuild
new file mode 100644
index 0000000..865710c
--- /dev/null
+++ b/www-client/chromium/chromium-94.0.4606.12.ebuild
@@ -0,0 +1,937 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+ component-build? ( !suid )
+ screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm(+)]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxcb:=
+ x11-libs/libxshmfence:=
+ vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ >=media-libs/freetype-2.11.0:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libxkbcommon:=
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ screencast? ( media-video/pipewire:0/0.3 )
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ >=app-arch/gzip-1.7
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=yes}
+: ${CHROMIUM_FORCE_LIBCXX=yes}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-12"
+ DEPEND+=" >=sys-libs/libcxx-12"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+ has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ CPP="${CHOST}-clang++ -E"
+ if ! ver_test "$(clang-major-version)" -ge 12; then
+ die "At least clang 12 is required"
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="4G"
+ CHECKREQS_DISK_BUILD="9G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-90-ruy-include.patch"
+ "${FILESDIR}/chromium-91-libyuv-aarch64.patch"
+ "${FILESDIR}/chromium-94-compiler.patch"
+ "${FILESDIR}/chromium-94-ConversionStorageSql-lambda.patch"
+ "${FILESDIR}/chromium-94-CustomSpaces-include.patch"
+ "${FILESDIR}/chromium-93-EnumTable-crash.patch"
+ "${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+ "${FILESDIR}/chromium-94-translate.patch"
+ "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+ "${FILESDIR}/chromium-shim_headers.patch"
+ )
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter version
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/highway
+ third_party/libgifcodec
+ third_party/liburlpattern
+ third_party/libzip
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libva_protected_content
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/six
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tcmalloc
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite-support
+ third_party/ruy
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ if use js-type-check; then
+ ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+ fi
+
+ # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+ mkdir -p buildtools/third_party/eu-strip/bin || die
+ ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ # Depends on unreleased harfbuzz features
+ # myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+ myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ # Disable pseudolocales, only used for testing
+ myconf_gn+=" enable_pseudolocales=false"
+
+ # Disable code formating of generated files
+ myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use wayland || use headless; then
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ myconf_gn+=" use_thin_lto=false"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ # Disable PGO, because profile data is only compatible with >=clang-11
+ myconf_gn+=" chrome_pgo_phase=0"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ mv out/Release/chromedriver{.unstripped,} || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+ doexe out/Release/chrome_crashpad_handler
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+ doins -r out/Release/MEIPreload
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use vaapi; then
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+}
diff --git a/www-client/chromium/chromium-95.0.4628.3.ebuild b/www-client/chromium/chromium-95.0.4628.3.ebuild
new file mode 100644
index 0000000..3790e54
--- /dev/null
+++ b/www-client/chromium/chromium-95.0.4628.3.ebuild
@@ -0,0 +1,935 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+ component-build? ( !suid )
+ screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm(+)]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxcb:=
+ x11-libs/libxshmfence:=
+ vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ >=media-libs/freetype-2.11.0:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libxkbcommon:=
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ screencast? ( media-video/pipewire:0/0.3 )
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ >=app-arch/gzip-1.7
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-12"
+ DEPEND+=" >=sys-libs/libcxx-12"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+ has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ CPP="${CHOST}-clang++ -E"
+ if ! ver_test "$(clang-major-version)" -ge 12; then
+ die "At least clang 12 is required"
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="4G"
+ CHECKREQS_DISK_BUILD="9G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-91-libyuv-aarch64.patch"
+ "${FILESDIR}/chromium-94-compiler.patch"
+ "${FILESDIR}/chromium-95-hash_traits-include.patch"
+ "${FILESDIR}/chromium-95-text_fragments_utils-include.patch"
+ "${FILESDIR}/chromium-93-EnumTable-crash.patch"
+ "${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+ "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+ "${FILESDIR}/chromium-shim_headers.patch"
+ )
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter version
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+ third_party/devtools-frontend/src/third_party
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/highway
+ third_party/libgifcodec
+ third_party/liburlpattern
+ third_party/libzip
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/harfbuzz-ng
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libva_protected_content
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/six
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tcmalloc
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/tflite-support
+ third_party/ruy
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ if use js-type-check; then
+ ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+ fi
+
+ # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+ mkdir -p buildtools/third_party/eu-strip/bin || die
+ ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_libsrtp (bug #459932).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_ssl (http://crbug.com/58087).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ # Depends on unreleased harfbuzz features
+ # myconf_gn+=" use_system_harfbuzz=true"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+ myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ # Disable pseudolocales, only used for testing
+ myconf_gn+=" enable_pseudolocales=false"
+
+ # Disable code formating of generated files
+ myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ if use wayland || use headless; then
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ myconf_gn+=" use_thin_lto=false"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ # Disable PGO, because profile data is only compatible with >=clang-11
+ myconf_gn+=" chrome_pgo_phase=0"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ export HTTP_PROXY=127.0.0.1:8123
+ export HTTPS_PROXY=127.0.0.1:8123
+ export http_proxy=127.0.0.1:8123
+ export https_proxy=127.0.0.1:8123
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ mv out/Release/chromedriver{.unstripped,} || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+ doexe out/Release/chrome_crashpad_handler
+
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
+ s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+ doins -r out/Release/MEIPreload
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use vaapi; then
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+}
diff --git a/www-client/chromium/chromium-96.0.4662.6.ebuild b/www-client/chromium/chromium-96.0.4662.6.ebuild
new file mode 100644
index 0000000..99ef5fd
--- /dev/null
+++ b/www-client/chromium/chromium-96.0.4662.6.ebuild
@@ -0,0 +1,957 @@
+# Copyright 2009-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_9 )
+PYTHON_REQ_USE="xml"
+
+CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
+ hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr
+ sv sw ta te th tr uk vi zh-CN zh-TW"
+
+inherit check-reqs chromium-2 desktop flag-o-matic ninja-utils pax-utils python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="Open-source version of Google Chrome web browser"
+HOMEPAGE="https://chromium.org/"
+SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="component-build cups cpu_flags_arm_neon debug +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-harfbuzz +system-icu vaapi wayland widevine"
+REQUIRED_USE="
+ component-build? ( !suid )
+ screencast? ( wayland )
+"
+
+COMMON_X_DEPEND="
+ media-libs/mesa:=[gbm(+)]
+ x11-libs/libX11:=
+ x11-libs/libXcomposite:=
+ x11-libs/libXcursor:=
+ x11-libs/libXdamage:=
+ x11-libs/libXext:=
+ x11-libs/libXfixes:=
+ >=x11-libs/libXi-1.6.0:=
+ x11-libs/libXrandr:=
+ x11-libs/libXrender:=
+ x11-libs/libXtst:=
+ x11-libs/libxcb:=
+ x11-libs/libxshmfence:=
+ vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
+"
+
+COMMON_DEPEND="
+ app-arch/bzip2:=
+ cups? ( >=net-print/cups-1.3.11:= )
+ dev-libs/expat:=
+ dev-libs/glib:2
+ >=dev-libs/libxml2-2.9.4-r3:=[icu]
+ dev-libs/nspr:=
+ >=dev-libs/nss-3.26:=
+ >=media-libs/alsa-lib-1.0.19:=
+ media-libs/fontconfig:=
+ >=media-libs/freetype-2.11.0-r1:=
+ system-harfbuzz? ( >=media-libs/harfbuzz-2.9.0:0=[icu(-)] )
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ pulseaudio? ( media-sound/pulseaudio:= )
+ system-ffmpeg? (
+ >=media-video/ffmpeg-4.3:=
+ || (
+ media-video/ffmpeg[-samba]
+ >=net-fs/samba-4.5.10-r1[-debug(-)]
+ )
+ >=media-libs/opus-1.3.1:=
+ )
+ net-misc/curl[ssl]
+ sys-apps/dbus:=
+ sys-apps/pciutils:=
+ virtual/udev
+ x11-libs/cairo:=
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libxkbcommon:=
+ x11-libs/pango:=
+ media-libs/flac:=
+ >=media-libs/libwebp-0.4.0:=
+ sys-libs/zlib:=[minizip]
+ kerberos? ( virtual/krb5 )
+ !headless? (
+ ${COMMON_X_DEPEND}
+ >=app-accessibility/at-spi2-atk-2.26:2
+ >=app-accessibility/at-spi2-core-2.26:2
+ >=dev-libs/atk-2.26
+ x11-libs/gtk+:3[X]
+ wayland? (
+ dev-libs/wayland:=
+ screencast? ( media-video/pipewire:0/0.3 )
+ x11-libs/gtk+:3[wayland,X]
+ x11-libs/libdrm:=
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ x11-misc/xdg-utils
+ virtual/opengl
+ virtual/ttf-fonts
+ selinux? ( sec-policy/selinux-chromium )
+"
+DEPEND="${COMMON_DEPEND}
+"
+# dev-vcs/git - https://bugs.gentoo.org/593476
+BDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ >=app-arch/gzip-1.7
+ dev-lang/perl
+ >=dev-util/gn-0.1807
+ dev-vcs/git
+ >=dev-util/gperf-3.0.3
+ >=dev-util/ninja-1.7.2
+ >=net-libs/nodejs-7.6.0[inspector]
+ sys-apps/hwids[usb(+)]
+ >=sys-devel/bison-2.4.3
+ sys-devel/flex
+ virtual/pkgconfig
+ js-type-check? ( virtual/jre )
+"
+
+# These are intended for ebuild maintainer use to force clang if GCC is broken.
+: ${CHROMIUM_FORCE_CLANG=no}
+: ${CHROMIUM_FORCE_LIBCXX=no}
+
+if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
+ BDEPEND+=" >=sys-devel/clang-12"
+fi
+
+if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ RDEPEND+=" >=sys-libs/libcxx-12"
+ DEPEND+=" >=sys-libs/libcxx-12"
+else
+ COMMON_DEPEND="
+ app-arch/snappy:=
+ dev-libs/libxslt:=
+ >=dev-libs/re2-0.2019.08.01:=
+ >=media-libs/openh264-1.6.0:=
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ "
+ RDEPEND+="${COMMON_DEPEND}"
+ DEPEND+="${COMMON_DEPEND}"
+fi
+
+if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
+ EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
+fi
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+Some web pages may require additional fonts to display properly.
+Try installing some of the following packages if some characters
+are not displayed properly:
+- media-fonts/arphicfonts
+- media-fonts/droid
+- media-fonts/ipamonafont
+- media-fonts/noto
+- media-fonts/ja-ipafonts
+- media-fonts/takao-fonts
+- media-fonts/wqy-microhei
+- media-fonts/wqy-zenhei
+
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
+
+For native file dialogs in KDE, install kde-apps/kdialog.
+
+To make password storage work with your desktop environment you may
+have install one of the supported credentials management applications:
+- app-crypt/libsecret (GNOME)
+- kde-frameworks/kwallet (KDE)
+If you have one of above packages installed, but don't want to use
+them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
+in /etc/chromium/default.
+"
+
+python_check_deps() {
+ has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
+}
+
+pre_build_checks() {
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ local -x CPP="$(tc-getCXX) -E"
+ if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
+ die "At least gcc 9.2 is required"
+ fi
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
+ CPP="${CHOST}-clang++ -E"
+ if ! ver_test "$(clang-major-version)" -ge 12; then
+ die "At least clang 12 is required"
+ fi
+ fi
+ fi
+
+ # Check build requirements, bug #541816 and bug #471810 .
+ CHECKREQS_MEMORY="4G"
+ CHECKREQS_DISK_BUILD="9G"
+ if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
+ if use custom-cflags || use component-build; then
+ CHECKREQS_DISK_BUILD="25G"
+ fi
+ if ! use component-build; then
+ CHECKREQS_MEMORY="16G"
+ fi
+ fi
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+
+ chromium_suid_sandbox_check_kernel_config
+
+ # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
+ if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
+ ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
+ ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
+ fi
+}
+
+src_prepare() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local PATCHES=(
+ "${FILESDIR}/chromium-78-protobuf-RepeatedPtrField-export.patch"
+ "${FILESDIR}/chromium-95-libyuv-aarch64.patch"
+ "${FILESDIR}/chromium-96-compiler.patch"
+ "${FILESDIR}/chromium-96-AppliedTextDecoration-include.patch"
+ "${FILESDIR}/chromium-96-template-friend.patch"
+ "${FILESDIR}/chromium-96-ax_platform-list-init.patch"
+ "${FILESDIR}/chromium-96-coupondb-include.patch"
+
+ "${FILESDIR}/chromium-96-EnumTable-crash.patch"
+ "${FILESDIR}/chromium-93-InkDropHost-crash.patch"
+ "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
+ "${FILESDIR}/chromium-shim_headers.patch"
+ )
+
+ default
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin || die
+ ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
+
+ # adjust python interpreter version
+ sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
+
+ local keeplibs=(
+ base/third_party/cityhash
+ base/third_party/double_conversion
+ base/third_party/dynamic_annotations
+ base/third_party/icu
+ base/third_party/nspr
+ base/third_party/superfasthash
+ base/third_party/symbolize
+ base/third_party/valgrind
+ base/third_party/xdg_mime
+ base/third_party/xdg_user_dirs
+ buildtools/third_party/libc++
+ buildtools/third_party/libc++abi
+ chrome/third_party/mozilla_security_manager
+ courgette/third_party
+ net/third_party/mozilla_security_manager
+ net/third_party/nss
+ net/third_party/quic
+ net/third_party/uri_template
+ third_party/abseil-cpp
+ third_party/angle
+ third_party/angle/src/common/third_party/base
+ third_party/angle/src/common/third_party/smhasher
+ third_party/angle/src/common/third_party/xxhash
+ third_party/angle/src/third_party/libXNVCtrl
+ third_party/angle/src/third_party/trace_event
+ third_party/angle/src/third_party/volk
+ third_party/apple_apsl
+ third_party/axe-core
+ third_party/blink
+ third_party/boringssl
+ third_party/boringssl/src/third_party/fiat
+ third_party/breakpad
+ third_party/breakpad/breakpad/src/third_party/curl
+ third_party/brotli
+ third_party/catapult
+ third_party/catapult/common/py_vulcanize/third_party/rcssmin
+ third_party/catapult/common/py_vulcanize/third_party/rjsmin
+ third_party/catapult/third_party/beautifulsoup4-4.9.3
+ third_party/catapult/third_party/html5lib-1.1
+ third_party/catapult/third_party/polymer
+ third_party/catapult/third_party/six
+ third_party/catapult/tracing/third_party/d3
+ third_party/catapult/tracing/third_party/gl-matrix
+ third_party/catapult/tracing/third_party/jpeg-js
+ third_party/catapult/tracing/third_party/jszip
+ third_party/catapult/tracing/third_party/mannwhitneyu
+ third_party/catapult/tracing/third_party/oboe
+ third_party/catapult/tracing/third_party/pako
+ third_party/ced
+ third_party/cld_3
+ third_party/closure_compiler
+ third_party/crashpad
+ third_party/crashpad/crashpad/third_party/lss
+ third_party/crashpad/crashpad/third_party/zlib
+ third_party/crc32c
+ third_party/cros_system_api
+ third_party/dav1d
+ third_party/dawn
+ third_party/dawn/third_party/khronos
+ third_party/dawn/third_party/tint
+ third_party/depot_tools
+ third_party/devscripts
+ third_party/devtools-frontend
+ third_party/devtools-frontend/src/front_end/third_party/acorn
+ third_party/devtools-frontend/src/front_end/third_party/axe-core
+ third_party/devtools-frontend/src/front_end/third_party/chromium
+ third_party/devtools-frontend/src/front_end/third_party/codemirror
+ third_party/devtools-frontend/src/front_end/third_party/diff
+ third_party/devtools-frontend/src/front_end/third_party/i18n
+ third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
+ third_party/devtools-frontend/src/front_end/third_party/lighthouse
+ third_party/devtools-frontend/src/front_end/third_party/lit-html
+ third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
+ third_party/devtools-frontend/src/front_end/third_party/marked
+ third_party/devtools-frontend/src/front_end/third_party/puppeteer
+ third_party/devtools-frontend/src/front_end/third_party/wasmparser
+ third_party/devtools-frontend/src/test/unittests/front_end/third_party/i18n
+ third_party/devtools-frontend/src/third_party
+ third_party/distributed_point_functions
+ third_party/dom_distiller_js
+ third_party/eigen3
+ third_party/emoji-segmenter
+ third_party/farmhash
+ third_party/fdlibm
+ third_party/fft2d
+ third_party/flatbuffers
+ third_party/freetype
+ third_party/fusejs
+ third_party/highway
+ third_party/libgifcodec
+ third_party/liburlpattern
+ third_party/libzip
+ third_party/gemmlowp
+ third_party/google_input_tools
+ third_party/google_input_tools/third_party/closure_library
+ third_party/google_input_tools/third_party/closure_library/third_party/closure
+ third_party/googletest
+ third_party/hunspell
+ third_party/iccjpeg
+ third_party/inspector_protocol
+ third_party/jinja2
+ third_party/jsoncpp
+ third_party/jstemplate
+ third_party/khronos
+ third_party/leveldatabase
+ third_party/libXNVCtrl
+ third_party/libaddressinput
+ third_party/libaom
+ third_party/libaom/source/libaom/third_party/fastfeat
+ third_party/libaom/source/libaom/third_party/vector
+ third_party/libaom/source/libaom/third_party/x86inc
+ third_party/libavif
+ third_party/libgav1
+ third_party/libjingle
+ third_party/libjxl
+ third_party/libphonenumber
+ third_party/libsecret
+ third_party/libsrtp
+ third_party/libsync
+ third_party/libudev
+ third_party/libva_protected_content
+ third_party/libvpx
+ third_party/libvpx/source/libvpx/third_party/x86inc
+ third_party/libwebm
+ third_party/libx11
+ third_party/libxcb-keysyms
+ third_party/libxml/chromium
+ third_party/libyuv
+ third_party/llvm
+ third_party/lottie
+ third_party/lss
+ third_party/lzma_sdk
+ third_party/mako
+ third_party/maldoca
+ third_party/maldoca/src/third_party/tensorflow_protos
+ third_party/maldoca/src/third_party/zlibwrapper
+ third_party/markupsafe
+ third_party/mesa
+ third_party/metrics_proto
+ third_party/minigbm
+ third_party/modp_b64
+ third_party/nasm
+ third_party/nearby
+ third_party/neon_2_sse
+ third_party/node
+ third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
+ third_party/one_euro_filter
+ third_party/opencv
+ third_party/openscreen
+ third_party/openscreen/src/third_party/mozilla
+ third_party/openscreen/src/third_party/tinycbor/src/src
+ third_party/ots
+ third_party/pdfium
+ third_party/pdfium/third_party/agg23
+ third_party/pdfium/third_party/base
+ third_party/pdfium/third_party/bigint
+ third_party/pdfium/third_party/freetype
+ third_party/pdfium/third_party/lcms
+ third_party/pdfium/third_party/libopenjpeg20
+ third_party/pdfium/third_party/libpng16
+ third_party/pdfium/third_party/libtiff
+ third_party/pdfium/third_party/skia_shared
+ third_party/perfetto
+ third_party/perfetto/protos/third_party/chromium
+ third_party/pffft
+ third_party/ply
+ third_party/polymer
+ third_party/private-join-and-compute
+ third_party/private_membership
+ third_party/protobuf
+ third_party/protobuf/third_party/six
+ third_party/pyjson5
+ third_party/qcms
+ third_party/rnnoise
+ third_party/s2cellid
+ third_party/securemessage
+ third_party/shell-encryption
+ third_party/simplejson
+ third_party/six
+ third_party/skia
+ third_party/skia/include/third_party/skcms
+ third_party/skia/include/third_party/vulkan
+ third_party/skia/third_party/skcms
+ third_party/skia/third_party/vulkan
+ third_party/smhasher
+ third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/astc-encoder
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/marl
+ third_party/swiftshader/third_party/subzero
+ third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
+ third_party/tcmalloc
+ third_party/tensorflow-text
+ third_party/tflite
+ third_party/tflite/src/third_party/eigen3
+ third_party/tflite/src/third_party/fft2d
+ third_party/ruy
+ third_party/ukey2
+ third_party/unrar
+ third_party/usrsctp
+ third_party/utf
+ third_party/vulkan
+ third_party/web-animations-js
+ third_party/webdriver
+ third_party/webgpu-cts
+ third_party/webrtc
+ third_party/webrtc/common_audio/third_party/ooura
+ third_party/webrtc/common_audio/third_party/spl_sqrt_floor
+ third_party/webrtc/modules/third_party/fft
+ third_party/webrtc/modules/third_party/g711
+ third_party/webrtc/modules/third_party/g722
+ third_party/webrtc/rtc_base/third_party/base64
+ third_party/webrtc/rtc_base/third_party/sigslot
+ third_party/widevine
+ third_party/woff2
+ third_party/wuffs
+ third_party/x11proto
+ third_party/xcbproto
+ third_party/zxcvbn-cpp
+ third_party/zlib/google
+ url/third_party/mozilla
+ v8/src/third_party/siphash
+ v8/src/third_party/valgrind
+ v8/src/third_party/utf8-decoder
+ v8/third_party/inspector_protocol
+ v8/third_party/v8
+
+ # gyp -> gn leftovers
+ base/third_party/libevent
+ third_party/speech-dispatcher
+ third_party/usb_ids
+ third_party/xdg-utils
+ )
+ if ! use system-ffmpeg; then
+ keeplibs+=( third_party/ffmpeg third_party/opus )
+ fi
+ if ! use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ if use system-harfbuzz; then
+ keeplibs+=( third_party/harfbuzz-ng/utils )
+ else
+ keeplibs+=( third_party/harfbuzz-ng )
+ fi
+ if use wayland && ! use headless ; then
+ keeplibs+=( third_party/wayland )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ keeplibs+=( third_party/libxml )
+ keeplibs+=( third_party/libxslt )
+ keeplibs+=( third_party/openh264 )
+ keeplibs+=( third_party/re2 )
+ keeplibs+=( third_party/snappy )
+ if use system-icu; then
+ keeplibs+=( third_party/icu )
+ fi
+ fi
+ if use arm64 || use ppc64 ; then
+ keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
+ fi
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ # it has to be done before unbundling.
+ if use ppc64; then
+ pushd third_party/libvpx >/dev/null || die
+ mkdir -p source/config/linux/ppc64 || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+
+ # Remove most bundled libraries. Some are still needed.
+ build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
+
+ if use js-type-check; then
+ ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
+ fi
+
+ # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
+ mkdir -p buildtools/third_party/eu-strip/bin || die
+ ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
+}
+
+src_configure() {
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ local myconf_gn=""
+
+ # Make sure the build system will use the right tools, bug #340795.
+ tc-export AR CC CXX NM
+
+ if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
+ # Force clang since gcc is pretty broken at the moment.
+ CC=${CHOST}-clang
+ CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
+ if tc-is-clang; then
+ myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
+ else
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ die "Compiling with sys-libs/libcxx requires clang."
+ fi
+ myconf_gn+=" is_clang=false"
+ fi
+
+ # Define a custom toolchain for GN
+ myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ if tc-is-cross-compiler; then
+ tc-export BUILD_{AR,CC,CXX,NM}
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
+ else
+ myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ fi
+
+ # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
+ myconf_gn+=" is_debug=false"
+
+ # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
+ # DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
+ myconf_gn+=" dcheck_always_on=$(usex debug true false)"
+ myconf_gn+=" dcheck_is_configurable=$(usex debug true false)"
+
+ # Component build isn't generally intended for use by end users. It's mostly useful
+ # for development and debugging.
+ myconf_gn+=" is_component_build=$(usex component-build true false)"
+
+ # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
+ myconf_gn+=" enable_nacl=false"
+
+ # Use system-provided libraries.
+ # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
+ # TODO: use_system_hunspell (upstream changes needed).
+ # TODO: use_system_protobuf (bug #525560).
+ # TODO: use_system_sqlite (http://crbug.com/22208).
+
+ # libevent: https://bugs.gentoo.org/593458
+ local gn_system_libraries=(
+ flac
+ fontconfig
+ freetype
+ # Need harfbuzz_from_pkgconfig target
+ #harfbuzz-ng
+ libdrm
+ libjpeg
+ libpng
+ libwebp
+ zlib
+ )
+ if use system-ffmpeg; then
+ gn_system_libraries+=( ffmpeg opus )
+ fi
+ if use system-icu; then
+ gn_system_libraries+=( icu )
+ fi
+ if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
+ # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
+ gn_system_libraries+=( libxml )
+ gn_system_libraries+=( libxslt )
+ gn_system_libraries+=( openh264 )
+ gn_system_libraries+=( re2 )
+ gn_system_libraries+=( snappy )
+ fi
+ build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
+
+ # See dependency logic in third_party/BUILD.gn
+ myconf_gn+=" use_system_harfbuzz=$(usex system-harfbuzz true false)"
+
+ # Disable deprecated libgnome-keyring dependency, bug #713012
+ myconf_gn+=" use_gnome_keyring=false"
+
+ # Optional dependencies.
+ myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
+ myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
+ myconf_gn+=" enable_widevine=$(usex widevine true false)"
+ myconf_gn+=" use_cups=$(usex cups true false)"
+ myconf_gn+=" use_kerberos=$(usex kerberos true false)"
+ myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
+ myconf_gn+=" use_vaapi=$(usex vaapi true false)"
+ myconf_gn+=" rtc_use_pipewire=$(usex screencast true false)"
+
+ # TODO: link_pulseaudio=true for GN.
+
+ myconf_gn+=" disable_fieldtrial_testing_config=true"
+
+ # Never use bundled gold binary. Disable gold linker flags for now.
+ # Do not use bundled clang.
+ # Trying to use gold results in linker crash.
+ myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
+
+ # Disable forced lld, bug 641556
+ myconf_gn+=" use_lld=false"
+
+ # Disable pseudolocales, only used for testing
+ myconf_gn+=" enable_pseudolocales=false"
+
+ # Disable code formating of generated files
+ myconf_gn+=" blink_enable_generated_code_formatting=false"
+
+ ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
+ myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
+ myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
+
+ # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
+ # Note: these are for Gentoo use ONLY. For your own distribution,
+ # please get your own set of keys. Feel free to contact chromium@gentoo.org
+ # for more info. The OAuth2 credentials, however, have been left out.
+ # Those OAuth2 credentials have been broken for quite some time anyway.
+ # Instead we apply a patch to use the --oauth2-client-id= and
+ # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
+ # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
+ # Chromium without baked-in values.
+ local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
+ local google_default_client_id="329227923882.apps.googleusercontent.com"
+ local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
+ myconf_gn+=" google_api_key=\"${google_api_key}\""
+ myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
+ myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
+ local myarch="$(tc-arch)"
+
+ # Avoid CFLAGS problems, bug #352457, bug #390147.
+ if ! use custom-cflags; then
+ replace-flags "-Os" "-O2"
+ strip-flags
+
+ # Debug info section overflows without component build
+ # Prevent linker from running out of address space, bug #471810 .
+ if ! use component-build || use x86; then
+ filter-flags "-g*"
+ fi
+
+ # Prevent libvpx build failures. Bug 530248, 544702, 546984.
+ if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
+ filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
+ fi
+ fi
+
+ if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
+ append-flags -stdlib=libc++
+ append-ldflags -stdlib=libc++
+ fi
+
+ if [[ $myarch = amd64 ]] ; then
+ myconf_gn+=" target_cpu=\"x64\""
+ ffmpeg_target_arch=x64
+ elif [[ $myarch = x86 ]] ; then
+ myconf_gn+=" target_cpu=\"x86\""
+ ffmpeg_target_arch=ia32
+
+ # This is normally defined by compiler_cpu_abi in
+ # build/config/compiler/BUILD.gn, but we patch that part out.
+ append-flags -msse2 -mfpmath=sse -mmmx
+ elif [[ $myarch = arm64 ]] ; then
+ myconf_gn+=" target_cpu=\"arm64\""
+ ffmpeg_target_arch=arm64
+ elif [[ $myarch = arm ]] ; then
+ myconf_gn+=" target_cpu=\"arm\""
+ ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
+ elif [[ $myarch = ppc64 ]] ; then
+ myconf_gn+=" target_cpu=\"ppc64\""
+ ffmpeg_target_arch=ppc64
+ else
+ die "Failed to determine target arch, got '$myarch'."
+ fi
+
+ # Make sure that -Werror doesn't get added to CFLAGS by the build system.
+ # Depending on GCC version the warnings are different and we don't want
+ # the build to fail because of that.
+ myconf_gn+=" treat_warnings_as_errors=false"
+
+ # Disable fatal linker warnings, bug 506268.
+ myconf_gn+=" fatal_linker_warnings=false"
+
+ # Bug 491582.
+ export TMPDIR="${WORKDIR}/temp"
+ mkdir -p -m 755 "${TMPDIR}" || die
+
+ # https://bugs.gentoo.org/654216
+ addpredict /dev/dri/ #nowarn
+
+ #if ! use system-ffmpeg; then
+ if false; then
+ local build_ffmpeg_args=""
+ if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
+ build_ffmpeg_args+=" --disable-asm"
+ fi
+
+ # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
+ einfo "Configuring bundled ffmpeg..."
+ pushd third_party/ffmpeg > /dev/null || die
+ chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
+ --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
+ chromium/scripts/copy_config.sh || die
+ chromium/scripts/generate_gn.py || die
+ popd > /dev/null || die
+ fi
+
+ # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
+ append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
+
+ # Disable unknown warning message from clang.
+ tc-is-clang && append-flags -Wno-unknown-warning-option
+
+ # Explicitly disable ICU data file support for system-icu builds.
+ if use system-icu; then
+ myconf_gn+=" icu_use_data_file=false"
+ fi
+
+ # Enable ozone wayland and/or headless support
+ myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
+ myconf_gn+=" ozone_platform_headless=true"
+ myconf_gn+=" ozone_platform_x11=$(usex headless false true)"
+ if use wayland || use headless; then
+ if use headless; then
+ myconf_gn+=" ozone_platform=\"headless\""
+ myconf_gn+=" use_x11=false"
+ else
+ myconf_gn+=" ozone_platform_wayland=true"
+ myconf_gn+=" use_system_libdrm=true"
+ myconf_gn+=" use_system_minigbm=true"
+ myconf_gn+=" use_xkbcommon=true"
+ myconf_gn+=" ozone_platform=\"wayland\""
+ fi
+ else
+ myconf_gn+=" ozone_platform=\"x11\""
+ fi
+
+ # Enable official builds
+ myconf_gn+=" is_official_build=$(usex official true false)"
+ myconf_gn+=" use_thin_lto=false"
+ if use official; then
+ # Allow building against system libraries in official builds
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py || die
+ # Disable CFI: unsupported for GCC, requires clang+lto+lld
+ myconf_gn+=" is_cfi=false"
+ # Disable PGO, because profile data is only compatible with >=clang-11
+ myconf_gn+=" chrome_pgo_phase=0"
+ fi
+
+ einfo "Configuring Chromium..."
+ set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
+ echo "$@"
+ "$@" || die
+}
+
+src_compile() {
+ # Final link uses lots of file descriptors.
+ ulimit -n 2048
+
+ # Calling this here supports resumption via FEATURES=keepwork
+ python_setup
+
+ # Don't inherit PYTHONPATH from environment, bug #789021, #812689
+ local -x PYTHONPATH=
+
+ #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
+
+ # Build mksnapshot and pax-mark it.
+ local x
+ for x in mksnapshot v8_context_snapshot_generator; do
+ if tc-is-cross-compiler; then
+ eninja -C out/Release "host/${x}"
+ pax-mark m "out/Release/host/${x}"
+ else
+ eninja -C out/Release "${x}"
+ pax-mark m "out/Release/${x}"
+ fi
+ done
+
+ # Even though ninja autodetects number of CPUs, we respect
+ # user's options, for debugging with -j 1 or any other reason.
+ eninja -C out/Release chrome chromedriver
+ use suid && eninja -C out/Release chrome_sandbox
+
+ pax-mark m out/Release/chrome
+
+ mv out/Release/chromedriver{.unstripped,} || die
+
+ # Build manpage; bug #684550
+ sed -e 's|@@PACKAGE@@|chromium-browser|g;
+ s|@@MENUNAME@@|Chromium|g;' \
+ chrome/app/resources/manpage.1.in > \
+ out/Release/chromium-browser.1 || die
+
+ # Build desktop file; bug #706786
+ sed -e 's|@@MENUNAME@@|Chromium|g;
+ s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
+ s|@@PACKAGE@@|chromium-browser|g;
+ s|\(^Exec=\)/usr/bin/|\1|g;' \
+ chrome/installer/linux/common/desktop.template > \
+ out/Release/chromium-browser-chromium.desktop || die
+}
+
+src_install() {
+ local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
+ exeinto "${CHROMIUM_HOME}"
+ doexe out/Release/chrome
+
+ if use suid; then
+ newexe out/Release/chrome_sandbox chrome-sandbox
+ fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
+ fi
+
+ doexe out/Release/chromedriver
+ doexe out/Release/chrome_crashpad_handler
+
+ ozone_auto_session () {
+ use wayland && ! use headless && echo true || echo false
+ }
+ local sedargs=( -e
+ "s:/usr/lib/:/usr/$(get_libdir)/:g;
+ s:@@OZONE_AUTO_SESSION@@:$(ozone_auto_session):g"
+ )
+ sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r7.sh" > chromium-launcher.sh || die
+ doexe chromium-launcher.sh
+
+ # It is important that we name the target "chromium-browser",
+ # xdg-utils expect it; bug #355517.
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
+ # keep the old symlink around for consistency
+ dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
+
+ dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
+
+ # Allow users to override command-line options, bug #357629.
+ insinto /etc/chromium
+ newins "${FILESDIR}/chromium.default" "default"
+
+ pushd out/Release/locales > /dev/null || die
+ chromium_remove_language_paks
+ popd
+
+ insinto "${CHROMIUM_HOME}"
+ doins out/Release/*.bin
+ doins out/Release/*.pak
+ (
+ shopt -s nullglob
+ local files=(out/Release/*.so out/Release/*.so.[0-9])
+ [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
+ )
+
+ if ! use system-icu; then
+ doins out/Release/icudtl.dat
+ fi
+
+ doins -r out/Release/locales
+ doins -r out/Release/resources
+ doins -r out/Release/MEIPreload
+
+ if [[ -d out/Release/swiftshader ]]; then
+ insinto "${CHROMIUM_HOME}/swiftshader"
+ doins out/Release/swiftshader/*.so
+ fi
+
+ # Install icons
+ local branding size
+ for size in 16 24 32 48 64 128 256 ; do
+ case ${size} in
+ 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
+ *) branding="chrome/app/theme/chromium" ;;
+ esac
+ newicon -s ${size} "${branding}/product_logo_${size}.png" \
+ chromium-browser.png
+ done
+
+ # Install desktop entry
+ domenu out/Release/chromium-browser-chromium.desktop
+
+ # Install GNOME default application entry (bug #303100).
+ insinto /usr/share/gnome-control-center/default-apps
+ newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
+
+ # Install manpage; bug #684550
+ doman out/Release/chromium-browser.1
+ dosym chromium-browser.1 /usr/share/man/man1/chromium.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ readme.gentoo_print_elog
+
+ if use vaapi; then
+ elog "VA-API is disabled by default at runtime. You have to enable it"
+ elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
+ elog "in /etc/chromium/default."
+ fi
+ if use screencast; then
+ elog "Screencast is disabled by default at runtime. Either enable it"
+ elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
+ elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
+ elog "to CHROMIUM_FLAGS in /etc/chromium/default."
+ fi
+}
diff --git a/www-client/chromium/files/chromium-71-gcc-0.patch b/www-client/chromium/files/chromium-71-gcc-0.patch
new file mode 100644
index 0000000..711b827
--- /dev/null
+++ b/www-client/chromium/files/chromium-71-gcc-0.patch
@@ -0,0 +1,57 @@
+From 65be571f6ac2f7942b4df9e50b24da517f829eec Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@chromium.org>
+Commit-Queue: Raphael Kubo da Costa (CET) <raphael.kubo.da.costa@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/www-client/chromium/files/chromium-73-gcc-0.patch b/www-client/chromium/files/chromium-73-gcc-0.patch
new file mode 100644
index 0000000..5a50700
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-0.patch
@@ -0,0 +1,108 @@
+From 2c3b57cafbbb38c13a519c9d2fda8b65691d9564 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Primiano Tucci <primiano@chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@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/www-client/chromium/files/chromium-73-gcc-1.patch b/www-client/chromium/files/chromium-73-gcc-1.patch
new file mode 100644
index 0000000..c3f8e42
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-1.patch
@@ -0,0 +1,99 @@
+From 130a5ae24a02daba8729ba2216bcaf3dbfacea69 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@chromium.org>
+Reviewed-by: Frank Liberato <liberato@chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@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/www-client/chromium/files/chromium-73-gcc-2.patch b/www-client/chromium/files/chromium-73-gcc-2.patch
new file mode 100644
index 0000000..9d1f05a
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-2.patch
@@ -0,0 +1,51 @@
+From a5ba6f9bb7665040045dc0f8087407096630ad7b Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com>
+Reviewed-by: Peter Kasting <pkasting@chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@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/www-client/chromium/files/chromium-73-gcc-3.patch b/www-client/chromium/files/chromium-73-gcc-3.patch
new file mode 100644
index 0000000..9cc6cf2
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-3.patch
@@ -0,0 +1,69 @@
+From c33e832cc145c696d2157796c7640e659740dafa Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com>
+Reviewed-by: Ryan Hamilton <rch@chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@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/www-client/chromium/files/chromium-73-gcc-4.patch b/www-client/chromium/files/chromium-73-gcc-4.patch
new file mode 100644
index 0000000..df7d630
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-4.patch
@@ -0,0 +1,59 @@
+From bdd76190e54e6a0e11343dd19e4bf1d06956fa48 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com>
+Commit-Queue: Kentaro Hara <haraken@chromium.org>
+Reviewed-by: Kentaro Hara <haraken@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/www-client/chromium/files/chromium-73-gcc-5.patch b/www-client/chromium/files/chromium-73-gcc-5.patch
new file mode 100644
index 0000000..033861e
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-5.patch
@@ -0,0 +1,65 @@
+From 78b0f0dfa9e6f3c37b71102c01def92f1ab8c330 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Reviewed-by: mark a. foltz <mfoltz@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/www-client/chromium/files/chromium-73-gcc-6.patch b/www-client/chromium/files/chromium-73-gcc-6.patch
new file mode 100644
index 0000000..3cd72ab
--- /dev/null
+++ b/www-client/chromium/files/chromium-73-gcc-6.patch
@@ -0,0 +1,88 @@
+From cf4c534f04c223f8a9d65407852e2a531a6d7fb6 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com>
+Commit-Queue: Alan Cutter <alancutter@chromium.org>
+Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
+Reviewed-by: Alan Cutter <alancutter@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/frame/app_menu_button_observer.h"
+ #include "ui/views/controls/scroll_view.h"
+@@ -16,7 +17,6 @@ class AppMenu;
+ class AppMenuButton;
+ class Browser;
+ class BrowserActionsContainer;
+-class ToolbarActionsBar;
+
+ namespace views {
+ class MenuItemView;
diff --git a/www-client/chromium/files/chromium-74-gcc.patch b/www-client/chromium/files/chromium-74-gcc.patch
new file mode 100644
index 0000000..d4829ff
--- /dev/null
+++ b/www-client/chromium/files/chromium-74-gcc.patch
@@ -0,0 +1,25 @@
+diff --git a/third_party/dav1d/BUILD.gn b/third_party/dav1d/BUILD.gn
+index aedc658c3..4baeac7df 100644
+--- a/third_party/dav1d/BUILD.gn
++++ b/third_party/dav1d/BUILD.gn
+@@ -31,9 +31,9 @@ if (current_cpu == "x86" || current_cpu == "x64") {
+ } else {
+ needs_stack_alignment = true
+ if (current_cpu == "x86") {
+- stack_alignment = 16
++ stack_alignment = 4
+ } else if (current_cpu == "x64") {
+- stack_alignment = 32
++ stack_alignment = 5
+ }
+ }
+ } else {
+@@ -73,7 +73,7 @@ dav1d_copts = [
+ if (!is_win) {
+ dav1d_copts += [ "-std=c99" ]
+ if (needs_stack_alignment) {
+- dav1d_copts += [ "-mstack-alignment=$stack_alignment" ]
++ dav1d_copts += [ "-mpreferred-stack-boundary=$stack_alignment" ]
+ }
+ }
+
diff --git a/www-client/chromium/files/chromium-75-vaapi.patch b/www-client/chromium/files/chromium-75-vaapi.patch
new file mode 100644
index 0000000..7e08455
--- /dev/null
+++ b/www-client/chromium/files/chromium-75-vaapi.patch
@@ -0,0 +1,254 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index cb04c939a..dc1a995a6 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1434,7 +1434,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ #if defined(OS_WIN)
+@@ -1980,12 +1980,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // ENABLE_ISOLATED_XR_SERVICE
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
+ flag_descriptions::kV8CacheOptionsDescription, kOsAll,
+ MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
+@@ -3696,10 +3696,10 @@ const FeatureEntry kFeatureEntries[] = {
+ "AutofillDropdownLayout")},
+ #endif // OS_ANDROID
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"enable-vaapi-jpeg-image-decode-acceleration",
+ flag_descriptions::kVaapiJpegImageDecodeAccelerationName,
+- flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS,
++ flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS | kOsLinux,
+ FEATURE_VALUE_TYPE(features::kVaapiJpegImageDecodeAcceleration)},
+ #endif
+
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 7457414f6..5c84e90f6 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -2991,13 +2991,22 @@ const char kMacViewsTaskManagerDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID)
++
++#if defined(OS_CHROMEOS)
+
+ const char kAppServiceAshName[] = "App Service Ash";
+ const char kAppServiceAshDescription[] =
+@@ -3437,12 +3446,6 @@ const char kUserActivityPredictionMlServiceName[] =
+ const char kUserActivityPredictionMlServiceDescription[] =
+ "Uses the new ML Service model for user activity prediction (Smart Dim).";
+
+-const char kVaapiJpegImageDecodeAccelerationName[] =
+- "VA-API JPEG decode acceleration for images";
+-const char kVaapiJpegImageDecodeAccelerationDescription[] =
+- "Enable or disable decode acceleration of JPEG images (as opposed to camera"
+- " captures) using the VA-API.";
+-
+ const char kVideoPlayerChromecastSupportName[] =
+ "Experimental Chromecast support for Video Player";
+ const char kVideoPlayerChromecastSupportDescription[] =
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index 11e45a0ac..d7cbf8394 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1779,11 +1779,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
+ extern const char kAppServiceAshName[];
+ extern const char kAppServiceAshDescription[];
+
+@@ -2059,9 +2065,6 @@ extern const char kUseMonitorColorSpaceDescription[];
+ extern const char kUserActivityPredictionMlServiceName[];
+ extern const char kUserActivityPredictionMlServiceDescription[];
+
+-extern const char kVaapiJpegImageDecodeAccelerationName[];
+-extern const char kVaapiJpegImageDecodeAccelerationDescription[];
+-
+ extern const char kVideoPlayerChromecastSupportName[];
+ extern const char kVideoPlayerChromecastSupportDescription[];
+
+diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc
+index 284d0167d..87d5e14c5 100644
+--- a/components/viz/service/main/viz_main_impl.cc
++++ b/components/viz/service/main/viz_main_impl.cc
+@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() {
+ // It should be possible to use |main_task_runner_| for doing IO tasks.
+ base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0);
+ thread_options.priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // TODO(reveman): Remove this in favor of setting it explicitly for each
+ // type of process.
+ thread_options.priority = base::ThreadPriority::DISPLAY;
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 2b1165264..fec963bd9 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -127,4 +128,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
+index a838f0ccf..4c891fb92 100644
+--- a/content/gpu/gpu_main.cc
++++ b/content/gpu/gpu_main.cc
+@@ -288,7 +288,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+
+ base::PlatformThread::SetName("CrGpuMain");
+
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // Set thread priority before sandbox initialization.
+ base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY);
+ #endif
+@@ -321,7 +321,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+ GetContentClient()->SetGpuInfo(gpu_init->gpu_info());
+
+ base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ io_thread_priority = base::ThreadPriority::DISPLAY;
+ #endif
+
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index d4c3b4364..935fdeb86 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -369,17 +369,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index b3477148d..477caecdb 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -517,7 +517,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeJpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
+index 81c1e4fca..81996bc56 100644
+--- a/media/filters/BUILD.gn
++++ b/media/filters/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/jumbo.gni")
+ import("//media/media_options.gni")
+ import("//third_party/libaom/options.gni")
++import("//media/gpu/args.gni")
+
+ jumbo_source_set("filters") {
+ # Do not expand the visibility here without double-checking with OWNERS, this
+@@ -212,7 +213,7 @@ jumbo_source_set("filters") {
+ deps += [ "//media/base/android" ]
+ }
+
+- if (current_cpu != "arm" && is_linux) {
++ if (use_vaapi && is_linux) {
+ sources += [
+ "h264_bitstream_buffer.cc",
+ "h264_bitstream_buffer.h",
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index b1750d527..cc1ad45af 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -512,6 +512,13 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
++
+ if (use_v4l2_codec || use_vaapi) {
+ test("jpeg_encode_accelerator_unittest") {
+ deps = [
+@@ -582,6 +589,7 @@ if (is_chromeos || is_linux) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
diff --git a/www-client/chromium/files/chromium-76-arm64-skia.patch b/www-client/chromium/files/chromium-76-arm64-skia.patch
new file mode 100644
index 0000000..8a44235
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-arm64-skia.patch
@@ -0,0 +1,41 @@
+From 7aacb0b30a86936aedd1308708d1a51d951197f2 Mon Sep 17 00:00:00 2001
+From: Mike Klein <mtklein@google.com>
+Date: Tue, 02 Jul 2019 13:23:06 -0500
+Subject: [PATCH] fix GCC arm64 builds
+
+These two guards are checking if we're building for aarch64 and thus
+have F16 conversion instructions, but weren't checking if we want to use
+them (if we have them _and_ we're being compiled by Clang). At head
+we're trying to pass a 2-byte uint16_t to a function expecting an 8-byte
+uint16x4_t, etc.
+
+Change-Id: I21f6cd2100ec81ccdd47c4ec0575107624cd7c5a
+Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225257
+Reviewed-by: Herb Derby <herb@google.com>
+Commit-Queue: Mike Klein <mtklein@google.com>
+---
+
+diff --git a/third_party/skia/src/opts/SkRasterPipeline_opts.h b/third_party/skia/src/opts/SkRasterPipeline_opts.h
+index 0eae9fe..e05f36c 100644
+--- a/third_party/skia/src/opts/SkRasterPipeline_opts.h
++++ b/third_party/skia/src/opts/SkRasterPipeline_opts.h
+@@ -972,7 +972,8 @@
+ }
+
+ 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(SK_CPU_ARM64) \
++ && !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)
+@@ -992,7 +993,8 @@
+ }
+
+ 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(SK_CPU_ARM64) \
++ && !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/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch b/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch
new file mode 100644
index 0000000..587abf3
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-ambiguous-nodestructor.patch
@@ -0,0 +1,39 @@
+From 52b5ceac95b67491b1c71f0ef9a32b778bbbaa2e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@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/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch b/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch
new file mode 100644
index 0000000..26bba05
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-blink-constexpr.patch
@@ -0,0 +1,32 @@
+From cf6d6b40d711fce93a24a2cf517fa3becdbae8bb Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@chromium.org>
+Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@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/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch b/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch
new file mode 100644
index 0000000..bae3ede
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-blink-namespace1.patch
@@ -0,0 +1,91 @@
+From c6afbd59c997c2b64f11abdd1eaef71ae8ea2ddc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 07 Jun 2019 18:11:15 +0000
+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
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645223
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Reviewed-by: Luna Lu <loonybear@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#667228}
+---
+
+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 f1c9594..bae91a1 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
+@@ -323,6 +323,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..8aa7323 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,10 @@
+ const FeatureNameMap& feature_names,
+ ExecutionContext* execution_context = nullptr);
+
++ // Used for LLVM fuzzer test
++ 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..1455636 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
+@@ -13,19 +13,12 @@
+ #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
+ #include "third_party/blink/renderer/platform/wtf/vector.h"
+
+-void ParseValueForFuzzer(blink::mojom::PolicyValueType feature_type,
+- const WTF::String& value_string) {
+- bool ok;
+- blink::FeaturePolicyParser::ParseValueForType(feature_type, value_string,
+- &ok);
+-}
+-
+ 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/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch b/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch
new file mode 100644
index 0000000..1d4b90f
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-blink-namespace2.patch
@@ -0,0 +1,97 @@
+From dcb55fb8f18abe5f43d260aa67b14b2dc996f992 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@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/www-client/chromium/files/chromium-76-gcc-gl-init.patch b/www-client/chromium/files/chromium-76-gcc-gl-init.patch
new file mode 100644
index 0000000..3bf394f
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-gl-init.patch
@@ -0,0 +1,33 @@
+From 7dc76c8d9f4cfbce7cf11424120aa6f6094916dc Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@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/www-client/chromium/files/chromium-76-gcc-include.patch b/www-client/chromium/files/chromium-76-gcc-include.patch
new file mode 100644
index 0000000..adc7f3a
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-include.patch
@@ -0,0 +1,10 @@
+--- a/chrome/browser/themes/theme_service.h 2019-06-13 18:56:30.000000000 -0000
++++ b/chrome/browser/themes/theme_service.h 2019-06-17 08:50:57.714289399 -0000
+@@ -26,6 +26,7 @@
+ #include "extensions/common/extension_id.h"
+ #include "ui/base/theme_provider.h"
+ #include "ui/native_theme/native_theme_observer.h"
++#include "ui/native_theme/native_theme.h"
+
+ class BrowserThemePack;
+ class CustomThemeSupplier;
diff --git a/www-client/chromium/files/chromium-76-gcc-noexcept.patch b/www-client/chromium/files/chromium-76-gcc-noexcept.patch
new file mode 100644
index 0000000..2a7f4b3
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-noexcept.patch
@@ -0,0 +1,347 @@
+From 84c91abab33966f928497c24db4a39f436d2dca8 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@lge.com>
+Reviewed-by: Daniel Cheng <dcheng@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.
+
+From bdc24128b75008743d819e298557a53205706e7c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Sun, 09 Jun 2019 11:22:25 +0000
+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
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645296
+Reviewed-by: Roger Tawa <rogerta@chromium.org>
+Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#667484}
+---
+
+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
+
+From 9aae68736bc7eb7172d0d0c978ecb6d1f75c7b30 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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_; }
+
+
+From 41d954dec0669c9a85730c0bde7df7ba7a0ff43e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Thu, 06 Jun 2019 15:30:49 +0000
+Subject: [PATCH] Fix AutocompleteMatch move constructor/assign operator noexcept
+
+For AutocompleteMatch to declare noexcept them, all the contained
+properties need to be noexcept too. This is required at least
+for SuggestionAnswer, because base::string16 will make default
+calculated signature of the move operator noexcept(false).
+
+To avoid this issue we explicitely declare them on SuggestionAnswer,
+and its member classes TextField and ImageLine.
+
+Bug: 819294
+Change-Id: I8714f2c6352a3292bdebdc3aed9790270e49c580
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1554669
+Reviewed-by: Kevin Bailey <krb@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#666714}
+---
+
+diff --git a/components/omnibox/browser/suggestion_answer.cc b/components/omnibox/browser/suggestion_answer.cc
+index 151e55f..a0c9049 100644
+--- a/components/omnibox/browser/suggestion_answer.cc
++++ b/components/omnibox/browser/suggestion_answer.cc
+@@ -55,6 +55,12 @@
+
+ SuggestionAnswer::TextField::TextField() = default;
+ SuggestionAnswer::TextField::~TextField() = default;
++SuggestionAnswer::TextField::TextField(const TextField&) = default;
++SuggestionAnswer::TextField::TextField(TextField&&) noexcept = default;
++SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
++ const TextField&) = default;
++SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
++ TextField&&) noexcept = default;
+
+ // static
+ bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
+@@ -93,9 +99,12 @@
+ SuggestionAnswer::ImageLine::ImageLine()
+ : num_text_lines_(1) {}
+ SuggestionAnswer::ImageLine::ImageLine(const ImageLine& line) = default;
++SuggestionAnswer::ImageLine::ImageLine(ImageLine&&) noexcept = default;
+
+ SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
+ const ImageLine& line) = default;
++SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
++ ImageLine&&) noexcept = default;
+
+ SuggestionAnswer::ImageLine::~ImageLine() {}
+
+@@ -251,9 +260,14 @@
+
+ SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer) = default;
+
++SuggestionAnswer::SuggestionAnswer(SuggestionAnswer&&) noexcept = default;
++
+ SuggestionAnswer& SuggestionAnswer::operator=(const SuggestionAnswer& answer) =
+ default;
+
++SuggestionAnswer& SuggestionAnswer::operator=(SuggestionAnswer&&) noexcept =
++ default;
++
+ SuggestionAnswer::~SuggestionAnswer() = default;
+
+ // static
+diff --git a/components/omnibox/browser/suggestion_answer.h b/components/omnibox/browser/suggestion_answer.h
+index 31be937..2840ace 100644
+--- a/components/omnibox/browser/suggestion_answer.h
++++ b/components/omnibox/browser/suggestion_answer.h
+@@ -125,6 +125,10 @@
+ public:
+ TextField();
+ ~TextField();
++ TextField(const TextField&);
++ TextField(TextField&&) noexcept;
++ TextField& operator=(const TextField&);
++ TextField& operator=(TextField&&) noexcept;
+
+ // Parses |field_json| dictionary and populates |text_field| with the
+ // contents. If any of the required elements is missing, returns false and
+@@ -162,7 +166,9 @@
+ public:
+ ImageLine();
+ explicit ImageLine(const ImageLine& line);
++ ImageLine(ImageLine&&) noexcept;
+ ImageLine& operator=(const ImageLine& line);
++ ImageLine& operator=(ImageLine&&) noexcept;
+ ~ImageLine();
+
+ // Parses dictionary |line_json| and populates |image_line| with the
+@@ -213,7 +219,9 @@
+
+ SuggestionAnswer();
+ SuggestionAnswer(const SuggestionAnswer& answer);
++ SuggestionAnswer(SuggestionAnswer&&) noexcept;
+ SuggestionAnswer& operator=(const SuggestionAnswer& answer);
++ SuggestionAnswer& operator=(SuggestionAnswer&&) noexcept;
+ ~SuggestionAnswer();
+
+ // Parses dictionary |answer_json| and fills a SuggestionAnswer containing the
+
+From 9f99af41cae3cfff3bcdcc856c1539801c9b745b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 07 Jun 2019 18:59:59 +0000
+Subject: [PATCH] DisjoingRangeLockManager::Lock move constructor/assign operator cannot be noexcept
+
+They depend on LockRequest, that depends on WeakPtr, none of them noexcept.
+
+Bug: 819294
+Change-Id: I04ec15901ca627358df727540597f21f135c129b
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1646252
+Reviewed-by: Joshua Bell <jsbell@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#667260}
+---
+
+diff --git a/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc b/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc
+index 478a5c9..a18c6cd 100644
+--- a/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc
++++ b/content/browser/indexed_db/scopes/disjoint_range_lock_manager.cc
+@@ -19,14 +19,13 @@
+ : requested_type(type),
+ locks_holder(std::move(locks_holder)),
+ acquired_callback(std::move(acquired_callback)) {}
+-DisjointRangeLockManager::LockRequest::LockRequest(LockRequest&&) noexcept =
+- default;
++DisjointRangeLockManager::LockRequest::LockRequest(LockRequest&&) = default;
+ DisjointRangeLockManager::LockRequest::~LockRequest() = default;
+ DisjointRangeLockManager::Lock::Lock() = default;
+-DisjointRangeLockManager::Lock::Lock(Lock&&) noexcept = default;
++DisjointRangeLockManager::Lock::Lock(Lock&&) = default;
+ DisjointRangeLockManager::Lock::~Lock() = default;
+ DisjointRangeLockManager::Lock& DisjointRangeLockManager::Lock::operator=(
+- DisjointRangeLockManager::Lock&&) noexcept = default;
++ DisjointRangeLockManager::Lock&&) = default;
+
+ DisjointRangeLockManager::DisjointRangeLockManager(int level_count)
+ : task_runner_(base::SequencedTaskRunnerHandle::Get()),
diff --git a/www-client/chromium/files/chromium-76-gcc-private.patch b/www-client/chromium/files/chromium-76-gcc-private.patch
new file mode 100644
index 0000000..bc0ed98
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-private.patch
@@ -0,0 +1,63 @@
+From 502e6e42633d2571c8236c8649b031fe9915eb5b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@chromium.org>
+Reviewed-by: Eric Roman <eroman@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/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch b/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch
new file mode 100644
index 0000000..3d34e43
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-pure-virtual.patch
@@ -0,0 +1,50 @@
+From cdf306db81efaaaa954487585d5a5a16205a5ebd Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Wed, 05 Jun 2019 14:45:06 +0000
+Subject: [PATCH] Avoid pure virtual crash destroying RenderProcessUserData
+
+When RenderProcessUserData is destroyed from the destructor of
+RenderProcessHostImpl, it is done in the destructor of RenderProcessHost.
+At this point RemoveObserver override is already freed, so RenderProcessHost
+is pure virtual. This crash happens at least building with GCC:
+
+ at /usr/include/c++/8/ext/new_allocator.h:140
+ (this=0x7fffffffcb50, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/stl_tree.h:964
+
+We need to destroy RenderProcessUserData before that happens. To do that
+we can just override RenderProcessHostDestroyed.
+
+Bug: 910288
+Change-Id: I38107b178829b0cb7494f5333b765e5b087d82cd
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645366
+Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
+Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#666279}
+---
+
+diff --git a/chrome/browser/performance_manager/render_process_user_data.cc b/chrome/browser/performance_manager/render_process_user_data.cc
+index 2e2c199..ef6e1fb 100644
+--- a/chrome/browser/performance_manager/render_process_user_data.cc
++++ b/chrome/browser/performance_manager/render_process_user_data.cc
+@@ -116,4 +116,9 @@
+ base::Unretained(process_node_.get()), info.exit_code));
+ }
+
++void RenderProcessUserData::RenderProcessHostDestroyed(
++ content::RenderProcessHost* host) {
++ host->RemoveUserData(kRenderProcessUserDataKey);
++}
++
+ } // namespace performance_manager
+diff --git a/chrome/browser/performance_manager/render_process_user_data.h b/chrome/browser/performance_manager/render_process_user_data.h
+index ac74b1d..f3b4d16 100644
+--- a/chrome/browser/performance_manager/render_process_user_data.h
++++ b/chrome/browser/performance_manager/render_process_user_data.h
+@@ -47,6 +47,7 @@
+ 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/www-client/chromium/files/chromium-76-gcc-uint32.patch b/www-client/chromium/files/chromium-76-gcc-uint32.patch
new file mode 100644
index 0000000..5e392e6
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-uint32.patch
@@ -0,0 +1,30 @@
+From 53bb5a463ee956c70230eaa5450022185d0ddc3c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@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/www-client/chromium/files/chromium-76-gcc-vulkan.patch b/www-client/chromium/files/chromium-76-gcc-vulkan.patch
new file mode 100644
index 0000000..cf93bce
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-gcc-vulkan.patch
@@ -0,0 +1,115 @@
+From fdb3bb1f8c41d044a5b0cb80257a26dd3c8f83a3 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@lge.com>
+Reviewed-by: Antoine Labour <piman@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, &region);
+ }
diff --git a/www-client/chromium/files/chromium-76-quiche.patch b/www-client/chromium/files/chromium-76-quiche.patch
new file mode 100644
index 0000000..f3aa42a
--- /dev/null
+++ b/www-client/chromium/files/chromium-76-quiche.patch
@@ -0,0 +1,239 @@
+From 9424add9d73432a794b7944790253213cce6dcb8 Mon Sep 17 00:00:00 2001
+From: danzh <danzh@google.com>
+Date: Thu, 06 Jun 2019 14:04:36 -0700
+Subject: [PATCH] gfe-relnote: (n/a) code cleanup. Fix envoy compile errors.
+
+Add #include header for std library.
+Reference TransportParameters when using its enum TransportParameterId.
+
+PiperOrigin-RevId: 251922363
+Change-Id: Iba38660e5adc3069e377829acec44267658b11c6
+---
+
+diff --git a/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc b/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+index ee0ebf0..e5df9fe 100644
+--- a/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
++++ b/net/third_party/quiche/src/quic/core/crypto/transport_parameters.cc
+@@ -62,37 +62,37 @@
+ 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 @@
+ CBB original_connection_id_param;
+ if (!in.original_connection_id.IsEmpty()) {
+ DCHECK_EQ(Perspective::IS_SERVER, in.perspective);
+- if (!CBB_add_u16(&params, kOriginalConnectionId) ||
++ if (!CBB_add_u16(&params, TransportParameters::kOriginalConnectionId) ||
+ !CBB_add_u16_length_prefixed(&params, &original_connection_id_param) ||
+ !CBB_add_bytes(
+ &original_connection_id_param,
+@@ -412,7 +412,7 @@
+ 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(&params, kStatelessResetToken) ||
++ if (!CBB_add_u16(&params, TransportParameters::kStatelessResetToken) ||
+ !CBB_add_u16_length_prefixed(&params, &stateless_reset_token_param) ||
+ !CBB_add_bytes(&stateless_reset_token_param,
+ in.stateless_reset_token.data(),
+@@ -438,7 +438,7 @@
+
+ // disable_migration
+ if (in.disable_migration) {
+- if (!CBB_add_u16(&params, kDisableMigration) ||
++ if (!CBB_add_u16(&params, TransportParameters::kDisableMigration) ||
+ !CBB_add_u16(&params, 0u)) { // 0 is the length of this parameter.
+ QUIC_BUG << "Failed to write disable_migration for " << in;
+ return false;
+@@ -458,7 +458,7 @@
+ QUIC_BUG << "Bad lengths " << *in.preferred_address;
+ return false;
+ }
+- if (!CBB_add_u16(&params, kPreferredAddress) ||
++ if (!CBB_add_u16(&params, TransportParameters::kPreferredAddress) ||
+ !CBB_add_u16_length_prefixed(&params, &preferred_address_params) ||
+ !CBB_add_bytes(
+ &preferred_address_params,
+@@ -491,7 +491,7 @@
+ if (in.google_quic_params) {
+ const QuicData& serialized_google_quic_params =
+ in.google_quic_params->GetSerialized();
+- if (!CBB_add_u16(&params, kGoogleQuicParam) ||
++ if (!CBB_add_u16(&params, TransportParameters::kGoogleQuicParam) ||
+ !CBB_add_u16_length_prefixed(&params, &google_quic_params) ||
+ !CBB_add_bytes(&google_quic_params,
+ reinterpret_cast<const uint8_t*>(
+@@ -505,7 +505,7 @@
+
+ // Google-specific version extension.
+ CBB google_version_params;
+- if (!CBB_add_u16(&params, kGoogleQuicVersion) ||
++ if (!CBB_add_u16(&params, TransportParameters::kGoogleQuicVersion) ||
+ !CBB_add_u16_length_prefixed(&params, &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 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 @@
+ 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 @@
+ 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 @@
+ }
+ 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 @@
+ 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 @@
+ 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 --git a/quic/core/quic_socket_address_coder.cc b/quic/core/quic_socket_address_coder.cc
+index 2527fc9..b26103d 100644
+--- a/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
++++ b/net/third_party/quiche/src/quic/core/quic_socket_address_coder.cc
+@@ -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/www-client/chromium/files/chromium-77-blink-include.patch b/www-client/chromium/files/chromium-77-blink-include.patch
new file mode 100644
index 0000000..3ac1770
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-blink-include.patch
@@ -0,0 +1,28 @@
+From 5baf7df7f4c5971dab552897eeef94b194650ce5 Mon Sep 17 00:00:00 2001
+From: Dave Tapuska <dtapuska@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@chromium.org>
+Reviewed-by: Mostyn Bramley-Moore <mostynb@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/www-client/chromium/files/chromium-77-clang.patch b/www-client/chromium/files/chromium-77-clang.patch
new file mode 100644
index 0000000..a57b5a4
--- /dev/null
+++ b/www-client/chromium/files/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/www-client/chromium/files/chromium-77-fix-gn-gen.patch b/www-client/chromium/files/chromium-77-fix-gn-gen.patch
new file mode 100644
index 0000000..2c5f128
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-fix-gn-gen.patch
@@ -0,0 +1,11 @@
+--- a/third_party/blink/tools/BUILD.gn
++++ b/third_party/blink/tools/BUILD.gn
+@@ -11,7 +11,7 @@ action("build_wpt_metadata") {
+ rebase_path("$root_out_dir/wpt_expectations_metadata"),
+ ]
+ outputs = [
+- "$root_out_dir/wpt_expectations_metadata/",
++ "$root_out_dir/wpt_expectations_metadata",
+ ]
+ data = [
+ # Include the blinkpy tools to access expectations data
diff --git a/www-client/chromium/files/chromium-77-gcc-abstract.patch b/www-client/chromium/files/chromium-77-gcc-abstract.patch
new file mode 100644
index 0000000..6d77299
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-gcc-abstract.patch
@@ -0,0 +1,61 @@
+From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@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@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@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/www-client/chromium/files/chromium-77-gcc-include.patch b/www-client/chromium/files/chromium-77-gcc-include.patch
new file mode 100644
index 0000000..f464039
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-gcc-include.patch
@@ -0,0 +1,56 @@
+From 8c747a9c14ed4905f60f6680e2e09e33ea34163e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 26 Jul 2019 16:18:17 +0000
+Subject: [PATCH] IWYU: include <memory> in one_euro_filter.h as it uses std::unique_ptr
+
+Bug: 819294
+Change-Id: Ie1530f7046b0c8eb76e26adca530fa57c67ed876
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1720637
+Reviewed-by: Ella Ge <eirage@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#681321}
+---
+
+diff --git a/third_party/one_euro_filter/src/one_euro_filter.h b/third_party/one_euro_filter/src/one_euro_filter.h
+index 7f8d15b..a8cd0ab 100644
+--- a/third_party/one_euro_filter/src/one_euro_filter.h
++++ b/third_party/one_euro_filter/src/one_euro_filter.h
+@@ -1,6 +1,8 @@
+ #ifndef ONE_EURO_ONE_EURO_FILTER_H_
+ #define ONE_EURO_ONE_EURO_FILTER_H_
+
++#include <memory>
++
+ #include "low_pass_filter.h"
+
+ namespace one_euro_filter {
+
+From 258f5f182f8dd72f727af26e614794c67a5996e6 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jose.dapena@lge.com>
+Date: Fri, 26 Jul 2019 15:17:54 +0000
+Subject: [PATCH] IWYU: ScopedObserver of TabStripModel requires it to be included
+
+Build with GCC and libstdc++ is failing in files using tab_sharing_ui.h
+as it has a ScopedObserver of a TabStripModel without including it
+in advance.
+
+Bug: 819294
+Change-Id: I4b12073484f65ad2bb873119daa748245296d282
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713526
+Reviewed-by: Guido Urdaneta <guidou@chromium.org>
+Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
+Cr-Commit-Position: refs/heads/master@{#681290}
+---
+
+diff --git a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
+index 6d931129..147868f 100644
+--- a/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
++++ b/chrome/browser/ui/tab_sharing/tab_sharing_ui.h
+@@ -14,6 +14,7 @@
+ #include "base/strings/string16.h"
+ #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
+ #include "chrome/browser/ui/browser_list_observer.h"
++#include "chrome/browser/ui/tabs/tab_strip_model.h"
+ #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
+ #include "components/infobars/core/infobar_manager.h"
+ #include "content/public/browser/desktop_media_id.h"
diff --git a/www-client/chromium/files/chromium-77-std-string.patch b/www-client/chromium/files/chromium-77-std-string.patch
new file mode 100644
index 0000000..f921f1a
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-std-string.patch
@@ -0,0 +1,130 @@
+From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
+From: Jeremy Roman <jbroman@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@chromium.org>
+Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
+Commit-Queue: Jeremy Roman <jbroman@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/www-client/chromium/files/chromium-77-system-hb.patch b/www-client/chromium/files/chromium-77-system-hb.patch
new file mode 100644
index 0000000..9cea0fa
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-system-hb.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
+index 37d8e33..6610cc6 100644
+--- a/third_party/harfbuzz-ng/BUILD.gn
++++ b/third_party/harfbuzz-ng/BUILD.gn
+@@ -16,7 +16,7 @@ if (use_system_harfbuzz) {
+ "//third_party:freetype_harfbuzz",
+ "//third_party/freetype:freetype_source",
+ ]
+- packages = [ "harfbuzz" ]
++ packages = [ "harfbuzz", "harfbuzz-subset" ]
+ }
+ } else {
+ config("harfbuzz_config") {
diff --git a/www-client/chromium/files/chromium-77-system-icu.patch b/www-client/chromium/files/chromium-77-system-icu.patch
new file mode 100644
index 0000000..1f848d7
--- /dev/null
+++ b/www-client/chromium/files/chromium-77-system-icu.patch
@@ -0,0 +1,20 @@
+diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
+index 4450e40..9ca36dd 100644
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -96,6 +96,7 @@ shim_headers("icui18n_shim") {
+ "unicode/fpositer.h",
+ "unicode/gender.h",
+ "unicode/gregocal.h",
++ "unicode/listformatter.h",
+ "unicode/measfmt.h",
+ "unicode/measunit.h",
+ "unicode/measure.h",
+@@ -178,7 +179,6 @@ shim_headers("icuuc_shim") {
+ "unicode/icudataver.h",
+ "unicode/icuplug.h",
+ "unicode/idna.h",
+- "unicode/listformatter.h",
+ "unicode/localpointer.h",
+ "unicode/locdspnm.h",
+ "unicode/locid.h",
diff --git a/www-client/chromium/files/chromium-78-include.patch b/www-client/chromium/files/chromium-78-include.patch
new file mode 100644
index 0000000..a0b77c4
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-include.patch
@@ -0,0 +1,13 @@
+diff --git a/components/password_manager/core/browser/leak_detection/encryption_utils.cc b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
+index 31a7116..53eb464 100644
+--- a/components/password_manager/core/browser/leak_detection/encryption_utils.cc
++++ b/components/password_manager/core/browser/leak_detection/encryption_utils.cc
+@@ -13,6 +13,8 @@
+ #include "crypto/sha2.h"
+ #include "third_party/boringssl/src/include/openssl/evp.h"
+
++#include <climits>
++
+ namespace password_manager {
+
+ namespace {
diff --git a/www-client/chromium/files/chromium-78-protobuf-RepeatedPtrField-export.patch b/www-client/chromium/files/chromium-78-protobuf-RepeatedPtrField-export.patch
new file mode 100644
index 0000000..ddb9e80
--- /dev/null
+++ b/www-client/chromium/files/chromium-78-protobuf-RepeatedPtrField-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/www-client/chromium/files/chromium-79-gcc-protobuf-alignas.patch b/www-client/chromium/files/chromium-79-gcc-protobuf-alignas.patch
new file mode 100644
index 0000000..20180c4
--- /dev/null
+++ b/www-client/chromium/files/chromium-79-gcc-protobuf-alignas.patch
@@ -0,0 +1,81 @@
+From 5d66d5907ac3e76d1e382b8a8e8afe653bd00f4c Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sun, 31 May 2020 13:59:15 +0000
+Subject: [PATCH] Fix GCC build with PROTOBUF_USE_DLLS enabled
+
+GCC does not allow mixing __attribute__(()) syntax and alignas()
+syntax. Re-use approach from chromium base/compiler_specific.h
+---
+ .../protobuf/src/google/protobuf/arena.h | 2 +-
+ .../protobuf/src/google/protobuf/port_def.inc | 29 +++++++++++++++++++
+ .../src/google/protobuf/port_undef.inc | 1 +
+ 3 files changed, 31 insertions(+), 1 deletion(-)
+
+diff --git a/third_party/protobuf/src/google/protobuf/arena.h b/third_party/protobuf/src/google/protobuf/arena.h
+index dedc221..a8515ce 100644
+--- a/third_party/protobuf/src/google/protobuf/arena.h
++++ b/third_party/protobuf/src/google/protobuf/arena.h
+@@ -245,7 +245,7 @@ struct ArenaOptions {
+ // well as protobuf container types like RepeatedPtrField and Map. The protocol
+ // is internal to protobuf and is not guaranteed to be stable. Non-proto types
+ // should not rely on this protocol.
+-class PROTOBUF_EXPORT alignas(8) Arena final {
++class PROTOBUF_EXPORT PROTOBUF_ALIGNAS(8) Arena final {
+ public:
+ // Arena constructor taking custom options. See ArenaOptions below for
+ // descriptions of the options available.
+diff --git a/third_party/protobuf/src/google/protobuf/port_def.inc b/third_party/protobuf/src/google/protobuf/port_def.inc
+index f1bd85d..6d02b53 100644
+--- a/third_party/protobuf/src/google/protobuf/port_def.inc
++++ b/third_party/protobuf/src/google/protobuf/port_def.inc
+@@ -528,6 +528,35 @@ PROTOBUF_EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
+ #undef IN
+ #endif // _MSC_VER
+
++// Specify memory alignment for structs, classes, etc.
++// Use like:
++// class PROTOBUF_ALIGNAS(16) MyClass { ... }
++// PROTOBUF_ALIGNAS(16) int array[4];
++//
++// In most places you can use the C++11 keyword "alignas", which is preferred.
++//
++// But compilers have trouble mixing __attribute__((...)) syntax with
++// alignas(...) syntax.
++//
++// Doesn't work in clang or gcc:
++// struct alignas(16) __attribute__((packed)) S { char c; };
++// Works in clang but not gcc:
++// struct __attribute__((packed)) alignas(16) S2 { char c; };
++// Works in clang and gcc:
++// struct alignas(16) S3 { char c; } __attribute__((packed));
++//
++// There are also some attributes that must be specified *before* a class
++// definition: visibility (used for exporting functions/classes) is one of
++// these attributes. This means that it is not possible to use alignas() with a
++// class that is marked as exported.
++#if defined(_MSC_VER)
++#define PROTOBUF_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
++#elif defined(__GNUC__)
++#define PROTOBUF_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
++#else
++#define PROTOBUF_ALIGNAS(byte_alignment) alignas(byte_alignment)
++#endif
++
+ #if defined(__clang__)
+ #pragma clang diagnostic push
+ // TODO(gerbens) ideally we cleanup the code. But a cursory try shows many
+diff --git a/third_party/protobuf/src/google/protobuf/port_undef.inc b/third_party/protobuf/src/google/protobuf/port_undef.inc
+index b7e67fe..ba1fffc 100644
+--- a/third_party/protobuf/src/google/protobuf/port_undef.inc
++++ b/third_party/protobuf/src/google/protobuf/port_undef.inc
+@@ -80,6 +80,7 @@
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport
+ #undef PROTOBUF_EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport
++#undef PROTOBUF_ALIGNAS
+
+
+
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-79-span-stlcompat.patch b/www-client/chromium/files/chromium-79-span-stlcompat.patch
new file mode 100644
index 0000000..9b47ee7
--- /dev/null
+++ b/www-client/chromium/files/chromium-79-span-stlcompat.patch
@@ -0,0 +1,12 @@
+diff --git a/base/containers/span.h b/base/containers/span.h
+index c03bdf836..ff00275e7 100644
+--- a/base/containers/span.h
++++ b/base/containers/span.h
+@@ -224,6 +224,7 @@ class span : public internal::ExtentStorage<Extent> {
+ using difference_type = ptrdiff_t;
+ using pointer = T*;
+ using reference = T&;
++ using iterator_category = std::random_access_iterator_tag;
+ using iterator = CheckedContiguousIterator<T>;
+ using const_iterator = CheckedContiguousConstIterator<T>;
+ using reverse_iterator = std::reverse_iterator<iterator>;
diff --git a/www-client/chromium/files/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch b/www-client/chromium/files/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch
new file mode 100644
index 0000000..aa3d541
--- /dev/null
+++ b/www-client/chromium/files/chromium-80-QuicStreamSendBuffer-deleted-move-constructor.patch
@@ -0,0 +1,30 @@
+From 00f47df999c9b19e80fdc01db0ae9ca1b6a12b3a Mon Sep 17 00:00:00 2001
+From: vasilvv <vasilvv@google.com>
+Date: Wed, 03 Apr 2019 13:58:53 -0700
+Subject: [PATCH] GCC: do not delete move constructor of QuicStreamSendBuffer
+
+QuicStreamSendBuffer constructor is implicitely required in the
+initialization of the vector of substreams in QuicCryptoStream.
+Though clang apparently ignores that, GCC fails to build.
+
+BUG=chromium:819294
+
+Originally submitted by José Dapena Paz <jose.dapena@lge.com> at https://quiche-review.googlesource.com/c/quiche/+/2420
+
+PiperOrigin-RevId: 241800134
+Change-Id: I4e3c97d6e5895d85340e8c1b740e6196d9104066
+---
+
+diff --git a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+index e34514b..74e9d0d 100644
+--- a/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
++++ b/net/third_party/quiche/src/quic/core/quic_stream_send_buffer.h
+@@ -62,7 +62,7 @@
+ public:
+ explicit QuicStreamSendBuffer(QuicBufferAllocator* allocator);
+ QuicStreamSendBuffer(const QuicStreamSendBuffer& other) = delete;
+- QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = delete;
++ QuicStreamSendBuffer(QuicStreamSendBuffer&& other) = default;
+ ~QuicStreamSendBuffer();
+
+ // Save |data_length| of data starts at |iov_offset| in |iov| to send buffer.
diff --git a/www-client/chromium/files/chromium-84-blink-disable-clang-format.patch b/www-client/chromium/files/chromium-84-blink-disable-clang-format.patch
new file mode 100644
index 0000000..c573db8
--- /dev/null
+++ b/www-client/chromium/files/chromium-84-blink-disable-clang-format.patch
@@ -0,0 +1,33 @@
+From 08ac7188f414218ac9d764e29e7aa64a6bfc2f96 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sun, 31 May 2020 10:02:03 +0000
+Subject: [PATCH] disable clang-format for generated code in blink
+
+For GCC builds clang-format might be not available. Additionally,
+current scripts look for clang-format within chromium sources and
+don't consider system clang-format.
+---
+ .../bindings/scripts/bind_gen/codegen_utils.py | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+index 7021f1a..33bf5bf 100644
+--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+@@ -150,12 +150,4 @@ def write_code_node_to_file(code_node, filepath):
+
+ rendered_text = render_code_node(code_node)
+
+- format_result = style_format.auto_format(rendered_text, filename=filepath)
+- if not format_result.did_succeed:
+- raise RuntimeError("Style-formatting failed: filename = {filename}\n"
+- "---- stderr ----\n"
+- "{stderr}:".format(
+- filename=format_result.filename,
+- stderr=format_result.error_message))
+-
+- web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)
++ web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-86-ConsumeDurationNumber-constexpr.patch b/www-client/chromium/files/chromium-86-ConsumeDurationNumber-constexpr.patch
new file mode 100644
index 0000000..b623223
--- /dev/null
+++ b/www-client/chromium/files/chromium-86-ConsumeDurationNumber-constexpr.patch
@@ -0,0 +1,32 @@
+From f64e2d2daa64749995253f8ad00679ce74abdc1b Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Wed, 19 Aug 2020 11:02:00 +0200
+Subject: [PATCH] GCC: ConsumeDurationNumber cannot be a constexpr
+
+Declaring base::ConsumeDurationNumber as constexpr is not valid, as it
+uses the BasicStringPiece::begin method, that is not constexpr.
+
+build error in GCC:
+../../base/time/time.cc: In function ‘constexpr base::Optional<base::{anonymous}::ParsedDecimal> base::{anonymous}::ConsumeDurationNumber(base::StringPiece&)’:
+../../base/time/time.cc:67:63: error: call to non-‘constexpr’ function ‘const value_type* base::BasicStringPiece<STRING_TYPE>::begin() const [with STRING_TYPE = std::__cxx11::basic_string<char>; base::BasicStringPiece<STRING_TYPE>::const_iterator = const char*; base::BasicStringPiece<STRING_TYPE>::value_type = char]’
+ 67 | StringPiece::const_iterator orig_start = number_string.begin();
+ | ~~~~~~~~~~~~~~~~~~~^~
+
+Bug: 859294
+Change-Id: Id987d003f66052848d7083bb33abc3acfd109b73
+---
+
+diff --git a/base/time/time.cc b/base/time/time.cc
+index 1b1a830..7c47419 100644
+--- a/base/time/time.cc
++++ b/base/time/time.cc
+@@ -61,8 +61,7 @@
+ //
+ // Adapted from absl:
+ // https://cs.chromium.org/chromium/src/third_party/abseil-cpp/absl/time/duration.cc?l=807&rcl=2c22e9135f107a4319582ae52e2e3e6b201b6b7c
+-constexpr Optional<ParsedDecimal> ConsumeDurationNumber(
+- StringPiece& number_string) {
++Optional<ParsedDecimal> ConsumeDurationNumber(StringPiece& number_string) {
+ ParsedDecimal res;
+ StringPiece::const_iterator orig_start = number_string.begin();
+ // Parse contiguous digits.
diff --git a/www-client/chromium/files/chromium-86-ImageMemoryBarrierData-init.patch b/www-client/chromium/files/chromium-86-ImageMemoryBarrierData-init.patch
new file mode 100644
index 0000000..ff12a80
--- /dev/null
+++ b/www-client/chromium/files/chromium-86-ImageMemoryBarrierData-init.patch
@@ -0,0 +1,31 @@
+From 2879a6ba43b65c33e3c02432b4ae7a7462d24096 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 28 Aug 2020 07:23:29 +0000
+Subject: [PATCH] GCC: fix ImageMemoryBarrierData initialization
+
+GCC can't convert constant string to char[40]. Use const char * instead.
+Otherwise fails like this:
+
+src/libANGLE/renderer/vulkan/vk_helpers.cpp:121:1: error: could not convert
+'...' from '<brace-enclosed initializer list>' to
+'const angle::PackedEnumMap<rx::vk::ImageLayout, rx::vk::{anonymous}::ImageMemoryBarrierData>'
+---
+ third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
+index af957d7..7fe82ae 100644
+--- a/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
++++ b/third_party/angle/src/libANGLE/renderer/vulkan/vk_helpers.cpp
+@@ -73,7 +73,7 @@ enum BarrierType
+
+ struct ImageMemoryBarrierData
+ {
+- char name[40];
++ const char *name;
+
+ // The Vk layout corresponding to the ImageLayout key.
+ VkImageLayout layout;
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-86-compiler.patch b/www-client/chromium/files/chromium-86-compiler.patch
new file mode 100644
index 0000000..3088207
--- /dev/null
+++ b/www-client/chromium/files/chromium-86-compiler.patch
@@ -0,0 +1,159 @@
+From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Thu, 20 Aug 2020 19:12:21 +0000
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 52 +++++++++++-----------------------
+ 1 file changed, 17 insertions(+), 35 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 06c166f..fe5d340 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -254,8 +254,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -488,17 +486,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1575,7 +1562,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1584,10 +1571,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1596,15 +1579,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2002,7 +1976,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2037,7 +2012,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2077,7 +2053,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2109,7 +2086,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2134,7 +2112,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2251,7 +2230,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2346,7 +2326,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2399,7 +2380,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-86-nearby-explicit.patch b/www-client/chromium/files/chromium-86-nearby-explicit.patch
new file mode 100644
index 0000000..84709cb
--- /dev/null
+++ b/www-client/chromium/files/chromium-86-nearby-explicit.patch
@@ -0,0 +1,25 @@
+From 849e5c6b3a8746d9205102bd3df4e140cead405a Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 18 Jul 2020 15:11:13 +0000
+Subject: [PATCH] GCC: remove explicit from AtomicReference constructor
+
+---
+ .../nearby/src/cpp/platform_v2/public/atomic_reference.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h b/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h
+index 5742724..bbb8c01 100644
+--- a/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h
++++ b/third_party/nearby/src/cpp/platform_v2/public/atomic_reference.h
+@@ -37,7 +37,7 @@ class AtomicReference<T, std::enable_if_t<sizeof(T) <= sizeof(std::uint32_t) &&
+ final {
+ public:
+ using Platform = api::ImplementationPlatform;
+- explicit AtomicReference(T value)
++ AtomicReference(T value)
+ : impl_(Platform::CreateAtomicUint32(static_cast<std::uint32_t>(value))) {
+ }
+ ~AtomicReference() = default;
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-86-nearby-include.patch b/www-client/chromium/files/chromium-86-nearby-include.patch
new file mode 100644
index 0000000..d3f02c2
--- /dev/null
+++ b/www-client/chromium/files/chromium-86-nearby-include.patch
@@ -0,0 +1,24 @@
+From a5b2ee9dd7dfb186e26ec6c0c06c2ae1a9d27195 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 18 Jul 2020 14:15:50 +0000
+Subject: [PATCH] IWYU: memcpy is defined in cstring
+
+---
+ third_party/nearby/src/cpp/platform_v2/base/byte_array.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h
+index ee5d0eb..4b1d79b 100644
+--- a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h
++++ b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h
+@@ -17,6 +17,7 @@
+
+ #include <array>
+ #include <cstdint>
++#include <cstring>
+ #include <string>
+ #include <type_traits>
+ #include <utility>
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-87-CrossThreadPersistent-template.patch b/www-client/chromium/files/chromium-87-CrossThreadPersistent-template.patch
new file mode 100644
index 0000000..585c91f
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-CrossThreadPersistent-template.patch
@@ -0,0 +1,32 @@
+From 37070745728cd7744e12fa5110cde304ab6a048d Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 15 Sep 2020 16:55:19 +0200
+Subject: [PATCH] GCC: avoid GCC getting confused with wrong using resolution in CrossThreadPersistent
+
+In the method to assign a CrossThreadWeakPersistent<U> to a CrossThreadPersistent<T>,
+there is a call to the parent class implementation of Get. It uses Parent, that is,
+in CrossThreadPersistent<T> an alias to its parent. GCC resolves it as that, but
+that's wrong, and it should resolve to the parent of CrossThreadWeakPersistent<U>.
+
+To avoid the problem, we define in that method ParentU resolving to the right
+parent, and use a static cast to it.
+
+Bug: 819294
+Change-Id: I0152dac92d4a28eb1f1abbc56473204b62f33797
+---
+
+diff --git a/third_party/blink/renderer/platform/heap/persistent.h b/third_party/blink/renderer/platform/heap/persistent.h
+index f08f42f..32cadc0 100644
+--- a/third_party/blink/renderer/platform/heap/persistent.h
++++ b/third_party/blink/renderer/platform/heap/persistent.h
+@@ -784,7 +784,9 @@
+ CrossThreadPersistent<T>& CrossThreadPersistent<T>::operator=(
+ const CrossThreadWeakPersistent<U>& other) {
+ MutexLocker locker(ProcessHeap::CrossThreadPersistentMutex());
+- this->AssignUnsafe(other.Parent::Get());
++ using ParentU = PersistentBase<U, kWeakPersistentConfiguration,
++ kCrossThreadPersistentConfiguration>;
++ this->AssignUnsafe(static_cast<const ParentU&>(other).Get());
+ return *this;
+ }
+
diff --git a/www-client/chromium/files/chromium-87-CursorFactory-include.patch b/www-client/chromium/files/chromium-87-CursorFactory-include.patch
new file mode 100644
index 0000000..98cb9cf
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-CursorFactory-include.patch
@@ -0,0 +1,36 @@
+From c4f6e8cd34a245c3640b86a91c9694d69594d80b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 16 Sep 2020 15:05:02 +0000
+Subject: [PATCH] IWYU: ui::CursorFactory is now required independent from
+ Ozone
+
+---
+ .../ui/views/chrome_browser_main_extra_parts_views_linux.cc | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+index 5a97d61..ccedd2a 100644
+--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+@@ -7,6 +7,7 @@
+ #include "chrome/browser/themes/theme_service_aura_linux.h"
+ #include "chrome/browser/ui/browser_list.h"
+ #include "chrome/browser/ui/views/theme_profile_key.h"
++#include "ui/base/cursor/cursor_factory.h"
+ #include "ui/display/screen.h"
+ #include "ui/views/linux_ui/linux_ui.h"
+
+@@ -15,10 +16,6 @@
+ #include "ui/gtk/gtk_ui_delegate.h"
+ #endif
+
+-#if defined(USE_OZONE)
+-#include "ui/base/cursor/cursor_factory.h"
+-#endif
+-
+ #if defined(USE_X11)
+ #include "ui/gfx/x/connection.h" // nogncheck
+ #if BUILDFLAG(USE_GTK)
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-87-SystemMemoryPressureEvaluator-namespace.patch b/www-client/chromium/files/chromium-87-SystemMemoryPressureEvaluator-namespace.patch
new file mode 100644
index 0000000..3129a75
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-SystemMemoryPressureEvaluator-namespace.patch
@@ -0,0 +1,70 @@
+From b73f096a06f4241a1459b0e02ddaa0bb4e14f7a1 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 4 Sep 2020 17:57:22 +0000
+Subject: [PATCH] GCC: fix clash in predefined macro "linux"
+
+"linux" is predefined in GCC and can't be used for namespace name.
+---
+ base/util/memory_pressure/system_memory_pressure_evaluator.cc | 2 +-
+ .../memory_pressure/system_memory_pressure_evaluator_linux.cc | 4 ++--
+ .../memory_pressure/system_memory_pressure_evaluator_linux.h | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/base/util/memory_pressure/system_memory_pressure_evaluator.cc b/base/util/memory_pressure/system_memory_pressure_evaluator.cc
+index babb4f8..4a9963b 100644
+--- a/base/util/memory_pressure/system_memory_pressure_evaluator.cc
++++ b/base/util/memory_pressure/system_memory_pressure_evaluator.cc
+@@ -46,7 +46,7 @@ SystemMemoryPressureEvaluator::CreateDefaultSystemEvaluator(
+ }
+ return evaluator;
+ #elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
+- return std::make_unique<util::linux::SystemMemoryPressureEvaluator>(
++ return std::make_unique<util::os_linux::SystemMemoryPressureEvaluator>(
+ monitor->CreateVoter());
+ #endif
+ return nullptr;
+diff --git a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc
+index 258d983..1878d88 100644
+--- a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc
++++ b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.cc
+@@ -32,7 +32,7 @@ int GetAvailableSystemMemoryMiB(const base::SystemMemoryInfoKB& mem_info) {
+ } // namespace
+
+ namespace util {
+-namespace linux {
++namespace os_linux {
+
+ const base::TimeDelta SystemMemoryPressureEvaluator::kModeratePressureCooldown =
+ base::TimeDelta::FromSeconds(10);
+@@ -153,5 +153,5 @@ SystemMemoryPressureEvaluator::CalculateCurrentPressureLevel() {
+ return base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE;
+ }
+
+-} // namespace linux
++} // namespace os_linux
+ } // namespace util
+diff --git a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h
+index 0f5c43d..3a24427 100644
+--- a/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h
++++ b/base/util/memory_pressure/system_memory_pressure_evaluator_linux.h
+@@ -13,7 +13,7 @@
+ #include "base/util/memory_pressure/system_memory_pressure_evaluator.h"
+
+ namespace util {
+-namespace linux {
++namespace os_linux {
+
+ // Linux memory pressure voter. Because there is no OS provided signal this
+ // polls at a low frequency, and applies internal hysteresis.
+@@ -106,7 +106,7 @@ class SystemMemoryPressureEvaluator
+ SEQUENCE_CHECKER(sequence_checker_);
+ };
+
+-} // namespace linux
++} // namespace os_linux
+ } // namespace util
+
+ #endif // BASE_UTIL_MEMORY_PRESSURE_SYSTEM_MEMORY_PRESSURE_EVALUATOR_LINUX_H_
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-87-Thumbnail-noexcept.patch b/www-client/chromium/files/chromium-87-Thumbnail-noexcept.patch
new file mode 100644
index 0000000..76c3d43
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-Thumbnail-noexcept.patch
@@ -0,0 +1,46 @@
+From 92db841a0d8449b46ce9d9e76bb4a23e5b370f9c Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 11 Sep 2020 07:07:00 +0000
+Subject: [PATCH] GCC: remove noexcept from PDF Thumbnail
+
+Move constructor/operator can't be noexcept, because of SkBitmap
+member has no noexcept move constructor/operator.
+---
+ pdf/thumbnail.cc | 4 ++--
+ pdf/thumbnail.h | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/pdf/thumbnail.cc b/pdf/thumbnail.cc
+index d46b20b..82f4790 100644
+--- a/pdf/thumbnail.cc
++++ b/pdf/thumbnail.cc
+@@ -113,9 +113,9 @@ Thumbnail::Thumbnail(const gfx::Size& page_size, float device_pixel_ratio) {
+ DCHECK(success);
+ }
+
+-Thumbnail::Thumbnail(Thumbnail&& other) noexcept = default;
++Thumbnail::Thumbnail(Thumbnail&& other) = default;
+
+-Thumbnail& Thumbnail::operator=(Thumbnail&& other) noexcept = default;
++Thumbnail& Thumbnail::operator=(Thumbnail&& other) = default;
+
+ Thumbnail::~Thumbnail() = default;
+
+diff --git a/pdf/thumbnail.h b/pdf/thumbnail.h
+index 4b2bdef..d62a56a 100644
+--- a/pdf/thumbnail.h
++++ b/pdf/thumbnail.h
+@@ -17,8 +17,8 @@ class Thumbnail final {
+ public:
+ Thumbnail();
+ Thumbnail(const gfx::Size& page_size, float device_pixel_ratio);
+- Thumbnail(Thumbnail&& other) noexcept;
+- Thumbnail& operator=(Thumbnail&& other) noexcept;
++ Thumbnail(Thumbnail&& other);
++ Thumbnail& operator=(Thumbnail&& other);
+ ~Thumbnail();
+
+ SkBitmap& bitmap() { return bitmap_; }
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-87-anonymous-struct.patch b/www-client/chromium/files/chromium-87-anonymous-struct.patch
new file mode 100644
index 0000000..7d7c356
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-anonymous-struct.patch
@@ -0,0 +1,61 @@
+From 9f2b2a3a6153be7ae5cef3305161c07fa2f6f70c Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 15 Sep 2020 18:58:11 +0000
+Subject: [PATCH] GCC: do not use anonymous structs
+
+Two using declarations have been added in x11.h for an
+unnamed struct. This is not allowed by C++ (and GCC). An example:
+using XErrorEvent = struct {
+ ...
+};
+
+The solution is giving a name to the struct.
+
+Bug: 819294
+Change-Id: I9e77017851efe8e0a92fb37c01fdba693bb7a36d
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2412450
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/master@{#807126}
+---
+
+diff --git a/ui/gfx/x/x11.h b/ui/gfx/x/x11.h
+index 6b36d48..d2dab40 100644
+--- a/ui/gfx/x/x11.h
++++ b/ui/gfx/x/x11.h
+@@ -139,7 +139,7 @@
+
+ enum XEventQueueOwner { XlibOwnsEventQueue = 0, XCBOwnsEventQueue };
+
+-using XErrorEvent = struct {
++using XErrorEvent = struct _XErrorEvent {
+ int type;
+ Display* display;
+ XID resourceid;
+@@ -149,7 +149,7 @@
+ unsigned char minor_code;
+ };
+
+-using XRectangle = struct {
++using XRectangle = struct _XRectangle {
+ short x, y;
+ unsigned short width, height;
+ };
+@@ -161,7 +161,7 @@
+ XPointer private_data;
+ };
+
+-using Visual = struct {
++using Visual = struct _Visual {
+ XExtData* ext_data;
+ VisualID visualid;
+ int c_class;
+@@ -170,7 +170,7 @@
+ int map_entries;
+ };
+
+-using XVisualInfo = struct {
++using XVisualInfo = struct _XVisualInfo {
+ Visual* visual;
+ VisualID visualid;
+ int screen;
diff --git a/www-client/chromium/files/chromium-87-compiler-r1.patch b/www-client/chromium/files/chromium-87-compiler-r1.patch
new file mode 100644
index 0000000..181e724
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-compiler-r1.patch
@@ -0,0 +1,166 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 4f6461b6b..b5d2c7700 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -254,8 +254,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -480,36 +478,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+-
+- # Pinned clang has enable-dse-memoryssa enabled by default but it's broken,
+- # so we have to force it off.
+- # Trunk clang has it disabled by default but it might work, so we force it
+- # on so the ToT bots can check if it works now.
+- if (!llvm_force_head_revision) {
+- cflags += [
+- # TODO(https://crbug.com/1127713): Investigate, remove.
+- "-mllvm",
+- "-enable-dse-memoryssa=false",
+- ]
+- }
+- if (llvm_force_head_revision) {
+- cflags += [
+- # TODO(https://crbug.com/1127713): Investigate, remove.
+- "-mllvm",
+- "-enable-dse-memoryssa=true",
+- ]
+- }
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1571,7 +1539,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1580,10 +1548,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1592,15 +1556,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1998,7 +1953,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2033,7 +1989,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2073,7 +2030,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2105,7 +2063,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2130,7 +2089,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2247,7 +2207,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2355,7 +2316,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2408,7 +2370,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-87-openscreen-crypto-include.patch b/www-client/chromium/files/chromium-87-openscreen-crypto-include.patch
new file mode 100644
index 0000000..5edd10b
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-openscreen-crypto-include.patch
@@ -0,0 +1,11 @@
+--- a/third_party/openscreen/src/util/crypto/random_bytes.h 2020-10-03 07:37:39.335192533 +0800
++++ b/third_party/openscreen/src/util/crypto/random_bytes.h 2020-10-03 07:37:29.548124971 +0800
+@@ -5,6 +5,8 @@
+ #ifndef UTIL_CRYPTO_RANDOM_BYTES_H_
+ #define UTIL_CRYPTO_RANDOM_BYTES_H_
+
++#include <stdint.h>
++
+ #include <array>
+
+ namespace openscreen {
diff --git a/www-client/chromium/files/chromium-87-ozone-deps.patch b/www-client/chromium/files/chromium-87-ozone-deps.patch
new file mode 100644
index 0000000..c9bac08
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-ozone-deps.patch
@@ -0,0 +1,15 @@
+diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
+index 51b25f1a8..56dfeb165 100644
+--- a/chrome/browser/BUILD.gn
++++ b/chrome/browser/BUILD.gn
+@@ -5073,7 +5073,9 @@ static_library("browser") {
+ "chrome_browser_main_extra_parts_ozone.cc",
+ "chrome_browser_main_extra_parts_ozone.h",
+ ]
+- deps += [ "//ui/ozone" ]
++ if (use_ozone) {
++ deps += [ "//ui/ozone" ]
++ }
+ }
+
+ if (enable_background_mode) {
diff --git a/www-client/chromium/files/chromium-87-remotesyscall.patch b/www-client/chromium/files/chromium-87-remotesyscall.patch
new file mode 100644
index 0000000..63d1cf9
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-remotesyscall.patch
@@ -0,0 +1,13 @@
+diff --git a/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc b/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc
+index 33ff80225..d503a86e0 100644
+--- a/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc
++++ b/sandbox/linux/syscall_broker/remote_syscall_arg_handler.cc
+@@ -4,6 +4,8 @@
+
+ #include "sandbox/linux/syscall_broker/remote_syscall_arg_handler.h"
+
++#include <string.h>
++
+ #include <sys/ioctl.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
diff --git a/www-client/chromium/files/chromium-87-std-max_align_t.patch b/www-client/chromium/files/chromium-87-std-max_align_t.patch
new file mode 100644
index 0000000..e37d0fb
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-std-max_align_t.patch
@@ -0,0 +1,43 @@
+From 1e0683735e26c6fcecb0977e0cdae5da2eaf7c84 Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Tue, 22 Sep 2020 13:18:55 +0200
+Subject: [PATCH] libstdc++: use max_align_t without std prefix in partition alloc constants.
+
+Using std::max_align_t would require using cstddef instead of stddef.h. As
+partition alloc constants is including stddef.h, let's remove the std::
+namespace prefix.
+
+This fixes this error building with libstdc++
+../../base/allocator/partition_allocator/partition_alloc_constants.h:200:51: error: ‘max_align_t’ is not a member of ‘std’; did you mean ‘max_align_t’?
+
+Bug: 957519
+Change-Id: I72b22428937e7b7b1e6bb31fb0ac0bef3b72c581
+
+(Adjusted to work with clang too)
+---
+
+diff --git a/base/allocator/partition_allocator/partition_alloc_constants.h b/base/allocator/partition_allocator/partition_alloc_constants.h
+index 0c74dbe..ef1488f 100644
+--- a/base/allocator/partition_allocator/partition_alloc_constants.h
++++ b/base/allocator/partition_allocator/partition_alloc_constants.h
+@@ -183,7 +183,7 @@ NumPartitionPagesPerSuperPage() {
+ }
+
+ // Alignment has two constraints:
+-// - Alignment requirement for scalar types: alignof(std::max_align_t)
++// - Alignment requirement for scalar types: alignof(max_align_t)
+ // - Alignment requirement for operator new().
+ //
+ // The two are separate on Windows 64 bits, where the first one is 8 bytes, and
+@@ -195,9 +195,9 @@ NumPartitionPagesPerSuperPage() {
+ // platforms, as Chrome's requirement is C++14 as of 2020.
+ #if defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__)
+ static constexpr size_t kAlignment =
+- std::max(alignof(std::max_align_t), __STDCPP_DEFAULT_NEW_ALIGNMENT__);
++ std::max(alignof(max_align_t), __STDCPP_DEFAULT_NEW_ALIGNMENT__);
+ #else
+-static constexpr size_t kAlignment = alignof(std::max_align_t);
++static constexpr size_t kAlignment = alignof(max_align_t);
+ #endif
+ static_assert(kAlignment <= 16,
+ "PartitionAlloc doesn't support a fundamental alignment larger "
diff --git a/www-client/chromium/files/chromium-87-thread_cache.patch b/www-client/chromium/files/chromium-87-thread_cache.patch
new file mode 100644
index 0000000..b2ef990
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-thread_cache.patch
@@ -0,0 +1,25 @@
+diff --git a/base/allocator/partition_allocator/partition_alloc.h b/base/allocator/partition_allocator/partition_alloc.h
+index 549451e2d..17b7deab3 100644
+--- a/base/allocator/partition_allocator/partition_alloc.h
++++ b/base/allocator/partition_allocator/partition_alloc.h
+@@ -582,7 +582,7 @@ struct BASE_EXPORT PartitionRoot {
+ EXCLUSIVE_LOCKS_REQUIRED(lock_);
+ void DecommitEmptyPages() EXCLUSIVE_LOCKS_REQUIRED(lock_);
+
+- friend class internal::ThreadCache;
++ friend class base::internal::ThreadCache;
+ };
+
+ static_assert(sizeof(PartitionRoot<internal::ThreadSafe>) ==
+diff --git a/base/allocator/partition_allocator/thread_cache.h b/base/allocator/partition_allocator/thread_cache.h
+index dd71ccc09..05097470a 100644
+--- a/base/allocator/partition_allocator/thread_cache.h
++++ b/base/allocator/partition_allocator/thread_cache.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_THREAD_CACHE_H_
+ #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_THREAD_CACHE_H_
+
++#include <atomic>
+ #include <cstdint>
+ #include <memory>
+
diff --git a/www-client/chromium/files/chromium-88-angle-renderer.patch b/www-client/chromium/files/chromium-88-angle-renderer.patch
new file mode 100644
index 0000000..257c00c
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-angle-renderer.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h b/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h
+index 9c65fccad..12c972565 100644
+--- a/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h
++++ b/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h
+@@ -14,6 +14,8 @@
+
+ #include "common/angleutils.h"
+
++#include <condition_variable>
++
+ namespace rx
+ {
+
diff --git a/www-client/chromium/files/chromium-88-compiler.patch b/www-client/chromium/files/chromium-88-compiler.patch
new file mode 100644
index 0000000..cb72cf2
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-compiler.patch
@@ -0,0 +1,147 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 9d66490cd..4e79a84f8 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -254,8 +254,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -478,17 +476,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1574,7 +1561,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1583,10 +1570,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1595,15 +1578,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2006,7 +1980,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2041,7 +2016,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2081,7 +2057,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2113,7 +2090,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2138,7 +2116,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2267,7 +2246,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2365,7 +2345,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2418,7 +2399,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-88-compositor-dcheck.patch b/www-client/chromium/files/chromium-88-compositor-dcheck.patch
new file mode 100644
index 0000000..ef51614
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-compositor-dcheck.patch
@@ -0,0 +1,13 @@
+diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc
+index 93d0e2352..7ca5e379c 100644
+--- a/cc/metrics/compositor_frame_reporter.cc
++++ b/cc/metrics/compositor_frame_reporter.cc
+@@ -671,7 +671,7 @@ void CompositorFrameReporter::ReportCompositorLatencyHistogram(
+
+ void CompositorFrameReporter::ReportEventLatencyHistograms() const {
+ for (const auto& event_metrics : events_metrics_) {
+- DCHECK_NE(event_metrics, nullptr);
++ DCHECK_NE(event_metrics.get(), nullptr);
+ const std::string histogram_base_name =
+ GetEventLatencyHistogramBaseName(*event_metrics);
+ const int event_type_index = static_cast<int>(event_metrics->type());
diff --git a/www-client/chromium/files/chromium-88-dawn-include.patch b/www-client/chromium/files/chromium-88-dawn-include.patch
new file mode 100644
index 0000000..3b01546
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-dawn-include.patch
@@ -0,0 +1,12 @@
+diff --git a/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h b/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h
+index cef4ebba4..db28b87e2 100644
+--- a/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h
++++ b/third_party/dawn/src/dawn_wire/ChunkedCommandSerializer.h
+@@ -21,6 +21,7 @@
+
+ #include <algorithm>
+ #include <cstring>
++#include <memory>
+
+ namespace dawn_wire {
+
diff --git a/www-client/chromium/files/chromium-88-dawn-size_t-std.patch b/www-client/chromium/files/chromium-88-dawn-size_t-std.patch
new file mode 100644
index 0000000..f6392e9
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-dawn-size_t-std.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/dawn/src/common/ityp_array.h b/third_party/dawn/src/common/ityp_array.h
+index 48e080fa5..d70d9e2da 100644
+--- a/third_party/dawn/src/common/ityp_array.h
++++ b/third_party/dawn/src/common/ityp_array.h
+@@ -27,7 +27,7 @@ namespace ityp {
+ // indices must be a particular type |Index|. Dawn uses multiple flat maps of
+ // index-->data, and this class helps ensure an indices cannot be passed interchangably
+ // to a flat map of a different type.
+- template <typename Index, typename Value, size_t Size>
++ template <typename Index, typename Value, std::size_t Size>
+ class array : private std::array<Value, Size> {
+ using I = UnderlyingType<Index>;
+ using Base = std::array<Value, Size>;
diff --git a/www-client/chromium/files/chromium-88-gpu-internals-ozone.patch b/www-client/chromium/files/chromium-88-gpu-internals-ozone.patch
new file mode 100644
index 0000000..c74e72b
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-gpu-internals-ozone.patch
@@ -0,0 +1,21 @@
+diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc
+index ce9359413..472d42913 100644
+--- a/content/browser/gpu/gpu_internals_ui.cc
++++ b/content/browser/gpu/gpu_internals_ui.cc
+@@ -69,6 +69,7 @@
+
+ #if defined(USE_OZONE)
+ #include "ui/base/ui_base_features.h"
++#include "ui/ozone/public/ozone_platform.h"
+ #endif
+
+ namespace content {
+@@ -393,7 +394,7 @@ std::unique_ptr<base::ListValue> GpuMemoryBufferInfo(
+ gpu::GpuMemoryBufferSupport gpu_memory_buffer_support;
+
+ gpu::GpuMemoryBufferConfigurationSet native_config;
+-#if defined(USE_X11)
++#if defined(USE_X11) && defined(USE_OZONE)
+ if (!features::IsUsingOzonePlatform()) {
+ for (const auto& config : gpu_extra_info.gpu_memory_buffer_support_x11) {
+ native_config.emplace(config);
diff --git a/www-client/chromium/files/chromium-88-mediasource-uniqptrostream.patch b/www-client/chromium/files/chromium-88-mediasource-uniqptrostream.patch
new file mode 100644
index 0000000..908a993
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-mediasource-uniqptrostream.patch
@@ -0,0 +1,22 @@
+diff --git a/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc b/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc
+index 4caa0753b..9efe53057 100644
+--- a/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc
++++ b/third_party/blink/renderer/modules/mediasource/cross_thread_media_source_attachment.cc
+@@ -575,7 +575,7 @@ void CrossThreadMediaSourceAttachment::CompleteAttachingToMediaElement(
+ MediaSourceTracer* /* tracer */,
+ std::unique_ptr<WebMediaSource> web_media_source) {
+ DVLOG(1) << __func__ << " this=" << this
+- << ", web_media_source=" << web_media_source;
++ << ", web_media_source=" << web_media_source.get();
+ DCHECK(web_media_source);
+
+ {
+@@ -618,7 +618,7 @@ void CrossThreadMediaSourceAttachment::
+ DCHECK(worker_runner_->BelongsToCurrentThread());
+
+ DVLOG(1) << __func__ << " this=" << this
+- << ", web_media_source=" << web_media_source;
++ << ", web_media_source=" << web_media_source.get();
+
+ // While awaiting task scheduling, the media element could have begun
+ // detachment or main context could have been destroyed. Return early in
diff --git a/www-client/chromium/files/chromium-88-pcscan-nonfinal.patch b/www-client/chromium/files/chromium-88-pcscan-nonfinal.patch
new file mode 100644
index 0000000..ea7f31f
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-pcscan-nonfinal.patch
@@ -0,0 +1,13 @@
+diff --git a/base/allocator/partition_allocator/pcscan.cc b/base/allocator/partition_allocator/pcscan.cc
+index 5cc93dbbd..69aaa0934 100644
+--- a/base/allocator/partition_allocator/pcscan.cc
++++ b/base/allocator/partition_allocator/pcscan.cc
+@@ -41,7 +41,7 @@ ThreadSafePartitionRoot& PCScanMetadataAllocator() {
+ // STL allocator which is needed to keep internal data structures required by
+ // PCScan.
+ template <typename T>
+-class MetadataAllocator final {
++class MetadataAllocator {
+ public:
+ using value_type = T;
+
diff --git a/www-client/chromium/files/chromium-88-service-worker-registration-crash.patch b/www-client/chromium/files/chromium-88-service-worker-registration-crash.patch
new file mode 100644
index 0000000..e543fca
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-service-worker-registration-crash.patch
@@ -0,0 +1,14 @@
+diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
+index 5cb7b2da2..fa11602ed 100644
+--- a/content/browser/service_worker/service_worker_container_host.cc
++++ b/content/browser/service_worker/service_worker_container_host.cc
+@@ -626,6 +626,9 @@ void ServiceWorkerContainerHost::RemoveServiceWorkerRegistrationObjectHost(
+ int64_t registration_id) {
+ DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
+ DCHECK(base::Contains(registration_object_hosts_, registration_id));
++ std::unique_ptr<ServiceWorkerRegistrationObjectHost> to_be_deleted =
++ std::move(registration_object_hosts_[registration_id]);
++ DCHECK(to_be_deleted);
+ registration_object_hosts_.erase(registration_id);
+ }
+
diff --git a/www-client/chromium/files/chromium-88-system-icu.patch b/www-client/chromium/files/chromium-88-system-icu.patch
new file mode 100644
index 0000000..968143e
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-system-icu.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+index fb8ab0530..5d4ea13e7 100644
+--- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
++++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+@@ -432,7 +432,7 @@ String TextCodecICU::Decode(const char* bytes,
+ // ICU decodes it as U+E5E5.
+ if (!strcmp(encoding_.GetName(), "GBK")) {
+ if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030"))
+- resultString.Replace(0xE5E5, ideographicSpaceCharacter);
++ resultString.Replace(0xE5E5, kIdeographicSpaceCharacter);
+ // Make GBK compliant to the encoding spec and align with GB18030
+ resultString.Replace(0x01F9, 0xE7C8);
+ // FIXME: Once https://www.w3.org/Bugs/Public/show_bug.cgi?id=28740#c3
diff --git a/www-client/chromium/files/chromium-88-tree-formatter-include.patch b/www-client/chromium/files/chromium-88-tree-formatter-include.patch
new file mode 100644
index 0000000..71258c5
--- /dev/null
+++ b/www-client/chromium/files/chromium-88-tree-formatter-include.patch
@@ -0,0 +1,14 @@
+diff --git a/ui/accessibility/platform/inspect/tree_formatter.h b/ui/accessibility/platform/inspect/tree_formatter.h
+index 4a70a4d54..532da613a 100644
+--- a/ui/accessibility/platform/inspect/tree_formatter.h
++++ b/ui/accessibility/platform/inspect/tree_formatter.h
+@@ -5,6 +5,9 @@
+ #ifndef UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_
+ #define UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_
+
++#include <vector>
++#include <memory>
++
+ #include "ui/accessibility/platform/inspect/inspect.h"
+
+ #include "ui/gfx/native_widget_types.h"
diff --git a/www-client/chromium/files/chromium-89-CursorFactory-include.patch b/www-client/chromium/files/chromium-89-CursorFactory-include.patch
new file mode 100644
index 0000000..dfce7bc
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-CursorFactory-include.patch
@@ -0,0 +1,20 @@
+diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+index d69bec5b8..0f9a87571 100644
+--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+@@ -8,6 +8,7 @@
+ #include "chrome/browser/ui/browser_list.h"
+ #include "chrome/browser/ui/views/theme_profile_key.h"
+ #include "ui/base/ime/linux/fake_input_method_context_factory.h"
++#include "ui/base/cursor/cursor_factory.h"
+ #include "ui/display/screen.h"
+ #include "ui/views/linux_ui/linux_ui.h"
+
+@@ -17,7 +18,6 @@
+ #endif
+
+ #if defined(USE_OZONE)
+-#include "ui/base/cursor/cursor_factory.h"
+ #include "ui/base/ime/input_method.h"
+ #include "ui/base/ui_base_features.h"
+ #include "ui/ozone/public/ozone_platform.h"
diff --git a/www-client/chromium/files/chromium-89-EnumTable-crash.patch b/www-client/chromium/files/chromium-89-EnumTable-crash.patch
new file mode 100644
index 0000000..89a5070
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-EnumTable-crash.patch
@@ -0,0 +1,71 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index e3130c7..2ad16ea 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -212,7 +212,7 @@ class
+
+ template <typename E>
+ friend class EnumTable;
+- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
++ DISALLOW_ASSIGN(GenericEnumTableEntry);
+ };
+
+ // Yes, these constructors really needs to be inlined. Even though they look
+@@ -250,8 +250,7 @@ class EnumTable {
+ // Constructor for regular entries.
+ constexpr Entry(E value, base::StringPiece str)
+ : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+-
+- DISALLOW_COPY_AND_ASSIGN(Entry);
++ DISALLOW_ASSIGN(Entry);
+ };
+
+ static_assert(sizeof(E) <= sizeof(int32_t),
+@@ -306,15 +305,14 @@ class EnumTable {
+ if (is_sorted_) {
+ const std::size_t index = static_cast<std::size_t>(value);
+ if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+- const auto& entry = data_.begin()[index];
++ const auto& entry = data_[index];
+ if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+ return entry.str();
+ }
+ return base::nullopt;
+ }
+ return GenericEnumTableEntry::FindByValue(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), static_cast<int32_t>(value));
++ &data_[0], data_.size(), static_cast<int32_t>(value));
+ }
+
+ // This overload of GetString is designed for cases where the argument is a
+@@ -342,8 +340,7 @@ class EnumTable {
+ // enum value directly.
+ base::Optional<E> GetEnum(base::StringPiece str) const {
+ auto* entry = GenericEnumTableEntry::FindByString(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), str);
++ &data_[0], data_.size(), str);
+ return entry ? static_cast<E>(entry->value) : base::Optional<E>();
+ }
+
+@@ -358,7 +355,7 @@ class EnumTable {
+ // Align the data on a cache line boundary.
+ alignas(64)
+ #endif
+- std::initializer_list<Entry> data_;
++ const std::vector<Entry> data_;
+ bool is_sorted_;
+
+ constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -370,8 +367,8 @@ class EnumTable {
+
+ for (std::size_t i = 0; i < data.size(); i++) {
+ for (std::size_t j = i + 1; j < data.size(); j++) {
+- const Entry& ei = data.begin()[i];
+- const Entry& ej = data.begin()[j];
++ const Entry& ei = data[i];
++ const Entry& ej = data[j];
+ DCHECK(ei.value != ej.value)
+ << "Found duplicate enum values at indices " << i << " and " << j;
+ DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
diff --git a/www-client/chromium/files/chromium-89-angle-display.patch b/www-client/chromium/files/chromium-89-angle-display.patch
new file mode 100644
index 0000000..d467ce9
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-angle-display.patch
@@ -0,0 +1,1747 @@
+diff --git a/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json b/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json
+index c506d31fb..df8758d30 100644
+--- a/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json
++++ b/third_party/angle/scripts/code_generation_hashes/GL_EGL_entry_points.json
+@@ -8,7 +8,7 @@
+ "scripts/entry_point_packed_gl_enums.json":
+ "846be5dc8cb36076207699b025633fcc",
+ "scripts/generate_entry_points.py":
+- "95fc7635243122e679e82e1757816ab3",
++ "d15fcd0f5e3296787753ff507f7051d9",
+ "scripts/gl.xml":
+ "f66967f3f3d696b5d8306fd80bbd49a8",
+ "scripts/gl_angle_ext.xml":
+@@ -102,7 +102,7 @@
+ "src/libANGLE/frame_capture_utils_autogen.h":
+ "652b821a877d6eb2c62ba8d151157eea",
+ "src/libANGLE/validationEGL_autogen.h":
+- "b3c0eae46748da68d6833cc40e4bb486",
++ "3927fa260ad183fd9193d65b3f8d82c5",
+ "src/libANGLE/validationES1_autogen.h":
+ "c8edb0a5b26303bf7c4692b9d0b05c1f",
+ "src/libANGLE/validationES2_autogen.h":
+@@ -238,17 +238,17 @@
+ "src/libGL/libGL_autogen.def":
+ "2789d87b05eea9f53d52e2aff499b785",
+ "src/libGLESv2/egl_ext_stubs_autogen.h":
+- "03de6401c1695f8ca4acbde9c3ae1ba2",
++ "aeb007419aaab7b5e52b084d83dda77c",
+ "src/libGLESv2/egl_get_labeled_object_data.json":
+ "2f4148b2ddf34e62670e32c5e6da4937",
+ "src/libGLESv2/egl_stubs_autogen.h":
+- "1c9d160acb1ed9bf5e7c26918d4a039e",
++ "6439daa350c1663e71dd0af37dcc91df",
+ "src/libGLESv2/entry_points_egl_autogen.cpp":
+- "9fd1b2d1e0dbab804e854e33e5bc9ef2",
++ "ba9796b20452dbbe4180480aae02b8a3",
+ "src/libGLESv2/entry_points_egl_autogen.h":
+ "3bc7a8df9deadd7cfd615d0cfad0c6a8",
+ "src/libGLESv2/entry_points_egl_ext_autogen.cpp":
+- "f52756d7a31ce136ea04a67e0ea1b447",
++ "5397ab40e9cbe1d7aa3faf91154a837a",
+ "src/libGLESv2/entry_points_egl_ext_autogen.h":
+ "9154781afd9bd6354ec6fc201b43c790",
+ "src/libGLESv2/entry_points_gles_1_0_autogen.cpp":
+@@ -283,4 +283,4 @@
+ "f93450c1f787f3da53f2525865568989",
+ "src/libGLESv2/libGLESv2_with_capture_autogen.def":
+ "7b78ab59dd1fe360a5d3c1f513c7ce55"
+-}
+\ No newline at end of file
++}
+diff --git a/third_party/angle/scripts/generate_entry_points.py b/third_party/angle/scripts/generate_entry_points.py
+index de26a60ad..0e99f6bf2 100755
+--- a/third_party/angle/scripts/generate_entry_points.py
++++ b/third_party/angle/scripts/generate_entry_points.py
+@@ -1010,7 +1010,8 @@ EGL_PACKED_TYPES = {
+ "EGLContext": "gl::Context *",
+ "EGLConfig": "Config *",
+ "EGLDeviceEXT": "Device *",
+- "EGLDisplay": "Display *",
++ # Needs an explicit namespace to avoid an X11 namespace collision.
++ "EGLDisplay": "egl::Display *",
+ "EGLImage": "Image *",
+ "EGLImageKHR": "Image *",
+ "EGLStreamKHR": "Stream *",
+@@ -2085,7 +2086,7 @@ def get_egl_entry_point_labeled_object(ep_to_object, cmd_stripped, params, packe
+ return just_the_name_packed(param, packed_enums)
+ return None
+
+- display_param = find_param(params, "Display", packed_enums)
++ display_param = find_param(params, "egl::Display", packed_enums)
+
+ # For entry points not listed in the JSON file, they default to an EGLDisplay or nothing.
+ if cmd_stripped not in ep_to_object:
+diff --git a/third_party/angle/src/libANGLE/validationEGL_autogen.h b/third_party/angle/src/libANGLE/validationEGL_autogen.h
+index aa43ab156..869bd86e5 100644
+--- a/third_party/angle/src/libANGLE/validationEGL_autogen.h
++++ b/third_party/angle/src/libANGLE/validationEGL_autogen.h
+@@ -18,47 +18,47 @@ namespace egl
+
+ // EGL 1.0
+ bool ValidateChooseConfig(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const AttributeMap &attrib_listPacked,
+ const EGLConfig *configs,
+ EGLint config_size,
+ const EGLint *num_config);
+ bool ValidateCopyBuffers(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLNativePixmapType target);
+ bool ValidateCreateContext(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ const gl::Context *share_contextPacked,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateCreatePbufferSurface(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateCreatePixmapSurface(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ EGLNativePixmapType pixmap,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateCreateWindowSurface(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ EGLNativeWindowType win,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateDestroyContext(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const gl::Context *ctxPacked);
+ bool ValidateDestroySurface(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked);
+ bool ValidateGetConfigAttrib(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ EGLint attribute,
+ const EGLint *value);
+ bool ValidateGetConfigs(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const EGLConfig *configs,
+ EGLint config_size,
+ const EGLint *num_config);
+@@ -68,52 +68,54 @@ bool ValidateGetDisplay(const ValidationContext *val, EGLNativeDisplayType displ
+ bool ValidateGetError(const ValidationContext *val);
+ bool ValidateGetProcAddress(const ValidationContext *val, const char *procname);
+ bool ValidateInitialize(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const EGLint *major,
+ const EGLint *minor);
+ bool ValidateMakeCurrent(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *drawPacked,
+ const Surface *readPacked,
+ const gl::Context *ctxPacked);
+ bool ValidateQueryContext(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const gl::Context *ctxPacked,
+ EGLint attribute,
+ const EGLint *value);
+-bool ValidateQueryString(const ValidationContext *val, const Display *dpyPacked, EGLint name);
++bool ValidateQueryString(const ValidationContext *val, const egl::Display *dpyPacked, EGLint name);
+ bool ValidateQuerySurface(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLint attribute,
+ const EGLint *value);
+ bool ValidateSwapBuffers(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked);
+-bool ValidateTerminate(const ValidationContext *val, const Display *dpyPacked);
++bool ValidateTerminate(const ValidationContext *val, const egl::Display *dpyPacked);
+ bool ValidateWaitGL(const ValidationContext *val);
+ bool ValidateWaitNative(const ValidationContext *val, EGLint engine);
+
+ // EGL 1.1
+ bool ValidateBindTexImage(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLint buffer);
+ bool ValidateReleaseTexImage(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLint buffer);
+ bool ValidateSurfaceAttrib(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLint attribute,
+ EGLint value);
+-bool ValidateSwapInterval(const ValidationContext *val, const Display *dpyPacked, EGLint interval);
++bool ValidateSwapInterval(const ValidationContext *val,
++ const egl::Display *dpyPacked,
++ EGLint interval);
+
+ // EGL 1.2
+ bool ValidateBindAPI(const ValidationContext *val, EGLenum api);
+ bool ValidateCreatePbufferFromClientBuffer(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLenum buftype,
+ EGLClientBuffer buffer,
+ const Config *configPacked,
+@@ -127,53 +129,53 @@ bool ValidateGetCurrentContext(const ValidationContext *val);
+
+ // EGL 1.5
+ bool ValidateClientWaitSync(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked,
+ EGLint flags,
+ EGLTime timeout);
+ bool ValidateCreateImage(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const gl::Context *ctxPacked,
+ EGLenum target,
+ EGLClientBuffer buffer,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateCreatePlatformPixmapSurface(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ const void *native_pixmap,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateCreatePlatformWindowSurface(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ const void *native_window,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateCreateSync(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLenum type,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateDestroyImage(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Image *imagePacked);
+ bool ValidateDestroySync(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked);
+ bool ValidateGetPlatformDisplay(const ValidationContext *val,
+ EGLenum platform,
+ const void *native_display,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateGetSyncAttrib(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked,
+ EGLint attribute,
+ const EGLAttrib *value);
+ bool ValidateWaitSync(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked,
+ EGLint flags);
+
+ // EGL_ANDROID_blob_cache
+ bool ValidateSetBlobCacheFuncsANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLSetBlobFuncANDROID set,
+ EGLGetBlobFuncANDROID get);
+
+@@ -183,25 +185,25 @@ bool ValidateCreateNativeClientBufferANDROID(const ValidationContext *val,
+
+ // EGL_ANDROID_get_frame_timestamps
+ bool ValidateGetCompositorTimingSupportedANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ CompositorTiming namePacked);
+ bool ValidateGetCompositorTimingANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLint numTimestamps,
+ const EGLint *names,
+ const EGLnsecsANDROID *values);
+ bool ValidateGetNextFrameIdANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ const EGLuint64KHR *frameId);
+ bool ValidateGetFrameTimestampSupportedANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ Timestamp timestampPacked);
+ bool ValidateGetFrameTimestampsANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLuint64KHR frameId,
+ EGLint numTimestamps,
+@@ -214,12 +216,12 @@ bool ValidateGetNativeClientBufferANDROID(const ValidationContext *val,
+
+ // EGL_ANDROID_native_fence_sync
+ bool ValidateDupNativeFenceFDANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked);
+
+ // EGL_ANDROID_presentation_time
+ bool ValidatePresentationTimeANDROID(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLnsecsANDROID time);
+
+@@ -232,79 +234,79 @@ bool ValidateReleaseDeviceANGLE(const ValidationContext *val, const Device *devi
+
+ // EGL_ANGLE_feature_control
+ bool ValidateQueryStringiANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLint name,
+ EGLint index);
+ bool ValidateQueryDisplayAttribANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLint attribute,
+ const EGLAttrib *value);
+
+ // EGL_ANGLE_power_preference
+ bool ValidateReleaseHighPowerGPUANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const gl::Context *ctxPacked);
+ bool ValidateReacquireHighPowerGPUANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const gl::Context *ctxPacked);
+-bool ValidateHandleGPUSwitchANGLE(const ValidationContext *val, const Display *dpyPacked);
++bool ValidateHandleGPUSwitchANGLE(const ValidationContext *val, const egl::Display *dpyPacked);
+
+ // EGL_ANGLE_program_cache_control
+ bool ValidateProgramCacheGetAttribANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLenum attrib);
+ bool ValidateProgramCacheQueryANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLint index,
+ const void *key,
+ const EGLint *keysize,
+ const void *binary,
+ const EGLint *binarysize);
+ bool ValidateProgramCachePopulateANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const void *key,
+ EGLint keysize,
+ const void *binary,
+ EGLint binarysize);
+ bool ValidateProgramCacheResizeANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLint limit,
+ EGLint mode);
+
+ // EGL_ANGLE_query_surface_pointer
+ bool ValidateQuerySurfacePointerANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLint attribute,
+ void *const *value);
+
+ // EGL_ANGLE_stream_producer_d3d_texture
+ bool ValidateCreateStreamProducerD3DTextureANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateStreamPostD3DTextureANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked,
+ const void *texture,
+ const AttributeMap &attrib_listPacked);
+
+ // EGL_ANGLE_swap_with_frame_token
+ bool ValidateSwapBuffersWithFrameTokenANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLFrameTokenANGLE frametoken);
+
+ // EGL_ANGLE_sync_control_rate
+ bool ValidateGetMscRateANGLE(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ const EGLint *numerator,
+ const EGLint *denominator);
+
+ // EGL_CHROMIUM_sync_control
+ bool ValidateGetSyncValuesCHROMIUM(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ const EGLuint64KHR *ust,
+ const EGLuint64KHR *msc,
+@@ -319,18 +321,18 @@ bool ValidateQueryDeviceStringEXT(const ValidationContext *val,
+ const Device *devicePacked,
+ EGLint name);
+ bool ValidateQueryDisplayAttribEXT(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLint attribute,
+ const EGLAttrib *value);
+
+ // EGL_EXT_platform_base
+ bool ValidateCreatePlatformPixmapSurfaceEXT(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ const void *native_pixmap,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateCreatePlatformWindowSurfaceEXT(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Config *configPacked,
+ const void *native_window,
+ const AttributeMap &attrib_listPacked);
+@@ -344,7 +346,7 @@ bool ValidateDebugMessageControlKHR(const ValidationContext *val,
+ EGLDEBUGPROCKHR callback,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateLabelObjectKHR(const ValidationContext *val,
+- const Display *displayPacked,
++ const egl::Display *displayPacked,
+ ObjectType objectTypePacked,
+ EGLObjectKHR object,
+ EGLLabelKHR label);
+@@ -352,90 +354,90 @@ bool ValidateQueryDebugKHR(const ValidationContext *val, EGLint attribute, const
+
+ // EGL_KHR_fence_sync
+ bool ValidateClientWaitSyncKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked,
+ EGLint flags,
+ EGLTimeKHR timeout);
+ bool ValidateCreateSyncKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ EGLenum type,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateDestroySyncKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked);
+ bool ValidateGetSyncAttribKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked,
+ EGLint attribute,
+ const EGLint *value);
+
+ // EGL_KHR_image
+ bool ValidateCreateImageKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const gl::Context *ctxPacked,
+ EGLenum target,
+ EGLClientBuffer buffer,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateDestroyImageKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Image *imagePacked);
+
+ // EGL_KHR_reusable_sync
+ bool ValidateSignalSyncKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked,
+ EGLenum mode);
+
+ // EGL_KHR_stream
+ bool ValidateCreateStreamKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const AttributeMap &attrib_listPacked);
+ bool ValidateDestroyStreamKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked);
+ bool ValidateQueryStreamKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked,
+ EGLenum attribute,
+ const EGLint *value);
+ bool ValidateQueryStreamu64KHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked,
+ EGLenum attribute,
+ const EGLuint64KHR *value);
+ bool ValidateStreamAttribKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked,
+ EGLenum attribute,
+ EGLint value);
+
+ // EGL_KHR_stream_consumer_gltexture
+ bool ValidateStreamConsumerAcquireKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked);
+ bool ValidateStreamConsumerGLTextureExternalKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked);
+ bool ValidateStreamConsumerReleaseKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked);
+
+ // EGL_KHR_swap_buffers_with_damage
+ bool ValidateSwapBuffersWithDamageKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ const EGLint *rects,
+ EGLint n_rects);
+
+ // EGL_KHR_wait_sync
+ bool ValidateWaitSyncKHR(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Sync *syncPacked,
+ EGLint flags);
+
+ // EGL_NV_post_sub_buffer
+ bool ValidatePostSubBufferNV(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Surface *surfacePacked,
+ EGLint x,
+ EGLint y,
+@@ -444,7 +446,7 @@ bool ValidatePostSubBufferNV(const ValidationContext *val,
+
+ // EGL_NV_stream_consumer_gltexture_yuv
+ bool ValidateStreamConsumerGLTextureExternalAttribsNV(const ValidationContext *val,
+- const Display *dpyPacked,
++ const egl::Display *dpyPacked,
+ const Stream *streamPacked,
+ const AttributeMap &attrib_listPacked);
+ } // namespace egl
+diff --git a/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h b/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h
+index aecd051d9..404717bde 100644
+--- a/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h
++++ b/third_party/angle/src/libGLESv2/egl_ext_stubs_autogen.h
+@@ -33,12 +33,12 @@ class Thread;
+ struct Config;
+
+ EGLint ClientWaitSyncKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Sync *syncPacked,
+ EGLint flags,
+ EGLTimeKHR timeout);
+ EGLImageKHR CreateImageKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ gl::Context *ctxPacked,
+ EGLenum target,
+ EGLClientBuffer buffer,
+@@ -46,75 +46,75 @@ EGLImageKHR CreateImageKHR(Thread *thread,
+ EGLClientBuffer CreateNativeClientBufferANDROID(Thread *thread,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreatePlatformPixmapSurfaceEXT(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ void *native_pixmap,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreatePlatformWindowSurfaceEXT(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ void *native_window,
+ const AttributeMap &attrib_listPacked);
+ EGLStreamKHR CreateStreamKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ const AttributeMap &attrib_listPacked);
+ EGLSyncKHR CreateSyncKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLenum type,
+ const AttributeMap &attrib_listPacked);
+ EGLint DebugMessageControlKHR(Thread *thread,
+ EGLDEBUGPROCKHR callback,
+ const AttributeMap &attrib_listPacked);
+-EGLBoolean DestroyImageKHR(Thread *thread, Display *dpyPacked, Image *imagePacked);
+-EGLBoolean DestroyStreamKHR(Thread *thread, Display *dpyPacked, Stream *streamPacked);
+-EGLBoolean DestroySyncKHR(Thread *thread, Display *dpyPacked, Sync *syncPacked);
+-EGLint DupNativeFenceFDANDROID(Thread *thread, Display *dpyPacked, Sync *syncPacked);
++EGLBoolean DestroyImageKHR(Thread *thread, egl::Display *dpyPacked, Image *imagePacked);
++EGLBoolean DestroyStreamKHR(Thread *thread, egl::Display *dpyPacked, Stream *streamPacked);
++EGLBoolean DestroySyncKHR(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked);
++EGLint DupNativeFenceFDANDROID(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked);
+ EGLClientBuffer GetNativeClientBufferANDROID(Thread *thread, const struct AHardwareBuffer *buffer);
+ EGLDisplay GetPlatformDisplayEXT(Thread *thread,
+ EGLenum platform,
+ void *native_display,
+ const AttributeMap &attrib_listPacked);
+ EGLBoolean GetSyncAttribKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Sync *syncPacked,
+ EGLint attribute,
+ EGLint *value);
+ EGLint LabelObjectKHR(Thread *thread,
+- Display *displayPacked,
++ egl::Display *displayPacked,
+ ObjectType objectTypePacked,
+ EGLObjectKHR object,
+ EGLLabelKHR label);
+ EGLBoolean PostSubBufferNV(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint x,
+ EGLint y,
+ EGLint width,
+ EGLint height);
+ EGLBoolean PresentationTimeANDROID(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLnsecsANDROID time);
+ EGLBoolean GetCompositorTimingSupportedANDROID(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ CompositorTiming namePacked);
+ EGLBoolean GetCompositorTimingANDROID(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint numTimestamps,
+ const EGLint *names,
+ EGLnsecsANDROID *values);
+ EGLBoolean GetNextFrameIdANDROID(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLuint64KHR *frameId);
+ EGLBoolean GetFrameTimestampSupportedANDROID(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ Timestamp timestampPacked);
+ EGLBoolean GetFrameTimestampsANDROID(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLuint64KHR frameId,
+ EGLint numTimestamps,
+@@ -127,99 +127,99 @@ EGLBoolean QueryDeviceAttribEXT(Thread *thread,
+ EGLAttrib *value);
+ const char *QueryDeviceStringEXT(Thread *thread, Device *devicePacked, EGLint name);
+ EGLBoolean QueryDisplayAttribEXT(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLint attribute,
+ EGLAttrib *value);
+ EGLBoolean QueryStreamKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Stream *streamPacked,
+ EGLenum attribute,
+ EGLint *value);
+ EGLBoolean QueryStreamu64KHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Stream *streamPacked,
+ EGLenum attribute,
+ EGLuint64KHR *value);
+ EGLBoolean QuerySurfacePointerANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint attribute,
+ void **value);
+ void SetBlobCacheFuncsANDROID(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLSetBlobFuncANDROID set,
+ EGLGetBlobFuncANDROID get);
+-EGLBoolean SignalSyncKHR(Thread *thread, Display *dpyPacked, Sync *syncPacked, EGLenum mode);
++EGLBoolean SignalSyncKHR(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked, EGLenum mode);
+ EGLBoolean StreamAttribKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Stream *streamPacked,
+ EGLenum attribute,
+ EGLint value);
+-EGLBoolean StreamConsumerAcquireKHR(Thread *thread, Display *dpyPacked, Stream *streamPacked);
++EGLBoolean StreamConsumerAcquireKHR(Thread *thread, egl::Display *dpyPacked, Stream *streamPacked);
+ EGLBoolean StreamConsumerGLTextureExternalKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Stream *streamPacked);
+ EGLBoolean StreamConsumerGLTextureExternalAttribsNV(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Stream *streamPacked,
+ const AttributeMap &attrib_listPacked);
+-EGLBoolean StreamConsumerReleaseKHR(Thread *thread, Display *dpyPacked, Stream *streamPacked);
++EGLBoolean StreamConsumerReleaseKHR(Thread *thread, egl::Display *dpyPacked, Stream *streamPacked);
+ EGLBoolean SwapBuffersWithDamageKHR(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint *rects,
+ EGLint n_rects);
+-EGLint WaitSyncKHR(Thread *thread, Display *dpyPacked, Sync *syncPacked, EGLint flags);
++EGLint WaitSyncKHR(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked, EGLint flags);
+ EGLDeviceEXT CreateDeviceANGLE(Thread *thread,
+ EGLint device_type,
+ void *native_device,
+ const EGLAttrib *attrib_list);
+ EGLBoolean ReleaseDeviceANGLE(Thread *thread, Device *devicePacked);
+ EGLBoolean CreateStreamProducerD3DTextureANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Stream *streamPacked,
+ const AttributeMap &attrib_listPacked);
+ EGLBoolean StreamPostD3DTextureANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Stream *streamPacked,
+ void *texture,
+ const AttributeMap &attrib_listPacked);
+ EGLBoolean GetMscRateANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint *numerator,
+ EGLint *denominator);
+ EGLBoolean GetSyncValuesCHROMIUM(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLuint64KHR *ust,
+ EGLuint64KHR *msc,
+ EGLuint64KHR *sbc);
+-EGLint ProgramCacheGetAttribANGLE(Thread *thread, Display *dpyPacked, EGLenum attrib);
++EGLint ProgramCacheGetAttribANGLE(Thread *thread, egl::Display *dpyPacked, EGLenum attrib);
+ void ProgramCacheQueryANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLint index,
+ void *key,
+ EGLint *keysize,
+ void *binary,
+ EGLint *binarysize);
+ void ProgramCachePopulateANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ const void *key,
+ EGLint keysize,
+ const void *binary,
+ EGLint binarysize);
+-EGLint ProgramCacheResizeANGLE(Thread *thread, Display *dpyPacked, EGLint limit, EGLint mode);
+-const char *QueryStringiANGLE(Thread *thread, Display *dpyPacked, EGLint name, EGLint index);
++EGLint ProgramCacheResizeANGLE(Thread *thread, egl::Display *dpyPacked, EGLint limit, EGLint mode);
++const char *QueryStringiANGLE(Thread *thread, egl::Display *dpyPacked, EGLint name, EGLint index);
+ EGLBoolean SwapBuffersWithFrameTokenANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLFrameTokenANGLE frametoken);
+-void ReleaseHighPowerGPUANGLE(Thread *thread, Display *dpyPacked, gl::Context *ctxPacked);
+-void ReacquireHighPowerGPUANGLE(Thread *thread, Display *dpyPacked, gl::Context *ctxPacked);
+-void HandleGPUSwitchANGLE(Thread *thread, Display *dpyPacked);
++void ReleaseHighPowerGPUANGLE(Thread *thread, egl::Display *dpyPacked, gl::Context *ctxPacked);
++void ReacquireHighPowerGPUANGLE(Thread *thread, egl::Display *dpyPacked, gl::Context *ctxPacked);
++void HandleGPUSwitchANGLE(Thread *thread, egl::Display *dpyPacked);
+ EGLBoolean QueryDisplayAttribANGLE(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLint attribute,
+ EGLAttrib *value);
+ } // namespace egl
+diff --git a/third_party/angle/src/libGLESv2/egl_stubs_autogen.h b/third_party/angle/src/libGLESv2/egl_stubs_autogen.h
+index 9118495ed..6d7d210d9 100644
+--- a/third_party/angle/src/libGLESv2/egl_stubs_autogen.h
++++ b/third_party/angle/src/libGLESv2/egl_stubs_autogen.h
+@@ -33,78 +33,81 @@ class Thread;
+ struct Config;
+
+ EGLBoolean BindAPI(Thread *thread, EGLenum api);
+-EGLBoolean BindTexImage(Thread *thread, Display *dpyPacked, Surface *surfacePacked, EGLint buffer);
++EGLBoolean BindTexImage(Thread *thread,
++ egl::Display *dpyPacked,
++ Surface *surfacePacked,
++ EGLint buffer);
+ EGLBoolean ChooseConfig(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ const AttributeMap &attrib_listPacked,
+ EGLConfig *configs,
+ EGLint config_size,
+ EGLint *num_config);
+ EGLint ClientWaitSync(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Sync *syncPacked,
+ EGLint flags,
+ EGLTime timeout);
+ EGLBoolean CopyBuffers(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLNativePixmapType target);
+ EGLContext CreateContext(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ gl::Context *share_contextPacked,
+ const AttributeMap &attrib_listPacked);
+ EGLImage CreateImage(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ gl::Context *ctxPacked,
+ EGLenum target,
+ EGLClientBuffer buffer,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreatePbufferFromClientBuffer(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLenum buftype,
+ EGLClientBuffer buffer,
+ Config *configPacked,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreatePbufferSurface(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreatePixmapSurface(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ EGLNativePixmapType pixmap,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreatePlatformPixmapSurface(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ void *native_pixmap,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreatePlatformWindowSurface(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ void *native_window,
+ const AttributeMap &attrib_listPacked);
+ EGLSync CreateSync(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLenum type,
+ const AttributeMap &attrib_listPacked);
+ EGLSurface CreateWindowSurface(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ EGLNativeWindowType win,
+ const AttributeMap &attrib_listPacked);
+-EGLBoolean DestroyContext(Thread *thread, Display *dpyPacked, gl::Context *ctxPacked);
+-EGLBoolean DestroyImage(Thread *thread, Display *dpyPacked, Image *imagePacked);
+-EGLBoolean DestroySurface(Thread *thread, Display *dpyPacked, Surface *surfacePacked);
+-EGLBoolean DestroySync(Thread *thread, Display *dpyPacked, Sync *syncPacked);
++EGLBoolean DestroyContext(Thread *thread, egl::Display *dpyPacked, gl::Context *ctxPacked);
++EGLBoolean DestroyImage(Thread *thread, egl::Display *dpyPacked, Image *imagePacked);
++EGLBoolean DestroySurface(Thread *thread, egl::Display *dpyPacked, Surface *surfacePacked);
++EGLBoolean DestroySync(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked);
+ EGLBoolean GetConfigAttrib(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Config *configPacked,
+ EGLint attribute,
+ EGLint *value);
+ EGLBoolean GetConfigs(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ EGLConfig *configs,
+ EGLint config_size,
+ EGLint *num_config);
+@@ -119,44 +122,44 @@ EGLDisplay GetPlatformDisplay(Thread *thread,
+ const AttributeMap &attrib_listPacked);
+ __eglMustCastToProperFunctionPointerType GetProcAddress(Thread *thread, const char *procname);
+ EGLBoolean GetSyncAttrib(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Sync *syncPacked,
+ EGLint attribute,
+ EGLAttrib *value);
+-EGLBoolean Initialize(Thread *thread, Display *dpyPacked, EGLint *major, EGLint *minor);
++EGLBoolean Initialize(Thread *thread, egl::Display *dpyPacked, EGLint *major, EGLint *minor);
+ EGLBoolean MakeCurrent(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *drawPacked,
+ Surface *readPacked,
+ gl::Context *ctxPacked);
+ EGLenum QueryAPI(Thread *thread);
+ EGLBoolean QueryContext(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ gl::Context *ctxPacked,
+ EGLint attribute,
+ EGLint *value);
+-const char *QueryString(Thread *thread, Display *dpyPacked, EGLint name);
++const char *QueryString(Thread *thread, egl::Display *dpyPacked, EGLint name);
+ EGLBoolean QuerySurface(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint attribute,
+ EGLint *value);
+ EGLBoolean ReleaseTexImage(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint buffer);
+ EGLBoolean ReleaseThread(Thread *thread);
+ EGLBoolean SurfaceAttrib(Thread *thread,
+- Display *dpyPacked,
++ egl::Display *dpyPacked,
+ Surface *surfacePacked,
+ EGLint attribute,
+ EGLint value);
+-EGLBoolean SwapBuffers(Thread *thread, Display *dpyPacked, Surface *surfacePacked);
+-EGLBoolean SwapInterval(Thread *thread, Display *dpyPacked, EGLint interval);
+-EGLBoolean Terminate(Thread *thread, Display *dpyPacked);
++EGLBoolean SwapBuffers(Thread *thread, egl::Display *dpyPacked, Surface *surfacePacked);
++EGLBoolean SwapInterval(Thread *thread, egl::Display *dpyPacked, EGLint interval);
++EGLBoolean Terminate(Thread *thread, egl::Display *dpyPacked);
+ EGLBoolean WaitClient(Thread *thread);
+ EGLBoolean WaitGL(Thread *thread);
+ EGLBoolean WaitNative(Thread *thread, EGLint engine);
+-EGLBoolean WaitSync(Thread *thread, Display *dpyPacked, Sync *syncPacked, EGLint flags);
++EGLBoolean WaitSync(Thread *thread, egl::Display *dpyPacked, Sync *syncPacked, EGLint flags);
+ } // namespace egl
+ #endif // LIBGLESV2_EGL_STUBS_AUTOGEN_H_
+diff --git a/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp b/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp
+index 3e127ee9d..7671cc7ab 100644
+--- a/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp
++++ b/third_party/angle/src/libGLESv2/entry_points_egl_autogen.cpp
+@@ -35,7 +35,7 @@ EGLBoolean EGLAPIENTRY EGL_ChooseConfig(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+ ANGLE_EGL_VALIDATE(thread, ChooseConfig, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+@@ -55,8 +55,8 @@ EGLBoolean EGLAPIENTRY EGL_CopyBuffers(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, CopyBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, target);
+@@ -77,7 +77,7 @@ EGLContext EGLAPIENTRY EGL_CreateContext(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ gl::Context *share_contextPacked = PackParam<gl::Context *>(share_context);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+@@ -100,7 +100,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePbufferSurface(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -123,7 +123,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePixmapSurface(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -146,7 +146,7 @@ EGLSurface EGLAPIENTRY EGL_CreateWindowSurface(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -164,8 +164,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyContext(EGLDisplay dpy, EGLContext ctx)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
+
+ ANGLE_EGL_VALIDATE(thread, DestroyContext, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ ctxPacked);
+@@ -181,8 +181,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroySurface(EGLDisplay dpy, EGLSurface surface)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, DestroySurface, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked);
+@@ -203,8 +203,8 @@ EGLBoolean EGLAPIENTRY EGL_GetConfigAttrib(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Config *configPacked = PackParam<Config *>(config);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Config *configPacked = PackParam<Config *>(config);
+
+ ANGLE_EGL_VALIDATE(thread, GetConfigAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ configPacked, attribute, value);
+@@ -225,7 +225,7 @@ EGLBoolean EGLAPIENTRY EGL_GetConfigs(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, GetConfigs, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ configs, config_size, num_config);
+@@ -303,7 +303,7 @@ EGLBoolean EGLAPIENTRY EGL_Initialize(EGLDisplay dpy, EGLint *major, EGLint *min
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, Initialize, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ major, minor);
+@@ -324,10 +324,10 @@ EGLBoolean EGLAPIENTRY EGL_MakeCurrent(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *drawPacked = PackParam<Surface *>(draw);
+- Surface *readPacked = PackParam<Surface *>(read);
+- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *drawPacked = PackParam<Surface *>(draw);
++ Surface *readPacked = PackParam<Surface *>(read);
++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
+
+ ANGLE_EGL_VALIDATE(thread, MakeCurrent, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ drawPacked, readPacked, ctxPacked);
+@@ -348,8 +348,8 @@ EGLBoolean EGLAPIENTRY EGL_QueryContext(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
+
+ ANGLE_EGL_VALIDATE(thread, QueryContext, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ ctxPacked, attribute, value);
+@@ -364,7 +364,7 @@ const char *EGLAPIENTRY EGL_QueryString(EGLDisplay dpy, EGLint name)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, QueryString, GetDisplayIfValid(dpyPacked), const char *, dpyPacked,
+ name);
+@@ -385,8 +385,8 @@ EGLBoolean EGLAPIENTRY EGL_QuerySurface(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, QuerySurface, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, attribute, value);
+@@ -402,8 +402,8 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffers(EGLDisplay dpy, EGLSurface surface)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, SwapBuffers, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked);
+@@ -418,7 +418,7 @@ EGLBoolean EGLAPIENTRY EGL_Terminate(EGLDisplay dpy)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, Terminate, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked);
+
+@@ -458,8 +458,8 @@ EGLBoolean EGLAPIENTRY EGL_BindTexImage(EGLDisplay dpy, EGLSurface surface, EGLi
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, BindTexImage, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, buffer);
+@@ -475,8 +475,8 @@ EGLBoolean EGLAPIENTRY EGL_ReleaseTexImage(EGLDisplay dpy, EGLSurface surface, E
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, ReleaseTexImage, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, buffer);
+@@ -496,8 +496,8 @@ EGLBoolean EGLAPIENTRY EGL_SurfaceAttrib(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, SurfaceAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, attribute, value);
+@@ -512,7 +512,7 @@ EGLBoolean EGLAPIENTRY EGL_SwapInterval(EGLDisplay dpy, EGLint interval)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, SwapInterval, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ interval);
+@@ -548,7 +548,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePbufferFromClientBuffer(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -618,8 +618,8 @@ EGLint EGLAPIENTRY EGL_ClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, ClientWaitSync, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked,
+ syncPacked, flags, timeout);
+@@ -641,7 +641,7 @@ EGLImage EGLAPIENTRY EGL_CreateImage(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -664,7 +664,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurface(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -688,7 +688,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurface(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -707,7 +707,7 @@ EGLSync EGLAPIENTRY EGL_CreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+ ANGLE_EGL_VALIDATE(thread, CreateSync, GetDisplayIfValid(dpyPacked), EGLSync, dpyPacked, type,
+@@ -724,8 +724,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyImage(EGLDisplay dpy, EGLImage image)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Image *imagePacked = PackParam<Image *>(image);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Image *imagePacked = PackParam<Image *>(image);
+
+ ANGLE_EGL_VALIDATE(thread, DestroyImage, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ imagePacked);
+@@ -741,8 +741,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroySync(EGLDisplay dpy, EGLSync sync)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, DestroySync, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ syncPacked);
+@@ -783,8 +783,8 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncAttrib(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, GetSyncAttrib, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ syncPacked, attribute, value);
+@@ -800,8 +800,8 @@ EGLBoolean EGLAPIENTRY EGL_WaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, WaitSync, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ syncPacked, flags);
+diff --git a/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp b/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp
+index d9f4b76ea..76fcf8c17 100644
+--- a/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp
++++ b/third_party/angle/src/libGLESv2/entry_points_egl_ext_autogen.cpp
+@@ -31,7 +31,7 @@ void EGLAPIENTRY EGL_SetBlobCacheFuncsANDROID(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE_VOID(thread, SetBlobCacheFuncsANDROID, GetDisplayIfValid(dpyPacked),
+ dpyPacked, set, get);
+@@ -68,7 +68,7 @@ EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingSupportedANDROID(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Surface *surfacePacked = PackParam<Surface *>(surface);
+ CompositorTiming namePacked = PackParam<CompositorTiming>(name);
+
+@@ -93,8 +93,8 @@ EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingANDROID(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, GetCompositorTimingANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, numTimestamps, names, values);
+@@ -114,8 +114,8 @@ EGLBoolean EGLAPIENTRY EGL_GetNextFrameIdANDROID(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, GetNextFrameIdANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, frameId);
+@@ -134,7 +134,7 @@ EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampSupportedANDROID(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Surface *surfacePacked = PackParam<Surface *>(surface);
+ Timestamp timestampPacked = PackParam<Timestamp>(timestamp);
+
+@@ -161,8 +161,8 @@ EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampsANDROID(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, GetFrameTimestampsANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, frameId, numTimestamps, timestamps, values);
+@@ -193,8 +193,8 @@ EGLint EGLAPIENTRY EGL_DupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, DupNativeFenceFDANDROID, GetDisplayIfValid(dpyPacked), EGLint,
+ dpyPacked, syncPacked);
+@@ -214,8 +214,8 @@ EGLBoolean EGLAPIENTRY EGL_PresentationTimeANDROID(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, PresentationTimeANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, time);
+@@ -265,7 +265,7 @@ const char *EGLAPIENTRY EGL_QueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLin
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, QueryStringiANGLE, GetDisplayIfValid(dpyPacked), const char *,
+ dpyPacked, name, index);
+@@ -284,7 +284,7 @@ EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, attribute, value);
+@@ -301,8 +301,8 @@ void EGLAPIENTRY EGL_ReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
+
+ ANGLE_EGL_VALIDATE_VOID(thread, ReleaseHighPowerGPUANGLE, GetDisplayIfValid(dpyPacked),
+ dpyPacked, ctxPacked);
+@@ -318,8 +318,8 @@ void EGLAPIENTRY EGL_ReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
+
+ ANGLE_EGL_VALIDATE_VOID(thread, ReacquireHighPowerGPUANGLE, GetDisplayIfValid(dpyPacked),
+ dpyPacked, ctxPacked);
+@@ -334,7 +334,7 @@ void EGLAPIENTRY EGL_HandleGPUSwitchANGLE(EGLDisplay dpy)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE_VOID(thread, HandleGPUSwitchANGLE, GetDisplayIfValid(dpyPacked), dpyPacked);
+
+@@ -350,7 +350,7 @@ EGLint EGLAPIENTRY EGL_ProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, ProgramCacheGetAttribANGLE, GetDisplayIfValid(dpyPacked), EGLint,
+ dpyPacked, attrib);
+@@ -375,7 +375,7 @@ void EGLAPIENTRY EGL_ProgramCacheQueryANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE_VOID(thread, ProgramCacheQueryANGLE, GetDisplayIfValid(dpyPacked), dpyPacked,
+ index, key, keysize, binary, binarysize);
+@@ -397,7 +397,7 @@ void EGLAPIENTRY EGL_ProgramCachePopulateANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE_VOID(thread, ProgramCachePopulateANGLE, GetDisplayIfValid(dpyPacked),
+ dpyPacked, key, keysize, binary, binarysize);
+@@ -413,7 +413,7 @@ EGLint EGLAPIENTRY EGL_ProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGL
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, ProgramCacheResizeANGLE, GetDisplayIfValid(dpyPacked), EGLint,
+ dpyPacked, limit, mode);
+@@ -435,8 +435,8 @@ EGLBoolean EGLAPIENTRY EGL_QuerySurfacePointerANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, QuerySurfacePointerANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, attribute, value);
+@@ -457,7 +457,7 @@ EGLBoolean EGLAPIENTRY EGL_CreateStreamProducerD3DTextureANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Stream *streamPacked = PackParam<Stream *>(stream);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -480,7 +480,7 @@ EGLBoolean EGLAPIENTRY EGL_StreamPostD3DTextureANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Stream *streamPacked = PackParam<Stream *>(stream);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -502,8 +502,8 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithFrameTokenANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, SwapBuffersWithFrameTokenANGLE, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, surfacePacked, frametoken);
+@@ -525,8 +525,8 @@ EGLBoolean EGLAPIENTRY EGL_GetMscRateANGLE(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, GetMscRateANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, numerator, denominator);
+@@ -549,8 +549,8 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncValuesCHROMIUM(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, GetSyncValuesCHROMIUM, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, ust, msc, sbc);
+@@ -602,7 +602,7 @@ EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribut
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+
+ ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribEXT, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, attribute, value);
+@@ -624,7 +624,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -648,7 +648,7 @@ EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurfaceEXT(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Config *configPacked = PackParam<Config *>(config);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -711,7 +711,7 @@ EGLint EGLAPIENTRY EGL_LabelObjectKHR(EGLDisplay display,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *displayPacked = PackParam<Display *>(display);
++ egl::Display *displayPacked = PackParam<egl::Display *>(display);
+ ObjectType objectTypePacked = PackParam<ObjectType>(objectType);
+
+ ANGLE_EGL_VALIDATE(thread, LabelObjectKHR, GetDisplayIfValid(displayPacked), EGLint,
+@@ -746,8 +746,8 @@ EGLint EGLAPIENTRY EGL_ClientWaitSyncKHR(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, ClientWaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked,
+ syncPacked, flags, timeout);
+@@ -764,7 +764,7 @@ EGLSyncKHR EGLAPIENTRY EGL_CreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGL
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+ ANGLE_EGL_VALIDATE(thread, CreateSyncKHR, GetDisplayIfValid(dpyPacked), EGLSyncKHR, dpyPacked,
+@@ -781,8 +781,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, DestroySyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ syncPacked);
+@@ -803,8 +803,8 @@ EGLBoolean EGLAPIENTRY EGL_GetSyncAttribKHR(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, GetSyncAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, syncPacked, attribute, value);
+@@ -827,7 +827,7 @@ EGLImageKHR EGLAPIENTRY EGL_CreateImageKHR(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+@@ -845,8 +845,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Image *imagePacked = PackParam<Image *>(image);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Image *imagePacked = PackParam<Image *>(image);
+
+ ANGLE_EGL_VALIDATE(thread, DestroyImageKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ imagePacked);
+@@ -863,8 +863,8 @@ EGLBoolean EGLAPIENTRY EGL_SignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenu
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, SignalSyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ syncPacked, mode);
+@@ -889,7 +889,7 @@ EGLStreamKHR EGLAPIENTRY EGL_CreateStreamKHR(EGLDisplay dpy, const EGLint *attri
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
+ ANGLE_EGL_VALIDATE(thread, CreateStreamKHR, GetDisplayIfValid(dpyPacked), EGLStreamKHR,
+@@ -906,8 +906,8 @@ EGLBoolean EGLAPIENTRY EGL_DestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream)
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Stream *streamPacked = PackParam<Stream *>(stream);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Stream *streamPacked = PackParam<Stream *>(stream);
+
+ ANGLE_EGL_VALIDATE(thread, DestroyStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, streamPacked);
+@@ -928,8 +928,8 @@ EGLBoolean EGLAPIENTRY EGL_QueryStreamKHR(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Stream *streamPacked = PackParam<Stream *>(stream);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Stream *streamPacked = PackParam<Stream *>(stream);
+
+ ANGLE_EGL_VALIDATE(thread, QueryStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ streamPacked, attribute, value);
+@@ -950,8 +950,8 @@ EGLBoolean EGLAPIENTRY EGL_QueryStreamu64KHR(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Stream *streamPacked = PackParam<Stream *>(stream);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Stream *streamPacked = PackParam<Stream *>(stream);
+
+ ANGLE_EGL_VALIDATE(thread, QueryStreamu64KHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, streamPacked, attribute, value);
+@@ -971,8 +971,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamAttribKHR(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Stream *streamPacked = PackParam<Stream *>(stream);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Stream *streamPacked = PackParam<Stream *>(stream);
+
+ ANGLE_EGL_VALIDATE(thread, StreamAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ streamPacked, attribute, value);
+@@ -989,8 +989,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Stream *streamPacked = PackParam<Stream *>(stream);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Stream *streamPacked = PackParam<Stream *>(stream);
+
+ ANGLE_EGL_VALIDATE(thread, StreamConsumerAcquireKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, streamPacked);
+@@ -1007,8 +1007,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EG
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Stream *streamPacked = PackParam<Stream *>(stream);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Stream *streamPacked = PackParam<Stream *>(stream);
+
+ ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalKHR, GetDisplayIfValid(dpyPacked),
+ EGLBoolean, dpyPacked, streamPacked);
+@@ -1024,8 +1024,8 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Stream *streamPacked = PackParam<Stream *>(stream);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Stream *streamPacked = PackParam<Stream *>(stream);
+
+ ANGLE_EGL_VALIDATE(thread, StreamConsumerReleaseKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, streamPacked);
+@@ -1047,8 +1047,8 @@ EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithDamageKHR(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, SwapBuffersWithDamageKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,
+ dpyPacked, surfacePacked, rects, n_rects);
+@@ -1065,8 +1065,8 @@ EGLint EGLAPIENTRY EGL_WaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Sync *syncPacked = PackParam<Sync *>(sync);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Sync *syncPacked = PackParam<Sync *>(sync);
+
+ ANGLE_EGL_VALIDATE(thread, WaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked,
+ syncPacked, flags);
+@@ -1090,8 +1090,8 @@ EGLBoolean EGLAPIENTRY EGL_PostSubBufferNV(EGLDisplay dpy,
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
+- Surface *surfacePacked = PackParam<Surface *>(surface);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
++ Surface *surfacePacked = PackParam<Surface *>(surface);
+
+ ANGLE_EGL_VALIDATE(thread, PostSubBufferNV, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,
+ surfacePacked, x, y, width, height);
+@@ -1112,7 +1112,7 @@ EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalAttribsNV(EGLDisplay d
+
+ Thread *thread = egl::GetCurrentThread();
+
+- Display *dpyPacked = PackParam<Display *>(dpy);
++ egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
+ Stream *streamPacked = PackParam<Stream *>(stream);
+ const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);
+
diff --git a/www-client/chromium/files/chromium-89-compositor-dcheck.patch b/www-client/chromium/files/chromium-89-compositor-dcheck.patch
new file mode 100644
index 0000000..2a12ca9
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-compositor-dcheck.patch
@@ -0,0 +1,13 @@
+diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc
+index bab060123..f3ee60127 100644
+--- a/cc/metrics/compositor_frame_reporter.cc
++++ b/cc/metrics/compositor_frame_reporter.cc
+@@ -767,7 +767,7 @@ void CompositorFrameReporter::ReportCompositorLatencyHistogram(
+
+ void CompositorFrameReporter::ReportEventLatencyHistograms() const {
+ for (const auto& event_metrics : events_metrics_) {
+- DCHECK(event_metrics);
++ DCHECK(event_metrics.get());
+ const std::string histogram_base_name =
+ GetEventLatencyHistogramBaseName(*event_metrics);
+ const int event_type_index = static_cast<int>(event_metrics->type());
diff --git a/www-client/chromium/files/chromium-89-content-dcheck-uniqueptr.patch b/www-client/chromium/files/chromium-89-content-dcheck-uniqueptr.patch
new file mode 100644
index 0000000..2297062
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-content-dcheck-uniqueptr.patch
@@ -0,0 +1,13 @@
+diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc
+index f020be446..d7cb4656e 100644
+--- a/content/browser/renderer_host/render_frame_host_manager.cc
++++ b/content/browser/renderer_host/render_frame_host_manager.cc
+@@ -738,7 +738,7 @@ void RenderFrameHostManager::ValidateSpeculativeRenderFrameHostForBug1146573() {
+ // This should never be true.
+ SCOPED_CRASH_KEY_BOOL(ValidateSpeculative, HostsEqual,
+ speculative_render_frame_host_ == render_frame_host_);
+- DCHECK_NE(speculative_render_frame_host_, render_frame_host_);
++ DCHECK_NE(speculative_render_frame_host_.get(), render_frame_host_.get());
+ SCOPED_CRASH_KEY_BOOL(ValidateSpeculative, Live,
+ render_frame_host_->IsRenderFrameLive());
+ SCOPED_CRASH_KEY_STRING256(
diff --git a/www-client/chromium/files/chromium-89-dawn-string-include.patch b/www-client/chromium/files/chromium-89-dawn-string-include.patch
new file mode 100644
index 0000000..ae0bcc8
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-dawn-string-include.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp b/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp
+index e91e540fa..502a470e6 100644
+--- a/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp
++++ b/third_party/dawn/src/dawn_wire/ChunkedCommandHandler.cpp
+@@ -14,6 +14,8 @@
+
+ #include "dawn_wire/ChunkedCommandHandler.h"
+
++#include <string.h>
++
+ #include <algorithm>
+
+ namespace dawn_wire {
diff --git a/www-client/chromium/files/chromium-89-pcscan-include.patch b/www-client/chromium/files/chromium-89-pcscan-include.patch
new file mode 100644
index 0000000..96fcfb6
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-pcscan-include.patch
@@ -0,0 +1,12 @@
+diff --git a/base/allocator/partition_allocator/pcscan.cc b/base/allocator/partition_allocator/pcscan.cc
+index b8d96e32d..a802a1fae 100644
+--- a/base/allocator/partition_allocator/pcscan.cc
++++ b/base/allocator/partition_allocator/pcscan.cc
+@@ -7,6 +7,7 @@
+ #include <algorithm>
+ #include <map>
+ #include <mutex>
++#include <condition_variable>
+ #include <numeric>
+ #include <set>
+ #include <thread>
diff --git a/www-client/chromium/files/chromium-89-quiche-uniqueptr.patch b/www-client/chromium/files/chromium-89-quiche-uniqueptr.patch
new file mode 100644
index 0000000..a093522
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-quiche-uniqueptr.patch
@@ -0,0 +1,13 @@
+diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc
+index 5d5e7206d..8145252aa 100644
+--- a/net/third_party/quiche/src/quic/core/quic_path_validator.cc
++++ b/net/third_party/quiche/src/quic/core/quic_path_validator.cc
+@@ -66,7 +66,7 @@ void QuicPathValidator::StartValidingPath(
+ std::unique_ptr<QuicPathValidationContext> context,
+ std::unique_ptr<ResultDelegate> result_delegate) {
+ CancelPathValidation();
+- DCHECK_NE(nullptr, context);
++ DCHECK_NE(nullptr, context.get());
+ QUIC_DLOG(INFO) << "Start validating path " << *context
+ << " via writer: " << context->WriterToUse();
+
diff --git a/www-client/chromium/files/chromium-89-quiche-uniqueptr_r1.patch b/www-client/chromium/files/chromium-89-quiche-uniqueptr_r1.patch
new file mode 100644
index 0000000..6872128
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-quiche-uniqueptr_r1.patch
@@ -0,0 +1,13 @@
+diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc
+index 0722216a8..834a491e0 100644
+--- a/net/third_party/quiche/src/quic/core/quic_path_validator.cc
++++ b/net/third_party/quiche/src/quic/core/quic_path_validator.cc
+@@ -68,7 +68,7 @@ void QuicPathValidator::OnPathResponse(const QuicPathFrameBuffer& probing_data,
+ void QuicPathValidator::StartPathValidation(
+ std::unique_ptr<QuicPathValidationContext> context,
+ std::unique_ptr<ResultDelegate> result_delegate) {
+- DCHECK_NE(nullptr, context);
++ DCHECK_NE(nullptr, context.get());
+ QUIC_DLOG(INFO) << "Start validating path " << *context
+ << " via writer: " << context->WriterToUse();
+ if (path_context_ != nullptr) {
diff --git a/www-client/chromium/files/chromium-89-sstream.patch b/www-client/chromium/files/chromium-89-sstream.patch
new file mode 100644
index 0000000..8204fe2
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-sstream.patch
@@ -0,0 +1,344 @@
+diff --git a/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc b/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc
+index 339fc5a6c..5e23be6fb 100644
+--- a/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc
++++ b/chrome/browser/ui/webui/internals/web_app/web_app_internals_page_handler_impl.cc
+@@ -23,7 +23,7 @@ namespace {
+
+ template <typename T>
+ std::string ConvertToString(const T& value) {
+- return (std::stringstream() << value).str();
++ return static_cast<const std::stringstream &>(std::stringstream() << value).str();
+ }
+
+ } // namespace
+diff --git a/chrome/browser/web_applications/external_web_app_manager.cc b/chrome/browser/web_applications/external_web_app_manager.cc
+index 3da14c154..64c2e80a9 100644
+--- a/chrome/browser/web_applications/external_web_app_manager.cc
++++ b/chrome/browser/web_applications/external_web_app_manager.cc
+@@ -100,7 +100,7 @@ LoadedConfigs LoadConfigsBlocking(const base::FilePath& config_dir) {
+ deserializer.Deserialize(nullptr, &error_msg);
+ if (!app_config) {
+ result.errors.push_back(
+- (std::stringstream() << file << " was not valid JSON: " << error_msg)
++ static_cast<const std::stringstream &>(std::stringstream() << file << " was not valid JSON: " << error_msg)
+ .str());
+ VLOG(1) << result.errors.back();
+ continue;
+diff --git a/chrome/browser/web_applications/external_web_app_utils.cc b/chrome/browser/web_applications/external_web_app_utils.cc
+index 8b3414d06..6d0718198 100644
+--- a/chrome/browser/web_applications/external_web_app_utils.cc
++++ b/chrome/browser/web_applications/external_web_app_utils.cc
+@@ -158,7 +158,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ options.require_manifest = true;
+
+ if (app_config.type() != base::Value::Type::DICTIONARY) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " was not a dictionary as the top level")
+ .str();
+ }
+@@ -166,18 +166,18 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ // user_type
+ const base::Value* value = app_config.FindListKey(kUserType);
+ if (!value) {
+- return (std::stringstream() << file << " missing " << kUserType).str();
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " missing " << kUserType).str();
+ }
+ for (const auto& item : value->GetList()) {
+ if (!item.is_string()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " has invalid " << kUserType << item)
+ .str();
+ }
+ options.user_type_allowlist.push_back(item.GetString());
+ }
+ if (options.user_type_allowlist.empty()) {
+- return (std::stringstream() << file << " has empty " << kUserType).str();
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " has empty " << kUserType).str();
+ }
+
+ // feature_name
+@@ -188,18 +188,18 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ // app_url
+ value = app_config.FindKeyOfType(kAppUrl, base::Value::Type::STRING);
+ if (!value) {
+- return (std::stringstream() << file << " had a missing " << kAppUrl).str();
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had a missing " << kAppUrl).str();
+ }
+ options.install_url = GURL(value->GetString());
+ if (!options.install_url.is_valid()) {
+- return (std::stringstream() << file << " had an invalid " << kAppUrl).str();
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had an invalid " << kAppUrl).str();
+ }
+
+ // only_for_new_users
+ value = app_config.FindKey(kOnlyForNewUsers);
+ if (value) {
+ if (!value->is_bool()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kOnlyForNewUsers)
+ .str();
+ }
+@@ -211,7 +211,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kHideFromUser);
+ if (value) {
+ if (!value->is_bool()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kHideFromUser)
+ .str();
+ }
+@@ -226,7 +226,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kCreateShortcuts);
+ if (value) {
+ if (!value->is_bool()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kCreateShortcuts)
+ .str();
+ }
+@@ -242,7 +242,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kDisableIfArcSupported);
+ if (value) {
+ if (!value->is_bool()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kDisableIfArcSupported)
+ .str();
+ }
+@@ -253,7 +253,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kDisableIfTabletFormFactor);
+ if (value) {
+ if (!value->is_bool()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kDisableIfTabletFormFactor)
+ .str();
+ }
+@@ -263,7 +263,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ // launch_container
+ value = app_config.FindKeyOfType(kLaunchContainer, base::Value::Type::STRING);
+ if (!value) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kLaunchContainer)
+ .str();
+ }
+@@ -273,7 +273,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ } else if (launch_container_str == kLaunchContainerWindow) {
+ options.user_display_mode = DisplayMode::kStandalone;
+ } else {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kLaunchContainer << ": "
+ << launch_container_str)
+ .str();
+@@ -283,7 +283,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kLaunchQueryParams);
+ if (value) {
+ if (!value->is_string()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kLaunchQueryParams)
+ .str();
+ }
+@@ -294,7 +294,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kLoadAndAwaitServiceWorkerRegistration);
+ if (value) {
+ if (!value->is_bool()) {
+- return (std::stringstream() << file << " had an invalid "
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had an invalid "
+ << kLoadAndAwaitServiceWorkerRegistration)
+ .str();
+ }
+@@ -305,20 +305,20 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kServiceWorkerRegistrationUrl);
+ if (value) {
+ if (!options.load_and_await_service_worker_registration) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " should not specify a "
+ << kServiceWorkerRegistrationUrl << " while "
+ << kLoadAndAwaitServiceWorkerRegistration << " is disabled")
+ .str();
+ }
+ if (!value->is_string()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kServiceWorkerRegistrationUrl)
+ .str();
+ }
+ options.service_worker_registration_url.emplace(value->GetString());
+ if (!options.service_worker_registration_url->is_valid()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kServiceWorkerRegistrationUrl)
+ .str();
+ }
+@@ -328,7 +328,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kUninstallAndReplace);
+ if (value) {
+ if (!value->is_list()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kUninstallAndReplace)
+ .str();
+ }
+@@ -336,7 +336,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+
+ for (const auto& app_id_value : uninstall_and_replace_values) {
+ if (!app_id_value.is_string()) {
+- return (std::stringstream() << file << " had an invalid "
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " had an invalid "
+ << kUninstallAndReplace << " entry")
+ .str();
+ }
+@@ -348,7 +348,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ value = app_config.FindKey(kOnlyUseOfflineManifest);
+ if (value) {
+ if (!value->is_bool()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " had an invalid " << kOnlyUseOfflineManifest)
+ .str();
+ }
+@@ -369,7 +369,7 @@ OptionsOrError ParseConfig(FileUtilsWrapper& file_utils,
+ }
+
+ if (options.only_use_app_info_factory && !options.app_info_factory) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << kOnlyUseOfflineManifest << " set with no "
+ << kOfflineManifest << " available")
+ .str();
+@@ -389,7 +389,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ const std::string* name_string =
+ offline_manifest.FindStringKey(kOfflineManifestName);
+ if (!name_string) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " " << kOfflineManifestName
+ << " missing or invalid.")
+ .str();
+@@ -397,7 +397,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ if (!base::UTF8ToUTF16(name_string->data(), name_string->size(),
+ &app_info.title) ||
+ app_info.title.empty()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " " << kOfflineManifestName
+ << " invalid: " << *name_string)
+ .str();
+@@ -407,14 +407,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ const std::string* start_url_string =
+ offline_manifest.FindStringKey(kOfflineManifestStartUrl);
+ if (!start_url_string) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " "
+ << kOfflineManifestStartUrl << " missing or invalid.")
+ .str();
+ }
+ app_info.start_url = GURL(*start_url_string);
+ if (!app_info.start_url.is_valid()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " "
+ << kOfflineManifestStartUrl << " invalid: " << *start_url_string)
+ .str();
+@@ -424,21 +424,21 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ const std::string* scope_string =
+ offline_manifest.FindStringKey(kOfflineManifestScope);
+ if (!scope_string) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " " << kOfflineManifestScope
+ << " missing or invalid.")
+ .str();
+ }
+ app_info.scope = GURL(*scope_string);
+ if (!app_info.scope.is_valid()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " " << kOfflineManifestScope
+ << " invalid: " << *scope_string)
+ .str();
+ }
+ if (!base::StartsWith(app_info.start_url.path(), app_info.scope.path(),
+ base::CompareCase::SENSITIVE)) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " " << kOfflineManifestScope
+ << " (" << app_info.start_url << ") not within "
+ << kOfflineManifestScope << " (" << app_info.scope << ").")
+@@ -449,14 +449,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ const std::string* display_string =
+ offline_manifest.FindStringKey(kOfflineManifestDisplay);
+ if (!display_string) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " " << kOfflineManifestDisplay
+ << " missing or invalid.")
+ .str();
+ }
+ DisplayMode display = blink::DisplayModeFromString(*display_string);
+ if (display == DisplayMode::kUndefined) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " " << kOfflineManifestDisplay
+ << " invalid: " << display_string)
+ .str();
+@@ -467,14 +467,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ const base::Value* icon_files =
+ offline_manifest.FindListKey(kOfflineManifestIconAnyPngs);
+ if (!icon_files || icon_files->GetList().empty()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " "
+ << kOfflineManifestIconAnyPngs << " missing, empty or invalid.")
+ .str();
+ }
+ for (const base::Value& icon_file : icon_files->GetList()) {
+ if (!icon_file.is_string()) {
+- return (std::stringstream()
++ return static_cast<const std::stringstream &>(std::stringstream()
+ << file << " " << kOfflineManifest << " "
+ << kOfflineManifestIconAnyPngs << " " << icon_file << " invalid.")
+ .str();
+@@ -483,7 +483,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ base::FilePath icon_path = dir.AppendASCII(icon_file.GetString());
+ std::string icon_data;
+ if (!file_utils.ReadFileToString(icon_path, &icon_data)) {
+- return (std::stringstream() << file << " " << kOfflineManifest << " "
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " "
+ << kOfflineManifestIconAnyPngs << " "
+ << icon_file << " failed to read.")
+ .str();
+@@ -493,14 +493,14 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ if (!gfx::PNGCodec::Decode(
+ reinterpret_cast<const unsigned char*>(icon_data.c_str()),
+ icon_data.size(), &bitmap)) {
+- return (std::stringstream() << file << " " << kOfflineManifest << " "
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " "
+ << kOfflineManifestIconAnyPngs << " "
+ << icon_file << " failed to decode.")
+ .str();
+ }
+
+ if (bitmap.width() != bitmap.height()) {
+- return (std::stringstream() << file << " " << kOfflineManifest << " "
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " "
+ << kOfflineManifestIconAnyPngs << " "
+ << icon_file << " must be square: "
+ << bitmap.width() << "x" << bitmap.height())
+@@ -521,7 +521,7 @@ WebApplicationInfoFactoryOrError ParseOfflineManifest(
+ SkColor theme_color;
+ if (!theme_color_argb_hex ||
+ !base::HexStringToUInt(*theme_color_argb_hex, &theme_color)) {
+- return (std::stringstream() << file << " " << kOfflineManifest << " "
++ return static_cast<const std::stringstream &>(std::stringstream() << file << " " << kOfflineManifest << " "
+ << kOfflineManifestThemeColorArgbHex
+ << " invalid: " << *theme_color_value)
+ .str();
diff --git a/www-client/chromium/files/chromium-89-uigfx-image-skia.patch b/www-client/chromium/files/chromium-89-uigfx-image-skia.patch
new file mode 100644
index 0000000..a96dd00
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-uigfx-image-skia.patch
@@ -0,0 +1,22 @@
+diff --git a/ui/gfx/image/image_skia.cc b/ui/gfx/image/image_skia.cc
+index 6d2748d67..31dfdf5d2 100644
+--- a/ui/gfx/image/image_skia.cc
++++ b/ui/gfx/image/image_skia.cc
+@@ -125,7 +125,7 @@ class ImageSkiaStorage : public base::RefCountedThreadSafe<ImageSkiaStorage> {
+ // one and rescale the image.
+ // Right now only Windows uses 2 and other platforms use 1 by default.
+ // TODO(mukai, oshima): abandon 1 code path and use 2 for every platforms.
+- std::vector<const ImageSkiaRep>::iterator FindRepresentation(
++ std::vector<ImageSkiaRep>::const_iterator FindRepresentation(
+ float scale,
+ bool fetch_new_image) const;
+
+@@ -211,7 +211,7 @@ bool ImageSkiaStorage::HasRepresentationAtAllScales() const {
+ return source_ && source_->HasRepresentationAtAllScales();
+ }
+
+-std::vector<const ImageSkiaRep>::iterator ImageSkiaStorage::FindRepresentation(
++std::vector<ImageSkiaRep>::const_iterator ImageSkiaStorage::FindRepresentation(
+ float scale,
+ bool fetch_new_image) const {
+ auto closest_iter = image_reps_.end();
diff --git a/www-client/chromium/files/chromium-89-webui-config-include.patch b/www-client/chromium/files/chromium-89-webui-config-include.patch
new file mode 100644
index 0000000..5ed2bd5
--- /dev/null
+++ b/www-client/chromium/files/chromium-89-webui-config-include.patch
@@ -0,0 +1,12 @@
+diff --git a/ui/webui/webui_config.h b/ui/webui/webui_config.h
+index 29990bd5a..44918fa34 100644
+--- a/ui/webui/webui_config.h
++++ b/ui/webui/webui_config.h
+@@ -6,6 +6,7 @@
+ #define UI_WEBUI_WEBUI_CONFIG_H_
+
+ #include <string>
++#include <memory>
+
+ #include "base/strings/string_piece.h"
+
diff --git a/www-client/chromium/files/chromium-90-blink-disable-clang-format.patch b/www-client/chromium/files/chromium-90-blink-disable-clang-format.patch
new file mode 100644
index 0000000..2d8ea05
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-blink-disable-clang-format.patch
@@ -0,0 +1,19 @@
+diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+index e24764c13..7c5add8f4 100644
+--- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+@@ -171,13 +171,5 @@ def write_code_node_to_file(code_node, filepath):
+
+ rendered_text = render_code_node(code_node)
+
+- format_result = style_format.auto_format(rendered_text, filename=filepath)
+- if not format_result.did_succeed:
+- raise RuntimeError("Style-formatting failed: filename = {filename}\n"
+- "---- stderr ----\n"
+- "{stderr}:".format(
+- filename=format_result.filename,
+- stderr=format_result.error_message))
+-
+ web_idl.file_io.write_to_file_if_changed(
+- filepath, format_result.contents.encode('utf-8'))
++ filepath, rendered_text.encode('utf-8'))
diff --git a/www-client/chromium/files/chromium-90-compositor-dcheck.patch b/www-client/chromium/files/chromium-90-compositor-dcheck.patch
new file mode 100644
index 0000000..d718a68
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-compositor-dcheck.patch
@@ -0,0 +1,13 @@
+diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc
+index fcad7a8cd..152b724c8 100644
+--- a/cc/metrics/compositor_frame_reporter.cc
++++ b/cc/metrics/compositor_frame_reporter.cc
+@@ -960,7 +960,7 @@ void CompositorFrameReporter::ReportEventLatencyHistograms() const {
+ "EventLatency." + total_latency_stage_name;
+
+ for (const auto& event_metrics : events_metrics_) {
+- DCHECK(event_metrics);
++ DCHECK(event_metrics.get());
+ const std::string histogram_base_name =
+ GetEventLatencyHistogramBaseName(*event_metrics);
+ const int event_type_index = static_cast<int>(event_metrics->type());
diff --git a/www-client/chromium/files/chromium-90-disable-nomerge.patch b/www-client/chromium/files/chromium-90-disable-nomerge.patch
new file mode 100644
index 0000000..fc4049f
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-disable-nomerge.patch
@@ -0,0 +1,13 @@
+diff --git a/base/compiler_specific.h b/base/compiler_specific.h
+index 14a5d6870..b4d31d77e 100644
+--- a/base/compiler_specific.h
++++ b/base/compiler_specific.h
+@@ -334,7 +334,7 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
+
+ // Use nomerge attribute to disable optimization of merging multiple same calls.
+ #if defined(__clang__) && __has_attribute(nomerge) && !defined(OS_CHROMEOS)
+-#define NOMERGE [[clang::nomerge]]
++#define NOMERGE //[[clang::nomerge]]
+ #else
+ #define NOMERGE
+ #endif
diff --git a/www-client/chromium/files/chromium-90-langdetect-include.patch b/www-client/chromium/files/chromium-90-langdetect-include.patch
new file mode 100644
index 0000000..39cd0a8
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-langdetect-include.patch
@@ -0,0 +1,12 @@
+diff --git a/components/translate/core/language_detection/ngram_hash_ops_utils.cc b/components/translate/core/language_detection/ngram_hash_ops_utils.cc
+index cf9103358..dd03a3db4 100644
+--- a/components/translate/core/language_detection/ngram_hash_ops_utils.cc
++++ b/components/translate/core/language_detection/ngram_hash_ops_utils.cc
+@@ -4,6 +4,7 @@
+
+ #include "components/translate/core/language_detection/ngram_hash_ops_utils.h"
+
++#include <cstring>
+ #include <vector>
+
+ #include "third_party/utf/src/include/utf.h"
diff --git a/www-client/chromium/files/chromium-90-quantization-util-stdint.patch b/www-client/chromium/files/chromium-90-quantization-util-stdint.patch
new file mode 100644
index 0000000..060763a
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-quantization-util-stdint.patch
@@ -0,0 +1,12 @@
+diff --git a/components/translate/core/language_detection/quantization_utils.h b/components/translate/core/language_detection/quantization_utils.h
+index eb8f6d1e9..699a48897 100644
+--- a/components/translate/core/language_detection/quantization_utils.h
++++ b/components/translate/core/language_detection/quantization_utils.h
+@@ -7,6 +7,7 @@
+
+ #include <algorithm>
+ #include <cmath>
++#include <cstdint>
+
+ namespace translate {
+
diff --git a/www-client/chromium/files/chromium-90-quiche-uniqueptr.patch b/www-client/chromium/files/chromium-90-quiche-uniqueptr.patch
new file mode 100644
index 0000000..21183a6
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-quiche-uniqueptr.patch
@@ -0,0 +1,13 @@
+diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc
+index f2abef054..b419c9070 100644
+--- a/net/third_party/quiche/src/quic/core/quic_path_validator.cc
++++ b/net/third_party/quiche/src/quic/core/quic_path_validator.cc
+@@ -68,7 +68,7 @@ void QuicPathValidator::OnPathResponse(const QuicPathFrameBuffer& probing_data,
+ void QuicPathValidator::StartPathValidation(
+ std::unique_ptr<QuicPathValidationContext> context,
+ std::unique_ptr<ResultDelegate> result_delegate) {
+- QUICHE_DCHECK(context);
++ QUICHE_DCHECK(context.get());
+ QUIC_DLOG(INFO) << "Start validating path " << *context
+ << " via writer: " << context->WriterToUse();
+ if (path_context_ != nullptr) {
diff --git a/www-client/chromium/files/chromium-90-ruy-include.patch b/www-client/chromium/files/chromium-90-ruy-include.patch
new file mode 100644
index 0000000..81d5367
--- /dev/null
+++ b/www-client/chromium/files/chromium-90-ruy-include.patch
@@ -0,0 +1,24 @@
+From 714092f336bb14d2fcc27396ec323b3d843bb962 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Mar 2021 15:05:46 +0000
+Subject: [PATCH] IWYU: include limits for std::numeric_limits
+
+---
+ third_party/ruy/src/ruy/block_map.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/ruy/src/ruy/block_map.cc b/third_party/ruy/src/ruy/block_map.cc
+index 44e5039..a7a7559 100644
+--- a/third_party/ruy/src/ruy/block_map.cc
++++ b/third_party/ruy/src/ruy/block_map.cc
+@@ -17,6 +17,7 @@ limitations under the License.
+
+ #include <algorithm>
+ #include <cstdint>
++#include <limits>
+
+ #ifdef RUY_MAKEBLOCKMAP_DEBUG
+ #include <cstdio>
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-91-clipboard-ozone.patch b/www-client/chromium/files/chromium-91-clipboard-ozone.patch
new file mode 100644
index 0000000..5aac0ee
--- /dev/null
+++ b/www-client/chromium/files/chromium-91-clipboard-ozone.patch
@@ -0,0 +1,48 @@
+diff --git a/ui/base/clipboard/clipboard_factory_ozone.cc b/ui/base/clipboard/clipboard_factory_ozone.cc
+index e2a061df8..5463e6bf9 100644
+--- a/ui/base/clipboard/clipboard_factory_ozone.cc
++++ b/ui/base/clipboard/clipboard_factory_ozone.cc
+@@ -50,7 +50,8 @@ Clipboard* Clipboard::Create() {
+ #if defined(USE_X11) && BUILDFLAG(IS_CHROMEOS_LACROS)
+ NOTREACHED() << "System clipboard integration should be in place.";
+ #endif
+- return new ClipboardNonBacked;
++ return nullptr;
++ //return new ClipboardNonBacked;
+ }
+
+ } // namespace ui
+diff --git a/ui/base/clipboard/clipboard_non_backed.cc b/ui/base/clipboard/clipboard_non_backed.cc
+index a6e85cd2f..734c7e961 100644
+--- a/ui/base/clipboard/clipboard_non_backed.cc
++++ b/ui/base/clipboard/clipboard_non_backed.cc
+@@ -688,6 +688,7 @@ void ClipboardNonBacked::ReadData(const ClipboardFormatType& format,
+ #endif
+ }
+
++#if defined(USE_OZONE)
+ bool ClipboardNonBacked::IsSelectionBufferAvailable() const {
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ return false;
+@@ -695,6 +696,7 @@ bool ClipboardNonBacked::IsSelectionBufferAvailable() const {
+ return true;
+ #endif
+ }
++#endif // defined(USE_OZONE)
+
+ void ClipboardNonBacked::WritePortableRepresentations(
+ ClipboardBuffer buffer,
+diff --git a/ui/base/clipboard/clipboard_non_backed.h b/ui/base/clipboard/clipboard_non_backed.h
+index d14ff0ff6..702f02a84 100644
+--- a/ui/base/clipboard/clipboard_non_backed.h
++++ b/ui/base/clipboard/clipboard_non_backed.h
+@@ -97,7 +97,9 @@ class COMPONENT_EXPORT(UI_BASE_CLIPBOARD) ClipboardNonBacked
+ void ReadData(const ClipboardFormatType& format,
+ const DataTransferEndpoint* data_dst,
+ std::string* result) const override;
++#if defined(USE_OZONE)
+ bool IsSelectionBufferAvailable() const override;
++#endif // defined(USE_OZONE)
+ void WritePortableRepresentations(
+ ClipboardBuffer buffer,
+ const ObjectMap& objects,
diff --git a/www-client/chromium/files/chromium-91-compiler-r1.patch b/www-client/chromium/files/chromium-91-compiler-r1.patch
new file mode 100644
index 0000000..8724c6b
--- /dev/null
+++ b/www-client/chromium/files/chromium-91-compiler-r1.patch
@@ -0,0 +1,165 @@
+From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 7 Apr 2021 08:50:04 +0000
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 59 ++++++++++------------------------
+ 1 file changed, 17 insertions(+), 42 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 72ea590..539672d 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -273,8 +273,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -518,24 +516,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- cflags += [
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
+- if (is_win) {
+- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
+- } else {
+- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
+- }
+- }
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1643,7 +1623,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1652,10 +1632,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1664,15 +1640,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2068,7 +2035,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2103,7 +2071,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2143,7 +2112,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2175,7 +2145,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2200,7 +2171,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2319,7 +2291,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2422,7 +2395,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2481,7 +2455,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
+--
+2.26.3
diff --git a/www-client/chromium/files/chromium-91-compiler.patch b/www-client/chromium/files/chromium-91-compiler.patch
new file mode 100644
index 0000000..e45d4a3
--- /dev/null
+++ b/www-client/chromium/files/chromium-91-compiler.patch
@@ -0,0 +1,154 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 72ea590d6..bc23dce78 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -273,8 +273,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -518,24 +516,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- cflags += [
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
+- if (is_win) {
+- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
+- } else {
+- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
+- }
+- }
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1643,7 +1623,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1652,10 +1632,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1664,15 +1640,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2068,7 +2035,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2103,7 +2071,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2143,7 +2112,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2175,7 +2145,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2200,7 +2171,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2319,7 +2291,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2422,7 +2395,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2481,7 +2455,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-91-disable-nomerge.patch b/www-client/chromium/files/chromium-91-disable-nomerge.patch
new file mode 100644
index 0000000..11dc66a
--- /dev/null
+++ b/www-client/chromium/files/chromium-91-disable-nomerge.patch
@@ -0,0 +1,13 @@
+diff --git a/base/compiler_specific.h b/base/compiler_specific.h
+index d662305dc..8e99145da 100644
+--- a/base/compiler_specific.h
++++ b/base/compiler_specific.h
+@@ -341,7 +341,7 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
+
+ // Use nomerge attribute to disable optimization of merging multiple same calls.
+ #if defined(__clang__) && __has_attribute(nomerge)
+-#define NOMERGE [[clang::nomerge]]
++#define NOMERGE //[[clang::nomerge]]
+ #else
+ #define NOMERGE
+ #endif
diff --git a/www-client/chromium/files/chromium-91-libyuv-aarch64.patch b/www-client/chromium/files/chromium-91-libyuv-aarch64.patch
new file mode 100644
index 0000000..77b8f4c
--- /dev/null
+++ b/www-client/chromium/files/chromium-91-libyuv-aarch64.patch
@@ -0,0 +1,91 @@
+diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc
+index 350c964..2aab413 100644
+--- a/third_party/libyuv/source/row_neon64.cc
++++ b/third_party/libyuv/source/row_neon64.cc
+@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb,
+ : "+r"(src_argb), // %0
+ "+r"(dst_ab64), // %1
+ "+r"(width) // %2
+- : "m"(kShuffleARGBToABGR) // %3
++ : "Q"(kShuffleARGBToABGR) // %3
+ : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
+ }
+
+@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64,
+ : "+r"(src_ar64), // %0
+ "+r"(dst_argb), // %1
+ "+r"(width) // %2
+- : "m"(kShuffleAR64ToARGB) // %3
++ : "Q"(kShuffleAR64ToARGB) // %3
+ : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
+ }
+
+@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64,
+ : "+r"(src_ab64), // %0
+ "+r"(dst_argb), // %1
+ "+r"(width) // %2
+- : "m"(kShuffleAB64ToARGB) // %3
++ : "Q"(kShuffleAB64ToARGB) // %3
+ : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
+ }
+
+diff --git a/third_party/libyuv/source/scale_neon64.cc b/third_party/libyuv/source/scale_neon64.cc
+index 8656fec..9f9636e 100644
+--- a/third_party/libyuv/source/scale_neon64.cc
++++ b/third_party/libyuv/source/scale_neon64.cc
+@@ -601,8 +601,8 @@ void ScaleRowUp2_Bilinear_NEON(const uint8_t* src_ptr,
+ "umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd)
+ "umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even)
+
+- "mov v0.8h, v4.8h \n"
+- "mov v1.8h, v5.8h \n"
++ "mov v0.16b, v4.16b \n"
++ "mov v1.16b, v5.16b \n"
+ "mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd)
+ "mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even)
+ "mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd)
+@@ -642,7 +642,7 @@ void ScaleRowUp2_Linear_12_NEON(const uint16_t* src_ptr,
+ "ld1 {v1.8h}, [%1], #16 \n" // 12345678 (16b)
+ "prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead
+
+- "mov v2.8h, v0.8h \n"
++ "mov v2.16b, v0.16b \n"
+ "mla v0.8h, v1.8h, v31.8h \n" // 3*near+far (odd)
+ "mla v1.8h, v2.8h, v31.8h \n" // 3*near+far (even)
+
+@@ -679,7 +679,7 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr,
+ "ld1 {v3.8h}, [%2], #16 \n" // 12345678 (16b)
+ "prfm pldl1keep, [%0, 448] \n" // prefetch 7 lines ahead
+
+- "mov v0.8h, v2.8h \n"
++ "mov v0.16b, v2.16b \n"
+ "mla v2.8h, v3.8h, v31.8h \n" // 3*near+far (odd)
+ "mla v3.8h, v0.8h, v31.8h \n" // 3*near+far (even)
+
+@@ -687,12 +687,12 @@ void ScaleRowUp2_Bilinear_12_NEON(const uint16_t* src_ptr,
+ "ld1 {v5.8h}, [%3], #16 \n" // 12345678 (16b)
+ "prfm pldl1keep, [%1, 448] \n" // prefetch 7 lines ahead
+
+- "mov v0.8h, v4.8h \n"
++ "mov v0.16b, v4.16b \n"
+ "mla v4.8h, v5.8h, v31.8h \n" // 3*near+far (odd)
+ "mla v5.8h, v0.8h, v31.8h \n" // 3*near+far (even)
+
+- "mov v0.8h, v4.8h \n"
+- "mov v1.8h, v5.8h \n"
++ "mov v0.16b, v4.16b \n"
++ "mov v1.16b, v5.16b \n"
+ "mla v4.8h, v2.8h, v31.8h \n" // 9 3 3 1 (1, odd)
+ "mla v5.8h, v3.8h, v31.8h \n" // 9 3 3 1 (1, even)
+ "mla v2.8h, v0.8h, v31.8h \n" // 9 3 3 1 (2, odd)
+@@ -887,8 +887,8 @@ void ScaleUVRowUp2_Bilinear_NEON(const uint8_t* src_ptr,
+ "umlal v4.8h, v1.8b, v31.8b \n" // 3*near+far (2, odd)
+ "umlal v5.8h, v0.8b, v31.8b \n" // 3*near+far (2, even)
+
+- "mov v0.8h, v4.8h \n"
+- "mov v1.8h, v5.8h \n"
++ "mov v0.16b, v4.16b \n"
++ "mov v1.16b, v5.16b \n"
+ "mla v4.8h, v2.8h, v30.8h \n" // 9 3 3 1 (1, odd)
+ "mla v5.8h, v3.8h, v30.8h \n" // 9 3 3 1 (1, even)
+ "mla v2.8h, v0.8h, v30.8h \n" // 9 3 3 1 (2, odd)
diff --git a/www-client/chromium/files/chromium-92-ClassPropertyCaster-namespace.patch b/www-client/chromium/files/chromium-92-ClassPropertyCaster-namespace.patch
new file mode 100644
index 0000000..08d7416
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-ClassPropertyCaster-namespace.patch
@@ -0,0 +1,46 @@
+From 546b72d3b31e5d42e4d6cb783def2c89c977c5a6 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 7 May 2021 14:34:29 +0000
+Subject: [PATCH] GCC: drop anonymous namespace from ClassPropertyCaster
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Explicit template specialization is done for ui::ElementIdentifier
+in another header. GCC fails to compile this with:
+
+../../ui/base/interaction/element_identifier.h:208:7: error:
+ explicit specialization of ‘template<class T>
+ class ui::{anonymous}::ClassPropertyCaster’ outside its
+ namespace must use a nested-name-specifier
+
+This is a known GCC bug (https://gcc.gnu.org/PR92598).
+---
+ ui/base/class_property.h | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/ui/base/class_property.h b/ui/base/class_property.h
+index 4af52ae..25c00e7 100644
+--- a/ui/base/class_property.h
++++ b/ui/base/class_property.h
+@@ -137,8 +137,6 @@ class COMPONENT_EXPORT(UI_BASE) PropertyHandler {
+ std::map<const void*, Value> prop_map_;
+ };
+
+-namespace {
+-
+ // No single new-style cast works for every conversion to/from int64_t, so we
+ // need this helper class.
+ template<typename T>
+@@ -162,8 +160,6 @@ class ClassPropertyCaster<base::TimeDelta> {
+ }
+ };
+
+-} // namespace
+-
+ namespace subtle {
+
+ class COMPONENT_EXPORT(UI_BASE) PropertyHelper {
+--
+2.26.3
+
diff --git a/www-client/chromium/files/chromium-92-base_atomic_include.patch b/www-client/chromium/files/chromium-92-base_atomic_include.patch
new file mode 100644
index 0000000..e6faf77
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-base_atomic_include.patch
@@ -0,0 +1,12 @@
+diff --git a/base/threading/platform_thread.cc b/base/threading/platform_thread.cc
+index 3dc218163..f167af4ff 100644
+--- a/base/threading/platform_thread.cc
++++ b/base/threading/platform_thread.cc
+@@ -4,6 +4,7 @@
+
+ #include "base/threading/platform_thread.h"
+
++#include <atomic>
+ #include <memory>
+
+ #include "base/feature_list.h"
diff --git a/www-client/chromium/files/chromium-92-glibc-2.33.patch b/www-client/chromium/files/chromium-92-glibc-2.33.patch
new file mode 100644
index 0000000..3b2ec6b
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-glibc-2.33.patch
@@ -0,0 +1,146 @@
+diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+index 05c39f0f5..3a9d6f359 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -280,6 +280,18 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
+ return RestrictKillTarget(current_pid, sysno);
+ }
+
++#if defined(__NR_newfstatat)
++ if (sysno == __NR_newfstatat) {
++ return RewriteFstatatSIGSYS();
++ }
++#endif
++
++#if defined(__NR_fstatat64)
++ if (sysno == __NR_fstatat64) {
++ return RewriteFstatatSIGSYS();
++ }
++#endif
++
+ // memfd_create is considered a file system syscall which below will be denied
+ // with fs_denied_errno, we need memfd_create for Mojo shared memory channels.
+ if (sysno == __NR_memfd_create) {
+diff --git a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+index 76eb32493..09aa3f0b1 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
++++ b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+@@ -6,6 +6,8 @@
+
+ #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
+
++#include <errno.h>
++#include <fcntl.h>
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <string.h>
+@@ -355,6 +357,35 @@ intptr_t SIGSYSSchedHandler(const struct arch_seccomp_data& args,
+ return -ENOSYS;
+ }
+
++intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
++ void* aux) {
++ switch (args.nr) {
++#if defined(__NR_newfstatat)
++ case __NR_newfstatat:
++#endif
++#if defined(__NR_fstatat64)
++ case __NR_fstatat64:
++#endif
++#if defined(__NR_newfstatat) || defined(__NR_fstatat64)
++ if (*reinterpret_cast<const char *>(args.args[1]) == '\0'
++ && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
++ return sandbox::sys_fstat64(static_cast<int>(args.args[0]),
++ reinterpret_cast<struct stat64 *>(args.args[2]));
++ } else {
++ errno = EACCES;
++ return -1;
++ }
++ break;
++#endif
++ }
++
++ CrashSIGSYS_Handler(args, aux);
++
++ // Should never be reached.
++ RAW_CHECK(false);
++ return -ENOSYS;
++}
++
+ bpf_dsl::ResultExpr CrashSIGSYS() {
+ return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL);
+ }
+@@ -387,6 +418,10 @@ bpf_dsl::ResultExpr RewriteSchedSIGSYS() {
+ return bpf_dsl::Trap(SIGSYSSchedHandler, NULL);
+ }
+
++bpf_dsl::ResultExpr RewriteFstatatSIGSYS() {
++ return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL);
++}
++
+ void AllocateCrashKeys() {
+ #if !defined(OS_NACL_NONSFI)
+ if (seccomp_crash_key)
+diff --git a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
+index 7a958b93b..d0bfab74b 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
++++ b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h
+@@ -62,6 +62,10 @@ SANDBOX_EXPORT intptr_t SIGSYSPtraceFailure(const arch_seccomp_data& args,
+ // sched_setparam(), sched_setscheduler()
+ SANDBOX_EXPORT intptr_t SIGSYSSchedHandler(const arch_seccomp_data& args,
+ void* aux);
++// If the fstatat syscall is actually a disguised fstat, calls the regular fstat
++// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler.
++SANDBOX_EXPORT intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args,
++ void* aux);
+
+ // Variants of the above functions for use with bpf_dsl.
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS();
+@@ -72,6 +76,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSKill();
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex();
+ SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace();
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS();
++SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS();
+
+ // Allocates a crash key so that Seccomp information can be recorded.
+ void AllocateCrashKeys();
+diff --git a/sandbox/linux/services/syscall_wrappers.cc b/sandbox/linux/services/syscall_wrappers.cc
+index fcfd2aa12..5396b36da 100644
+--- a/sandbox/linux/services/syscall_wrappers.cc
++++ b/sandbox/linux/services/syscall_wrappers.cc
+@@ -261,4 +261,13 @@ int sys_sigaction(int signum,
+
+ #endif // defined(MEMORY_SANITIZER)
+
++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf)
++{
++#if defined(__NR_fstat64)
++ return syscall(__NR_fstat64, fd, buf);
++#else
++ return syscall(__NR_fstat, fd, buf);
++#endif
++}
++
+ } // namespace sandbox
+diff --git a/sandbox/linux/services/syscall_wrappers.h b/sandbox/linux/services/syscall_wrappers.h
+index 1975bfbd8..ed7ee5a1c 100644
+--- a/sandbox/linux/services/syscall_wrappers.h
++++ b/sandbox/linux/services/syscall_wrappers.h
+@@ -17,6 +17,7 @@ struct sock_fprog;
+ struct rlimit64;
+ struct cap_hdr;
+ struct cap_data;
++struct stat64;
+
+ namespace sandbox {
+
+@@ -84,6 +85,9 @@ SANDBOX_EXPORT int sys_sigaction(int signum,
+ const struct sigaction* act,
+ struct sigaction* oldact);
+
++// Recent glibc rewrites fstat to fstatat.
++SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf);
++
+ } // namespace sandbox
+
+ #endif // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_
diff --git a/www-client/chromium/files/chromium-92-platform_thread-include.patch b/www-client/chromium/files/chromium-92-platform_thread-include.patch
new file mode 100644
index 0000000..881a2a0
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-platform_thread-include.patch
@@ -0,0 +1,24 @@
+From 49c9ab14152b52edc9f0d8f1245039792f270315 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 7 May 2021 09:53:18 +0000
+Subject: [PATCH] IWYU: include atomic for std::atomic
+
+---
+ base/threading/platform_thread.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/threading/platform_thread.cc b/base/threading/platform_thread.cc
+index 3dc2181..f167af4 100644
+--- a/base/threading/platform_thread.cc
++++ b/base/threading/platform_thread.cc
+@@ -4,6 +4,7 @@
+
+ #include "base/threading/platform_thread.h"
+
++#include <atomic>
+ #include <memory>
+
+ #include "base/feature_list.h"
+--
+2.26.3
+
diff --git a/www-client/chromium/files/chromium-92-sql-cursor.patch b/www-client/chromium/files/chromium-92-sql-cursor.patch
new file mode 100644
index 0000000..a4864ba
--- /dev/null
+++ b/www-client/chromium/files/chromium-92-sql-cursor.patch
@@ -0,0 +1,231 @@
+From 80368f8ba7a8bab13440463a254888311efe3986 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 04 May 2021 15:00:19 +0000
+Subject: [PATCH] sql: make VirtualCursor standard layout type
+
+sql::recover::VirtualCursor needs to be a standard layout type, but
+has members of type std::unique_ptr. However, std::unique_ptr is not
+guaranteed to be standard layout. Compiling with clang combined with
+gcc-11 libstdc++ fails because of this. Replace std::unique_ptr with
+raw pointers.
+
+Bug: 1189788
+Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c
+---
+
+diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
+index 9ecaafe..839318a 100644
+--- a/sql/recover_module/btree.cc
++++ b/sql/recover_module/btree.cc
+@@ -135,16 +135,25 @@
+ "Move the destructor to the .cc file if it's non-trival");
+ #endif // !DCHECK_IS_ON()
+
+-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
+- : page_id_(db_reader->page_id()),
+- db_reader_(db_reader),
+- cell_count_(ComputeCellCount(db_reader)),
+- next_read_index_(0),
+- last_record_size_(0) {
++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
++ DCHECK(db_reader);
+ DCHECK(IsOnValidPage(db_reader));
++ page_id_ = db_reader->page_id();
++ db_reader_ = db_reader;
++ cell_count_ = ComputeCellCount(db_reader);
++ next_read_index_ = 0;
++ last_record_size_ = 0;
+ DCHECK(DatabasePageReader::IsValidPageId(page_id_));
+ }
+
++void LeafPageDecoder::Reset() {
++ db_reader_ = nullptr;
++ page_id_ = 0;
++ cell_count_ = 0;
++ next_read_index_ = 0;
++ last_record_size_ = 0;
++}
++
+ bool LeafPageDecoder::TryAdvance() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(CanAdvance());
+diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
+index d76d076..33114b0 100644
+--- a/sql/recover_module/btree.h
++++ b/sql/recover_module/btree.h
+@@ -102,7 +102,7 @@
+ //
+ // |db_reader| must have been used to read an inner page of a table B-tree.
+ // |db_reader| must outlive this instance.
+- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
++ explicit LeafPageDecoder() noexcept = default;
+ ~LeafPageDecoder() noexcept = default;
+
+ LeafPageDecoder(const LeafPageDecoder&) = delete;
+@@ -150,6 +150,15 @@
+ // read as long as CanAdvance() returns true.
+ bool TryAdvance();
+
++ // Initialize with DatabasePageReader
++ void Initialize(DatabasePageReader* db_reader);
++
++ // Reset internal DatabasePageReader
++ void Reset();
++
++ // True if DatabasePageReader is valid
++ bool IsValid() { return (db_reader_ != nullptr); }
++
+ // True if the given reader may point to an inner page in a table B-tree.
+ //
+ // The last ReadPage() call on |db_reader| must have succeeded.
+@@ -163,14 +172,14 @@
+ static int ComputeCellCount(DatabasePageReader* db_reader);
+
+ // The number of the B-tree page this reader is reading.
+- const int64_t page_id_;
++ int64_t page_id_;
+ // Used to read the tree page.
+ //
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the DatabasePageReader outlives this.
+- DatabasePageReader* const db_reader_;
++ DatabasePageReader* db_reader_;
+ // Caches the ComputeCellCount() value for this reader's page.
+- const int cell_count_ = ComputeCellCount(db_reader_);
++ int cell_count_;
+
+ // The reader's cursor state.
+ //
+diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
+index 0029ff9..42548bc 100644
+--- a/sql/recover_module/cursor.cc
++++ b/sql/recover_module/cursor.cc
+@@ -26,7 +26,7 @@
+ int VirtualCursor::First() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ inner_decoders_.clear();
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+
+ AppendPageDecoder(table_->root_page_id());
+ return Next();
+@@ -36,18 +36,18 @@
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ record_reader_.Reset();
+
+- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
+- if (leaf_decoder_.get()) {
+- if (!leaf_decoder_->CanAdvance()) {
++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
++ if (leaf_decoder_.IsValid()) {
++ if (!leaf_decoder_.CanAdvance()) {
+ // The leaf has been exhausted. Remove it from the DFS stack.
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+ continue;
+ }
+- if (!leaf_decoder_->TryAdvance())
++ if (!leaf_decoder_.TryAdvance())
+ continue;
+
+- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
+- leaf_decoder_->last_record_offset())) {
++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
++ leaf_decoder_.last_record_offset())) {
+ continue;
+ }
+ if (!record_reader_.Initialize())
+@@ -99,13 +99,13 @@
+ int64_t VirtualCursor::RowId() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(record_reader_.IsInitialized());
+- DCHECK(leaf_decoder_.get());
+- return leaf_decoder_->last_record_rowid();
++ DCHECK(leaf_decoder_.IsValid());
++ return leaf_decoder_.last_record_rowid();
+ }
+
+ void VirtualCursor::AppendPageDecoder(int page_id) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(leaf_decoder_.get() == nullptr)
++ DCHECK(!leaf_decoder_.IsValid())
+ << __func__
+ << " must only be called when the current path has no leaf decoder";
+
+@@ -113,7 +113,7 @@
+ return;
+
+ if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
+- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
++ leaf_decoder_.Initialize(&db_reader_);
+ return;
+ }
+
+diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
+index afcd690..b15c31d 100644
+--- a/sql/recover_module/cursor.h
++++ b/sql/recover_module/cursor.h
+@@ -129,7 +129,7 @@
+ std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
+
+ // Decodes the leaf page containing records.
+- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
++ LeafPageDecoder leaf_decoder_;
+
+ SEQUENCE_CHECKER(sequence_checker_);
+ };
+diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
+index 58e75de..5fe9620 100644
+--- a/sql/recover_module/pager.cc
++++ b/sql/recover_module/pager.cc
+@@ -23,8 +23,7 @@
+ "ints are not appropriate for representing page IDs");
+
+ DatabasePageReader::DatabasePageReader(VirtualTable* table)
+- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
+- table_(table) {
++ : page_data_(), table_(table) {
+ DCHECK(table != nullptr);
+ DCHECK(IsValidPageSize(table->page_size()));
+ }
+@@ -57,8 +56,8 @@
+ std::numeric_limits<int64_t>::max(),
+ "The |read_offset| computation above may overflow");
+
+- int sqlite_status =
+- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset,
++ const_cast<uint8_t*>(page_data_.data()));
+
+ // |page_id_| needs to be set to kInvalidPageId if the read failed.
+ // Otherwise, future ReadPage() calls with the previous |page_id_| value
+diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
+index 0e388ddc..99314e3 100644
+--- a/sql/recover_module/pager.h
++++ b/sql/recover_module/pager.h
+@@ -5,6 +5,7 @@
+ #ifndef SQL_RECOVER_MODULE_PAGER_H_
+ #define SQL_RECOVER_MODULE_PAGER_H_
+
++#include <array>
+ #include <cstdint>
+ #include <memory>
+
+@@ -70,7 +71,7 @@
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK_NE(page_id_, kInvalidPageId)
+ << "Successful ReadPage() required before accessing pager state";
+- return page_data_.get();
++ return page_data_.data();
+ }
+
+ // The number of bytes in the page read by the last ReadPage() call.
+@@ -137,7 +138,7 @@
+ int page_id_ = kInvalidPageId;
+ // Stores the bytes of the last page successfully read by ReadPage().
+ // The content is undefined if the last call to ReadPage() did not succeed.
+- const std::unique_ptr<uint8_t[]> page_data_;
++ const std::array<uint8_t, kMaxPageSize> page_data_;
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the VirtualTable outlives this.
+ VirtualTable* const table_;
diff --git a/www-client/chromium/files/chromium-93-AXPropertyNode-private.patch b/www-client/chromium/files/chromium-93-AXPropertyNode-private.patch
new file mode 100644
index 0000000..f184af6
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-AXPropertyNode-private.patch
@@ -0,0 +1,43 @@
+From 0cdb42df76598037785ca33eb66bdc9ac2c16fd9 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 5 Jun 2021 11:16:29 +0000
+Subject: [PATCH] libstdc++: make constructors public in AXPropertyNode
+
+Making std::allocator<AXPropertyNode> friend of AXPropertyNode is
+useless, because std::allocator is free to delegate the task of
+construction to a free function or class which is not friend of
+AXPropertyNode. libstdc++ uses __gnu_cxx::new_allocator<T> for
+construction and fails if constructors of AXPropertyNode are
+private.
+---
+ ui/accessibility/platform/inspect/ax_property_node.h | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/ui/accessibility/platform/inspect/ax_property_node.h b/ui/accessibility/platform/inspect/ax_property_node.h
+index 35b8309..78bafa5 100644
+--- a/ui/accessibility/platform/inspect/ax_property_node.h
++++ b/ui/accessibility/platform/inspect/ax_property_node.h
+@@ -93,7 +93,6 @@ class AX_EXPORT AXPropertyNode final {
+ // Returns a tree-like string representation of the node.
+ std::string ToTreeString(const std::string& indent = "") const;
+
+- private:
+ using iterator = std::string::const_iterator;
+
+ explicit AXPropertyNode(iterator key_begin,
+@@ -105,11 +104,10 @@ class AX_EXPORT AXPropertyNode final {
+ iterator value_begin,
+ iterator value_end);
+
++ private:
+ // Builds a property node struct for a string of NAME(ARG1, ..., ARGN) format,
+ // where each ARG is a scalar value or a string of the same format.
+ static iterator Parse(AXPropertyNode* node, iterator begin, iterator end);
+-
+- friend class std::allocator<AXPropertyNode>;
+ };
+
+ } // namespace ui
+--
+2.31.1
+
diff --git a/www-client/chromium/files/chromium-93-EnumTable-crash.patch b/www-client/chromium/files/chromium-93-EnumTable-crash.patch
new file mode 100644
index 0000000..a5c2def
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-EnumTable-crash.patch
@@ -0,0 +1,79 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index a63ae86..83ada65 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -8,6 +8,7 @@
+ #include <cstdint>
+ #include <cstring>
+ #include <ostream>
++#include <vector>
+
+ #include "base/check_op.h"
+ #include "base/macros.h"
+@@ -213,7 +214,7 @@ class
+
+ template <typename E>
+ friend class EnumTable;
+- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
++ DISALLOW_ASSIGN(GenericEnumTableEntry);
+ };
+
+ // Yes, these constructors really needs to be inlined. Even though they look
+@@ -251,8 +252,7 @@ class EnumTable {
+ // Constructor for regular entries.
+ constexpr Entry(E value, base::StringPiece str)
+ : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+-
+- DISALLOW_COPY_AND_ASSIGN(Entry);
++ DISALLOW_ASSIGN(Entry);
+ };
+
+ static_assert(sizeof(E) <= sizeof(int32_t),
+@@ -307,15 +307,14 @@ class EnumTable {
+ if (is_sorted_) {
+ const std::size_t index = static_cast<std::size_t>(value);
+ if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+- const auto& entry = data_.begin()[index];
++ const auto& entry = data_[index];
+ if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+ return entry.str();
+ }
+ return absl::nullopt;
+ }
+ return GenericEnumTableEntry::FindByValue(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), static_cast<int32_t>(value));
++ &data_[0], data_.size(), static_cast<int32_t>(value));
+ }
+
+ // This overload of GetString is designed for cases where the argument is a
+@@ -343,8 +342,7 @@ class EnumTable {
+ // enum value directly.
+ absl::optional<E> GetEnum(base::StringPiece str) const {
+ auto* entry = GenericEnumTableEntry::FindByString(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), str);
++ &data_[0], data_.size(), str);
+ return entry ? static_cast<E>(entry->value) : absl::optional<E>();
+ }
+
+@@ -359,7 +357,7 @@ class EnumTable {
+ // Align the data on a cache line boundary.
+ alignas(64)
+ #endif
+- std::initializer_list<Entry> data_;
++ const std::vector<Entry> data_;
+ bool is_sorted_;
+
+ constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -371,8 +369,8 @@ class EnumTable {
+
+ for (std::size_t i = 0; i < data.size(); i++) {
+ for (std::size_t j = i + 1; j < data.size(); j++) {
+- const Entry& ei = data.begin()[i];
+- const Entry& ej = data.begin()[j];
++ const Entry& ei = data[i];
++ const Entry& ej = data[j];
+ DCHECK(ei.value != ej.value)
+ << "Found duplicate enum values at indices " << i << " and " << j;
+ DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
diff --git a/www-client/chromium/files/chromium-93-InkDropHost-crash.patch b/www-client/chromium/files/chromium-93-InkDropHost-crash.patch
new file mode 100644
index 0000000..54d16db
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-InkDropHost-crash.patch
@@ -0,0 +1,25 @@
+diff --git a/ui/views/animation/ink_drop_host_view.h b/ui/views/animation/ink_drop_host_view.h
+index bd0975b..e5df288 100644
+--- a/ui/views/animation/ink_drop_host_view.h
++++ b/ui/views/animation/ink_drop_host_view.h
+@@ -238,6 +238,11 @@ class VIEWS_EXPORT InkDropHost {
+ // Used to observe View and inform the InkDrop of host-transform changes.
+ ViewLayerTransformObserver host_view_transform_observer_;
+
++ // Declared before |ink_drop_|, because InkDropImpl may call
++ // RemoveInkDropLayer on partly destructed InkDropHost. In
++ // that case |ink_drop_mask_| must be still valid.
++ std::unique_ptr<views::InkDropMask> ink_drop_mask_;
++
+ // Should not be accessed directly. Use GetInkDrop() instead.
+ std::unique_ptr<InkDrop> ink_drop_;
+
+@@ -261,8 +266,6 @@ class VIEWS_EXPORT InkDropHost {
+ int ink_drop_small_corner_radius_ = 2;
+ int ink_drop_large_corner_radius_ = 4;
+
+- std::unique_ptr<views::InkDropMask> ink_drop_mask_;
+-
+ base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
+ base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
+ create_ink_drop_ripple_callback_;
diff --git a/www-client/chromium/files/chromium-93-cart-include.patch b/www-client/chromium/files/chromium-93-cart-include.patch
new file mode 100644
index 0000000..82ca038
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-cart-include.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/cart/cart_db.h b/chrome/browser/cart/cart_db.h
+index 82b2a56c3..0f8472f3e 100644
+--- a/chrome/browser/cart/cart_db.h
++++ b/chrome/browser/cart/cart_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_CART_CART_DB_H_
+ #define CHROME_BROWSER_CART_CART_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+
diff --git a/www-client/chromium/files/chromium-93-devtools-msg-dispatcher-include.patch b/www-client/chromium/files/chromium-93-devtools-msg-dispatcher-include.patch
new file mode 100644
index 0000000..ddb94cf
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-devtools-msg-dispatcher-include.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/devtools/devtools_embedder_message_dispatcher.h b/chrome/browser/devtools/devtools_embedder_message_dispatcher.h
+index 12f8500b7..4007112f3 100644
+--- a/chrome/browser/devtools/devtools_embedder_message_dispatcher.h
++++ b/chrome/browser/devtools/devtools_embedder_message_dispatcher.h
+@@ -8,6 +8,7 @@
+ #include <map>
+ #include <memory>
+ #include <string>
++#include <vector>
+
+ #include "base/callback.h"
+ #include "ui/gfx/geometry/insets.h"
diff --git a/www-client/chromium/files/chromium-93-dnsprefetch-include.patch b/www-client/chromium/files/chromium-93-dnsprefetch-include.patch
new file mode 100644
index 0000000..c8d63b6
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-dnsprefetch-include.patch
@@ -0,0 +1,12 @@
+diff --git a/components/network_hints/renderer/renderer_dns_prefetch.h b/components/network_hints/renderer/renderer_dns_prefetch.h
+index 87f1bb1bb..3ead6b3a6 100644
+--- a/components/network_hints/renderer/renderer_dns_prefetch.h
++++ b/components/network_hints/renderer/renderer_dns_prefetch.h
+@@ -25,6 +25,7 @@
+
+ #include <map>
+ #include <string>
++#include <vector>
+
+ #include "base/callback.h"
+ #include "base/macros.h"
diff --git a/www-client/chromium/files/chromium-93-ext-autoconfirm-include.patch b/www-client/chromium/files/chromium-93-ext-autoconfirm-include.patch
new file mode 100644
index 0000000..6bf4fcf
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-ext-autoconfirm-include.patch
@@ -0,0 +1,12 @@
+diff --git a/extensions/browser/extension_dialog_auto_confirm.cc b/extensions/browser/extension_dialog_auto_confirm.cc
+index adb4ac3f9..be8b161bc 100644
+--- a/extensions/browser/extension_dialog_auto_confirm.cc
++++ b/extensions/browser/extension_dialog_auto_confirm.cc
+@@ -4,6 +4,7 @@
+
+ #include "extensions/browser/extension_dialog_auto_confirm.h"
+
++#include <cstring>
+ #include <utility>
+
+ #include "base/check.h"
diff --git a/www-client/chromium/files/chromium-93-gpu-ipc-include.patch b/www-client/chromium/files/chromium-93-gpu-ipc-include.patch
new file mode 100644
index 0000000..24793fa
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-gpu-ipc-include.patch
@@ -0,0 +1,13 @@
+diff --git a/gpu/ipc/gpu_task_scheduler_helper.h b/gpu/ipc/gpu_task_scheduler_helper.h
+index 4315277b2..01c9c8ed9 100644
+--- a/gpu/ipc/gpu_task_scheduler_helper.h
++++ b/gpu/ipc/gpu_task_scheduler_helper.h
+@@ -5,6 +5,8 @@
+ #ifndef GPU_IPC_GPU_TASK_SCHEDULER_HELPER_H_
+ #define GPU_IPC_GPU_TASK_SCHEDULER_HELPER_H_
+
++#include <vector>
++
+ #include "base/callback.h"
+ #include "gpu/command_buffer/common/sync_token.h"
+ #include "gpu/command_buffer/service/sequence_id.h"
diff --git a/www-client/chromium/files/chromium-93-hid-chooser-include.patch b/www-client/chromium/files/chromium-93-hid-chooser-include.patch
new file mode 100644
index 0000000..7ae8938
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-hid-chooser-include.patch
@@ -0,0 +1,13 @@
+diff --git a/content/public/browser/hid_chooser.h b/content/public/browser/hid_chooser.h
+index d40cf59be..b2b9613cf 100644
+--- a/content/public/browser/hid_chooser.h
++++ b/content/public/browser/hid_chooser.h
+@@ -5,6 +5,8 @@
+ #ifndef CONTENT_PUBLIC_BROWSER_HID_CHOOSER_H_
+ #define CONTENT_PUBLIC_BROWSER_HID_CHOOSER_H_
+
++#include <vector>
++
+ #include "base/callback_forward.h"
+ #include "base/macros.h"
+ #include "content/common/content_export.h"
diff --git a/www-client/chromium/files/chromium-93-lang-prefs-include.patch b/www-client/chromium/files/chromium-93-lang-prefs-include.patch
new file mode 100644
index 0000000..7b1829d
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-lang-prefs-include.patch
@@ -0,0 +1,12 @@
+diff --git a/components/language/core/browser/language_prefs.h b/components/language/core/browser/language_prefs.h
+index 28c89546c..617d1ed91 100644
+--- a/components/language/core/browser/language_prefs.h
++++ b/components/language/core/browser/language_prefs.h
+@@ -7,6 +7,7 @@
+
+ #include <set>
+ #include <string>
++#include <vector>
+
+ #include "base/macros.h"
+ #include "base/strings/string_piece.h"
diff --git a/www-client/chromium/files/chromium-93-login-detection-include.patch b/www-client/chromium/files/chromium-93-login-detection-include.patch
new file mode 100644
index 0000000..e2a6aa3
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-login-detection-include.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/login_detection/oauth_login_detector.h b/chrome/browser/login_detection/oauth_login_detector.h
+index 6844529c7..c0c3b185f 100644
+--- a/chrome/browser/login_detection/oauth_login_detector.h
++++ b/chrome/browser/login_detection/oauth_login_detector.h
+@@ -7,6 +7,7 @@
+
+ #include <set>
+ #include <string>
++#include <vector>
+
+ #include "third_party/abseil-cpp/absl/types/optional.h"
+ #include "url/gurl.h"
diff --git a/www-client/chromium/files/chromium-93-media-ffmpeg-type.patch b/www-client/chromium/files/chromium-93-media-ffmpeg-type.patch
new file mode 100644
index 0000000..ca8b98f
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-media-ffmpeg-type.patch
@@ -0,0 +1,36 @@
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+index ac4713b07..492a9a37d 100644
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+ scoped_refptr<DecoderBuffer> buffer;
+
+ if (type() == DemuxerStream::TEXT) {
+- size_t id_size = 0;
++ int id_size = 0;
+ uint8_t* id_data = av_packet_get_side_data(
+ packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
+
+- size_t settings_size = 0;
++ int settings_size = 0;
+ uint8_t* settings_data = av_packet_get_side_data(
+ packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
+
+@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+ buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
+ side_data.data(), side_data.size());
+ } else {
+- size_t side_data_size = 0;
++ int side_data_size = 0;
+ uint8_t* side_data = av_packet_get_side_data(
+ packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
+
+@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+ packet->size - data_offset);
+ }
+
+- size_t skip_samples_size = 0;
++ int skip_samples_size = 0;
+ const uint32_t* skip_samples_ptr =
+ reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
+ packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/www-client/chromium/files/chromium-93-media-history-include.patch b/www-client/chromium/files/chromium-93-media-history-include.patch
new file mode 100644
index 0000000..4253fd7
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-media-history-include.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/media/history/media_history_origin_table.h b/chrome/browser/media/history/media_history_origin_table.h
+index c28d5e3a8..32e1757de 100644
+--- a/chrome/browser/media/history/media_history_origin_table.h
++++ b/chrome/browser/media/history/media_history_origin_table.h
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_MEDIA_HISTORY_MEDIA_HISTORY_ORIGIN_TABLE_H_
+
+ #include <string>
++#include <vector>
+
+ #include "base/updateable_sequenced_task_runner.h"
+ #include "chrome/browser/media/history/media_history_table_base.h"
diff --git a/www-client/chromium/files/chromium-93-net-http-include.patch b/www-client/chromium/files/chromium-93-net-http-include.patch
new file mode 100644
index 0000000..fe64bb7
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-net-http-include.patch
@@ -0,0 +1,12 @@
+diff --git a/net/http/http_basic_state.h b/net/http/http_basic_state.h
+index 5fd1ee514..06c46df6b 100644
+--- a/net/http/http_basic_state.h
++++ b/net/http/http_basic_state.h
+@@ -10,6 +10,7 @@
+
+ #include <memory>
+ #include <string>
++#include <vector>
+
+ #include "base/macros.h"
+ #include "base/memory/ref_counted.h"
diff --git a/www-client/chromium/files/chromium-93-payment-include.patch b/www-client/chromium/files/chromium-93-payment-include.patch
new file mode 100644
index 0000000..588931f
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-payment-include.patch
@@ -0,0 +1,12 @@
+diff --git a/components/payments/core/journey_logger.h b/components/payments/core/journey_logger.h
+index 026b38e7e..e63673de3 100644
+--- a/components/payments/core/journey_logger.h
++++ b/components/payments/core/journey_logger.h
+@@ -6,6 +6,7 @@
+ #define COMPONENTS_PAYMENTS_CORE_JOURNEY_LOGGER_H_
+
+ #include <string>
++#include <vector>
+
+ #include "base/macros.h"
+ #include "base/time/time.h"
diff --git a/www-client/chromium/files/chromium-93-pdfium-include.patch b/www-client/chromium/files/chromium-93-pdfium-include.patch
new file mode 100644
index 0000000..2f601ed
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-pdfium-include.patch
@@ -0,0 +1,12 @@
+diff --git a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp
+index c66985a7f..83a9ba132 100644
+--- a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp
++++ b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp
+@@ -6,6 +6,7 @@
+
+ #include "core/fxcodec/jpx/cjpx_decoder.h"
+
++#include <cstring>
+ #include <algorithm>
+ #include <limits>
+ #include <utility>
diff --git a/www-client/chromium/files/chromium-93-phishing-classifier-include.patch b/www-client/chromium/files/chromium-93-phishing-classifier-include.patch
new file mode 100644
index 0000000..64a95fe
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-phishing-classifier-include.patch
@@ -0,0 +1,12 @@
+diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h b/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h
+index e86d14e8d..b3e74406c 100644
+--- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h
++++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_classifier.h
+@@ -23,6 +23,7 @@
+ #include <memory>
+ #include <set>
+ #include <string>
++#include <vector>
+
+ #include "base/callback.h"
+ #include "base/macros.h"
diff --git a/www-client/chromium/files/chromium-93-pwdmgr-include-r1.patch b/www-client/chromium/files/chromium-93-pwdmgr-include-r1.patch
new file mode 100644
index 0000000..6721b8b
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-pwdmgr-include-r1.patch
@@ -0,0 +1,12 @@
+diff --git a/components/password_manager/core/browser/hash_password_manager.h b/components/password_manager/core/browser/hash_password_manager.h
+index c762c5a8c..85e656edc 100644
+--- a/components/password_manager/core/browser/hash_password_manager.h
++++ b/components/password_manager/core/browser/hash_password_manager.h
+@@ -6,6 +6,7 @@
+ #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_HASH_PASSWORD_MANAGER_H_
+
+ #include <string>
++#include <vector>
+
+ #include "base/callback.h"
+ #include "base/callback_list.h"
diff --git a/www-client/chromium/files/chromium-93-pwdmgr-include.patch b/www-client/chromium/files/chromium-93-pwdmgr-include.patch
new file mode 100644
index 0000000..041be9f
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-pwdmgr-include.patch
@@ -0,0 +1,25 @@
+diff --git a/components/password_manager/core/browser/field_info_table.h b/components/password_manager/core/browser/field_info_table.h
+index fb6d84005..e4c88aab3 100644
+--- a/components/password_manager/core/browser/field_info_table.h
++++ b/components/password_manager/core/browser/field_info_table.h
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FIELD_INFO_TABLE_H_
+ #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_FIELD_INFO_TABLE_H_
+
++#include <vector>
++
+ #include "base/macros.h"
+ #include "base/time/time.h"
+ #include "components/autofill/core/browser/field_types.h"
+diff --git a/components/password_manager/core/browser/hash_password_manager.h b/components/password_manager/core/browser/hash_password_manager.h
+index c762c5a8c..85e656edc 100644
+--- a/components/password_manager/core/browser/hash_password_manager.h
++++ b/components/password_manager/core/browser/hash_password_manager.h
+@@ -6,6 +6,7 @@
+ #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_HASH_PASSWORD_MANAGER_H_
+
+ #include <string>
++#include <vector>
+
+ #include "base/callback.h"
+ #include "base/callback_list.h"
diff --git a/www-client/chromium/files/chromium-93-quiche-logging-include.patch b/www-client/chromium/files/chromium-93-quiche-logging-include.patch
new file mode 100644
index 0000000..405a6ae
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-quiche-logging-include.patch
@@ -0,0 +1,13 @@
+diff --git a/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h b/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h
+index 8ff5e27f8..326ed9307 100644
+--- a/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h
++++ b/net/third_party/quiche/overrides/quiche_platform_impl/quiche_logging_impl.h
+@@ -5,6 +5,8 @@
+ #ifndef NET_THIRD_PARTY_QUICHE_OVERRIDES_QUICHE_PLATFORM_IMPL_QUICHE_LOGGING_IMPL_H_
+ #define NET_THIRD_PARTY_QUICHE_OVERRIDES_QUICHE_PLATFORM_IMPL_QUICHE_LOGGING_IMPL_H_
+
++#include <vector>
++
+ #include "base/check_op.h"
+ #include "base/logging.h"
+ #include "base/notreached.h"
diff --git a/www-client/chromium/files/chromium-93-site_settings_helper-initialzation.patch b/www-client/chromium/files/chromium-93-site_settings_helper-initialzation.patch
new file mode 100644
index 0000000..6551b31
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-site_settings_helper-initialzation.patch
@@ -0,0 +1,37 @@
+From 7ef6d4ad7ddc7f0c4124bc538c4bd3a8efdd37cd Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 4 Jun 2021 06:52:30 +0000
+Subject: [PATCH] GCC: fix brace-initialization with NoDestructor
+
+GCC requires brace-initialization for NoDestructor and
+std::vector<T> for base_types. Therefore change to double
+brace-initialzation.
+---
+ chrome/browser/ui/webui/settings/site_settings_helper.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc
+index 7831684..4478800 100644
+--- a/chrome/browser/ui/webui/settings/site_settings_helper.cc
++++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc
+@@ -410,7 +410,7 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() {
+ // First build the list of permissions that will be shown regardless of
+ // `origin`. Some categories such as COOKIES store their data in a custom way,
+ // so are not included here.
+- static base::NoDestructor<std::vector<ContentSettingsType>> base_types({
++ static base::NoDestructor<std::vector<ContentSettingsType>> base_types{{
+ ContentSettingsType::AR, ContentSettingsType::AUTOMATIC_DOWNLOADS,
+ ContentSettingsType::BACKGROUND_SYNC,
+ ContentSettingsType::CLIPBOARD_READ_WRITE,
+@@ -429,7 +429,7 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() {
+ ContentSettingsType::SENSORS, ContentSettingsType::SERIAL_GUARD,
+ ContentSettingsType::SOUND, ContentSettingsType::USB_GUARD,
+ ContentSettingsType::VR,
+- });
++ }};
+ static bool initialized = false;
+ if (!initialized) {
+ // The permission categories in this block are only shown when running with
+--
+2.31.1
+
diff --git a/www-client/chromium/files/chromium-93-sms-fetcher-include.patch b/www-client/chromium/files/chromium-93-sms-fetcher-include.patch
new file mode 100644
index 0000000..91d92de
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-sms-fetcher-include.patch
@@ -0,0 +1,24 @@
+diff --git a/chrome/browser/sharing/sms/sms_remote_fetcher.h b/chrome/browser/sharing/sms/sms_remote_fetcher.h
+index 2cbe6acdd..678c1b2e5 100644
+--- a/chrome/browser/sharing/sms/sms_remote_fetcher.h
++++ b/chrome/browser/sharing/sms/sms_remote_fetcher.h
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_SHARING_SMS_SMS_REMOTE_FETCHER_H_
+
+ #include <string>
++#include <vector>
+
+ #include "base/callback.h"
+ #include "third_party/abseil-cpp/absl/types/optional.h"
+diff --git a/content/public/browser/sms_fetcher.h b/content/public/browser/sms_fetcher.h
+index 13f683243..983d81891 100644
+--- a/content/public/browser/sms_fetcher.h
++++ b/content/public/browser/sms_fetcher.h
+@@ -6,6 +6,7 @@
+ #define CONTENT_PUBLIC_BROWSER_SMS_FETCHER_H_
+
+ #include <string>
++#include <vector>
+
+ #include "base/observer_list_types.h"
+ #include "content/common/content_export.h"
diff --git a/www-client/chromium/files/chromium-93-sql-virtual-cursor.patch b/www-client/chromium/files/chromium-93-sql-virtual-cursor.patch
new file mode 100644
index 0000000..a4864ba
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-sql-virtual-cursor.patch
@@ -0,0 +1,231 @@
+From 80368f8ba7a8bab13440463a254888311efe3986 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 04 May 2021 15:00:19 +0000
+Subject: [PATCH] sql: make VirtualCursor standard layout type
+
+sql::recover::VirtualCursor needs to be a standard layout type, but
+has members of type std::unique_ptr. However, std::unique_ptr is not
+guaranteed to be standard layout. Compiling with clang combined with
+gcc-11 libstdc++ fails because of this. Replace std::unique_ptr with
+raw pointers.
+
+Bug: 1189788
+Change-Id: Ia6dc388cc5ef1c0f2afc75f8ca45b9f12687ca9c
+---
+
+diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
+index 9ecaafe..839318a 100644
+--- a/sql/recover_module/btree.cc
++++ b/sql/recover_module/btree.cc
+@@ -135,16 +135,25 @@
+ "Move the destructor to the .cc file if it's non-trival");
+ #endif // !DCHECK_IS_ON()
+
+-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
+- : page_id_(db_reader->page_id()),
+- db_reader_(db_reader),
+- cell_count_(ComputeCellCount(db_reader)),
+- next_read_index_(0),
+- last_record_size_(0) {
++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
++ DCHECK(db_reader);
+ DCHECK(IsOnValidPage(db_reader));
++ page_id_ = db_reader->page_id();
++ db_reader_ = db_reader;
++ cell_count_ = ComputeCellCount(db_reader);
++ next_read_index_ = 0;
++ last_record_size_ = 0;
+ DCHECK(DatabasePageReader::IsValidPageId(page_id_));
+ }
+
++void LeafPageDecoder::Reset() {
++ db_reader_ = nullptr;
++ page_id_ = 0;
++ cell_count_ = 0;
++ next_read_index_ = 0;
++ last_record_size_ = 0;
++}
++
+ bool LeafPageDecoder::TryAdvance() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(CanAdvance());
+diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
+index d76d076..33114b0 100644
+--- a/sql/recover_module/btree.h
++++ b/sql/recover_module/btree.h
+@@ -102,7 +102,7 @@
+ //
+ // |db_reader| must have been used to read an inner page of a table B-tree.
+ // |db_reader| must outlive this instance.
+- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
++ explicit LeafPageDecoder() noexcept = default;
+ ~LeafPageDecoder() noexcept = default;
+
+ LeafPageDecoder(const LeafPageDecoder&) = delete;
+@@ -150,6 +150,15 @@
+ // read as long as CanAdvance() returns true.
+ bool TryAdvance();
+
++ // Initialize with DatabasePageReader
++ void Initialize(DatabasePageReader* db_reader);
++
++ // Reset internal DatabasePageReader
++ void Reset();
++
++ // True if DatabasePageReader is valid
++ bool IsValid() { return (db_reader_ != nullptr); }
++
+ // True if the given reader may point to an inner page in a table B-tree.
+ //
+ // The last ReadPage() call on |db_reader| must have succeeded.
+@@ -163,14 +172,14 @@
+ static int ComputeCellCount(DatabasePageReader* db_reader);
+
+ // The number of the B-tree page this reader is reading.
+- const int64_t page_id_;
++ int64_t page_id_;
+ // Used to read the tree page.
+ //
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the DatabasePageReader outlives this.
+- DatabasePageReader* const db_reader_;
++ DatabasePageReader* db_reader_;
+ // Caches the ComputeCellCount() value for this reader's page.
+- const int cell_count_ = ComputeCellCount(db_reader_);
++ int cell_count_;
+
+ // The reader's cursor state.
+ //
+diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
+index 0029ff9..42548bc 100644
+--- a/sql/recover_module/cursor.cc
++++ b/sql/recover_module/cursor.cc
+@@ -26,7 +26,7 @@
+ int VirtualCursor::First() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ inner_decoders_.clear();
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+
+ AppendPageDecoder(table_->root_page_id());
+ return Next();
+@@ -36,18 +36,18 @@
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ record_reader_.Reset();
+
+- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
+- if (leaf_decoder_.get()) {
+- if (!leaf_decoder_->CanAdvance()) {
++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
++ if (leaf_decoder_.IsValid()) {
++ if (!leaf_decoder_.CanAdvance()) {
+ // The leaf has been exhausted. Remove it from the DFS stack.
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+ continue;
+ }
+- if (!leaf_decoder_->TryAdvance())
++ if (!leaf_decoder_.TryAdvance())
+ continue;
+
+- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
+- leaf_decoder_->last_record_offset())) {
++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
++ leaf_decoder_.last_record_offset())) {
+ continue;
+ }
+ if (!record_reader_.Initialize())
+@@ -99,13 +99,13 @@
+ int64_t VirtualCursor::RowId() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(record_reader_.IsInitialized());
+- DCHECK(leaf_decoder_.get());
+- return leaf_decoder_->last_record_rowid();
++ DCHECK(leaf_decoder_.IsValid());
++ return leaf_decoder_.last_record_rowid();
+ }
+
+ void VirtualCursor::AppendPageDecoder(int page_id) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(leaf_decoder_.get() == nullptr)
++ DCHECK(!leaf_decoder_.IsValid())
+ << __func__
+ << " must only be called when the current path has no leaf decoder";
+
+@@ -113,7 +113,7 @@
+ return;
+
+ if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
+- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
++ leaf_decoder_.Initialize(&db_reader_);
+ return;
+ }
+
+diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
+index afcd690..b15c31d 100644
+--- a/sql/recover_module/cursor.h
++++ b/sql/recover_module/cursor.h
+@@ -129,7 +129,7 @@
+ std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
+
+ // Decodes the leaf page containing records.
+- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
++ LeafPageDecoder leaf_decoder_;
+
+ SEQUENCE_CHECKER(sequence_checker_);
+ };
+diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
+index 58e75de..5fe9620 100644
+--- a/sql/recover_module/pager.cc
++++ b/sql/recover_module/pager.cc
+@@ -23,8 +23,7 @@
+ "ints are not appropriate for representing page IDs");
+
+ DatabasePageReader::DatabasePageReader(VirtualTable* table)
+- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
+- table_(table) {
++ : page_data_(), table_(table) {
+ DCHECK(table != nullptr);
+ DCHECK(IsValidPageSize(table->page_size()));
+ }
+@@ -57,8 +56,8 @@
+ std::numeric_limits<int64_t>::max(),
+ "The |read_offset| computation above may overflow");
+
+- int sqlite_status =
+- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset,
++ const_cast<uint8_t*>(page_data_.data()));
+
+ // |page_id_| needs to be set to kInvalidPageId if the read failed.
+ // Otherwise, future ReadPage() calls with the previous |page_id_| value
+diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
+index 0e388ddc..99314e3 100644
+--- a/sql/recover_module/pager.h
++++ b/sql/recover_module/pager.h
+@@ -5,6 +5,7 @@
+ #ifndef SQL_RECOVER_MODULE_PAGER_H_
+ #define SQL_RECOVER_MODULE_PAGER_H_
+
++#include <array>
+ #include <cstdint>
+ #include <memory>
+
+@@ -70,7 +71,7 @@
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK_NE(page_id_, kInvalidPageId)
+ << "Successful ReadPage() required before accessing pager state";
+- return page_data_.get();
++ return page_data_.data();
+ }
+
+ // The number of bytes in the page read by the last ReadPage() call.
+@@ -137,7 +138,7 @@
+ int page_id_ = kInvalidPageId;
+ // Stores the bytes of the last page successfully read by ReadPage().
+ // The content is undefined if the last call to ReadPage() did not succeed.
+- const std::unique_ptr<uint8_t[]> page_data_;
++ const std::array<uint8_t, kMaxPageSize> page_data_;
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the VirtualTable outlives this.
+ VirtualTable* const table_;
diff --git a/www-client/chromium/files/chromium-93-tint-include.patch b/www-client/chromium/files/chromium-93-tint-include.patch
new file mode 100644
index 0000000..4bfd448
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-tint-include.patch
@@ -0,0 +1,24 @@
+From 014e1fb4c7d05f853a24bfa4b4188b99ba9f3907 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 4 Jun 2021 21:11:05 +0000
+Subject: [PATCH] IWYU: add cstddef for size_t
+
+---
+ third_party/dawn/third_party/tint/src/sem/block_statement.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/dawn/third_party/tint/src/sem/block_statement.h b/third_party/dawn/third_party/tint/src/sem/block_statement.h
+index f8c8113..9cbd64d 100644
+--- a/third_party/dawn/third_party/tint/src/sem/block_statement.h
++++ b/third_party/dawn/third_party/tint/src/sem/block_statement.h
+@@ -15,6 +15,7 @@
+ #ifndef SRC_SEM_BLOCK_STATEMENT_H_
+ #define SRC_SEM_BLOCK_STATEMENT_H_
+
++#include <cstddef>
+ #include <vector>
+
+ #include "src/sem/statement.h"
+--
+2.31.1
+
diff --git a/www-client/chromium/files/chromium-93-ui-event-include.patch b/www-client/chromium/files/chromium-93-ui-event-include.patch
new file mode 100644
index 0000000..8431b6b
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-ui-event-include.patch
@@ -0,0 +1,13 @@
+diff --git a/ui/events/event_handler.h b/ui/events/event_handler.h
+index 3870be355..81ebc0e7f 100644
+--- a/ui/events/event_handler.h
++++ b/ui/events/event_handler.h
+@@ -5,6 +5,8 @@
+ #ifndef UI_EVENTS_EVENT_HANDLER_H_
+ #define UI_EVENTS_EVENT_HANDLER_H_
+
++#include <vector>
++
+ #include "base/containers/stack.h"
+ #include "base/strings/string_piece.h"
+ #include "ui/events/events_export.h"
diff --git a/www-client/chromium/files/chromium-93-url-loader-throttles-include.patch b/www-client/chromium/files/chromium-93-url-loader-throttles-include.patch
new file mode 100644
index 0000000..d4be13f
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-url-loader-throttles-include.patch
@@ -0,0 +1,13 @@
+diff --git a/content/public/browser/url_loader_throttles.h b/content/public/browser/url_loader_throttles.h
+index 0e67d38f7..aa0290118 100644
+--- a/content/public/browser/url_loader_throttles.h
++++ b/content/public/browser/url_loader_throttles.h
+@@ -5,6 +5,8 @@
+ #ifndef CONTENT_PUBLIC_BROWSER_URL_LOADER_THROTTLES_H_
+ #define CONTENT_PUBLIC_BROWSER_URL_LOADER_THROTTLES_H_
+
++#include <vector>
++
+ #include "base/callback.h"
+ #include "content/common/content_export.h"
+
diff --git a/www-client/chromium/files/chromium-93-webapp-include.patch b/www-client/chromium/files/chromium-93-webapp-include.patch
new file mode 100644
index 0000000..39f6058
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-webapp-include.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/web_applications/components/web_app_shortcut_linux.h b/chrome/browser/web_applications/components/web_app_shortcut_linux.h
+index 4f1e5b93e..3d28e8b52 100644
+--- a/chrome/browser/web_applications/components/web_app_shortcut_linux.h
++++ b/chrome/browser/web_applications/components/web_app_shortcut_linux.h
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_WEB_APPLICATIONS_COMPONENTS_WEB_APP_SHORTCUT_LINUX_H_
+
+ #include <string>
++#include <vector>
+
+ #include "base/callback.h"
+
diff --git a/www-client/chromium/files/chromium-93-worksp-ext-include.patch b/www-client/chromium/files/chromium-93-worksp-ext-include.patch
new file mode 100644
index 0000000..c91b9b2
--- /dev/null
+++ b/www-client/chromium/files/chromium-93-worksp-ext-include.patch
@@ -0,0 +1,37 @@
+diff --git a/device/bluetooth/bluetooth_low_energy_scan_filter.h b/device/bluetooth/bluetooth_low_energy_scan_filter.h
+index 0af0b3108..cfec68cb1 100644
+--- a/device/bluetooth/bluetooth_low_energy_scan_filter.h
++++ b/device/bluetooth/bluetooth_low_energy_scan_filter.h
+@@ -7,6 +7,7 @@
+
+ #include <stddef.h>
+ #include <stdint.h>
++#include <memory>
+ #include <vector>
+
+ #include "base/time/time.h"
+diff --git a/ui/base/class_property.h b/ui/base/class_property.h
+index f7b2f5598..88b49386a 100644
+--- a/ui/base/class_property.h
++++ b/ui/base/class_property.h
+@@ -8,6 +8,7 @@
+ #include <stdint.h>
+
+ #include <map>
++#include <memory>
+ #include <set>
+ #include <type_traits>
+
+diff --git a/ui/platform_window/extensions/workspace_extension.cc b/ui/platform_window/extensions/workspace_extension.cc
+index b4e21e0f2..78b5d6562 100644
+--- a/ui/platform_window/extensions/workspace_extension.cc
++++ b/ui/platform_window/extensions/workspace_extension.cc
+@@ -4,6 +4,8 @@
+
+ #include "ui/platform_window/extensions/workspace_extension.h"
+
++#include <memory>
++
+ #include "ui/base/class_property.h"
+ #include "ui/platform_window/platform_window.h"
+
diff --git a/www-client/chromium/files/chromium-94-ConversionStorageSql-lambda.patch b/www-client/chromium/files/chromium-94-ConversionStorageSql-lambda.patch
new file mode 100644
index 0000000..6746fec
--- /dev/null
+++ b/www-client/chromium/files/chromium-94-ConversionStorageSql-lambda.patch
@@ -0,0 +1,31 @@
+From 45bea088d3771c7ff9f77173e451422452c031b3 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Mon, 02 Aug 2021 16:57:05 +0000
+Subject: [PATCH] GCC: drop WARN_USED_RESULT in lambda in ConversionStorageSql
+
+GCC 9.3 only allows GNU attributes between [] and () in lambda
+expressions. See https://gcc.gnu.org/PR90333 for details. However,
+clang only allows attributes after () only. Seems not strictly
+necessary to enforce the attribute here.
+
+Bug: 819294
+Change-Id: I342deb25239837dea0f6f5e7709b1467789e342b
+---
+
+diff --git a/content/browser/conversions/conversion_storage_sql.cc b/content/browser/conversions/conversion_storage_sql.cc
+index 84bc897..b6fc4e9 100644
+--- a/content/browser/conversions/conversion_storage_sql.cc
++++ b/content/browser/conversions/conversion_storage_sql.cc
+@@ -688,9 +688,11 @@
+ bool ConversionStorageSql::DeleteExpiredImpressions() {
+ const int kMaxDeletesPerBatch = 100;
+
++ // GCC accepts attribute between [] and () only
++ // clang accepts attribute after () only
+ auto delete_impressions_from_paged_select =
+ [this](sql::Statement& statement)
+- VALID_CONTEXT_REQUIRED(sequence_checker_) WARN_UNUSED_RESULT -> bool {
++ VALID_CONTEXT_REQUIRED(sequence_checker_) -> bool {
+ while (true) {
+ std::vector<int64_t> impression_ids;
+ while (statement.Step()) {
diff --git a/www-client/chromium/files/chromium-94-CustomSpaces-include.patch b/www-client/chromium/files/chromium-94-CustomSpaces-include.patch
new file mode 100644
index 0000000..0175775
--- /dev/null
+++ b/www-client/chromium/files/chromium-94-CustomSpaces-include.patch
@@ -0,0 +1,24 @@
+From 4eeacdaa57b29a079fe09315eb22557c06aa522e Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 13 Aug 2021 12:57:42 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in blink::CustomSpaces
+
+---
+ .../blink/renderer/platform/heap/v8_wrapper/custom_spaces.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
+index df0465a..640cb33 100644
+--- a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
++++ b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
+@@ -5,6 +5,7 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_
+ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_
+
++#include <memory>
+ #include <vector>
+
+ #include "third_party/blink/renderer/platform/platform_export.h"
+--
+2.31.1
+
diff --git a/www-client/chromium/files/chromium-94-compiler.patch b/www-client/chromium/files/chromium-94-compiler.patch
new file mode 100644
index 0000000..2b63b3b
--- /dev/null
+++ b/www-client/chromium/files/chromium-94-compiler.patch
@@ -0,0 +1,218 @@
+From f4d0b0eb899005b4b8b6388e1d8bb82cc0018fc8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sun, 8 Aug 2021 08:50:00 +0000
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 105 ++++++---------------------------
+ 1 file changed, 17 insertions(+), 88 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 0bb155a..e95c023 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -291,8 +291,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -530,31 +528,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- cflags += [
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
+- if (is_win) {
+- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
+- } else {
+- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
+- }
+- }
+-
+- # TODO(crbug.com/1235145): Investigate why/if this should be needed.
+- if (is_win) {
+- cflags += [ "/clang:-ffp-contract=off" ]
+- } else {
+- cflags += [ "-ffp-contract=off" ]
+- }
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1216,45 +1189,6 @@ config("compiler_deterministic") {
+ }
+ }
+
+- # Makes builds independent of absolute file path.
+- if (is_clang && strip_absolute_paths_from_debug_symbols) {
+- # If debug option is given, clang includes $cwd in debug info by default.
+- # For such build, this flag generates reproducible obj files even we use
+- # different build directory like "out/feature_a" and "out/feature_b" if
+- # we build same files with same compile flag.
+- # Other paths are already given in relative, no need to normalize them.
+- if (is_nacl) {
+- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+- cflags += [
+- "-Xclang",
+- "-fdebug-compilation-dir",
+- "-Xclang",
+- ".",
+- ]
+- } else {
+- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+- # and -fcoverage-compilation-dir=.
+- cflags += [ "-ffile-compilation-dir=." ]
+- }
+- if (!is_win) {
+- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
+- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+- }
+-
+- if (is_win && use_lld) {
+- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
+- # Absolutize source file paths for PDB. Pass the real build directory
+- # if the pdb contains source-level debug information and if linker
+- # reproducibility is not critical.
+- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
+- } else {
+- # Use a fake fixed base directory for paths in the pdb to make the pdb
+- # output fully deterministic and independent of the build directory.
+- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
+- }
+- }
+- }
+-
+ # Tells the compiler not to use absolute paths when passing the default
+ # paths to the tools it invokes. We don't want this because we don't
+ # really need it and it can mess up the goma cache entries.
+@@ -1658,7 +1592,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1667,10 +1601,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1679,15 +1609,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2077,7 +1998,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2112,7 +2034,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2152,7 +2075,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2184,7 +2108,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2209,7 +2134,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2328,7 +2254,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2431,7 +2358,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2496,7 +2424,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
+--
+2.31.1
diff --git a/www-client/chromium/files/chromium-94-sql-virtual-cursor.patch b/www-client/chromium/files/chromium-94-sql-virtual-cursor.patch
new file mode 100644
index 0000000..47b276d
--- /dev/null
+++ b/www-client/chromium/files/chromium-94-sql-virtual-cursor.patch
@@ -0,0 +1,216 @@
+diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
+index cc9420e5c..62fcaaf79 100644
+--- a/sql/recover_module/btree.cc
++++ b/sql/recover_module/btree.cc
+@@ -136,16 +136,25 @@ static_assert(std::is_trivially_destructible<LeafPageDecoder>::value,
+ "Move the destructor to the .cc file if it's non-trival");
+ #endif // !DCHECK_IS_ON()
+
+-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
+- : page_id_(db_reader->page_id()),
+- db_reader_(db_reader),
+- cell_count_(ComputeCellCount(db_reader)),
+- next_read_index_(0),
+- last_record_size_(0) {
++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
++ DCHECK(db_reader);
+ DCHECK(IsOnValidPage(db_reader));
++ page_id_ = db_reader->page_id();
++ db_reader_ = db_reader;
++ cell_count_ = ComputeCellCount(db_reader);
++ next_read_index_ = 0;
++ last_record_size_ = 0;
+ DCHECK(DatabasePageReader::IsValidPageId(page_id_));
+ }
+
++void LeafPageDecoder::Reset() {
++ db_reader_ = nullptr;
++ page_id_ = 0;
++ cell_count_ = 0;
++ next_read_index_ = 0;
++ last_record_size_ = 0;
++}
++
+ bool LeafPageDecoder::TryAdvance() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(CanAdvance());
+diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
+index eaa087a5c..78ce00e05 100644
+--- a/sql/recover_module/btree.h
++++ b/sql/recover_module/btree.h
+@@ -103,7 +103,7 @@ class LeafPageDecoder {
+ //
+ // |db_reader| must have been used to read an inner page of a table B-tree.
+ // |db_reader| must outlive this instance.
+- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
++ explicit LeafPageDecoder() noexcept = default;
+ ~LeafPageDecoder() noexcept = default;
+
+ LeafPageDecoder(const LeafPageDecoder&) = delete;
+@@ -151,6 +151,15 @@ class LeafPageDecoder {
+ // read as long as CanAdvance() returns true.
+ bool TryAdvance();
+
++ // Initialize with DatabasePageReader
++ void Initialize(DatabasePageReader* db_reader);
++
++ // Reset internal DatabasePageReader
++ void Reset();
++
++ // True if DatabasePageReader is valid
++ bool IsValid() { return (db_reader_ != nullptr); }
++
+ // True if the given reader may point to an inner page in a table B-tree.
+ //
+ // The last ReadPage() call on |db_reader| must have succeeded.
+@@ -164,14 +173,14 @@ class LeafPageDecoder {
+ static int ComputeCellCount(DatabasePageReader* db_reader);
+
+ // The number of the B-tree page this reader is reading.
+- const int64_t page_id_;
++ int64_t page_id_;
+ // Used to read the tree page.
+ //
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the DatabasePageReader outlives this.
+- DatabasePageReader* const db_reader_;
++ DatabasePageReader* db_reader_;
+ // Caches the ComputeCellCount() value for this reader's page.
+- const int cell_count_ = ComputeCellCount(db_reader_);
++ int cell_count_;
+
+ // The reader's cursor state.
+ //
+diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
+index 4f827edf1..240de4999 100644
+--- a/sql/recover_module/cursor.cc
++++ b/sql/recover_module/cursor.cc
+@@ -28,7 +28,7 @@ VirtualCursor::~VirtualCursor() {
+ int VirtualCursor::First() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ inner_decoders_.clear();
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+
+ AppendPageDecoder(table_->root_page_id());
+ return Next();
+@@ -38,18 +38,18 @@ int VirtualCursor::Next() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ record_reader_.Reset();
+
+- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
+- if (leaf_decoder_.get()) {
+- if (!leaf_decoder_->CanAdvance()) {
++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
++ if (leaf_decoder_.IsValid()) {
++ if (!leaf_decoder_.CanAdvance()) {
+ // The leaf has been exhausted. Remove it from the DFS stack.
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+ continue;
+ }
+- if (!leaf_decoder_->TryAdvance())
++ if (!leaf_decoder_.TryAdvance())
+ continue;
+
+- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
+- leaf_decoder_->last_record_offset())) {
++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
++ leaf_decoder_.last_record_offset())) {
+ continue;
+ }
+ if (!record_reader_.Initialize())
+@@ -101,13 +101,13 @@ int VirtualCursor::ReadColumn(int column_index,
+ int64_t VirtualCursor::RowId() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(record_reader_.IsInitialized());
+- DCHECK(leaf_decoder_.get());
+- return leaf_decoder_->last_record_rowid();
++ DCHECK(leaf_decoder_.IsValid());
++ return leaf_decoder_.last_record_rowid();
+ }
+
+ void VirtualCursor::AppendPageDecoder(int page_id) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(leaf_decoder_.get() == nullptr)
++ DCHECK(!leaf_decoder_.IsValid())
+ << __func__
+ << " must only be called when the current path has no leaf decoder";
+
+@@ -115,7 +115,7 @@ void VirtualCursor::AppendPageDecoder(int page_id) {
+ return;
+
+ if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
+- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
++ leaf_decoder_.Initialize(&db_reader_);
+ return;
+ }
+
+diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
+index afcd6900e..b15c31d42 100644
+--- a/sql/recover_module/cursor.h
++++ b/sql/recover_module/cursor.h
+@@ -129,7 +129,7 @@ class VirtualCursor {
+ std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
+
+ // Decodes the leaf page containing records.
+- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
++ LeafPageDecoder leaf_decoder_;
+
+ SEQUENCE_CHECKER(sequence_checker_);
+ };
+diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
+index 58e75de27..5fe96204e 100644
+--- a/sql/recover_module/pager.cc
++++ b/sql/recover_module/pager.cc
+@@ -23,8 +23,7 @@ static_assert(DatabasePageReader::kMaxPageId <= std::numeric_limits<int>::max(),
+ "ints are not appropriate for representing page IDs");
+
+ DatabasePageReader::DatabasePageReader(VirtualTable* table)
+- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
+- table_(table) {
++ : page_data_(), table_(table) {
+ DCHECK(table != nullptr);
+ DCHECK(IsValidPageSize(table->page_size()));
+ }
+@@ -57,8 +56,8 @@ int DatabasePageReader::ReadPage(int page_id) {
+ std::numeric_limits<int64_t>::max(),
+ "The |read_offset| computation above may overflow");
+
+- int sqlite_status =
+- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset,
++ const_cast<uint8_t*>(page_data_.data()));
+
+ // |page_id_| needs to be set to kInvalidPageId if the read failed.
+ // Otherwise, future ReadPage() calls with the previous |page_id_| value
+diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
+index 5976d2167..8dcffa3f2 100644
+--- a/sql/recover_module/pager.h
++++ b/sql/recover_module/pager.h
+@@ -5,6 +5,7 @@
+ #ifndef SQL_RECOVER_MODULE_PAGER_H_
+ #define SQL_RECOVER_MODULE_PAGER_H_
+
++#include <array>
+ #include <cstdint>
+ #include <memory>
+ #include <ostream>
+@@ -71,7 +72,7 @@ class DatabasePageReader {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK_NE(page_id_, kInvalidPageId)
+ << "Successful ReadPage() required before accessing pager state";
+- return page_data_.get();
++ return page_data_.data();
+ }
+
+ // The number of bytes in the page read by the last ReadPage() call.
+@@ -138,7 +139,7 @@ class DatabasePageReader {
+ int page_id_ = kInvalidPageId;
+ // Stores the bytes of the last page successfully read by ReadPage().
+ // The content is undefined if the last call to ReadPage() did not succeed.
+- const std::unique_ptr<uint8_t[]> page_data_;
++ const std::array<uint8_t, kMaxPageSize> page_data_;
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the VirtualTable outlives this.
+ VirtualTable* const table_;
diff --git a/www-client/chromium/files/chromium-94-translate.patch b/www-client/chromium/files/chromium-94-translate.patch
new file mode 100644
index 0000000..507e7c9
--- /dev/null
+++ b/www-client/chromium/files/chromium-94-translate.patch
@@ -0,0 +1,98 @@
+From 7cfc45880ce2b181c318fff2a336f655e294644f Mon Sep 17 00:00:00 2001
+From: mcrouse <mcrouse@google.com>
+Date: Fri, 20 Aug 2021 17:58:16 -0700
+Subject: [PATCH] [Translate] Fix migration of deprecated pref.
+
+This migrates old prefs to use a default time rather than a value.
+
+Bug: 1241228
+Change-Id: I07efec68aa0c06b0bbb13b51657a1c60b2bfcf7e
+---
+
+diff --git a/components/translate/core/browser/translate_prefs.cc b/components/translate/core/browser/translate_prefs.cc
+index f599ec6..375f805 100644
+--- a/components/translate/core/browser/translate_prefs.cc
++++ b/components/translate/core/browser/translate_prefs.cc
+@@ -944,8 +944,7 @@
+ // Migration should only be necessary once but there could still be old
+ // Chrome instances that sync the old preference, so do it once per
+ // startup.
+- static bool migrated = false;
+- if (migrated)
++ if (migrated_)
+ return;
+ DictionaryPrefUpdate never_prompt_list_update(prefs_,
+ kPrefNeverPromptSitesWithTime);
+@@ -954,11 +953,16 @@
+ const base::Value* list = prefs_->GetList(kPrefNeverPromptSitesDeprecated);
+ for (auto& site : list->GetList()) {
+ if (!never_prompt_list->FindKey(site.GetString())) {
+- never_prompt_list->SetKey(site.GetString(), base::Value(0));
++ never_prompt_list->SetKey(site.GetString(),
++ base::TimeToValue(base::Time::Now()));
+ }
+ }
+ }
+- migrated = true;
++ migrated_ = true;
++}
++
++void TranslatePrefs::ResetMigrationForTesting() {
++ migrated_ = false;
+ }
+
+ bool TranslatePrefs::IsValueOnNeverPromptList(const char* pref_id,
+diff --git a/components/translate/core/browser/translate_prefs.h b/components/translate/core/browser/translate_prefs.h
+index b822bed..6d58fd7 100644
+--- a/components/translate/core/browser/translate_prefs.h
++++ b/components/translate/core/browser/translate_prefs.h
+@@ -339,6 +339,9 @@
+
+ static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
+
++ // Reset |migrated_| to enable testing of pref migrations.
++ void ResetMigrationForTesting();
++
+ private:
+ FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest,
+ UpdateLanguageListFeatureEnabled);
+@@ -356,6 +359,7 @@
+ FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MoveLanguageUp);
+ FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MoveLanguageDown);
+ FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, ResetBlockedLanguagesToDefault);
++ FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MigrateNeverPromptSites);
+ friend class TranslatePrefsTest;
+
+ void ClearNeverPromptSiteList();
+@@ -385,6 +389,9 @@
+
+ std::unique_ptr<language::LanguagePrefs> language_prefs_;
+
++ // Whether any deprecated prefs have been successfully migrated.
++ bool migrated_ = false;
++
+ DISALLOW_COPY_AND_ASSIGN(TranslatePrefs);
+ };
+
+diff --git a/components/translate/core/browser/translate_prefs_unittest.cc b/components/translate/core/browser/translate_prefs_unittest.cc
+index 601b834..3feb232c 100644
+--- a/components/translate/core/browser/translate_prefs_unittest.cc
++++ b/components/translate/core/browser/translate_prefs_unittest.cc
+@@ -931,6 +931,17 @@
+ accept_languages_tester_->ExpectAcceptLanguagePrefs("en,it,es,zh,fr");
+ }
+
++TEST_F(TranslatePrefsTest, MigrateNeverPromptSites) {
++ translate_prefs_->AddValueToNeverPromptList(
++ TranslatePrefs::kPrefNeverPromptSitesDeprecated, "unmigrated.com");
++ translate_prefs_->ResetMigrationForTesting();
++ translate_prefs_->MigrateNeverPromptSites();
++ EXPECT_EQ(
++ std::vector<std::string>({"unmigrated.com"}),
++ translate_prefs_->GetNeverPromptSitesBetween(
++ base::Time::Now() - base::TimeDelta::FromDays(1), base::Time::Max()));
++}
++
+ TEST_F(TranslatePrefsTest, SiteNeverPromptList) {
+ translate_prefs_->AddSiteToNeverPromptList("a.com");
+ base::Time t = base::Time::Now();
diff --git a/www-client/chromium/files/chromium-95-hash_traits-include.patch b/www-client/chromium/files/chromium-95-hash_traits-include.patch
new file mode 100644
index 0000000..62e559d
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-hash_traits-include.patch
@@ -0,0 +1,30 @@
+From 45441a733187d7462f30b433a663ef7403990d87 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 3 Sep 2021 16:19:32 +0000
+Subject: [PATCH] IWYU: add string.h for memset in hash_traits
+
+---
+ third_party/blink/renderer/platform/wtf/hash_traits.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/third_party/blink/renderer/platform/wtf/hash_traits.h b/third_party/blink/renderer/platform/wtf/hash_traits.h
+index ca5ed2a..67d1724 100644
+--- a/third_party/blink/renderer/platform/wtf/hash_traits.h
++++ b/third_party/blink/renderer/platform/wtf/hash_traits.h
+@@ -22,10 +22,13 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_HASH_TRAITS_H_
+ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_HASH_TRAITS_H_
+
++#include <string.h>
++
+ #include <limits>
+ #include <memory>
+ #include <type_traits>
+ #include <utility>
++
+ #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
+ #include "third_party/blink/renderer/platform/wtf/forward.h"
+ #include "third_party/blink/renderer/platform/wtf/hash_functions.h"
+--
+2.32.0
+
diff --git a/www-client/chromium/files/chromium-95-libyuv-aarch64.patch b/www-client/chromium/files/chromium-95-libyuv-aarch64.patch
new file mode 100644
index 0000000..8efbaff
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-libyuv-aarch64.patch
@@ -0,0 +1,31 @@
+diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc
+index 350c964..2aab413 100644
+--- a/third_party/libyuv/source/row_neon64.cc
++++ b/third_party/libyuv/source/row_neon64.cc
+@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb,
+ : "+r"(src_argb), // %0
+ "+r"(dst_ab64), // %1
+ "+r"(width) // %2
+- : "m"(kShuffleARGBToABGR) // %3
++ : "Q"(kShuffleARGBToABGR) // %3
+ : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
+ }
+
+@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64,
+ : "+r"(src_ar64), // %0
+ "+r"(dst_argb), // %1
+ "+r"(width) // %2
+- : "m"(kShuffleAR64ToARGB) // %3
++ : "Q"(kShuffleAR64ToARGB) // %3
+ : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
+ }
+
+@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64,
+ : "+r"(src_ab64), // %0
+ "+r"(dst_argb), // %1
+ "+r"(width) // %2
+- : "m"(kShuffleAB64ToARGB) // %3
++ : "Q"(kShuffleAB64ToARGB) // %3
+ : "cc", "memory", "v0", "v1", "v2", "v3", "v4");
+ }
+
diff --git a/www-client/chromium/files/chromium-95-text_fragments_utils-include.patch b/www-client/chromium/files/chromium-95-text_fragments_utils-include.patch
new file mode 100644
index 0000000..e2d6160
--- /dev/null
+++ b/www-client/chromium/files/chromium-95-text_fragments_utils-include.patch
@@ -0,0 +1,37 @@
+From f48b39ee129132337b93e905c8f304c65766742a Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Tue, 31 Aug 2021 12:22:35 +0000
+Subject: [PATCH] IWYU: add string.h for strlen in text_fragments_utils
+
+Remove namespace std from strlen to avoid including cstring as well.
+---
+ .../shared_highlighting/core/common/text_fragments_utils.cc | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/components/shared_highlighting/core/common/text_fragments_utils.cc b/components/shared_highlighting/core/common/text_fragments_utils.cc
+index 9f39ce6..389c09c 100644
+--- a/components/shared_highlighting/core/common/text_fragments_utils.cc
++++ b/components/shared_highlighting/core/common/text_fragments_utils.cc
+@@ -4,6 +4,8 @@
+
+ #include "components/shared_highlighting/core/common/text_fragments_utils.h"
+
++#include <string.h>
++
+ #include <sstream>
+
+ #include "base/json/json_writer.h"
+@@ -54,8 +56,8 @@ bool SplitUrlTextFragmentDirective(const std::string& full_url,
+
+ // We only want to keep what's after the delimiter.
+ *highlight_directive =
+- full_url.substr(pos + std::strlen(kFragmentsUrlDelimiter) +
+- std::strlen(kFragmentParameterName));
++ full_url.substr(pos + strlen(kFragmentsUrlDelimiter) +
++ strlen(kFragmentParameterName));
+ return true;
+ }
+
+--
+2.31.1
+
diff --git a/www-client/chromium/files/chromium-96-AppliedTextDecoration-include.patch b/www-client/chromium/files/chromium-96-AppliedTextDecoration-include.patch
new file mode 100644
index 0000000..26b7d0b
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-AppliedTextDecoration-include.patch
@@ -0,0 +1,25 @@
+From 7387c3ccedb190a8d971762b89e1a75c2289537d Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 25 Sep 2021 20:52:05 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in AppliedTextDecoration
+
+---
+ third_party/blink/renderer/core/style/applied_text_decoration.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/third_party/blink/renderer/core/style/applied_text_decoration.h b/third_party/blink/renderer/core/style/applied_text_decoration.h
+index b79dc4d..cc050ff 100644
+--- a/third_party/blink/renderer/core/style/applied_text_decoration.h
++++ b/third_party/blink/renderer/core/style/applied_text_decoration.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_APPLIED_TEXT_DECORATION_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_APPLIED_TEXT_DECORATION_H_
+
++#include <memory>
++
+ #include "third_party/blink/renderer/core/style/computed_style_constants.h"
+ #include "third_party/blink/renderer/core/style/text_decoration_thickness.h"
+ #include "third_party/blink/renderer/platform/geometry/length.h"
+--
+2.32.0
+
diff --git a/www-client/chromium/files/chromium-96-EnumTable-crash.patch b/www-client/chromium/files/chromium-96-EnumTable-crash.patch
new file mode 100644
index 0000000..9736739
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-EnumTable-crash.patch
@@ -0,0 +1,76 @@
+diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
+index aad9e08..2f3fcad 100644
+--- a/components/cast_channel/enum_table.h
++++ b/components/cast_channel/enum_table.h
+@@ -8,6 +8,7 @@
+ #include <cstdint>
+ #include <cstring>
+ #include <ostream>
++#include <vector>
+
+ #include "base/check_op.h"
+ #include "base/macros.h"
+@@ -188,7 +189,6 @@ class
+ inline constexpr GenericEnumTableEntry(int32_t value);
+ inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
+
+- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
+ GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
+
+ private:
+@@ -254,7 +254,6 @@ class EnumTable {
+ constexpr Entry(E value, base::StringPiece str)
+ : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
+
+- Entry(const Entry&) = delete;
+ Entry& operator=(const Entry&) = delete;
+ };
+
+@@ -313,15 +312,14 @@ class EnumTable {
+ if (is_sorted_) {
+ const std::size_t index = static_cast<std::size_t>(value);
+ if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
+- const auto& entry = data_.begin()[index];
++ const auto& entry = data_[index];
+ if (ANALYZER_ASSUME_TRUE(entry.has_str()))
+ return entry.str();
+ }
+ return absl::nullopt;
+ }
+ return GenericEnumTableEntry::FindByValue(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), static_cast<int32_t>(value));
++ &data_[0], data_.size(), static_cast<int32_t>(value));
+ }
+
+ // This overload of GetString is designed for cases where the argument is a
+@@ -349,8 +347,7 @@ class EnumTable {
+ // enum value directly.
+ absl::optional<E> GetEnum(base::StringPiece str) const {
+ auto* entry = GenericEnumTableEntry::FindByString(
+- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
+- data_.size(), str);
++ &data_[0], data_.size(), str);
+ return entry ? static_cast<E>(entry->value) : absl::optional<E>();
+ }
+
+@@ -365,7 +362,7 @@ class EnumTable {
+ // Align the data on a cache line boundary.
+ alignas(64)
+ #endif
+- std::initializer_list<Entry> data_;
++ const std::vector<Entry> data_;
+ bool is_sorted_;
+
+ constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
+@@ -377,8 +374,8 @@ class EnumTable {
+
+ for (std::size_t i = 0; i < data.size(); i++) {
+ for (std::size_t j = i + 1; j < data.size(); j++) {
+- const Entry& ei = data.begin()[i];
+- const Entry& ej = data.begin()[j];
++ const Entry& ei = data[i];
++ const Entry& ej = data[j];
+ DCHECK(ei.value != ej.value)
+ << "Found duplicate enum values at indices " << i << " and " << j;
+ DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
diff --git a/www-client/chromium/files/chromium-96-ax_platform-list-init.patch b/www-client/chromium/files/chromium-96-ax_platform-list-init.patch
new file mode 100644
index 0000000..49adba4
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-ax_platform-list-init.patch
@@ -0,0 +1,15 @@
+diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc
+index aff693dea..834c328d1 100644
+--- a/ui/accessibility/platform/ax_platform_node_auralinux.cc
++++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
+@@ -5136,8 +5136,8 @@ std::pair<int, int> AXPlatformNodeAuraLinux::GetSelectionOffsetsForAtk() {
+ std::vector<ax::mojom::Action> AXPlatformNodeAuraLinux::GetSupportedActions()
+ const {
+ static const base::NoDestructor<std::vector<ax::mojom::Action>>
+- kActionsThatCanBeExposedViaAtkAction(
+- {ax::mojom::Action::kDecrement, ax::mojom::Action::kIncrement});
++ kActionsThatCanBeExposedViaAtkAction{
++ {ax::mojom::Action::kDecrement, ax::mojom::Action::kIncrement}};
+
+ // The default action is always included and exposed at the first index.
+ std::vector<ax::mojom::Action> supported_actions = {
diff --git a/www-client/chromium/files/chromium-96-compiler.patch b/www-client/chromium/files/chromium-96-compiler.patch
new file mode 100644
index 0000000..9b4b408
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-compiler.patch
@@ -0,0 +1,200 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 67b7097dd..f21f7435a 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -292,8 +292,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -532,24 +530,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- cflags += [
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
+- if (is_win) {
+- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
+- } else {
+- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
+- }
+- }
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1240,45 +1220,6 @@ config("compiler_deterministic") {
+ }
+ }
+
+- # Makes builds independent of absolute file path.
+- if (is_clang && strip_absolute_paths_from_debug_symbols) {
+- # If debug option is given, clang includes $cwd in debug info by default.
+- # For such build, this flag generates reproducible obj files even we use
+- # different build directory like "out/feature_a" and "out/feature_b" if
+- # we build same files with same compile flag.
+- # Other paths are already given in relative, no need to normalize them.
+- if (is_nacl) {
+- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+- cflags += [
+- "-Xclang",
+- "-fdebug-compilation-dir",
+- "-Xclang",
+- ".",
+- ]
+- } else {
+- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+- # and -fcoverage-compilation-dir=.
+- cflags += [ "-ffile-compilation-dir=." ]
+- }
+- if (!is_win) {
+- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
+- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+- }
+-
+- if (is_win && use_lld) {
+- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
+- # Absolutize source file paths for PDB. Pass the real build directory
+- # if the pdb contains source-level debug information and if linker
+- # reproducibility is not critical.
+- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
+- } else {
+- # Use a fake fixed base directory for paths in the pdb to make the pdb
+- # output fully deterministic and independent of the build directory.
+- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
+- }
+- }
+- }
+-
+ # Tells the compiler not to use absolute paths when passing the default
+ # paths to the tools it invokes. We don't want this because we don't
+ # really need it and it can mess up the goma cache entries.
+@@ -1558,7 +1499,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1567,10 +1508,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1579,15 +1516,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1955,7 +1883,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -1995,7 +1924,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2035,7 +1965,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2068,7 +1999,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2094,7 +2026,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ rustflags = [ "-Copt-level=1" ]
+ ldflags = common_optimize_on_ldflags
+@@ -2214,7 +2147,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2328,7 +2262,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2400,7 +2335,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-96-coupondb-include.patch b/www-client/chromium/files/chromium-96-coupondb-include.patch
new file mode 100644
index 0000000..d0938d2
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-coupondb-include.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f43d..93e2dd3b5 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
diff --git a/www-client/chromium/files/chromium-96-template-friend.patch b/www-client/chromium/files/chromium-96-template-friend.patch
new file mode 100644
index 0000000..4b8a5e4
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-template-friend.patch
@@ -0,0 +1,34 @@
+diff --git a/base/memory/safe_ref.h b/base/memory/safe_ref.h
+index 7189f8786..162c6744f 100644
+--- a/base/memory/safe_ref.h
++++ b/base/memory/safe_ref.h
+@@ -88,9 +88,10 @@ class SafeRef {
+ private:
+ template <typename U>
+ friend class SafeRef;
+- friend SafeRef internal::MakeSafeRefFromWeakPtrInternals(
++ template <typename U>
++ friend SafeRef<U> internal::MakeSafeRefFromWeakPtrInternals(
+ const internal::WeakReference& ref,
+- T* ptr);
++ U* ptr);
+
+ // Construction from a from WeakPtr. Will CHECK() if the WeakPtr is already
+ // invalid.
+diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
+index 17f7b8f87..d042ecff2 100644
+--- a/base/memory/weak_ptr.h
++++ b/base/memory/weak_ptr.h
+@@ -289,9 +289,10 @@ class WeakPtr : public internal::WeakPtrBase {
+ template <typename U> friend class WeakPtr;
+ friend class SupportsWeakPtr<T>;
+ friend class WeakPtrFactory<T>;
+- friend SafeRef<T> internal::MakeSafeRefFromWeakPtrInternals(
++ template <typename U>
++ friend SafeRef<U> internal::MakeSafeRefFromWeakPtrInternals(
+ const internal::WeakReference& ref,
+- T* ptr);
++ U* ptr);
+
+ WeakPtr(const internal::WeakReference& ref, T* ptr)
+ : WeakPtrBase(ref, reinterpret_cast<uintptr_t>(ptr)) {}
diff --git a/www-client/chromium/files/chromium-angle-inline.patch b/www-client/chromium/files/chromium-angle-inline.patch
new file mode 100644
index 0000000..e8975d7
--- /dev/null
+++ b/www-client/chromium/files/chromium-angle-inline.patch
@@ -0,0 +1,118 @@
+From 4c0a23611b3906855db7b93da2f34aec57930cdf Mon Sep 17 00:00:00 2001
+From: Geoff Lang <geofflang@chromium.org>
+Date: Tue, 25 Jun 2019 10:56:29 -0400
+Subject: [PATCH] Update ValidateSamplerParameterBase to use const parameters.
+
+ValidateSamplerParameterBase is called with both const and non-const
+parameter pointers which caused our explicit template instantiations to
+not cover all cases resulting in link errors. Force the parameters to
+always be const so that our instantiations cover everything.
+
+BUG=angleproject:3555
+
+Change-Id: Ibf92572ba80a689c75dcdc70e5153d9941da76f3
+Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1676305
+Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
+Commit-Queue: Geoff Lang <geofflang@chromium.org>
+---
+
+diff --git a/third_party/angle/src/libANGLE/validationES.cpp b/third_party/angle/src/libANGLE/validationES.cpp
+index 041803a..3f402f6 100644
+--- a/third_party/angle/src/libANGLE/validationES.cpp
++++ b/third_party/angle/src/libANGLE/validationES.cpp
+@@ -189,7 +189,9 @@
+ }
+
+ template <typename ParamType>
+-bool ValidateTextureWrapModeValue(Context *context, ParamType *params, bool restrictedWrapModes)
++bool ValidateTextureWrapModeValue(Context *context,
++ const ParamType *params,
++ bool restrictedWrapModes)
+ {
+ switch (ConvertToGLenum(params[0]))
+ {
+@@ -223,7 +225,9 @@
+ }
+
+ template <typename ParamType>
+-bool ValidateTextureMinFilterValue(Context *context, ParamType *params, bool restrictedMinFilter)
++bool ValidateTextureMinFilterValue(Context *context,
++ const ParamType *params,
++ bool restrictedMinFilter)
+ {
+ switch (ConvertToGLenum(params[0]))
+ {
+@@ -252,7 +256,7 @@
+ }
+
+ template <typename ParamType>
+-bool ValidateTextureMagFilterValue(Context *context, ParamType *params)
++bool ValidateTextureMagFilterValue(Context *context, const ParamType *params)
+ {
+ switch (ConvertToGLenum(params[0]))
+ {
+@@ -269,7 +273,7 @@
+ }
+
+ template <typename ParamType>
+-bool ValidateTextureCompareModeValue(Context *context, ParamType *params)
++bool ValidateTextureCompareModeValue(Context *context, const ParamType *params)
+ {
+ // Acceptable mode parameters from GLES 3.0.2 spec, table 3.17
+ switch (ConvertToGLenum(params[0]))
+@@ -287,7 +291,7 @@
+ }
+
+ template <typename ParamType>
+-bool ValidateTextureCompareFuncValue(Context *context, ParamType *params)
++bool ValidateTextureCompareFuncValue(Context *context, const ParamType *params)
+ {
+ // Acceptable function parameters from GLES 3.0.2 spec, table 3.17
+ switch (ConvertToGLenum(params[0]))
+@@ -311,7 +315,7 @@
+ }
+
+ template <typename ParamType>
+-bool ValidateTextureSRGBDecodeValue(Context *context, ParamType *params)
++bool ValidateTextureSRGBDecodeValue(Context *context, const ParamType *params)
+ {
+ if (!context->getExtensions().textureSRGBDecode)
+ {
+@@ -5996,7 +6000,7 @@
+ GLenum pname,
+ GLsizei bufSize,
+ bool vectorParams,
+- ParamType *params)
++ const ParamType *params)
+ {
+ if (context->getClientMajorVersion() < 3)
+ {
+@@ -6099,8 +6103,13 @@
+ return true;
+ }
+
+-template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, GLfloat *);
+-template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, GLint *);
++template bool ValidateSamplerParameterBase(Context *,
++ GLuint,
++ GLenum,
++ GLsizei,
++ bool,
++ const GLfloat *);
++template bool ValidateSamplerParameterBase(Context *, GLuint, GLenum, GLsizei, bool, const GLint *);
+ template bool ValidateSamplerParameterBase(Context *,
+ GLuint,
+ GLenum,
+diff --git a/third_party/angle/src/libANGLE/validationES.h b/third_party/angle/src/libANGLE/validationES.h
+index c61bda6..4b06d28 100644
+--- a/third_party/angle/src/libANGLE/validationES.h
++++ b/third_party/angle/src/libANGLE/validationES.h
+@@ -584,7 +584,7 @@
+ GLenum pname,
+ GLsizei bufSize,
+ bool vectorParams,
+- ParamType *params);
++ const ParamType *params);
+
+ bool ValidateGetInternalFormativBase(Context *context,
+ GLenum target,
diff --git a/www-client/chromium/files/chromium-axobj-ancestoriter-cat-84.patch b/www-client/chromium/files/chromium-axobj-ancestoriter-cat-84.patch
new file mode 100644
index 0000000..d554334
--- /dev/null
+++ b/www-client/chromium/files/chromium-axobj-ancestoriter-cat-84.patch
@@ -0,0 +1,33 @@
+Make blink::AXObject::AncestorsIterator STL compatible.
+
+Commit 31e5188ffc9a04295997d22bfdb68fc367bef047, "Used some methods from
+AXRoleProperties in AXObject" started using std::any_of with this custom
+iterator type. Unfortunately this iterator does not provide traits
+mandated by the standard. This works fine for libcxx, but fails when
+compiling the code against libstdc++.
+
+Bug: 819294
+Change-Id: I78fe25475593d73ce255f1de955aa41e936dff86
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2207112
+Reviewed-by: Kentaro Hara <haraken@chromium.org>
+Commit-Queue: Piotr Tworek <ptworek@vewd.com>
+Cr-Commit-Position: refs/heads/master@{#769713}
+
+diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h
+index 841715b..fbb87bf 100644
+--- a/third_party/blink/renderer/modules/accessibility/ax_object.h
++++ b/third_party/blink/renderer/modules/accessibility/ax_object.h
+@@ -274,6 +274,12 @@
+ class MODULES_EXPORT AncestorsIterator final
+ : public GarbageCollected<AncestorsIterator> {
+ public:
++ using iterator_category = std::forward_iterator_tag;
++ using value_type = AXObject;
++ using difference_type = ptrdiff_t;
++ using pointer = value_type*;
++ using reference = value_type&;
++
+ ~AncestorsIterator() = default;
+
+ AncestorsIterator(const AncestorsIterator& other)
+
diff --git a/www-client/chromium/files/chromium-axtree-incomplete-type-83.patch b/www-client/chromium/files/chromium-axtree-incomplete-type-83.patch
new file mode 100644
index 0000000..7a8061a
--- /dev/null
+++ b/www-client/chromium/files/chromium-axtree-incomplete-type-83.patch
@@ -0,0 +1,41 @@
+diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc
+index e90256109..76fa091e2 100644
+--- a/ui/accessibility/ax_tree.cc
++++ b/ui/accessibility/ax_tree.cc
+@@ -567,15 +567,6 @@ struct AXTreeUpdateState {
+ const AXTree& tree;
+ };
+
+-struct AXTree::NodeSetSizePosInSetInfo {
+- NodeSetSizePosInSetInfo() = default;
+- ~NodeSetSizePosInSetInfo() = default;
+-
+- int32_t pos_in_set = 0;
+- int32_t set_size = 0;
+- base::Optional<int> lowest_hierarchical_level;
+-};
+-
+ struct AXTree::OrderedSetContent {
+ explicit OrderedSetContent(const AXNode* ordered_set = nullptr)
+ : ordered_set_(ordered_set) {}
+diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h
+index a51ca8de4..ef1633212 100644
+--- a/ui/accessibility/ax_tree.h
++++ b/ui/accessibility/ax_tree.h
+@@ -328,7 +328,15 @@ class AX_EXPORT AXTree : public AXNode::OwnerTree {
+ bool enable_extra_mac_nodes_ = false;
+
+ // Contains pos_in_set and set_size data for an AXNode.
+- struct NodeSetSizePosInSetInfo;
++ struct NodeSetSizePosInSetInfo {
++ NodeSetSizePosInSetInfo() = default;
++ ~NodeSetSizePosInSetInfo() = default;
++
++ int32_t pos_in_set = 0;
++ int32_t set_size = 0;
++ base::Optional<int> lowest_hierarchical_level;
++ };
++
+
+ // Represents the content of an ordered set which includes the ordered set
+ // items and the ordered set container if it exists.
diff --git a/www-client/chromium/files/chromium-base-include-84-r1.patch b/www-client/chromium/files/chromium-base-include-84-r1.patch
new file mode 100644
index 0000000..1a17ed2
--- /dev/null
+++ b/www-client/chromium/files/chromium-base-include-84-r1.patch
@@ -0,0 +1,24 @@
+diff --git a/base/check_op.h b/base/check_op.h
+index 0943d0cc2..c16df8705 100644
+--- a/base/check_op.h
++++ b/base/check_op.h
+@@ -6,6 +6,7 @@
+ #define BASE_CHECK_OP_H_
+
+ #include <cstddef>
++#include <cstring>
+ #include <type_traits>
+
+ #include "base/check.h"
+diff --git a/base/debug/elf_reader.cc b/base/debug/elf_reader.cc
+index aea4f3b03..1cf7bf50d 100644
+--- a/base/debug/elf_reader.cc
++++ b/base/debug/elf_reader.cc
+@@ -4,6 +4,7 @@
+
+ #include "base/debug/elf_reader.h"
+
++#include <string.h>
+ #include <arpa/inet.h>
+ #include <elf.h>
+
diff --git a/www-client/chromium/files/chromium-base-include-84-r2.patch b/www-client/chromium/files/chromium-base-include-84-r2.patch
new file mode 100644
index 0000000..9ac745a
--- /dev/null
+++ b/www-client/chromium/files/chromium-base-include-84-r2.patch
@@ -0,0 +1,12 @@
+diff --git a/base/check_op.h b/base/check_op.h
+index 4816df4e8..0087dfe40 100644
+--- a/base/check_op.h
++++ b/base/check_op.h
+@@ -6,6 +6,7 @@
+ #define BASE_CHECK_OP_H_
+
+ #include <cstddef>
++#include <cstring>
+ #include <type_traits>
+
+ #include "base/check.h"
diff --git a/www-client/chromium/files/chromium-base-include-84.patch b/www-client/chromium/files/chromium-base-include-84.patch
new file mode 100644
index 0000000..9c5846b
--- /dev/null
+++ b/www-client/chromium/files/chromium-base-include-84.patch
@@ -0,0 +1,281 @@
+diff --git a/base/big_endian.cc b/base/big_endian.cc
+index 9e9e672e4..a706c4a4e 100644
+--- a/base/big_endian.cc
++++ b/base/big_endian.cc
+@@ -4,6 +4,8 @@
+
+ #include "base/big_endian.h"
+
++#include <string.h>
++
+ #include "base/numerics/checked_math.h"
+ #include "base/strings/string_piece.h"
+
+diff --git a/base/check_op.cc b/base/check_op.cc
+index 7e0806464..fcdb8df16 100644
+--- a/base/check_op.cc
++++ b/base/check_op.cc
+@@ -12,6 +12,7 @@
+ #endif
+
+ #include <cstdio>
++#include <cstring>
+ #include <sstream>
+
+ namespace logging {
+diff --git a/base/debug/elf_reader.cc b/base/debug/elf_reader.cc
+index aea4f3b03..1cf7bf50d 100644
+--- a/base/debug/elf_reader.cc
++++ b/base/debug/elf_reader.cc
+@@ -4,6 +4,7 @@
+
+ #include "base/debug/elf_reader.h"
+
++#include <string.h>
+ #include <arpa/inet.h>
+ #include <elf.h>
+
+diff --git a/base/files/dir_reader_linux.h b/base/files/dir_reader_linux.h
+index f12deeb2f..194cd92b0 100644
+--- a/base/files/dir_reader_linux.h
++++ b/base/files/dir_reader_linux.h
+@@ -7,6 +7,7 @@
+
+ #include <errno.h>
+ #include <fcntl.h>
++#include <string.h>
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <sys/syscall.h>
+diff --git a/base/logging.h b/base/logging.h
+index 7644ec188..848718612 100644
+--- a/base/logging.h
++++ b/base/logging.h
+@@ -6,6 +6,7 @@
+ #define BASE_LOGGING_H_
+
+ #include <stddef.h>
++#include <string.h>
+
+ #include <cassert>
+ #include <cstdint>
+diff --git a/base/metrics/metrics_hashes.cc b/base/metrics/metrics_hashes.cc
+index ef7072a4a..9cd2d5a93 100644
+--- a/base/metrics/metrics_hashes.cc
++++ b/base/metrics/metrics_hashes.cc
+@@ -4,6 +4,8 @@
+
+ #include "base/metrics/metrics_hashes.h"
+
++#include <string.h>
++
+ #include "base/hash/md5.h"
+ #include "base/logging.h"
+ #include "base/sys_byteorder.h"
+diff --git a/base/process/environment_internal.cc b/base/process/environment_internal.cc
+index 357140fa6..44f5c6603 100644
+--- a/base/process/environment_internal.cc
++++ b/base/process/environment_internal.cc
+@@ -5,6 +5,7 @@
+ #include "base/process/environment_internal.h"
+
+ #include <stddef.h>
++#include <string.h>
+
+ #include <vector>
+
+diff --git a/base/strings/string16.cc b/base/strings/string16.cc
+index 84962e671..b7df7e161 100644
+--- a/base/strings/string16.cc
++++ b/base/strings/string16.cc
+@@ -4,6 +4,8 @@
+
+ #include "base/strings/string16.h"
+
++#include <string.h>
++
+ #if defined(WCHAR_T_IS_UTF16) && !defined(_AIX)
+
+ #error This file should not be used on 2-byte wchar_t systems
+diff --git a/base/strings/string_piece.cc b/base/strings/string_piece.cc
+index c789bc2a0..bfaf99db5 100644
+--- a/base/strings/string_piece.cc
++++ b/base/strings/string_piece.cc
+@@ -5,6 +5,7 @@
+
+ #include "base/strings/string_piece.h"
+
++#include <string.h>
+ #include <limits.h>
+
+ #include <algorithm>
+diff --git a/base/strings/sys_string_conversions_posix.cc b/base/strings/sys_string_conversions_posix.cc
+index ad794cae2..dad27eaa5 100644
+--- a/base/strings/sys_string_conversions_posix.cc
++++ b/base/strings/sys_string_conversions_posix.cc
+@@ -4,6 +4,7 @@
+
+ #include "base/strings/sys_string_conversions.h"
+
++#include <string.h>
+ #include <stddef.h>
+ #include <wchar.h>
+
+diff --git a/base/synchronization/lock_impl.h b/base/synchronization/lock_impl.h
+index 830b878e8..cdb66fdca 100644
+--- a/base/synchronization/lock_impl.h
++++ b/base/synchronization/lock_impl.h
+@@ -16,6 +16,7 @@
+ #elif defined(OS_POSIX) || defined(OS_FUCHSIA)
+ #include <errno.h>
+ #include <pthread.h>
++#include <string.h>
+ #endif
+
+ namespace base {
+diff --git a/base/trace_event/blame_context.cc b/base/trace_event/blame_context.cc
+index e7599efa8..4b82c5526 100644
+--- a/base/trace_event/blame_context.cc
++++ b/base/trace_event/blame_context.cc
+@@ -25,7 +25,7 @@ BlameContext::BlameContext(const char* category,
+ parent_scope_(parent_context ? parent_context->scope() : nullptr),
+ parent_id_(parent_context ? parent_context->id() : 0),
+ category_group_enabled_(nullptr) {
+- DCHECK(!parent_context || !std::strcmp(name_, parent_context->name()))
++ DCHECK(!parent_context || !strcmp(name_, parent_context->name()))
+ << "Parent blame context must have the same name";
+ }
+
+diff --git a/components/network_hints/renderer/dns_prefetch_queue.cc b/components/network_hints/renderer/dns_prefetch_queue.cc
+index af34d8df0..7905ad49d 100644
+--- a/components/network_hints/renderer/dns_prefetch_queue.cc
++++ b/components/network_hints/renderer/dns_prefetch_queue.cc
+@@ -6,8 +6,11 @@
+
+ #include "components/network_hints/renderer/dns_prefetch_queue.h"
+
++#include <cstring>
++
+ #include "base/logging.h"
+
++
+ namespace network_hints {
+
+ DnsQueue::DnsQueue(BufferSize size)
+diff --git a/components/omnibox/browser/on_device_head_model.cc b/components/omnibox/browser/on_device_head_model.cc
+index 0fa2ff25e..ad5e9386f 100644
+--- a/components/omnibox/browser/on_device_head_model.cc
++++ b/components/omnibox/browser/on_device_head_model.cc
+@@ -4,6 +4,7 @@
+
+ #include "components/omnibox/browser/on_device_head_model.h"
+
++#include <cstring>
+ #include <algorithm>
+
+ #include "base/logging.h"
+diff --git a/google_apis/gcm/base/socket_stream.cc b/google_apis/gcm/base/socket_stream.cc
+index d9759e767..bc33dca40 100644
+--- a/google_apis/gcm/base/socket_stream.cc
++++ b/google_apis/gcm/base/socket_stream.cc
+@@ -177,7 +177,7 @@ void SocketInputStream::RebuildBuffer() {
+ DVLOG(1) << "Have " << unread_data_size
+ << " unread bytes remaining, shifting.";
+ // Move any remaining unread data to the start of the buffer;
+- std::memmove(io_buffer_->data(), unread_data_ptr, unread_data_size);
++ memmove(io_buffer_->data(), unread_data_ptr, unread_data_size);
+ } else {
+ DVLOG(1) << "Have " << unread_data_size << " unread bytes remaining.";
+ }
+diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.h b/gpu/command_buffer/service/gles2_cmd_decoder.h
+index f4c3014d1..7491797e7 100644
+--- a/gpu/command_buffer/service/gles2_cmd_decoder.h
++++ b/gpu/command_buffer/service/gles2_cmd_decoder.h
+@@ -9,6 +9,7 @@
+
+ #include <stdint.h>
+
++#include <cstring>
+ #include <string>
+ #include <vector>
+
+diff --git a/gpu/vulkan/vulkan_device_queue.cc b/gpu/vulkan/vulkan_device_queue.cc
+index 4d95330b5..a6a130593 100644
+--- a/gpu/vulkan/vulkan_device_queue.cc
++++ b/gpu/vulkan/vulkan_device_queue.cc
+@@ -98,7 +98,7 @@ bool VulkanDeviceQueue::Initialize(
+ std::find_if(physical_device_info.extensions.begin(),
+ physical_device_info.extensions.end(),
+ [extension](const VkExtensionProperties& p) {
+- return std::strcmp(extension, p.extensionName) == 0;
++ return strcmp(extension, p.extensionName) == 0;
+ });
+ if (it == physical_device_info.extensions.end()) {
+ // On Fuchsia, some device extensions are provided by layers.
+@@ -118,7 +118,7 @@ bool VulkanDeviceQueue::Initialize(
+ std::find_if(physical_device_info.extensions.begin(),
+ physical_device_info.extensions.end(),
+ [extension](const VkExtensionProperties& p) {
+- return std::strcmp(extension, p.extensionName) == 0;
++ return strcmp(extension, p.extensionName) == 0;
+ });
+ if (it == physical_device_info.extensions.end()) {
+ DLOG(ERROR) << "Optional Vulkan extension " << extension
+@@ -255,4 +255,4 @@ std::unique_ptr<VulkanCommandPool> VulkanDeviceQueue::CreateCommandPool() {
+ return command_pool;
+ }
+
+-} // namespace gpu
+\ No newline at end of file
++} // namespace gpu
+diff --git a/jingle/glue/fake_ssl_client_socket.cc b/jingle/glue/fake_ssl_client_socket.cc
+index 54691d935..c61c6c8a1 100644
+--- a/jingle/glue/fake_ssl_client_socket.cc
++++ b/jingle/glue/fake_ssl_client_socket.cc
+@@ -7,6 +7,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <cstdlib>
++#include <cstring>
+ #include <utility>
+
+ #include "base/bind.h"
+diff --git a/net/base/datagram_buffer.cc b/net/base/datagram_buffer.cc
+index 922d8486e..b7f737405 100644
+--- a/net/base/datagram_buffer.cc
++++ b/net/base/datagram_buffer.cc
+@@ -42,7 +42,7 @@ DatagramBuffer::~DatagramBuffer() {}
+
+ void DatagramBuffer::Set(const char* buffer, size_t buf_len) {
+ length_ = buf_len;
+- std::memcpy(data_.get(), buffer, buf_len);
++ memcpy(data_.get(), buffer, buf_len);
+ }
+
+ char* DatagramBuffer::data() const {
+diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc
+index 3701d15bf..fc144ed63 100644
+--- a/net/reporting/reporting_header_parser.cc
++++ b/net/reporting/reporting_header_parser.cc
+@@ -81,7 +81,7 @@ HeaderEndpointOutcome ProcessEndpoint(
+
+ GURL endpoint_url;
+ // Support path-absolute-URL string
+- if (std::strspn(endpoint_url_string.c_str(), "/") == 1) {
++ if (strspn(endpoint_url_string.c_str(), "/") == 1) {
+ endpoint_url = group_key.origin.GetURL().Resolve(endpoint_url_string);
+ } else {
+ endpoint_url = GURL(endpoint_url_string);
+diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+index fbfdfedff..3b9fd967e 100644
+--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
++++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+@@ -891,7 +891,7 @@ void NGInlineNode::SegmentText(NGInlineNodeData* data) {
+
+ // Segment NGInlineItem by script, Emoji, and orientation using RunSegmenter.
+ void NGInlineNode::SegmentScriptRuns(NGInlineNodeData* data) {
+- DCHECK_EQ(data->segments, nullptr);
++ DCHECK_EQ(data->segments.get(), nullptr);
+
+ String& text_content = data->text_content;
+ if (text_content.IsEmpty()) {
diff --git a/www-client/chromium/files/chromium-blink-include-bitset-84.patch b/www-client/chromium/files/chromium-blink-include-bitset-84.patch
new file mode 100644
index 0000000..95ed89c
--- /dev/null
+++ b/www-client/chromium/files/chromium-blink-include-bitset-84.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/common/input/web_touch_event.cc b/third_party/blink/common/input/web_touch_event.cc
+index 7ef37fec6..b77be3bac 100644
+--- a/third_party/blink/common/input/web_touch_event.cc
++++ b/third_party/blink/common/input/web_touch_event.cc
+@@ -4,6 +4,8 @@
+
+ #include "third_party/blink/public/common/input/web_touch_event.h"
+
++#include <bitset>
++
+ namespace blink {
+
+ namespace {
diff --git a/www-client/chromium/files/chromium-blink-include-limits-84.patch b/www-client/chromium/files/chromium-blink-include-limits-84.patch
new file mode 100644
index 0000000..4c6b972
--- /dev/null
+++ b/www-client/chromium/files/chromium-blink-include-limits-84.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/platform/graphics/compositor_element_id.cc b/third_party/blink/renderer/platform/graphics/compositor_element_id.cc
+index 86486ca89..a92d89cf2 100644
+--- a/third_party/blink/renderer/platform/graphics/compositor_element_id.cc
++++ b/third_party/blink/renderer/platform/graphics/compositor_element_id.cc
+@@ -4,6 +4,8 @@
+
+ #include "third_party/blink/renderer/platform/graphics/compositor_element_id.h"
+
++#include <limits>
++
+ namespace blink {
+
+ UniqueObjectId NewUniqueObjectId() {
diff --git a/www-client/chromium/files/chromium-blink-include-memory-83.patch b/www-client/chromium/files/chromium-blink-include-memory-83.patch
new file mode 100644
index 0000000..b9a6929
--- /dev/null
+++ b/www-client/chromium/files/chromium-blink-include-memory-83.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
+index f5a7ab038..ef19cfaf6 100644
+--- a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
++++ b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
+
++#include <memory>
++
+ #include "base/optional.h"
+ #include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h"
+ #include "third_party/blink/renderer/core/core_export.h"
diff --git a/www-client/chromium/files/chromium-blink-template.patch b/www-client/chromium/files/chromium-blink-template.patch
new file mode 100644
index 0000000..edaf74b
--- /dev/null
+++ b/www-client/chromium/files/chromium-blink-template.patch
@@ -0,0 +1,15 @@
+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 d9fa696c9..028f9f270 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
+@@ -1773,8 +1773,9 @@ void BaseRenderingContext2D::putImageData(ImageData* data,
+ data_length *= context_color_params.BytesPerPixel();
+ if (!data_length.IsValid())
+ return;
++ size_t dl=data_length.ValueOrDie();
+ std::unique_ptr<uint8_t[]> converted_pixels(
+- new uint8_t[data_length.ValueOrDie()]);
++ new uint8_t[dl]);
+ if (data->ImageDataInCanvasColorSettings(
+ ColorParams().ColorSpace(), PixelFormat(), converted_pixels.get(),
+ kRGBAColorType)) {
diff --git a/www-client/chromium/files/chromium-bluetooth-tuple-84.patch b/www-client/chromium/files/chromium-bluetooth-tuple-84.patch
new file mode 100644
index 0000000..b01978c
--- /dev/null
+++ b/www-client/chromium/files/chromium-bluetooth-tuple-84.patch
@@ -0,0 +1,51 @@
+From ded9cf966b7a9b1986bd420866f7cec74e3c2eff Mon Sep 17 00:00:00 2001
+From: David Lechner <david@pybricks.com>
+Date: Tue, 09 Jun 2020 11:15:09 -0500
+Subject: [PATCH] [bluetooth] fix compile error in dbus fake bluetooth device client
+
+This fixes a compile error that was accidentally introduced in
+https://crrev.com/2191232. For unknown reasons this does not cause a
+compile error with libc++, which is normally used with chromium, but
+does cause an error with stdlibc++.
+
+The API for preparing write requests was not changed in
+https://crrev.com/2191232, so the change that introduced this error
+was incorrect anyway. This reverts the change that introduced the
+error and adds the kTypeRequest argument to the call to WriteValue()
+since that was the API that was actually changed in the prior CL.
+
+Bug: 1092470
+Change-Id: I6f6fe90ab42aea3db8cac95b69aee5095ea33b31
+---
+
+diff --git a/device/bluetooth/dbus/fake_bluetooth_device_client.cc b/device/bluetooth/dbus/fake_bluetooth_device_client.cc
+index f7136af..23c5fe3 100644
+--- a/device/bluetooth/dbus/fake_bluetooth_device_client.cc
++++ b/device/bluetooth/dbus/fake_bluetooth_device_client.cc
+@@ -649,10 +649,9 @@
+ for (const auto& prepare_write_request : prepare_write_requests_) {
+ bluez::BluezDBusManager::Get()
+ ->GetBluetoothGattCharacteristicClient()
+- ->WriteValue(std::get<0>(prepare_write_request),
+- std::get<1>(prepare_write_request),
+- std::get<2>(prepare_write_request), base::DoNothing(),
+- base::DoNothing());
++ ->WriteValue(prepare_write_request.first, prepare_write_request.second,
++ bluetooth_gatt_characteristic::kTypeRequest,
++ base::DoNothing(), base::DoNothing());
+ }
+ prepare_write_requests_.clear();
+ std::move(callback).Run();
+diff --git a/device/bluetooth/dbus/fake_bluetooth_device_client.h b/device/bluetooth/dbus/fake_bluetooth_device_client.h
+index b46715b5..98a9676 100644
+--- a/device/bluetooth/dbus/fake_bluetooth_device_client.h
++++ b/device/bluetooth/dbus/fake_bluetooth_device_client.h
+@@ -384,7 +384,7 @@
+ bool delay_start_discovery_;
+
+ // Pending prepare write requests.
+- std::vector<std::tuple<dbus::ObjectPath, std::vector<uint8_t>, std::string>>
++ std::vector<std::pair<dbus::ObjectPath, std::vector<uint8_t>>>
+ prepare_write_requests_;
+
+ bool should_leave_connections_pending_;
diff --git a/www-client/chromium/files/chromium-browser.xml b/www-client/chromium/files/chromium-browser.xml
new file mode 100644
index 0000000..2c95a55
--- /dev/null
+++ b/www-client/chromium/files/chromium-browser.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd">
+<default-apps>
+ <web-browsers>
+ <web-browser>
+ <name>Chromium</name>
+ <executable>chromium-browser</executable>
+ <command>chromium-browser %s</command>
+ <icon-name>chromium-browser</icon-name>
+ <run-in-terminal>false</run-in-terminal>
+ </web-browser>
+ </web-browsers>
+</default-apps>
diff --git a/www-client/chromium/files/chromium-build-gn-83.patch b/www-client/chromium/files/chromium-build-gn-83.patch
new file mode 100644
index 0000000..e70ced6
--- /dev/null
+++ b/www-client/chromium/files/chromium-build-gn-83.patch
@@ -0,0 +1,36 @@
+diff --git a/BUILD.gn b/BUILD.gn
+index 4c1f89045..2bfac42ed 100644
+--- a/BUILD.gn
++++ b/BUILD.gn
+@@ -1375,17 +1375,17 @@ if (closure_compile) {
+ # Because of the source assignment filter, many targets end up over-filtering
+ # their sources if the output directory contains a platform name. Assert that
+ # this doesn't happen. http://crbug.com/548283
+-assert(
+- filter_exclude([ "$root_build_dir/foo" ],
+- # List copied from //build/config/BUILDCONFIG.gn.
+- [
+- "*\bandroid/*",
+- "*\bchromeos/*",
+- "*\bcocoa/*",
+- "*\bios/*",
+- "*\blinux/*",
+- "*\bmac/*",
+- "*\bposix/*",
+- "*\bwin/*",
+- ]) != [],
+- "Do not use a platform name in your output directory (found \"$root_build_dir\"). http://crbug.com/548283")
++#assert(
++# filter_exclude([ "$root_build_dir/foo" ],
++# # List copied from //build/config/BUILDCONFIG.gn.
++# [
++# "*\bandroid/*",
++# "*\bchromeos/*",
++# "*\bcocoa/*",
++# "*\bios/*",
++# "*\blinux/*",
++# "*\bmac/*",
++# "*\bposix/*",
++# "*\bwin/*",
++# ]) != [],
++# "Do not use a platform name in your output directory (found \"$root_build_dir\"). http://crbug.com/548283")
diff --git a/www-client/chromium/files/chromium-cc-matrics-include-84.patch b/www-client/chromium/files/chromium-cc-matrics-include-84.patch
new file mode 100644
index 0000000..b1fa0c7
--- /dev/null
+++ b/www-client/chromium/files/chromium-cc-matrics-include-84.patch
@@ -0,0 +1,12 @@
+diff --git a/cc/metrics/lcd_text_metrics_reporter.h b/cc/metrics/lcd_text_metrics_reporter.h
+index 921131797..b2aede915 100644
+--- a/cc/metrics/lcd_text_metrics_reporter.h
++++ b/cc/metrics/lcd_text_metrics_reporter.h
+@@ -6,6 +6,7 @@
+ #define CC_METRICS_LCD_TEXT_METRICS_REPORTER_H_
+
+ #include <cstdint>
++#include <memory>
+
+ #include "base/time/time.h"
+ #include "cc/cc_export.h"
diff --git a/www-client/chromium/files/chromium-cert-share-encrypted-85.patch b/www-client/chromium/files/chromium-cert-share-encrypted-85.patch
new file mode 100644
index 0000000..1a393c4
--- /dev/null
+++ b/www-client/chromium/files/chromium-cert-share-encrypted-85.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h b/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h
+index 2893bdeef..6732a12a8 100644
+--- a/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h
++++ b/chrome/browser/nearby_sharing/certificates/nearby_share_encrypted_metadata_key.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_ENCRYPTED_METADATA_KEY_H_
+ #define CHROME_BROWSER_NEARBY_SHARING_CERTIFICATES_NEARBY_SHARE_ENCRYPTED_METADATA_KEY_H_
+
++#include <stdint.h>
++
+ #include <vector>
+
+ // Holds the encrypted symmetric key--the key used to encrypt user/device
diff --git a/www-client/chromium/files/chromium-char-max-84.patch b/www-client/chromium/files/chromium-char-max-84.patch
new file mode 100644
index 0000000..0f9c654
--- /dev/null
+++ b/www-client/chromium/files/chromium-char-max-84.patch
@@ -0,0 +1,12 @@
+diff --git a/components/prefs/pref_value_map.cc b/components/prefs/pref_value_map.cc
+index 8a203ac7a..18f160b6e 100644
+--- a/components/prefs/pref_value_map.cc
++++ b/components/prefs/pref_value_map.cc
+@@ -4,6 +4,7 @@
+
+ #include "components/prefs/pref_value_map.h"
+
++#include <climits>
+ #include <map>
+ #include <memory>
+ #include <utility>
diff --git a/www-client/chromium/files/chromium-clang-format-path-82.patch b/www-client/chromium/files/chromium-clang-format-path-82.patch
new file mode 100644
index 0000000..b250479
--- /dev/null
+++ b/www-client/chromium/files/chromium-clang-format-path-82.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+index dc3493cc3..6eeb34a93 100644
+--- a/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
++++ b/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+@@ -36,7 +36,7 @@ def init(root_src_dir):
+
+ # //buildtools/<platform>/clang-format
+ _clang_format_command_path = os.path.join(
+- buildtools_platform_dir, "clang-format{}".format(exe_suffix))
++ "/usr/lib/llvm/10/bin", "clang-format{}".format(exe_suffix))
+
+ # //buildtools/<platform>/gn
+ _gn_command_path = os.path.join(buildtools_platform_dir,
diff --git a/www-client/chromium/files/chromium-compiler-76.patch b/www-client/chromium/files/chromium-compiler-76.patch
new file mode 100644
index 0000000..66f80c0
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-76.patch
@@ -0,0 +1,160 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index f8a862a6b..41b30dd17 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -230,8 +230,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -471,20 +469,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1523,7 +1507,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1532,10 +1516,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1544,15 +1524,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1941,7 +1912,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1975,7 +1947,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1998,7 +1971,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2026,7 +2000,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2073,7 +2048,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2111,7 +2087,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2213,7 +2190,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2323,7 +2301,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2380,7 +2359,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
diff --git a/www-client/chromium/files/chromium-compiler-77.patch b/www-client/chromium/files/chromium-compiler-77.patch
new file mode 100644
index 0000000..c311e47
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-77.patch
@@ -0,0 +1,160 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 72cea8e47..1c59181f8 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -233,8 +233,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -474,20 +472,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1533,7 +1517,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1542,10 +1526,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1554,15 +1534,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1951,7 +1922,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1985,7 +1957,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2008,7 +1981,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2036,7 +2010,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2083,7 +2058,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2121,7 +2097,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2223,7 +2200,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2333,7 +2311,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2388,7 +2367,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
diff --git a/www-client/chromium/files/chromium-compiler-78.patch b/www-client/chromium/files/chromium-compiler-78.patch
new file mode 100644
index 0000000..77a8f60
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-78.patch
@@ -0,0 +1,160 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index bd7245d9a..71d27bcf9 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -248,8 +248,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -489,20 +487,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1538,7 +1522,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1547,10 +1531,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1559,15 +1539,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1968,7 +1939,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1994,7 +1966,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2017,7 +1990,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2045,7 +2019,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2084,7 +2059,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2114,7 +2090,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2216,7 +2193,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2326,7 +2304,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2381,7 +2360,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
diff --git a/www-client/chromium/files/chromium-compiler-82.patch b/www-client/chromium/files/chromium-compiler-82.patch
new file mode 100644
index 0000000..62ca00c
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-82.patch
@@ -0,0 +1,166 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index e40194e3f..b47385c34 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -260,8 +260,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -486,26 +484,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+-
+- if (target_os != "chromeos") {
+- # TODO(https://crbug.com/1049161): Remove '-DCLANG_SPAWN_CC1=ON' from build.py instead
+- # once this change has marinated a bit.
+- cflags += [ "-fintegrated-cc1" ]
+- }
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1577,7 +1555,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1586,10 +1564,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1598,15 +1572,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2010,7 +1975,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -2036,7 +2002,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2059,7 +2026,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2093,7 +2061,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2132,7 +2101,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2162,7 +2132,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2278,7 +2249,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2388,7 +2360,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2443,7 +2416,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
diff --git a/www-client/chromium/files/chromium-compiler-83.patch b/www-client/chromium/files/chromium-compiler-83.patch
new file mode 100644
index 0000000..cb3c343
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-83.patch
@@ -0,0 +1,150 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 6f096b953..0e84f4450 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -261,8 +261,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -485,20 +483,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1545,7 +1529,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1554,10 +1538,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1566,15 +1546,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1973,7 +1944,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags.
+ # /O1 implies /Os and /GF.
+@@ -1994,7 +1966,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2028,7 +2001,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2060,7 +2034,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2085,7 +2060,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2201,7 +2177,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2307,7 +2284,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2364,7 +2342,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-compiler-84-r1.patch b/www-client/chromium/files/chromium-compiler-84-r1.patch
new file mode 100644
index 0000000..2ad6be7
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-84-r1.patch
@@ -0,0 +1,150 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 571d37f9d..fc7905808 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -265,8 +265,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -495,20 +493,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1543,7 +1527,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1552,10 +1536,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1564,15 +1544,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1970,7 +1941,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -1997,7 +1969,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2031,7 +2004,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2063,7 +2037,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2088,7 +2063,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2204,7 +2180,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2310,7 +2287,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2367,7 +2345,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-compiler-84.patch b/www-client/chromium/files/chromium-compiler-84.patch
new file mode 100644
index 0000000..76057d1
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-84.patch
@@ -0,0 +1,150 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 4c5e6779e..9280e746f 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -270,8 +270,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -500,20 +498,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1560,7 +1544,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1569,10 +1553,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1581,15 +1561,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1987,7 +1958,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags.
+ # /O1 implies /Os and /GF.
+@@ -2008,7 +1980,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2042,7 +2015,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2074,7 +2048,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2099,7 +2074,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2215,7 +2191,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2321,7 +2298,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2378,7 +2356,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-compiler-86.patch b/www-client/chromium/files/chromium-compiler-86.patch
new file mode 100644
index 0000000..a740297
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-86.patch
@@ -0,0 +1,162 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 3b3cdd898..ed4baae3f 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -253,8 +253,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -485,17 +483,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1061,14 +1048,6 @@ config("compiler_codegen") {
+ ldflags += [ "-Wl,-mllvm,-enable-machine-outliner=never" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang && !is_chromeos_device) {
+- cflags += [
+- # TODO(thakis): Remove after next clang roll, see reviews.llvm.org/D82998
+- "-mllvm",
+- "-basic-aa-recphi=0",
+- ]
+- }
+-
+ # TODO(thakis): Remove `if (!is_win)` after next clang roll.
+ if (!is_win) {
+ asmflags = cflags
+@@ -1561,7 +1540,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1570,10 +1549,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1582,15 +1557,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1988,7 +1954,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2023,7 +1990,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2063,7 +2031,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2095,7 +2064,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2120,7 +2090,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2237,7 +2208,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2344,7 +2316,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2401,7 +2374,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-compiler-87.patch b/www-client/chromium/files/chromium-compiler-87.patch
new file mode 100644
index 0000000..5668bbb
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-87.patch
@@ -0,0 +1,147 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 16ee9ba..4dd19bd 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -258,8 +258,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -492,17 +490,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
+@@ -1573,7 +1560,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = [ ]
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1582,10 +1569,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1594,15 +1577,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -2000,7 +1974,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2035,7 +2010,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2075,7 +2051,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2107,7 +2084,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2132,7 +2110,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2249,7 +2228,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2360,7 +2340,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2413,7 +2394,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-compiler-r10.patch b/www-client/chromium/files/chromium-compiler-r10.patch
new file mode 100644
index 0000000..f2ecdc3
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r10.patch
@@ -0,0 +1,185 @@
+From a1207cc75454e653030716948d27ec27412f6fe8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 16 Jun 2019 15:43:27 +0100
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 64 +++++++++++++---------------------
+ 1 file changed, 25 insertions(+), 39 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index a3f21b7..0a7bec6 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -230,8 +230,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -471,20 +469,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # C11/C++11 compiler flags setup.
+ # ---------------------------
+ if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
+@@ -1431,6 +1415,12 @@ config("default_warnings") {
+ "-Wno-narrowing",
+ ]
+
++ # -Wno-class-memaccess warns about hash table and vector in blink.
++ # But the violation is intentional.
++ if (!is_nacl) {
++ cflags_cc += [ "-Wno-class-memaccess" ]
++ }
++
+ # -Wunused-local-typedefs is broken in gcc,
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
+ cflags += [ "-Wno-unused-local-typedefs" ]
+@@ -1525,7 +1515,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1534,10 +1524,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1546,15 +1532,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1943,7 +1920,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1977,7 +1955,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2000,7 +1979,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2028,7 +2008,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2075,7 +2056,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2113,7 +2095,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2215,7 +2198,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2325,7 +2309,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2382,7 +2367,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
+--
+2.21.0
+
diff --git a/www-client/chromium/files/chromium-compiler-r4.patch b/www-client/chromium/files/chromium-compiler-r4.patch
new file mode 100644
index 0000000..3fe73ef
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r4.patch
@@ -0,0 +1,168 @@
+From 777d166eec22c1894108dce985498f75ac5931e8 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Apr 2018 13:22:49 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 61 ++++++++++------------------------
+ 1 file changed, 18 insertions(+), 43 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 6e38ad782d38..87bbd423f67f 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -225,8 +225,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ]
+
+@@ -488,18 +486,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
+- target_os != "chromeos") {
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # Print absolute paths in diagnostics. There is no precedent for doing this
+ # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+ # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1473,10 +1459,6 @@ config("default_warnings") {
+ cflags += [
+ # TODO(thakis): https://crbug.com/753973
+ "-Wno-enum-compare-switch",
+-
+- # Ignore warnings about MSVC optimization pragmas.
+- # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
+- "-Wno-ignored-pragma-optimize",
+ ]
+ }
+ }
+@@ -1518,22 +1500,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer &&
+- (!is_linux || !is_clang || is_official_build) &&
+- current_cpu != "s390x" && current_cpu != "s390" &&
+- current_cpu != "ppc64" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # _FORTIFY_SOURCE isn't really supported by Clang now, see
+- # http://llvm.org/bugs/show_bug.cgi?id=16821.
+- # It seems to work fine with Ubuntu 12 headers though, so use it in
+- # official builds.
+- #
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac || is_ios) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1863,7 +1829,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1897,7 +1864,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1920,7 +1888,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -1944,7 +1913,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -1991,7 +1961,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2029,7 +2000,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2115,7 +2087,8 @@ config("afdo") {
+ # configs += [ "//build/config/compiler:symbols" ]
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2213,7 +2186,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2244,7 +2218,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
+--
+2.18.0
+
diff --git a/www-client/chromium/files/chromium-compiler-r6.patch b/www-client/chromium/files/chromium-compiler-r6.patch
new file mode 100644
index 0000000..db8d046
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r6.patch
@@ -0,0 +1,170 @@
+From cec10e55fdb150b33342ad462907fb6202de364e Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Apr 2018 13:22:49 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 63 ++++++++++------------------------
+ 1 file changed, 18 insertions(+), 45 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 0f7a6b48f7b2..c91b702147d4 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -236,8 +236,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ]
+
+@@ -502,17 +500,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # Print absolute paths in diagnostics. There is no precedent for doing this
+ # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+ # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1498,13 +1485,6 @@ config("default_warnings") {
+ cflags += [
+ # TODO(thakis): https://crbug.com/753973
+ "-Wno-enum-compare-switch",
+-
+- # Ignore warnings about MSVC optimization pragmas.
+- # TODO(thakis): Only for no_chromium_code? http://crbug.com/505314
+- "-Wno-ignored-pragma-optimize",
+-
+- # TODO(hans): https://crbug.com/890307
+- "-Wno-defaulted-function-deleted",
+ ]
+ }
+ }
+@@ -1546,22 +1526,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer &&
+- (!is_linux || !is_clang || is_official_build) &&
+- current_cpu != "s390x" && current_cpu != "s390" &&
+- current_cpu != "ppc64" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # _FORTIFY_SOURCE isn't really supported by Clang now, see
+- # http://llvm.org/bugs/show_bug.cgi?id=16821.
+- # It seems to work fine with Ubuntu 12 headers though, so use it in
+- # official builds.
+- #
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1931,7 +1895,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1965,7 +1930,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1988,7 +1954,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2012,7 +1979,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2059,7 +2027,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2097,7 +2066,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2183,7 +2153,8 @@ config("afdo") {
+ # configs += [ "//build/config/compiler:symbols" ]
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2281,7 +2252,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2321,7 +2293,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
+--
+2.19.1
+
diff --git a/www-client/chromium/files/chromium-compiler-r7.patch b/www-client/chromium/files/chromium-compiler-r7.patch
new file mode 100644
index 0000000..dcf40a8
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r7.patch
@@ -0,0 +1,176 @@
+From 6ba946c7116f4f1d0b35fc90716b6e940116b74b Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Wed, 25 Apr 2018 13:22:49 -0400
+Subject: [PATCH] Disable various compiler configs
+
+---
+ build/config/compiler/BUILD.gn | 62 +++++++++++-----------------------
+ 1 file changed, 19 insertions(+), 43 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 677003ac646c..f38bc908622a 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -236,8 +236,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ]
+
+@@ -502,17 +500,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # Print absolute paths in diagnostics. There is no precedent for doing this
+ # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+ # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1512,7 +1499,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1521,10 +1508,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1533,22 +1516,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer &&
+- (!is_linux || !is_clang || is_official_build) &&
+- current_cpu != "s390x" && current_cpu != "s390" &&
+- current_cpu != "ppc64" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # _FORTIFY_SOURCE isn't really supported by Clang now, see
+- # http://llvm.org/bugs/show_bug.cgi?id=16821.
+- # It seems to work fine with Ubuntu 12 headers though, so use it in
+- # official builds.
+- #
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1925,7 +1892,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1959,7 +1927,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1982,7 +1951,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2006,7 +1976,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2053,7 +2024,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2091,7 +2063,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2193,7 +2166,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2294,7 +2268,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2337,7 +2312,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
+--
+2.19.1
+
diff --git a/www-client/chromium/files/chromium-compiler-r8.patch b/www-client/chromium/files/chromium-compiler-r8.patch
new file mode 100644
index 0000000..117d1e6
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r8.patch
@@ -0,0 +1,164 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 2f01fbbf4..8b487ad77 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -236,8 +236,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ]
+
+@@ -501,17 +499,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # Print absolute paths in diagnostics. There is no precedent for doing this
+ # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+ # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1516,7 +1503,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1525,10 +1512,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1537,22 +1520,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer &&
+- (!is_linux || !is_clang || is_official_build) &&
+- current_cpu != "s390x" && current_cpu != "s390" &&
+- current_cpu != "ppc64" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # _FORTIFY_SOURCE isn't really supported by Clang now, see
+- # http://llvm.org/bugs/show_bug.cgi?id=16821.
+- # It seems to work fine with Ubuntu 12 headers though, so use it in
+- # official builds.
+- #
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1922,7 +1889,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1956,7 +1924,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -1979,7 +1948,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2007,7 +1977,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2054,7 +2025,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2092,7 +2064,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2194,7 +2167,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2304,7 +2278,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2356,7 +2331,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
diff --git a/www-client/chromium/files/chromium-compiler-r9.patch b/www-client/chromium/files/chromium-compiler-r9.patch
new file mode 100644
index 0000000..43cd93e
--- /dev/null
+++ b/www-client/chromium/files/chromium-compiler-r9.patch
@@ -0,0 +1,160 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 7db66418e..ce3ba300a 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -230,8 +230,6 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -479,20 +477,6 @@ config("compiler") {
+ }
+ }
+
+- if (is_clang && !is_nacl && !use_xcode_clang) {
+- cflags += [ "-fcrash-diagnostics-dir=" +
+- rebase_path("//tools/clang/crashreports", root_build_dir) ]
+-
+- cflags += [
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- "-Xclang",
+- "-mllvm",
+- "-Xclang",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- }
+-
+ # Print absolute paths in diagnostics. There is no precedent for doing this
+ # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
+ # Windows developers rely on it (crbug.com/636109) so only do this on Windows.
+@@ -1533,7 +1517,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1542,10 +1526,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1554,15 +1534,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1951,7 +1922,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ # TODO(thakis): Remove is_clang here, https://crbug.com/598772
+ if (is_official_build && full_wpo_on_official && !is_clang) {
+@@ -1985,7 +1957,8 @@ config("optimize") {
+ }
+
+ # Same config as 'optimize' but without the WPO flag.
+-config("optimize_no_wpo") {
++config("optimize_no_wpo") { }
++config("xoptimize_no_wpo") {
+ if (is_win) {
+ # Favor size over speed, /O1 must be before the common flags. The GYP
+ # build also specifies /Os and /GF but these are implied by /O1.
+@@ -2008,7 +1981,8 @@ config("optimize_no_wpo") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2036,7 +2010,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2083,7 +2058,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2121,7 +2097,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ ldflags = common_optimize_on_ldflags
+ visibility = [ ":default_optimization" ]
+@@ -2223,7 +2200,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (use_goma || is_clang) {
+ # Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
+@@ -2328,7 +2306,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Linker symbols for backtraces only.
+ cflags = []
+@@ -2380,7 +2359,8 @@ config("minimal_symbols") {
+ }
+
+ # No symbols.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (!is_win) {
+ cflags = [ "-g0" ]
+ asmflags = cflags
diff --git a/www-client/chromium/files/chromium-core-management-svc-84.patch b/www-client/chromium/files/chromium-core-management-svc-84.patch
new file mode 100644
index 0000000..89a5f1b
--- /dev/null
+++ b/www-client/chromium/files/chromium-core-management-svc-84.patch
@@ -0,0 +1,12 @@
+diff --git a/components/policy/core/common/management/management_service.h b/components/policy/core/common/management/management_service.h
+index cf71a2379..f845bff5c 100644
+--- a/components/policy/core/common/management/management_service.h
++++ b/components/policy/core/common/management/management_service.h
+@@ -7,6 +7,7 @@
+
+ #include "base/containers/flat_set.h"
+ #include "components/policy/policy_export.h"
++#include <memory>
+
+ namespace policy {
+
diff --git a/www-client/chromium/files/chromium-crx-install-err-include-83.patch b/www-client/chromium/files/chromium-crx-install-err-include-83.patch
new file mode 100644
index 0000000..fc42771
--- /dev/null
+++ b/www-client/chromium/files/chromium-crx-install-err-include-83.patch
@@ -0,0 +1,13 @@
+diff --git a/extensions/browser/install/crx_install_error.cc b/extensions/browser/install/crx_install_error.cc
+index a9765bb0a..ab5870069 100644
+--- a/extensions/browser/install/crx_install_error.cc
++++ b/extensions/browser/install/crx_install_error.cc
+@@ -7,6 +7,8 @@
+ #include "base/logging.h"
+ #include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"
+
++#include <algorithm>
++
+ namespace extensions {
+
+ CrxInstallError::CrxInstallError(CrxInstallErrorType type,
diff --git a/www-client/chromium/files/chromium-cursor-80.patch b/www-client/chromium/files/chromium-cursor-80.patch
new file mode 100644
index 0000000..4907452
--- /dev/null
+++ b/www-client/chromium/files/chromium-cursor-80.patch
@@ -0,0 +1,99 @@
+diff --git a/chrome/browser/ui/libgtkui/gtk_ui.cc b/chrome/browser/ui/libgtkui/gtk_ui.cc
+index 1aea19a..cf38ee7 100644
+--- a/chrome/browser/ui/libgtkui/gtk_ui.cc
++++ b/chrome/browser/ui/libgtkui/gtk_ui.cc
+@@ -845,6 +845,8 @@
+ void GtkUi::OnCursorThemeNameChanged(GtkSettings* settings,
+ GtkParamSpec* param) {
+ std::string cursor_theme_name = GetCursorThemeName();
++ if (cursor_theme_name.empty())
++ return;
+ for (auto& observer : cursor_theme_observers())
+ observer.OnCursorThemeNameChanged(cursor_theme_name);
+ }
+@@ -852,6 +854,8 @@
+ void GtkUi::OnCursorThemeSizeChanged(GtkSettings* settings,
+ GtkParamSpec* param) {
+ int cursor_theme_size = GetCursorThemeSize();
++ if (!cursor_theme_size)
++ return;
+ for (auto& observer : cursor_theme_observers())
+ observer.OnCursorThemeSizeChanged(cursor_theme_size);
+ }
+diff --git a/ui/base/cursor/cursor_loader_x11.cc b/ui/base/cursor/cursor_loader_x11.cc
+index efc6351..52ab54a 100644
+--- a/ui/base/cursor/cursor_loader_x11.cc
++++ b/ui/base/cursor/cursor_loader_x11.cc
+@@ -83,11 +83,8 @@
+ : display_(gfx::GetXDisplay()),
+ invisible_cursor_(CreateInvisibleCursor(), gfx::GetXDisplay()) {
+ auto* cursor_theme_manager = CursorThemeManagerLinux::GetInstance();
+- if (cursor_theme_manager) {
++ if (cursor_theme_manager)
+ cursor_theme_observer_.Add(cursor_theme_manager);
+- OnCursorThemeNameChanged(cursor_theme_manager->GetCursorThemeName());
+- OnCursorThemeSizeChanged(cursor_theme_manager->GetCursorThemeSize());
+- }
+ }
+
+ CursorLoaderX11::~CursorLoaderX11() {
+diff --git a/ui/base/cursor/cursor_theme_manager_linux.cc b/ui/base/cursor/cursor_theme_manager_linux.cc
+index fe8a97f..f825b74 100644
+--- a/ui/base/cursor/cursor_theme_manager_linux.cc
++++ b/ui/base/cursor/cursor_theme_manager_linux.cc
+@@ -26,6 +26,12 @@
+ void CursorThemeManagerLinux::AddObserver(
+ CursorThemeManagerLinuxObserver* observer) {
+ cursor_theme_observers_.AddObserver(observer);
++ std::string name = GetCursorThemeName();
++ if (!name.empty())
++ observer->OnCursorThemeNameChanged(name);
++ int size = GetCursorThemeSize();
++ if (size)
++ observer->OnCursorThemeSizeChanged(size);
+ }
+
+ void CursorThemeManagerLinux::RemoveObserver(
+diff --git a/ui/base/cursor/cursor_theme_manager_linux.h b/ui/base/cursor/cursor_theme_manager_linux.h
+index 5304867..464d397 100644
+--- a/ui/base/cursor/cursor_theme_manager_linux.h
++++ b/ui/base/cursor/cursor_theme_manager_linux.h
+@@ -22,9 +22,10 @@
+
+ static CursorThemeManagerLinux* GetInstance();
+
+- virtual std::string GetCursorThemeName() = 0;
+- virtual int GetCursorThemeSize() = 0;
++ // Adds |observer| and makes initial OnCursorThemNameChanged() and/or
++ // OnCursorThemeSizeChanged() calls if the respective settings were set.
+ void AddObserver(CursorThemeManagerLinuxObserver* observer);
++
+ void RemoveObserver(CursorThemeManagerLinuxObserver* observer);
+
+ protected:
+@@ -35,6 +36,9 @@
+ return cursor_theme_observers_;
+ }
+
++ virtual std::string GetCursorThemeName() = 0;
++ virtual int GetCursorThemeSize() = 0;
++
+ private:
+ static CursorThemeManagerLinux* instance_;
+
+diff --git a/ui/base/cursor/cursor_theme_manager_linux_observer.h b/ui/base/cursor/cursor_theme_manager_linux_observer.h
+index 3d0c822..73a3b42 100644
+--- a/ui/base/cursor/cursor_theme_manager_linux_observer.h
++++ b/ui/base/cursor/cursor_theme_manager_linux_observer.h
+@@ -15,8 +15,11 @@
+ class UI_BASE_EXPORT CursorThemeManagerLinuxObserver
+ : public base::CheckedObserver {
+ public:
++ // |cursor_theme_name| will be nonempty.
+ virtual void OnCursorThemeNameChanged(
+ const std::string& cursor_theme_name) = 0;
++
++ // |cursor_theme_size| will be nonzero.
+ virtual void OnCursorThemeSizeChanged(int cursor_theme_size) = 0;
+
+ protected:
diff --git a/www-client/chromium/files/chromium-deque-constructor-82.patch b/www-client/chromium/files/chromium-deque-constructor-82.patch
new file mode 100644
index 0000000..5c9d237
--- /dev/null
+++ b/www-client/chromium/files/chromium-deque-constructor-82.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/platform/wtf/deque.h b/third_party/blink/renderer/platform/wtf/deque.h
+index 29cce7c57..07233c4 100644
+--- a/third_party/blink/renderer/platform/wtf/deque.h
++++ b/third_party/blink/renderer/platform/wtf/deque.h
+
+@@ -236,6 +236,7 @@
+ typedef T& reference;
+ typedef std::bidirectional_iterator_tag iterator_category;
+
++ DequeIterator() = default;
+ DequeIterator(Deque<T, inlineCapacity, Allocator>* deque, wtf_size_t index)
+ : Base(deque, index) {}
+
diff --git a/www-client/chromium/files/chromium-disable-mojovdec.patch b/www-client/chromium/files/chromium-disable-mojovdec.patch
new file mode 100644
index 0000000..e694ad2
--- /dev/null
+++ b/www-client/chromium/files/chromium-disable-mojovdec.patch
@@ -0,0 +1,18 @@
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 477caecdb..e152cbddd 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -245,7 +245,12 @@ const base::Feature kMemoryPressureBasedSourceBufferGC{
+
+ // Enable MojoVideoDecoder, replacing GpuVideoDecoder.
+ const base::Feature kMojoVideoDecoder{"MojoVideoDecoder",
+- base::FEATURE_ENABLED_BY_DEFAULT};
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
++ base::FEATURE_DISABLED_BY_DEFAULT
++#else
++ base::FEATURE_ENABLED_BY_DEFAULT
++#endif
++};
+
+ // Enable The D3D11 Video decoder. Must also enable MojoVideoDecoder for
+ // this to have any effect.
diff --git a/www-client/chromium/files/chromium-ext-no-vector-const-84.patch b/www-client/chromium/files/chromium-ext-no-vector-const-84.patch
new file mode 100644
index 0000000..7a02aba
--- /dev/null
+++ b/www-client/chromium/files/chromium-ext-no-vector-const-84.patch
@@ -0,0 +1,40 @@
+diff --git a/extensions/common/features/feature_flags.cc b/extensions/common/features/feature_flags.cc
+index 5b63764e4..7efa308db 100644
+--- a/extensions/common/features/feature_flags.cc
++++ b/extensions/common/features/feature_flags.cc
+@@ -19,7 +19,7 @@ namespace {
+ constexpr base::Feature kFeatureFlags[] = {
+ {"DeclarativeNetRequest", base::FEATURE_ENABLED_BY_DEFAULT}};
+
+-const std::vector<const base::Feature>* g_feature_flags_test_override = nullptr;
++const std::vector<base::Feature>* g_feature_flags_test_override = nullptr;
+
+ template <typename T>
+ const base::Feature* GetFeature(T begin,
+@@ -52,8 +52,8 @@ bool IsFeatureFlagEnabled(const std::string& feature_flag) {
+ }
+
+ ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting(
+- const std::vector<const base::Feature>* features) {
+- return base::AutoReset<const std::vector<const base::Feature>*>(
++ const std::vector<base::Feature>* features) {
++ return base::AutoReset<const std::vector<base::Feature>*>(
+ &g_feature_flags_test_override, features);
+ }
+
+diff --git a/extensions/common/features/feature_flags.h b/extensions/common/features/feature_flags.h
+index d1a5dd372..b57740b25 100644
+--- a/extensions/common/features/feature_flags.h
++++ b/extensions/common/features/feature_flags.h
+@@ -25,9 +25,9 @@ bool IsFeatureFlagEnabled(const std::string& feature_flag);
+ // in scope. Clients must ensure that |features| remains alive (non-dangling)
+ // while the returned value is in scope.
+ using ScopedFeatureFlagsOverride =
+- base::AutoReset<const std::vector<const base::Feature>*>;
++ base::AutoReset<const std::vector<base::Feature>*>;
+ ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting(
+- const std::vector<const base::Feature>* features);
++ const std::vector<base::Feature>* features);
+
+ } // namespace extensions
+
diff --git a/www-client/chromium/files/chromium-fix-char_traits.patch b/www-client/chromium/files/chromium-fix-char_traits.patch
new file mode 100644
index 0000000..4cb9503
--- /dev/null
+++ b/www-client/chromium/files/chromium-fix-char_traits.patch
@@ -0,0 +1,14 @@
+--- a/base/strings/char_traits.h
++++ b/base/strings/char_traits.h
+@@ -67,9 +67,9 @@
+ return __builtin_memcmp(s1, s2, n);
+ #else
+ for (; n; --n, ++s1, ++s2) {
+- if (*s1 < *s2)
++ if ((unsigned char)*s1 < (unsigned char)*s2)
+ return -1;
+- if (*s1 > *s2)
++ if ((unsigned char)*s1 > (unsigned char)*s2)
+ return 1;
+ }
+ return 0;
diff --git a/www-client/chromium/files/chromium-gamepad-include-84.patch b/www-client/chromium/files/chromium-gamepad-include-84.patch
new file mode 100644
index 0000000..36eb40c
--- /dev/null
+++ b/www-client/chromium/files/chromium-gamepad-include-84.patch
@@ -0,0 +1,12 @@
+diff --git a/device/gamepad/public/cpp/gamepad.h b/device/gamepad/public/cpp/gamepad.h
+index 67e793a23..c2ead1bd3 100644
+--- a/device/gamepad/public/cpp/gamepad.h
++++ b/device/gamepad/public/cpp/gamepad.h
+@@ -7,6 +7,7 @@
+
+ #include <stddef.h>
+ #include <cstdint>
++#include <limits>
+
+ #include "base/component_export.h"
+ #include "base/strings/string16.h"
diff --git a/www-client/chromium/files/chromium-gcc-89311.patch b/www-client/chromium/files/chromium-gcc-89311.patch
new file mode 100644
index 0000000..40a0e73
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc-89311.patch
@@ -0,0 +1,88 @@
+diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc
+index 3f0985d..57d16ab 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 3661b5b..9018efa 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.cc b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
+index 7419243..441929a 100644
+--- a/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
++++ b/chrome/browser/ui/views/toolbar/extension_toolbar_menu_view.cc
+@@ -9,7 +9,6 @@
+ #include "base/single_thread_task_runner.h"
+ #include "base/threading/thread_task_runner_handle.h"
+ #include "base/time/time.h"
+-#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h"
+ #include "chrome/browser/ui/views/frame/app_menu_button.h"
+ #include "chrome/browser/ui/views/frame/browser_view.h"
+ #include "chrome/browser/ui/views/toolbar/app_menu.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 2a3ea8e..ac44a4f 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/frame/app_menu_button_observer.h"
+ #include "ui/views/controls/scroll_view.h"
+@@ -16,7 +17,6 @@
+ class AppMenuButton;
+ class Browser;
+ class BrowserActionsContainer;
+-class ToolbarActionsBar;
+
+ namespace views {
+ class MenuItemView;
+diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
+index 342723e..acdc4b7 100644
+--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
++++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.cc
+@@ -10,7 +10,6 @@
+ #include "chrome/common/chrome_features.h"
+ #include "chrome/common/extensions/api/url_handlers/url_handlers_parser.h"
+ #include "content/public/browser/web_contents.h"
+-#include "extensions/browser/extension_registry.h"
+ #include "extensions/common/extension.h"
+ #include "url/gurl.h"
+
+diff --git a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
+index 895e204..11dfdef 100644
+--- a/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
++++ b/chrome/browser/web_applications/extensions/bookmark_app_tab_helper.h
+@@ -8,6 +8,7 @@
+ #include "base/macros.h"
+ #include "base/scoped_observer.h"
+ #include "chrome/browser/web_applications/components/web_app_tab_helper_base.h"
++#include "extensions/browser/extension_registry.h"
+ #include "extensions/browser/extension_registry_observer.h"
+
+ namespace content {
+@@ -17,7 +18,6 @@
+ namespace extensions {
+
+ class Extension;
+-class ExtensionRegistry;
+
+ // Allows to associate a tab with bookmark app.
+ class BookmarkAppTabHelper : public web_app::WebAppTabHelperBase,
diff --git a/www-client/chromium/files/chromium-gcc-initlist.patch b/www-client/chromium/files/chromium-gcc-initlist.patch
new file mode 100644
index 0000000..8658264
--- /dev/null
+++ b/www-client/chromium/files/chromium-gcc-initlist.patch
@@ -0,0 +1,16 @@
+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 5e6962d1e..2456c80dd 100644
+--- a/net/third_party/quic/platform/impl/quic_flags_impl.cc
++++ b/net/third_party/quic/platform/impl/quic_flags_impl.cc
+@@ -153,9 +153,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;
diff --git a/www-client/chromium/files/chromium-gpu-vp9-include-84.patch b/www-client/chromium/files/chromium-gpu-vp9-include-84.patch
new file mode 100644
index 0000000..ca95b4a
--- /dev/null
+++ b/www-client/chromium/files/chromium-gpu-vp9-include-84.patch
@@ -0,0 +1,13 @@
+diff --git a/media/gpu/vp9_reference_frame_vector.cc b/media/gpu/vp9_reference_frame_vector.cc
+index dc279980e..d560c7295 100644
+--- a/media/gpu/vp9_reference_frame_vector.cc
++++ b/media/gpu/vp9_reference_frame_vector.cc
+@@ -6,6 +6,8 @@
+
+ #include "media/gpu/vp9_picture.h"
+
++#include <bitset>
++
+ namespace media {
+
+ Vp9ReferenceFrameVector::Vp9ReferenceFrameVector() {
diff --git a/www-client/chromium/files/chromium-harfbuzz-r0.patch b/www-client/chromium/files/chromium-harfbuzz-r0.patch
new file mode 100644
index 0000000..2d5602d
--- /dev/null
+++ b/www-client/chromium/files/chromium-harfbuzz-r0.patch
@@ -0,0 +1,80 @@
+From 7ae38170a117e909bb28e1470842b68de3501197 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppymaster@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/www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch b/www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch
new file mode 100644
index 0000000..777934c
--- /dev/null
+++ b/www-client/chromium/files/chromium-hashtable-iterator-cat-83.patch
@@ -0,0 +1,65 @@
+diff --git a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+index bbf10ef31..e5b627780 100644
+--- a/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
++++ b/third_party/blink/renderer/bindings/core/v8/serialization/serialized_script_value.h
+@@ -268,12 +268,14 @@ class CORE_EXPORT SerializedScriptValue
+ MessagePortChannelArray& GetStreamChannels() { return stream_channels_; }
+
+ bool IsLockedToAgentCluster() const {
+- return !wasm_modules_.IsEmpty() ||
+- !shared_array_buffers_contents_.IsEmpty() ||
+- std::any_of(attachments_.begin(), attachments_.end(),
+- [](const auto& entry) {
+- return entry.value->IsLockedToAgentCluster();
+- });
++ bool ret = !wasm_modules_.IsEmpty() ||
++ !shared_array_buffers_contents_.IsEmpty();
++ if (ret) return true;
++ for (const auto& entry : attachments_) {
++ if (entry.value->IsLockedToAgentCluster())
++ return true;
++ };
++ return false;
+ }
+
+ // Returns true after serializing script values that remote origins cannot
+diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
+index 1d195f121..1e65c08d8 100644
+--- a/third_party/blink/renderer/platform/wtf/hash_table.h
++++ b/third_party/blink/renderer/platform/wtf/hash_table.h
+@@ -272,7 +272,11 @@ class HashTableConstIterator final {
+ Allocator>
+ const_iterator;
+ typedef Value ValueType;
++ using iterator_category = std::bidirectional_iterator_tag;
+ using value_type = ValueType;
++ using reference = value_type&;
++ using pointer = value_type*;
++ using difference_type = ptrdiff_t;
+ typedef typename Traits::IteratorConstGetType GetType;
+ typedef const ValueType* PointerType;
+
+@@ -540,6 +544,11 @@ class HashTableIterator final {
+ std::ostream& PrintTo(std::ostream& stream) const {
+ return iterator_.PrintTo(stream);
+ }
++ using iterator_category = std::bidirectional_iterator_tag;
++ using value_type = ValueType;
++ using reference = value_type&;
++ using pointer = value_type*;
++ using difference_type = ptrdiff_t;
+
+ private:
+ const_iterator iterator_;
+@@ -2230,6 +2239,11 @@ struct HashTableConstIteratorAdapter {
+ }
+ // postfix -- intentionally omitted
+ typename HashTableType::const_iterator impl_;
++ using iterator_category = std::bidirectional_iterator_tag;
++ using value_type = GetType*;
++ using reference = value_type&;
++ using pointer = value_type*;
++ using difference_type = ptrdiff_t;
+ };
+
+ template <typename HashTable, typename Traits>
diff --git a/www-client/chromium/files/chromium-include-limits-83.patch b/www-client/chromium/files/chromium-include-limits-83.patch
new file mode 100644
index 0000000..840a212
--- /dev/null
+++ b/www-client/chromium/files/chromium-include-limits-83.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
+index 6ab117bc4..43aa602f2 100644
+--- a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
++++ b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <limits>
++
+ #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h"
+ #include "base/logging.h"
+
diff --git a/www-client/chromium/files/chromium-include-limits-84.patch b/www-client/chromium/files/chromium-include-limits-84.patch
new file mode 100644
index 0000000..d73b36d
--- /dev/null
+++ b/www-client/chromium/files/chromium-include-limits-84.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
+index 4881c010b..4d5d7a4fb 100644
+--- a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
++++ b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
+@@ -4,6 +4,7 @@
+
+ #include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h"
+
++#include <limits>
+ #include <math.h>
+
+ #include "base/logging.h"
diff --git a/www-client/chromium/files/chromium-inline-node-ptr-84.patch b/www-client/chromium/files/chromium-inline-node-ptr-84.patch
new file mode 100644
index 0000000..58ded53
--- /dev/null
+++ b/www-client/chromium/files/chromium-inline-node-ptr-84.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+index 55ca9e3f7..ee691dfaf 100644
+--- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
++++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
+@@ -891,7 +891,7 @@ void NGInlineNode::SegmentText(NGInlineNodeData* data) {
+
+ // Segment NGInlineItem by script, Emoji, and orientation using RunSegmenter.
+ void NGInlineNode::SegmentScriptRuns(NGInlineNodeData* data) {
+- DCHECK_EQ(data->segments, nullptr);
++ DCHECK_EQ(data->segments.get(), nullptr);
+
+ String& text_content = data->text_content;
+ if (text_content.IsEmpty()) {
diff --git a/www-client/chromium/files/chromium-launcher-r3.sh b/www-client/chromium/files/chromium-launcher-r3.sh
new file mode 100644
index 0000000..a4fc1a9
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r3.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# Allow the user to override command-line flags, bug #357629.
+# This is based on Debian's chromium-browser package, and is intended
+# to be consistent with Debian.
+for f in /etc/chromium/*; do
+ [[ -f ${f} ]] && source "${f}"
+done
+
+# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
+# default CHROMIUM_FLAGS (from /etc/chromium/default).
+CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
+
+# Let the wrapped binary know that it has been run through the wrapper
+export CHROME_WRAPPER=$(readlink -f "$0")
+
+PROGDIR=${CHROME_WRAPPER%/*}
+
+case ":$PATH:" in
+ *:$PROGDIR:*)
+ # $PATH already contains $PROGDIR
+ ;;
+ *)
+ # Append $PROGDIR to $PATH
+ export PATH="$PATH:$PROGDIR"
+ ;;
+esac
+
+if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
+ # Running as root with HOME owned by root.
+ # Pass --user-data-dir to work around upstream failsafe.
+ CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
+ ${CHROMIUM_FLAGS}"
+fi
+
+# Set the .desktop file name
+export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+
+exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"
diff --git a/www-client/chromium/files/chromium-launcher-r6.sh b/www-client/chromium/files/chromium-launcher-r6.sh
new file mode 100644
index 0000000..637cfd6
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r6.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# Allow the user to override command-line flags, bug #357629.
+# This is based on Debian's chromium-browser package, and is intended
+# to be consistent with Debian.
+for f in /etc/chromium/*; do
+ [[ -f ${f} ]] && source "${f}"
+done
+
+# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
+# default CHROMIUM_FLAGS (from /etc/chromium/default).
+CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
+
+# Let the wrapped binary know that it has been run through the wrapper
+export CHROME_WRAPPER=$(readlink -f "$0")
+
+PROGDIR=${CHROME_WRAPPER%/*}
+
+case ":$PATH:" in
+ *:$PROGDIR:*)
+ # $PATH already contains $PROGDIR
+ ;;
+ *)
+ # Append $PROGDIR to $PATH
+ export PATH="$PATH:$PROGDIR"
+ ;;
+esac
+
+if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
+ # Running as root with HOME owned by root.
+ # Pass --user-data-dir to work around upstream failsafe.
+ CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
+ ${CHROMIUM_FLAGS}"
+fi
+
+# Select session type and platform
+if @@FORCE_OZONE_PLATFORM@@; then
+ CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
+elif @@OZONE_AUTO_SESSION@@ && ! ${DISABLE_OZONE_PLATFORM:-false}; then
+ if [[ ${XDG_SESSION_TYPE} == wayland || -n ${WAYLAND_DISPLAY} && ${XDG_SESSION_TYPE} != x11 ]]; then
+ CHROMIUM_FLAGS="--enable-features=UseOzonePlatform ${CHROMIUM_FLAGS}"
+ fi
+fi
+
+# Set the .desktop file name
+export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+
+exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"
diff --git a/www-client/chromium/files/chromium-launcher-r7.sh b/www-client/chromium/files/chromium-launcher-r7.sh
new file mode 100644
index 0000000..1163ff3
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r7.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# Allow the user to override command-line flags, bug #357629.
+# This is based on Debian's chromium-browser package, and is intended
+# to be consistent with Debian.
+for f in /etc/chromium/*; do
+ [[ -f ${f} ]] && source "${f}"
+done
+
+# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
+# default CHROMIUM_FLAGS (from /etc/chromium/default).
+CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
+
+# Let the wrapped binary know that it has been run through the wrapper
+export CHROME_WRAPPER=$(readlink -f "$0")
+
+PROGDIR=${CHROME_WRAPPER%/*}
+
+case ":$PATH:" in
+ *:$PROGDIR:*)
+ # $PATH already contains $PROGDIR
+ ;;
+ *)
+ # Append $PROGDIR to $PATH
+ export PATH="$PATH:$PROGDIR"
+ ;;
+esac
+
+if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
+ # Running as root with HOME owned by root.
+ # Pass --user-data-dir to work around upstream failsafe.
+ CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
+ ${CHROMIUM_FLAGS}"
+fi
+
+# Select session type and platform
+if @@OZONE_AUTO_SESSION@@; then
+ platform=
+ if [[ ${XDG_SESSION_TYPE} == x11 ]]; then
+ platform=x11
+ elif [[ ${XDG_SESSION_TYPE} == wayland ]]; then
+ platform=wayland
+ else
+ if [[ -n ${WAYLAND_DISPLAY} ]]; then
+ platform=wayland
+ else
+ platform=x11
+ fi
+ fi
+ if ${DISABLE_OZONE_PLATFORM:-false}; then
+ platform=x11
+ fi
+ CHROMIUM_FLAGS="--ozone-platform=${platform} ${CHROMIUM_FLAGS}"
+fi
+
+# Set the .desktop file name
+export CHROME_DESKTOP="chromium-browser-chromium.desktop"
+
+exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"
diff --git a/www-client/chromium/files/chromium-layer_tree_impl-stlcompat.patch b/www-client/chromium/files/chromium-layer_tree_impl-stlcompat.patch
new file mode 100644
index 0000000..8fd9ff1
--- /dev/null
+++ b/www-client/chromium/files/chromium-layer_tree_impl-stlcompat.patch
@@ -0,0 +1,13 @@
+diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h
+index f74d18f65..7cdc29e44 100644
+--- a/cc/trees/layer_tree_impl.h
++++ b/cc/trees/layer_tree_impl.h
+@@ -194,7 +194,7 @@ class CC_EXPORT LayerTreeImpl {
+ // Adapts an iterator of std::unique_ptr<LayerImpl> to an iterator of
+ // LayerImpl*.
+ template <typename Iterator>
+- class IteratorAdapter {
++ class IteratorAdapter : public std::iterator<std::forward_iterator_tag, LayerImpl*> {
+ public:
+ explicit IteratorAdapter(Iterator it) : it_(it) {}
+ bool operator==(IteratorAdapter o) const { return it_ == o.it_; }
diff --git a/www-client/chromium/files/chromium-link.patch b/www-client/chromium/files/chromium-link.patch
new file mode 100644
index 0000000..d39bba0
--- /dev/null
+++ b/www-client/chromium/files/chromium-link.patch
@@ -0,0 +1,17 @@
+diff --git a/device/bluetooth/bluetooth_device.cc b/device/bluetooth/bluetooth_device.cc
+index dc280146a..cdc2944f4 100644
+--- a/device/bluetooth/bluetooth_device.cc
++++ b/device/bluetooth/bluetooth_device.cc
+@@ -513,9 +513,9 @@ void BluetoothDevice::RemoveGattConnection(
+ }
+
+ void BluetoothDevice::SetAsExpiredForTesting() {
+- last_update_time_ =
+- base::Time::NowFromSystemTime() -
+- (BluetoothAdapter::timeoutSec + base::TimeDelta::FromSeconds(1));
++ //last_update_time_ =
++ // base::Time::NowFromSystemTime() -
++ // (BluetoothAdapter::timeoutSec + base::TimeDelta::FromSeconds(1));
+ }
+
+ void BluetoothDevice::Pair(PairingDelegate* pairing_delegate,
diff --git a/www-client/chromium/files/chromium-math.h-r0.patch b/www-client/chromium/files/chromium-math.h-r0.patch
new file mode 100644
index 0000000..6c7c747
--- /dev/null
+++ b/www-client/chromium/files/chromium-math.h-r0.patch
@@ -0,0 +1,29 @@
+From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Sat, 27 Jan 2018 20:03:37 +0000
+Subject: [PATCH] Fix build with glibc 2.27
+
+BUG=806340
+TBR=hamelphi@chromium.org
+
+Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e
+Reviewed-on: https://chromium-review.googlesource.com/890059
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Philippe Hamel <hamelphi@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@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/www-client/chromium/files/chromium-media-alloc-84.patch b/www-client/chromium/files/chromium-media-alloc-84.patch
new file mode 100644
index 0000000..cc9ca5d
--- /dev/null
+++ b/www-client/chromium/files/chromium-media-alloc-84.patch
@@ -0,0 +1,22 @@
+diff --git a/media/base/media.cc b/media/base/media.cc
+index c282ee49a..3feece8a2 100644
+--- a/media/base/media.cc
++++ b/media/base/media.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <limits>
++
+ #include "media/base/media.h"
+
+ #include "base/allocator/buildflags.h"
+@@ -41,7 +43,7 @@ class MediaInitializer {
+
+ #if BUILDFLAG(USE_ALLOCATOR_SHIM)
+ // Remove allocation limit from ffmpeg, so calls go down to shim layer.
+- av_max_alloc(0);
++ av_max_alloc(std::numeric_limits<size_t>::max());
+ #endif // BUILDFLAG(USE_ALLOCATOR_SHIM)
+
+ #endif // BUILDFLAG(ENABLE_FFMPEG)
diff --git a/www-client/chromium/files/chromium-memcpy-r0.patch b/www-client/chromium/files/chromium-memcpy-r0.patch
new file mode 100644
index 0000000..dd2fd57
--- /dev/null
+++ b/www-client/chromium/files/chromium-memcpy-r0.patch
@@ -0,0 +1,35 @@
+From 4942f56ceb6d60d6f54ebca8e6eba8ba01c278e8 Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela@gmail.com>
+Date: Thu, 7 Dec 2017 22:33:34 +0000
+Subject: [PATCH] memcpy used without including string.h
+
+Compiling Chromium with Clang 4.0.1 and using libstdc++ will fail on using
+memcpy without including string.h.
+
+Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
+Change-Id: Idced1d5de3baf6b520d4a2d61774120642ead1a8
+Reviewed-on: https://chromium-review.googlesource.com/813737
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: vmpstr <vmpstr@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#522579}
+---
+ cc/paint/raw_memory_transfer_cache_entry.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/cc/paint/raw_memory_transfer_cache_entry.cc b/cc/paint/raw_memory_transfer_cache_entry.cc
+index 9e4660c685ee..95ad50b1a338 100644
+--- a/cc/paint/raw_memory_transfer_cache_entry.cc
++++ b/cc/paint/raw_memory_transfer_cache_entry.cc
+@@ -4,6 +4,8 @@
+
+ #include "cc/paint/raw_memory_transfer_cache_entry.h"
+
++#include <string.h>
++
+ namespace cc {
+
+ ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry(
+--
+2.15.1
+
diff --git a/www-client/chromium/files/chromium-mojo-ltm-83.patch b/www-client/chromium/files/chromium-mojo-ltm-83.patch
new file mode 100644
index 0000000..f7ab5ee
--- /dev/null
+++ b/www-client/chromium/files/chromium-mojo-ltm-83.patch
@@ -0,0 +1,84 @@
+From f47546873b1517d358815a26cebc6c4d51addbdb Mon Sep 17 00:00:00 2001
+From: Asa Karlsson <asaka@vewd.com>
+Date: Wed, 11 Mar 2020 10:51:08 +0100
+Subject: [PATCH] Fix lifetime management of URLLoaderClient::OnUpdateProgress callback.
+
+The mojo setup for network URLLoader is a 3-way connection:
+ URLLoader <-> CorsURLLoader <-> URLLoaderClientImpl.
+
+The network::mojom::URLLoaderClient interface has one function with a
+callback defined: URLLoaderClient::OnUpdateProgress. Depending on
+timing, this callback may be in progress while the mojo connection is
+torn down. If the callback (originating in URLLoader) is in transfer
+from CorsURLLoader to URLLoaderClientImpl at that time, the callback
+would be dropped (destroyed) due to Receiver (URLLoaderClientImpl)
+being destroyed. Since the callback was successfully handed over to
+CorsURLLoader first, this will lead to a mojo DCHECK for "<callback>
+was destroyed without first either being run or its corresponding
+binding being closed".
+
+By storing the callback in CorsURLLoader and calling it on mojo
+disconnect, running the callback is ensured also at untimely
+disconnects.
+
+Bug: 1060502
+Change-Id: Iaedeac975508b3c0e5b4819d4f0b1a061f9c5460
+---
+
+diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc
+index c25dded..e51d916 100644
+--- a/services/network/cors/cors_url_loader.cc
++++ b/services/network/cors/cors_url_loader.cc
+@@ -383,8 +383,20 @@
+ OnUploadProgressCallback ack_callback) {
+ DCHECK(network_loader_);
+ DCHECK(forwarding_client_);
+- forwarding_client_->OnUploadProgress(current_position, total_size,
+- std::move(ack_callback));
++
++ // We need to store the original callback here to allow us to call
++ // it during mojo disconnect in the case the OnUploadProgress has
++ // not reached the forwarding_client_ yet. Otherwise, the
++ // un-triggered callback will generate a DCHECK when destroyed.
++ pending_upoad_callback_ = std::move(ack_callback);
++ forwarding_client_->OnUploadProgress(
++ current_position, total_size,
++ base::BindOnce(&CorsURLLoader::OnUploadProgressACK,
++ weak_factory_.GetWeakPtr()));
++}
++
++void CorsURLLoader::OnUploadProgressACK() {
++ std::move(pending_upoad_callback_).Run();
+ }
+
+ void CorsURLLoader::OnReceiveCachedMetadata(mojo_base::BigBuffer data) {
+@@ -538,6 +550,8 @@
+ }
+
+ void CorsURLLoader::OnMojoDisconnect() {
++ if (pending_upoad_callback_)
++ std::move(pending_upoad_callback_).Run();
+ HandleComplete(URLLoaderCompletionStatus(net::ERR_ABORTED));
+ }
+
+diff --git a/services/network/cors/cors_url_loader.h b/services/network/cors/cors_url_loader.h
+index 3f47a81..6611c6e 100644
+--- a/services/network/cors/cors_url_loader.h
++++ b/services/network/cors/cors_url_loader.h
+@@ -108,6 +108,8 @@
+ // Handles OnComplete() callback.
+ void HandleComplete(const URLLoaderCompletionStatus& status);
+
++ void OnUploadProgressACK();
++
+ void OnMojoDisconnect();
+
+ void SetCorsFlagIfNeeded();
+@@ -124,6 +126,7 @@
+ const std::string& header_name);
+
+ mojo::Receiver<mojom::URLLoader> receiver_;
++ OnUploadProgressCallback pending_upoad_callback_;
+
+ // We need to save these for redirect, and DevTools.
+ const int32_t process_id_;
diff --git a/www-client/chromium/files/chromium-nearby-inc-86.patch b/www-client/chromium/files/chromium-nearby-inc-86.patch
new file mode 100644
index 0000000..2fd2187
--- /dev/null
+++ b/www-client/chromium/files/chromium-nearby-inc-86.patch
@@ -0,0 +1,10 @@
+--- a/third_party/nearby/src/cpp/platform_v2/base/byte_array.h 2020-07-31 09:49:49.073719408 +0800
++++ b/third_party/nearby/src/cpp/platform_v2/base/byte_array.h 2020-07-31 09:50:00.025843476 +0800
+@@ -17,6 +17,7 @@
+
+ #include <array>
+ #include <cstdint>
++#include <cstring>
+ #include <string>
+ #include <type_traits>
+ #include <utility>
diff --git a/www-client/chromium/files/chromium-ngphyscontainer-iterator-cat-83.patch b/www-client/chromium/files/chromium-ngphyscontainer-iterator-cat-83.patch
new file mode 100644
index 0000000..1ab52d5
--- /dev/null
+++ b/www-client/chromium/files/chromium-ngphyscontainer-iterator-cat-83.patch
@@ -0,0 +1,17 @@
+diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
+index b3c7624f4..6efe44a66 100644
+--- a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
++++ b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
+@@ -51,6 +51,12 @@ class CORE_EXPORT NGPhysicalContainerFragment : public NGPhysicalFragment {
+ return current_ != other.current_;
+ }
+
++ using iterator_category = std::forward_iterator_tag;
++ using value_type = NGLink*;
++ using reference = value_type&;
++ using pointer = value_type*;
++ using difference_type = ptrdiff_t;
++
+ private:
+ const NGLink* PostLayoutOrCurrent() const {
+ post_layout_.fragment = current_->fragment->PostLayout();
diff --git a/www-client/chromium/files/chromium-noexcept-2.patch b/www-client/chromium/files/chromium-noexcept-2.patch
new file mode 100644
index 0000000..16aa76b
--- /dev/null
+++ b/www-client/chromium/files/chromium-noexcept-2.patch
@@ -0,0 +1,26 @@
+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 5c72abe4f..5e30c24d2 100644
+--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
++++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
+@@ -803,7 +803,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 325bffc72..08fe0ccca 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;
+
diff --git a/www-client/chromium/files/chromium-noexcept-3.patch b/www-client/chromium/files/chromium-noexcept-3.patch
new file mode 100644
index 0000000..b5ca5a3
--- /dev/null
+++ b/www-client/chromium/files/chromium-noexcept-3.patch
@@ -0,0 +1,26 @@
+diff --git a/storage/browser/fileapi/file_system_url.cc b/storage/browser/fileapi/file_system_url.cc
+index b90cf2904..e28b1f85d 100644
+--- a/storage/browser/fileapi/file_system_url.cc
++++ b/storage/browser/fileapi/file_system_url.cc
+@@ -26,7 +26,7 @@ FileSystemURL::FileSystemURL()
+
+ FileSystemURL::FileSystemURL(const FileSystemURL& other) = default;
+
+-FileSystemURL::FileSystemURL(FileSystemURL&& other) noexcept = default;
++FileSystemURL::FileSystemURL(FileSystemURL&& other) = default;
+
+ FileSystemURL& FileSystemURL::operator=(FileSystemURL&& rhs) = default;
+
+diff --git a/storage/browser/fileapi/file_system_url.h b/storage/browser/fileapi/file_system_url.h
+index 8220812d0..f6b8813e2 100644
+--- a/storage/browser/fileapi/file_system_url.h
++++ b/storage/browser/fileapi/file_system_url.h
+@@ -82,7 +82,7 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) FileSystemURL {
+ FileSystemURL(const FileSystemURL& other);
+ // Constructs FileSystemURL with the contents of |other|, which is left in
+ // valid but unspecified state.
+- FileSystemURL(FileSystemURL&& other) noexcept;
++ FileSystemURL(FileSystemURL&& other);
+ ~FileSystemURL();
+
+ // Replaces the contents with those of |rhs|, which is left in valid but
diff --git a/www-client/chromium/files/chromium-noexcept.patch b/www-client/chromium/files/chromium-noexcept.patch
new file mode 100644
index 0000000..70948a8
--- /dev/null
+++ b/www-client/chromium/files/chromium-noexcept.patch
@@ -0,0 +1,26 @@
+diff --git a/media/learning/common/labelled_example.cc b/media/learning/common/labelled_example.cc
+index 6c8cb7d34..370b6bb05 100644
+--- a/media/learning/common/labelled_example.cc
++++ b/media/learning/common/labelled_example.cc
+@@ -17,7 +17,7 @@ LabelledExample::LabelledExample(std::initializer_list<FeatureValue> init_list,
+
+ LabelledExample::LabelledExample(const LabelledExample& rhs) = default;
+
+-LabelledExample::LabelledExample(LabelledExample&& rhs) noexcept = default;
++LabelledExample::LabelledExample(LabelledExample&& rhs) = default;
+
+ LabelledExample::~LabelledExample() = default;
+
+diff --git a/media/learning/common/labelled_example.h b/media/learning/common/labelled_example.h
+index ee89586f5..b203a567c 100644
+--- a/media/learning/common/labelled_example.h
++++ b/media/learning/common/labelled_example.h
+@@ -31,7 +31,7 @@ struct COMPONENT_EXPORT(LEARNING_COMMON) LabelledExample {
+ LabelledExample(std::initializer_list<FeatureValue> init_list,
+ TargetValue target);
+ LabelledExample(const LabelledExample& rhs);
+- LabelledExample(LabelledExample&& rhs) noexcept;
++ LabelledExample(LabelledExample&& rhs);
+ ~LabelledExample();
+
+ // Comparisons ignore weight, because it's convenient.
diff --git a/www-client/chromium/files/chromium-ntp_backgrounds-include-84.patch b/www-client/chromium/files/chromium-ntp_backgrounds-include-84.patch
new file mode 100644
index 0000000..bd98ef0
--- /dev/null
+++ b/www-client/chromium/files/chromium-ntp_backgrounds-include-84.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/search/background/ntp_backgrounds.h b/chrome/browser/search/background/ntp_backgrounds.h
+index 7afc0a230..6a6ad3b48 100644
+--- a/chrome/browser/search/background/ntp_backgrounds.h
++++ b/chrome/browser/search/background/ntp_backgrounds.h
+@@ -5,6 +5,7 @@
+ #ifndef CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+ #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+
++#include <cstddef>
+ #include <array>
+
+ class GURL;
diff --git a/www-client/chromium/files/chromium-opencv-include-84.patch b/www-client/chromium/files/chromium-opencv-include-84.patch
new file mode 100644
index 0000000..4c7b328
--- /dev/null
+++ b/www-client/chromium/files/chromium-opencv-include-84.patch
@@ -0,0 +1,12 @@
+diff --git a/third_party/opencv/src/emd.cpp b/third_party/opencv/src/emd.cpp
+index 30b19f676..834ebe9f4 100644
+--- a/third_party/opencv/src/emd.cpp
++++ b/third_party/opencv/src/emd.cpp
+@@ -59,6 +59,7 @@
+ #ifdef CHROMIUM_OPENCV
+ #include "emd_wrapper.h"
+
++#include <algorithm>
+ #include <vector>
+ #include <cassert>
+
diff --git a/www-client/chromium/files/chromium-pa13.patch b/www-client/chromium/files/chromium-pa13.patch
new file mode 100644
index 0000000..892a318
--- /dev/null
+++ b/www-client/chromium/files/chromium-pa13.patch
@@ -0,0 +1,82 @@
+From 7ac85fb4cc6f44a21761a591ac497ae3d6bf966d Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@qt.io>
+Date: Mon, 23 Sep 2019 13:49:53 +0200
+Subject: [PATCH] Fix building with pulseaudio 13
+
+The function signature changed though the ABI stayed the same.
+
+(Modified to apply on chromium sources too)
+
+Change-Id: I86ca361b5e4f0c523e1031910df438c23beee876
+Fixes: QTBUG-77037
+Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
+---
+
+diff --git a/media/audio/pulse/pulse.sigs b/media/audio/pulse/pulse.sigs
+index 8b58887..daaeb14 100644
+--- a/media/audio/pulse/pulse.sigs
++++ b/media/audio/pulse/pulse.sigs
+@@ -24,11 +24,11 @@
+ 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_ptr 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);
+-pa_operation_state_t pa_operation_get_state(pa_operation* o);
++pa_operation_state_t pa_operation_get_state(const_pa_operation_ptr 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 @@
+ 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_ptr 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_ptr 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_ptr 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_ptr 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_ptr 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_ptr 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/media/audio/pulse/pulse_stub_header.fragment b/chromium/media/audio/pulse/pulse_stub_header.fragment
+index 2a2d3e7..cdaa841 100644
+--- a/media/audio/pulse/pulse_stub_header.fragment
++++ b/media/audio/pulse/pulse_stub_header.fragment
+@@ -5,4 +5,15 @@
+
+ #include <pulse/pulseaudio.h>
+
++#if PA_MAJOR > 12
++typedef const pa_context* const_pa_context_ptr;
++typedef const pa_operation* const_pa_operation_ptr;
++typedef const pa_proplist* const_pa_proplist_ptr;
++typedef const pa_stream* const_pa_stream_ptr;
++#else
++typedef pa_context* const_pa_context_ptr;
++typedef pa_operation* const_pa_operation_ptr;
++typedef pa_proplist* const_pa_proplist_ptr;
++typedef pa_stream* const_pa_stream_ptr;
++#endif
+ }
diff --git a/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch b/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch
new file mode 100644
index 0000000..1cfa4c5
--- /dev/null
+++ b/www-client/chromium/files/chromium-pdfium-stdlib-r0.patch
@@ -0,0 +1,30 @@
+From e3ad3deb6a6e79284f3748fa7410311d87df91c5 Mon Sep 17 00:00:00 2001
+From: Henrique Nakashima <hnakashima@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@chromium.org>
+Commit-Queue: Henrique Nakashima <hnakashima@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.19.0
+
diff --git a/www-client/chromium/files/chromium-remove-no_check_targets-86.patch b/www-client/chromium/files/chromium-remove-no_check_targets-86.patch
new file mode 100644
index 0000000..7661b32
--- /dev/null
+++ b/www-client/chromium/files/chromium-remove-no_check_targets-86.patch
@@ -0,0 +1,621 @@
+diff --git a/.gn b/.gn
+index 3afb64ba2..b239e02c3 100644
+--- a/.gn
++++ b/.gn
+@@ -55,311 +55,311 @@ default_args = {
+ # matching these patterns (see "gn help label_pattern" for format) will not have
+ # their includes checked for proper dependencies when you run either
+ # "gn check" or "gn gen --check".
+-no_check_targets = [
+- # //chrome/*, https://crbug.com/949535
+- "//chrome/browser/devtools:*", # 114 errors
+- "//chrome/browser/media/router/discovery:*", # 26 errors
+- "//chrome/browser/media/router:*", # 225 errors
+- "//chrome/browser/paint_preview:*", # 4 errors
+- "//chrome/browser/profiling_host:*", # 13 errors
+- "//chrome/browser/resources/chromeos/zip_archiver/cpp:*", # 2 errors
+- "//chrome/browser/safe_browsing/android:*", # 3 errors
+- "//chrome/browser/safe_browsing:*", # 85 errors
+- "//chrome/browser/safety_check/android:*", # 3 errors
+- "//chrome/browser/storage_access_api:*", # 2 errors
+- "//chrome/browser/touch_to_fill/android:*", # 8 errors
+- "//chrome/browser/touch_to_fill:*", # 5 errors
+- "//chrome/browser/updates/announcement_notification:*", # 15 errors
+- "//chrome/browser/updates/internal:*", # 8 errors
+- "//chrome/browser/updates:*", # 21 errors
+- "//chrome/browser:*", # 780 errors
+- "//chrome/child:*", # 3 errors
+- "//chrome/credential_provider/gaiacp:*", # 1 error
+- "//chrome/gpu:*", # 2 errors
+- "//chrome/install_static:*", # 4 errors
+- "//chrome/notification_helper:*", # 4 errors
+- "//chrome/renderer:*", # 42 errors
+- "//chrome/services/cups_proxy/public/cpp:*", # 2 errors
+- "//chrome/services/cups_proxy:*", # 6 errors
+- "//chrome/services/file_util/public/cpp:*", # 13 errors
+- "//chrome/services/file_util:*", # 3 errors
+- "//chrome/services/ipp_parser:*", # 1 error
+- "//chrome/services/media_gallery_util/public/cpp:*", # 6 errors
+- "//chrome/services/media_gallery_util:*", # 3 errors
+- "//chrome/services/printing:*", # 3 errors
+- "//chrome/services/qrcode_generator:*", # 1 error
+- "//chrome/services/removable_storage_writer:*", # 1 error
+- "//chrome/services/sharing/public/cpp:*", # 2 errors
+- "//chrome/services/speech:*", # 5 errors
+- "//chrome/services/util_win:*", # 1 error
+- "//chrome/test/chromedriver:*", # 115 errors
+- "//chrome/test/data/nacl:*", # 350 errors
+- "//chrome/test/media_router:*", # 5 errors
+- "//chrome/test:*", # 2682 errors
+- "//chrome:*", # 7 errors
+-
+- "//clank/third_party/gvr_shim:*", # 1 error
+- "//extensions/browser/api/alarms:*", # 2 errors
+- "//extensions/browser/api/app_current_window_internal:*", # 3 errors
+- "//extensions/browser/api/app_runtime:*", # 3 errors
+- "//extensions/browser/api/app_window:*", # 5 errors
+- "//extensions/browser/api/audio:*", # 3 errors
+- "//extensions/browser/api/automation_internal:*", # 37 errors
+- "//extensions/browser/api/bluetooth_low_energy:*", # 22 errors
+- "//extensions/browser/api/bluetooth_socket:*", # 12 errors
+- "//extensions/browser/api/cast_channel:*", # 3 errors
+- "//extensions/browser/api/cec_private:*", # 4 errors
+- "//extensions/browser/api/clipboard:*", # 3 errors
+- "//extensions/browser/api/crash_report_private:*", # 1 error
+- "//extensions/browser/api/declarative:*", # 20 errors
+- "//extensions/browser/api/declarative_content:*", # 2 errors
+- "//extensions/browser/api/declarative_net_request/filter_list_converter:*", # 1
+- # error
+- "//extensions/browser/api/declarative_net_request:*", # 18 errors
+- "//extensions/browser/api/declarative_webrequest:*", # 29 errors
+- "//extensions/browser/api/diagnostics:*", # 2 errors
+- "//extensions/browser/api/display_source:*", # 7 errors
+- "//extensions/browser/api/dns:*", # 3 errors
+- "//extensions/browser/api/document_scan:*", # 2 errors
+- "//extensions/browser/api/feedback_private:*", # 2 errors
+- "//extensions/browser/api/file_handlers:*", # 3 errors
+- "//extensions/browser/api/file_system:*", # 1 error
+- "//extensions/browser/api/hid:*", # 12 errors
+- "//extensions/browser/api/idle:*", # 4 errors
+- "//extensions/browser/api/management:*", # 19 errors
+- "//extensions/browser/api/messaging:*", # 1 error
+- "//extensions/browser/api/metrics_private:*", # 3 errors
+- "//extensions/browser/api/mime_handler_private:*", # 1 error
+- "//extensions/browser/api/networking_config:*", # 7 errors
+- "//extensions/browser/api/networking_private:*", # 14 errors
+- "//extensions/browser/api/power:*", # 3 errors
+- "//extensions/browser/api/printer_provider:*", # 7 errors
+- "//extensions/browser/api/printer_provider_internal:*", # 3 errors
+- "//extensions/browser/api/runtime:*", # 6 errors
+- "//extensions/browser/api/serial:*", # 10 errors
+- "//extensions/browser/api/socket:*", # 11 errors
+- "//extensions/browser/api/sockets_tcp:*", # 6 errors
+- "//extensions/browser/api/sockets_tcp_server:*", # 8 errors
+- "//extensions/browser/api/sockets_udp:*", # 9 errors
+- "//extensions/browser/api/storage:*", # 9 errors
+- "//extensions/browser/api/system_cpu:*", # 1 error
+- "//extensions/browser/api/system_display:*", # 3 errors
+- "//extensions/browser/api/system_info:*", # 8 errors
+- "//extensions/browser/api/system_memory:*", # 1 error
+- "//extensions/browser/api/system_network:*", # 2 errors
+- "//extensions/browser/api/system_power_source:*", # 2 errors
+- "//extensions/browser/api/system_storage:*", # 6 errors
+- "//extensions/browser/api/test:*", # 1 error
+- "//extensions/browser/api/usb:*", # 12 errors
+- "//extensions/browser/api/virtual_keyboard:*", # 1 error
+- "//extensions/browser/api/virtual_keyboard_private:*", # 2 errors
+- "//extensions/browser/api/vpn_provider:*", # 13 errors
+- "//extensions/browser/api/web_request:*", # 37 errors
+- "//extensions/browser/api/webcam_private:*", # 8 errors
+- "//extensions/browser/api:*", # 7 errors
+- "//extensions/browser/updater:*", # 31 errors
+- "//extensions/browser/value_store:*", # 5 errors
+- "//extensions/browser:*", # 20 errors
+- "//extensions:*", # 75 errors
+- "//headless:*", # 167 errors
+- "//jingle:*", # 4 errors
+- "//native_client/src/trusted/service_runtime:*", # 2 errors
+- "//ppapi/cpp/private:*", # 1 error
+- "//ppapi/host:*", # 1 error
+- "//ppapi/native_client/src/untrusted/pnacl_irt_shim:*", # 197 errors
+- "//ppapi/proxy:*", # 31 errors
+- "//ppapi/shared_impl:*", # 3 errors
+- "//ppapi/thunk:*", # 1071 errors
+- "//ppapi:*", # 3 errors
+- "//remoting/base/grpc_support:*", # 14 errors
+- "//remoting/base/grpc_test_support:*", # 1 error
+- "//remoting/base:*", # 6 errors
+- "//remoting/client/audio:*", # 7 errors
+- "//remoting/client/display:*", # 55 errors
+- "//remoting/client/input:*", # 17 errors
+- "//remoting/client/jni:*", # 8 errors
+- "//remoting/client/notification:*", # 12 errors
+- "//remoting/client/ui:*", # 13 errors
+- "//remoting/client:*", # 20 errors
+- "//remoting/codec:*", # 32 errors
+- "//remoting/host/chromeos:*", # 10 errors
+- "//remoting/host/file_transfer:*", # 43 errors
+- "//remoting/host/input_monitor:*", # 3 errors
+- "//remoting/host/installer/mac:*", # 1 error
+- "//remoting/host/it2me:*", # 18 errors
+- "//remoting/host/linux:*", # 64 errors
+- "//remoting/host/mac:*", # 49 errors
+- "//remoting/host/native_messaging:*", # 3 errors
+- "//remoting/host/security_key:*", # 68 errors
+- "//remoting/host/setup:*", # 9 errors
+- "//remoting/host/win:*", # 43 errors
+- "//remoting/host:*", # 164 errors
+- "//remoting/ios/app/settings:*", # 6 errors
+- "//remoting/ios/app:*", # 9 errors
+- "//remoting/ios/audio:*", # 5 errors
+- "//remoting/ios/domain:*", # 2 errors
+- "//remoting/ios/facade:*", # 8 errors
+- "//remoting/ios/persistence:*", # 10 errors
+- "//remoting/ios/session:*", # 7 errors
+- "//remoting/ios:*", # 2 errors
+- "//remoting/protocol:*", # 142 errors
+- "//remoting/signaling:*", # 30 errors
+- "//remoting/test:*", # 20 errors
+- "//remoting:*", # 27 errors
+- "//sandbox/linux:*", # 13 errors
+- "//sandbox/mac:*", # 14 errors
+- "//sandbox/win:*", # 7 errors
+-
+- # //third_party/blink/*, https://crbug.com/800764
+- "//third_party/blink/common:*", # 9 errors
+- "//third_party/blink/renderer/bindings/core/v8:*", # 1 error
+- "//third_party/blink/renderer/controller:*", # 191 errors
+- "//third_party/blink/renderer/core/accessibility:*", # 27 errors
+- "//third_party/blink/renderer/core/animation:*", # 506 errors
+- "//third_party/blink/renderer/core/animation_frame:*", # 4 errors
+- "//third_party/blink/renderer/core/aom:*", # 23 errors
+- "//third_party/blink/renderer/core/clipboard:*", # 43 errors
+- "//third_party/blink/renderer/core/content_capture:*", # 12 errors
+- "//third_party/blink/renderer/core/context_features:*", # 3 errors
+- "//third_party/blink/renderer/core/css:*", # 835 errors
+- "//third_party/blink/renderer/core/display_lock:*", # 36 errors
+- "//third_party/blink/renderer/core/dom:*", # 706 errors
+- "//third_party/blink/renderer/core/editing:*", # 847 errors
+- "//third_party/blink/renderer/core/events:*", # 173 errors
+- "//third_party/blink/renderer/core/execution_context:*", # 48 errors
+- "//third_party/blink/renderer/core/exported:*", # 470 errors
+- "//third_party/blink/renderer/core/feature_policy:*", # 15 errors
+- "//third_party/blink/renderer/core/fetch:*", # 134 errors
+- "//third_party/blink/renderer/core/fileapi:*", # 55 errors
+- "//third_party/blink/renderer/core/frame:*", # 864 errors
+- "//third_party/blink/renderer/core/fullscreen:*", # 32 errors
+- "//third_party/blink/renderer/core/geometry:*", # 39 errors
+- "//third_party/blink/renderer/core/html/parser:*", # 133 errors
+- "//third_party/blink/renderer/core/html:*", # 1662 errors
+- "//third_party/blink/renderer/core/imagebitmap:*", # 34 errors
+- "//third_party/blink/renderer/core/input:*", # 240 errors
+- "//third_party/blink/renderer/core/inspector:*", # 594 errors
+- "//third_party/blink/renderer/core/intersection_observer:*", # 50 errors
+- "//third_party/blink/renderer/core/layout/svg:*", # 193 errors
+- "//third_party/blink/renderer/core/layout:*", # 920 errors
+- "//third_party/blink/renderer/core/loader:*", # 421 errors
+- "//third_party/blink/renderer/core/mathml:*", # 11 errors
+- "//third_party/blink/renderer/core/messaging:*", # 30 errors
+- "//third_party/blink/renderer/core/mojo:*", # 44 errors
+- "//third_party/blink/renderer/core/offscreencanvas:*", # 22 errors
+- "//third_party/blink/renderer/core/origin_trials:*", # 12 errors
+- "//third_party/blink/renderer/core/page:*", # 500 errors
+- "//third_party/blink/renderer/core/paint:*", # 788 errors
+- "//third_party/blink/renderer/core/probe:*", # 9 errors
+- "//third_party/blink/renderer/core/resize_observer:*", # 29 errors
+- "//third_party/blink/renderer/core/script:*", # 155 errors
+- "//third_party/blink/renderer/core/scroll:*", # 29 errors
+- "//third_party/blink/renderer/core/streams:*", # 75 errors
+- "//third_party/blink/renderer/core/style:*", # 86 errors
+- "//third_party/blink/renderer/core/svg:*", # 297 errors
+- "//third_party/blink/renderer/core/timezone:*", # 8 errors
+- "//third_party/blink/renderer/core/timing:*", # 170 errors
+- "//third_party/blink/renderer/core/trustedtypes:*", # 27 errors
+- "//third_party/blink/renderer/core/typed_arrays:*", # 24 errors
+- "//third_party/blink/renderer/core/url:*", # 7 errors
+- "//third_party/blink/renderer/core/workers:*", # 289 errors
+- "//third_party/blink/renderer/core/xml:*", # 119 errors
+- "//third_party/blink/renderer/core/xmlhttprequest:*", # 49 errors
+- "//third_party/blink/renderer/core:*", # 823 errors
+- "//third_party/blink/renderer/modules/accessibility:*", # 7 errors
+- "//third_party/blink/renderer/modules/animationworklet:*", # 1 error
+- "//third_party/blink/renderer/modules/background_fetch:*", # 4 errors
+- "//third_party/blink/renderer/modules/background_sync:*", # 6 errors
+- "//third_party/blink/renderer/modules/cache_storage:*", # 3 errors
+- "//third_party/blink/renderer/modules/canvas:*", # 1 error
+- "//third_party/blink/renderer/modules/clipboard:*", # 1 error
+- "//third_party/blink/renderer/modules/contacts_picker:*", # 1 error
+- "//third_party/blink/renderer/modules/content_index:*", # 3 errors
+- "//third_party/blink/renderer/modules/cookie_store:*", # 8 errors
+- "//third_party/blink/renderer/modules/credentialmanager:*", # 1 error
+- "//third_party/blink/renderer/modules/csspaint:*", # 2 errors
+- "//third_party/blink/renderer/modules/device_orientation:*", # 5 errors
+- "//third_party/blink/renderer/modules/encryptedmedia:*", # 3 errors
+- "//third_party/blink/renderer/modules/exported:*", # 16 errors
+- "//third_party/blink/renderer/modules/font_access:*", # 3 errors
+- "//third_party/blink/renderer/modules/gamepad:*", # 1 error
+- "//third_party/blink/renderer/modules/imagecapture:*", # 2 errors
+- "//third_party/blink/renderer/modules/installedapp:*", # 1 error
+- "//third_party/blink/renderer/modules/launch:*", # 3 errors
+- "//third_party/blink/renderer/modules/manifest:*", # 2 errors
+- "//third_party/blink/renderer/modules/media_capabilities:*", # 5 errors
+- "//third_party/blink/renderer/modules/media_controls:*", # 31 errors
+- "//third_party/blink/renderer/modules/mediacapturefromelement:*", # 14 errors
+- "//third_party/blink/renderer/modules/mediarecorder:*", # 1 error
+- "//third_party/blink/renderer/modules/mediastream:*", # 29 errors
+- "//third_party/blink/renderer/modules/native_file_system:*", # 2 errors
+- "//third_party/blink/renderer/modules/nfc:*", # 2 errors
+- "//third_party/blink/renderer/modules/notifications:*", # 5 errors
+- "//third_party/blink/renderer/modules/payments/goods:*", # 1 error
+- "//third_party/blink/renderer/modules/payments:*", # 22 errors
+- "//third_party/blink/renderer/modules/peerconnection:*", # 43 errors
+- "//third_party/blink/renderer/modules/push_messaging:*", # 12 errors
+- "//third_party/blink/renderer/modules/quota:*", # 1 error
+- "//third_party/blink/renderer/modules/remoteplayback:*", # 3 errors
+- "//third_party/blink/renderer/modules/serial:*", # 1 error
+- "//third_party/blink/renderer/modules/service_worker:*", # 23 errors
+- "//third_party/blink/renderer/modules/shapedetection:*", # 4 errors
+- "//third_party/blink/renderer/modules/srcobject:*", # 1 error
+- "//third_party/blink/renderer/modules/storage:*", # 3 errors
+- "//third_party/blink/renderer/modules/wake_lock:*", # 1 error
+- "//third_party/blink/renderer/modules/webaudio:*", # 5 errors
+- "//third_party/blink/renderer/modules/webcodecs:*", # 13 errors
+- "//third_party/blink/renderer/modules/webgl:*", # 3 errors
+- "//third_party/blink/renderer/modules/webgpu:*", # 6 errors
+- "//third_party/blink/renderer/modules/webmidi:*", # 1 error
+- "//third_party/blink/renderer/modules/webtransport:*", # 16 errors
+- "//third_party/blink/renderer/modules/worklet:*", # 2 errors
+- "//third_party/blink/renderer/modules/xr:*", # 13 errors
+- "//third_party/blink/renderer/modules:*", # 321 errors
+- "//third_party/blink/renderer/platform/blob:*", # 16 errors
+- "//third_party/blink/renderer/platform/heap:*", # 65 errors
+- "//third_party/blink/renderer/platform/instrumentation:*", # 13 errors
+- "//third_party/blink/renderer/platform/loader:*", # 180 errors
+- "//third_party/blink/renderer/platform/network:*", # 15 errors
+- "//third_party/blink/renderer/platform/scheduler:*", # 45 errors
+- "//third_party/blink/renderer/platform/wtf:*", # 2 errors
+- "//third_party/blink/renderer/platform:*", # 72 errors
+-
+- "//third_party/breakpad:*", # 34 errors
+- "//third_party/ced/*",
+- "//third_party/crashpad/crashpad/client:*", # 1 error
+- "//third_party/crashpad/crashpad/compat:*", # 2 errors
+- "//third_party/crashpad/crashpad/snapshot:*", # 1 error
+- "//third_party/crashpad/crashpad/test:*", # 2 errors
+- "//third_party/crashpad/crashpad/util:*", # 2 errors
+- "//third_party/dav1d:*", # 95 errors
+- "//third_party/ffmpeg:*", # 1 error
+- "//third_party/icu/*",
+- "//third_party/libvpx:*", # 164 errors
+- "//third_party/libwebp:*", # 80 errors, https://crbug.com/800762
+- "//third_party/openscreen/src/cast/common:*", # 4 errors
+- "//third_party/openscreen/src/cast/receiver:*", # 1 error
+- "//third_party/openscreen/src/cast/streaming:*", # 66 errors
+- "//third_party/openscreen/src/discovery:*", # 36 errors
+- "//third_party/openscreen/src/osp/impl/quic:*", # 16 errors
+- "//third_party/openscreen/src/osp/msgs:*", # 5 errors
+- "//third_party/openscreen/src/osp/public:*", # 1 error
+- "//third_party/openscreen/src/osp:*", # 13 errors
+- "//third_party/openscreen/src/util:*", # 29 errors
+- "//third_party/pdfium/samples:*", # 1 error
+- "//third_party/pdfium/third_party:*", # 2 errors
+- "//third_party/pdfium:*", # 1 error
+-
+- # //v8/*, https://crbug.com/v8/7330
+- "//v8/src/inspector:*", # 20 errors
+- "//v8/test/cctest:*", # 26 errors
+- "//v8/test/unittests:*", # 11 errors
+- "//v8/test/wasm-api-tests:*", # 13 errors
+- "//v8/third_party/inspector_protocol:*", # 2 errors
+- "//v8/tools/debug_helper:*", # 9 errors
+- "//v8/tools/v8windbg:*", # 2 errors
+- "//v8:*", # 1871 errors
+-]
++#no_check_targets = [
++# # //chrome/*, https://crbug.com/949535
++# "//chrome/browser/devtools:*", # 114 errors
++# "//chrome/browser/media/router/discovery:*", # 26 errors
++# "//chrome/browser/media/router:*", # 225 errors
++# "//chrome/browser/paint_preview:*", # 4 errors
++# "//chrome/browser/profiling_host:*", # 13 errors
++# "//chrome/browser/resources/chromeos/zip_archiver/cpp:*", # 2 errors
++# "//chrome/browser/safe_browsing/android:*", # 3 errors
++# "//chrome/browser/safe_browsing:*", # 85 errors
++# "//chrome/browser/safety_check/android:*", # 3 errors
++# "//chrome/browser/storage_access_api:*", # 2 errors
++# "//chrome/browser/touch_to_fill/android:*", # 8 errors
++# "//chrome/browser/touch_to_fill:*", # 5 errors
++# "//chrome/browser/updates/announcement_notification:*", # 15 errors
++# "//chrome/browser/updates/internal:*", # 8 errors
++# "//chrome/browser/updates:*", # 21 errors
++# "//chrome/browser:*", # 780 errors
++# "//chrome/child:*", # 3 errors
++# "//chrome/credential_provider/gaiacp:*", # 1 error
++# "//chrome/gpu:*", # 2 errors
++# "//chrome/install_static:*", # 4 errors
++# "//chrome/notification_helper:*", # 4 errors
++# "//chrome/renderer:*", # 42 errors
++# "//chrome/services/cups_proxy/public/cpp:*", # 2 errors
++# "//chrome/services/cups_proxy:*", # 6 errors
++# "//chrome/services/file_util/public/cpp:*", # 13 errors
++# "//chrome/services/file_util:*", # 3 errors
++# "//chrome/services/ipp_parser:*", # 1 error
++# "//chrome/services/media_gallery_util/public/cpp:*", # 6 errors
++# "//chrome/services/media_gallery_util:*", # 3 errors
++# "//chrome/services/printing:*", # 3 errors
++# "//chrome/services/qrcode_generator:*", # 1 error
++# "//chrome/services/removable_storage_writer:*", # 1 error
++# "//chrome/services/sharing/public/cpp:*", # 2 errors
++# "//chrome/services/speech:*", # 5 errors
++# "//chrome/services/util_win:*", # 1 error
++# "//chrome/test/chromedriver:*", # 115 errors
++# "//chrome/test/data/nacl:*", # 350 errors
++# "//chrome/test/media_router:*", # 5 errors
++# "//chrome/test:*", # 2682 errors
++# "//chrome:*", # 7 errors
++#
++# "//clank/third_party/gvr_shim:*", # 1 error
++# "//extensions/browser/api/alarms:*", # 2 errors
++# "//extensions/browser/api/app_current_window_internal:*", # 3 errors
++# "//extensions/browser/api/app_runtime:*", # 3 errors
++# "//extensions/browser/api/app_window:*", # 5 errors
++# "//extensions/browser/api/audio:*", # 3 errors
++# "//extensions/browser/api/automation_internal:*", # 37 errors
++# "//extensions/browser/api/bluetooth_low_energy:*", # 22 errors
++# "//extensions/browser/api/bluetooth_socket:*", # 12 errors
++# "//extensions/browser/api/cast_channel:*", # 3 errors
++# "//extensions/browser/api/cec_private:*", # 4 errors
++# "//extensions/browser/api/clipboard:*", # 3 errors
++# "//extensions/browser/api/crash_report_private:*", # 1 error
++# "//extensions/browser/api/declarative:*", # 20 errors
++# "//extensions/browser/api/declarative_content:*", # 2 errors
++# "//extensions/browser/api/declarative_net_request/filter_list_converter:*", # 1
++# # error
++# "//extensions/browser/api/declarative_net_request:*", # 18 errors
++# "//extensions/browser/api/declarative_webrequest:*", # 29 errors
++# "//extensions/browser/api/diagnostics:*", # 2 errors
++# "//extensions/browser/api/display_source:*", # 7 errors
++# "//extensions/browser/api/dns:*", # 3 errors
++# "//extensions/browser/api/document_scan:*", # 2 errors
++# "//extensions/browser/api/feedback_private:*", # 2 errors
++# "//extensions/browser/api/file_handlers:*", # 3 errors
++# "//extensions/browser/api/file_system:*", # 1 error
++# "//extensions/browser/api/hid:*", # 12 errors
++# "//extensions/browser/api/idle:*", # 4 errors
++# "//extensions/browser/api/management:*", # 19 errors
++# "//extensions/browser/api/messaging:*", # 1 error
++# "//extensions/browser/api/metrics_private:*", # 3 errors
++# "//extensions/browser/api/mime_handler_private:*", # 1 error
++# "//extensions/browser/api/networking_config:*", # 7 errors
++# "//extensions/browser/api/networking_private:*", # 14 errors
++# "//extensions/browser/api/power:*", # 3 errors
++# "//extensions/browser/api/printer_provider:*", # 7 errors
++# "//extensions/browser/api/printer_provider_internal:*", # 3 errors
++# "//extensions/browser/api/runtime:*", # 6 errors
++# "//extensions/browser/api/serial:*", # 10 errors
++# "//extensions/browser/api/socket:*", # 11 errors
++# "//extensions/browser/api/sockets_tcp:*", # 6 errors
++# "//extensions/browser/api/sockets_tcp_server:*", # 8 errors
++# "//extensions/browser/api/sockets_udp:*", # 9 errors
++# "//extensions/browser/api/storage:*", # 9 errors
++# "//extensions/browser/api/system_cpu:*", # 1 error
++# "//extensions/browser/api/system_display:*", # 3 errors
++# "//extensions/browser/api/system_info:*", # 8 errors
++# "//extensions/browser/api/system_memory:*", # 1 error
++# "//extensions/browser/api/system_network:*", # 2 errors
++# "//extensions/browser/api/system_power_source:*", # 2 errors
++# "//extensions/browser/api/system_storage:*", # 6 errors
++# "//extensions/browser/api/test:*", # 1 error
++# "//extensions/browser/api/usb:*", # 12 errors
++# "//extensions/browser/api/virtual_keyboard:*", # 1 error
++# "//extensions/browser/api/virtual_keyboard_private:*", # 2 errors
++# "//extensions/browser/api/vpn_provider:*", # 13 errors
++# "//extensions/browser/api/web_request:*", # 37 errors
++# "//extensions/browser/api/webcam_private:*", # 8 errors
++# "//extensions/browser/api:*", # 7 errors
++# "//extensions/browser/updater:*", # 31 errors
++# "//extensions/browser/value_store:*", # 5 errors
++# "//extensions/browser:*", # 20 errors
++# "//extensions:*", # 75 errors
++# "//headless:*", # 167 errors
++# "//jingle:*", # 4 errors
++# "//native_client/src/trusted/service_runtime:*", # 2 errors
++# "//ppapi/cpp/private:*", # 1 error
++# "//ppapi/host:*", # 1 error
++# "//ppapi/native_client/src/untrusted/pnacl_irt_shim:*", # 197 errors
++# "//ppapi/proxy:*", # 31 errors
++# "//ppapi/shared_impl:*", # 3 errors
++# "//ppapi/thunk:*", # 1071 errors
++# "//ppapi:*", # 3 errors
++# "//remoting/base/grpc_support:*", # 14 errors
++# "//remoting/base/grpc_test_support:*", # 1 error
++# "//remoting/base:*", # 6 errors
++# "//remoting/client/audio:*", # 7 errors
++# "//remoting/client/display:*", # 55 errors
++# "//remoting/client/input:*", # 17 errors
++# "//remoting/client/jni:*", # 8 errors
++# "//remoting/client/notification:*", # 12 errors
++# "//remoting/client/ui:*", # 13 errors
++# "//remoting/client:*", # 20 errors
++# "//remoting/codec:*", # 32 errors
++# "//remoting/host/chromeos:*", # 10 errors
++# "//remoting/host/file_transfer:*", # 43 errors
++# "//remoting/host/input_monitor:*", # 3 errors
++# "//remoting/host/installer/mac:*", # 1 error
++# "//remoting/host/it2me:*", # 18 errors
++# "//remoting/host/linux:*", # 64 errors
++# "//remoting/host/mac:*", # 49 errors
++# "//remoting/host/native_messaging:*", # 3 errors
++# "//remoting/host/security_key:*", # 68 errors
++# "//remoting/host/setup:*", # 9 errors
++# "//remoting/host/win:*", # 43 errors
++# "//remoting/host:*", # 164 errors
++# "//remoting/ios/app/settings:*", # 6 errors
++# "//remoting/ios/app:*", # 9 errors
++# "//remoting/ios/audio:*", # 5 errors
++# "//remoting/ios/domain:*", # 2 errors
++# "//remoting/ios/facade:*", # 8 errors
++# "//remoting/ios/persistence:*", # 10 errors
++# "//remoting/ios/session:*", # 7 errors
++# "//remoting/ios:*", # 2 errors
++# "//remoting/protocol:*", # 142 errors
++# "//remoting/signaling:*", # 30 errors
++# "//remoting/test:*", # 20 errors
++# "//remoting:*", # 27 errors
++# "//sandbox/linux:*", # 13 errors
++# "//sandbox/mac:*", # 14 errors
++# "//sandbox/win:*", # 7 errors
++#
++# # //third_party/blink/*, https://crbug.com/800764
++# "//third_party/blink/common:*", # 9 errors
++# "//third_party/blink/renderer/bindings/core/v8:*", # 1 error
++# "//third_party/blink/renderer/controller:*", # 191 errors
++# "//third_party/blink/renderer/core/accessibility:*", # 27 errors
++# "//third_party/blink/renderer/core/animation:*", # 506 errors
++# "//third_party/blink/renderer/core/animation_frame:*", # 4 errors
++# "//third_party/blink/renderer/core/aom:*", # 23 errors
++# "//third_party/blink/renderer/core/clipboard:*", # 43 errors
++# "//third_party/blink/renderer/core/content_capture:*", # 12 errors
++# "//third_party/blink/renderer/core/context_features:*", # 3 errors
++# "//third_party/blink/renderer/core/css:*", # 835 errors
++# "//third_party/blink/renderer/core/display_lock:*", # 36 errors
++# "//third_party/blink/renderer/core/dom:*", # 706 errors
++# "//third_party/blink/renderer/core/editing:*", # 847 errors
++# "//third_party/blink/renderer/core/events:*", # 173 errors
++# "//third_party/blink/renderer/core/execution_context:*", # 48 errors
++# "//third_party/blink/renderer/core/exported:*", # 470 errors
++# "//third_party/blink/renderer/core/feature_policy:*", # 15 errors
++# "//third_party/blink/renderer/core/fetch:*", # 134 errors
++# "//third_party/blink/renderer/core/fileapi:*", # 55 errors
++# "//third_party/blink/renderer/core/frame:*", # 864 errors
++# "//third_party/blink/renderer/core/fullscreen:*", # 32 errors
++# "//third_party/blink/renderer/core/geometry:*", # 39 errors
++# "//third_party/blink/renderer/core/html/parser:*", # 133 errors
++# "//third_party/blink/renderer/core/html:*", # 1662 errors
++# "//third_party/blink/renderer/core/imagebitmap:*", # 34 errors
++# "//third_party/blink/renderer/core/input:*", # 240 errors
++# "//third_party/blink/renderer/core/inspector:*", # 594 errors
++# "//third_party/blink/renderer/core/intersection_observer:*", # 50 errors
++# "//third_party/blink/renderer/core/layout/svg:*", # 193 errors
++# "//third_party/blink/renderer/core/layout:*", # 920 errors
++# "//third_party/blink/renderer/core/loader:*", # 421 errors
++# "//third_party/blink/renderer/core/mathml:*", # 11 errors
++# "//third_party/blink/renderer/core/messaging:*", # 30 errors
++# "//third_party/blink/renderer/core/mojo:*", # 44 errors
++# "//third_party/blink/renderer/core/offscreencanvas:*", # 22 errors
++# "//third_party/blink/renderer/core/origin_trials:*", # 12 errors
++# "//third_party/blink/renderer/core/page:*", # 500 errors
++# "//third_party/blink/renderer/core/paint:*", # 788 errors
++# "//third_party/blink/renderer/core/probe:*", # 9 errors
++# "//third_party/blink/renderer/core/resize_observer:*", # 29 errors
++# "//third_party/blink/renderer/core/script:*", # 155 errors
++# "//third_party/blink/renderer/core/scroll:*", # 29 errors
++# "//third_party/blink/renderer/core/streams:*", # 75 errors
++# "//third_party/blink/renderer/core/style:*", # 86 errors
++# "//third_party/blink/renderer/core/svg:*", # 297 errors
++# "//third_party/blink/renderer/core/timezone:*", # 8 errors
++# "//third_party/blink/renderer/core/timing:*", # 170 errors
++# "//third_party/blink/renderer/core/trustedtypes:*", # 27 errors
++# "//third_party/blink/renderer/core/typed_arrays:*", # 24 errors
++# "//third_party/blink/renderer/core/url:*", # 7 errors
++# "//third_party/blink/renderer/core/workers:*", # 289 errors
++# "//third_party/blink/renderer/core/xml:*", # 119 errors
++# "//third_party/blink/renderer/core/xmlhttprequest:*", # 49 errors
++# "//third_party/blink/renderer/core:*", # 823 errors
++# "//third_party/blink/renderer/modules/accessibility:*", # 7 errors
++# "//third_party/blink/renderer/modules/animationworklet:*", # 1 error
++# "//third_party/blink/renderer/modules/background_fetch:*", # 4 errors
++# "//third_party/blink/renderer/modules/background_sync:*", # 6 errors
++# "//third_party/blink/renderer/modules/cache_storage:*", # 3 errors
++# "//third_party/blink/renderer/modules/canvas:*", # 1 error
++# "//third_party/blink/renderer/modules/clipboard:*", # 1 error
++# "//third_party/blink/renderer/modules/contacts_picker:*", # 1 error
++# "//third_party/blink/renderer/modules/content_index:*", # 3 errors
++# "//third_party/blink/renderer/modules/cookie_store:*", # 8 errors
++# "//third_party/blink/renderer/modules/credentialmanager:*", # 1 error
++# "//third_party/blink/renderer/modules/csspaint:*", # 2 errors
++# "//third_party/blink/renderer/modules/device_orientation:*", # 5 errors
++# "//third_party/blink/renderer/modules/encryptedmedia:*", # 3 errors
++# "//third_party/blink/renderer/modules/exported:*", # 16 errors
++# "//third_party/blink/renderer/modules/font_access:*", # 3 errors
++# "//third_party/blink/renderer/modules/gamepad:*", # 1 error
++# "//third_party/blink/renderer/modules/imagecapture:*", # 2 errors
++# "//third_party/blink/renderer/modules/installedapp:*", # 1 error
++# "//third_party/blink/renderer/modules/launch:*", # 3 errors
++# "//third_party/blink/renderer/modules/manifest:*", # 2 errors
++# "//third_party/blink/renderer/modules/media_capabilities:*", # 5 errors
++# "//third_party/blink/renderer/modules/media_controls:*", # 31 errors
++# "//third_party/blink/renderer/modules/mediacapturefromelement:*", # 14 errors
++# "//third_party/blink/renderer/modules/mediarecorder:*", # 1 error
++# "//third_party/blink/renderer/modules/mediastream:*", # 29 errors
++# "//third_party/blink/renderer/modules/native_file_system:*", # 2 errors
++# "//third_party/blink/renderer/modules/nfc:*", # 2 errors
++# "//third_party/blink/renderer/modules/notifications:*", # 5 errors
++# "//third_party/blink/renderer/modules/payments/goods:*", # 1 error
++# "//third_party/blink/renderer/modules/payments:*", # 22 errors
++# "//third_party/blink/renderer/modules/peerconnection:*", # 43 errors
++# "//third_party/blink/renderer/modules/push_messaging:*", # 12 errors
++# "//third_party/blink/renderer/modules/quota:*", # 1 error
++# "//third_party/blink/renderer/modules/remoteplayback:*", # 3 errors
++# "//third_party/blink/renderer/modules/serial:*", # 1 error
++# "//third_party/blink/renderer/modules/service_worker:*", # 23 errors
++# "//third_party/blink/renderer/modules/shapedetection:*", # 4 errors
++# "//third_party/blink/renderer/modules/srcobject:*", # 1 error
++# "//third_party/blink/renderer/modules/storage:*", # 3 errors
++# "//third_party/blink/renderer/modules/wake_lock:*", # 1 error
++# "//third_party/blink/renderer/modules/webaudio:*", # 5 errors
++# "//third_party/blink/renderer/modules/webcodecs:*", # 13 errors
++# "//third_party/blink/renderer/modules/webgl:*", # 3 errors
++# "//third_party/blink/renderer/modules/webgpu:*", # 6 errors
++# "//third_party/blink/renderer/modules/webmidi:*", # 1 error
++# "//third_party/blink/renderer/modules/webtransport:*", # 16 errors
++# "//third_party/blink/renderer/modules/worklet:*", # 2 errors
++# "//third_party/blink/renderer/modules/xr:*", # 13 errors
++# "//third_party/blink/renderer/modules:*", # 321 errors
++# "//third_party/blink/renderer/platform/blob:*", # 16 errors
++# "//third_party/blink/renderer/platform/heap:*", # 65 errors
++# "//third_party/blink/renderer/platform/instrumentation:*", # 13 errors
++# "//third_party/blink/renderer/platform/loader:*", # 180 errors
++# "//third_party/blink/renderer/platform/network:*", # 15 errors
++# "//third_party/blink/renderer/platform/scheduler:*", # 45 errors
++# "//third_party/blink/renderer/platform/wtf:*", # 2 errors
++# "//third_party/blink/renderer/platform:*", # 72 errors
++#
++# "//third_party/breakpad:*", # 34 errors
++# "//third_party/ced/*",
++# "//third_party/crashpad/crashpad/client:*", # 1 error
++# "//third_party/crashpad/crashpad/compat:*", # 2 errors
++# "//third_party/crashpad/crashpad/snapshot:*", # 1 error
++# "//third_party/crashpad/crashpad/test:*", # 2 errors
++# "//third_party/crashpad/crashpad/util:*", # 2 errors
++# "//third_party/dav1d:*", # 95 errors
++# "//third_party/ffmpeg:*", # 1 error
++# "//third_party/icu/*",
++# "//third_party/libvpx:*", # 164 errors
++# "//third_party/libwebp:*", # 80 errors, https://crbug.com/800762
++# "//third_party/openscreen/src/cast/common:*", # 4 errors
++# "//third_party/openscreen/src/cast/receiver:*", # 1 error
++# "//third_party/openscreen/src/cast/streaming:*", # 66 errors
++# "//third_party/openscreen/src/discovery:*", # 36 errors
++# "//third_party/openscreen/src/osp/impl/quic:*", # 16 errors
++# "//third_party/openscreen/src/osp/msgs:*", # 5 errors
++# "//third_party/openscreen/src/osp/public:*", # 1 error
++# "//third_party/openscreen/src/osp:*", # 13 errors
++# "//third_party/openscreen/src/util:*", # 29 errors
++# "//third_party/pdfium/samples:*", # 1 error
++# "//third_party/pdfium/third_party:*", # 2 errors
++# "//third_party/pdfium:*", # 1 error
++#
++# # //v8/*, https://crbug.com/v8/7330
++# "//v8/src/inspector:*", # 20 errors
++# "//v8/test/cctest:*", # 26 errors
++# "//v8/test/unittests:*", # 11 errors
++# "//v8/test/wasm-api-tests:*", # 13 errors
++# "//v8/third_party/inspector_protocol:*", # 2 errors
++# "//v8/tools/debug_helper:*", # 9 errors
++# "//v8/tools/v8windbg:*", # 2 errors
++# "//v8:*", # 1871 errors
++#]
+
+ # These are the list of GN files that run exec_script. This whitelist exists
+ # to force additional review for new uses of exec_script, which is strongly
diff --git a/www-client/chromium/files/chromium-renderer-std-nullptr-83.patch b/www-client/chromium/files/chromium-renderer-std-nullptr-83.patch
new file mode 100644
index 0000000..f95916e
--- /dev/null
+++ b/www-client/chromium/files/chromium-renderer-std-nullptr-83.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
+index 07cae22f1..7871f557d 100644
+--- a/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
++++ b/third_party/blink/renderer/platform/bindings/v8_set_return_value.h
+@@ -51,7 +51,7 @@ void V8SetReturnValue(const CallbackInfo& info, const v8::Local<S> value) {
+
+ // nullptr
+ template <typename CallbackInfo>
+-void V8SetReturnValue(const CallbackInfo& info, nullptr_t) {
++void V8SetReturnValue(const CallbackInfo& info, std::nullptr_t) {
+ info.GetReturnValue().SetNull();
+ }
+
diff --git a/www-client/chromium/files/chromium-revert-crrev-2147485-84.patch b/www-client/chromium/files/chromium-revert-crrev-2147485-84.patch
new file mode 100644
index 0000000..3c6e2b1
--- /dev/null
+++ b/www-client/chromium/files/chromium-revert-crrev-2147485-84.patch
@@ -0,0 +1,369 @@
+diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc
+index b1821434b..929b63ab8 100644
+--- a/content/browser/devtools/protocol/page_handler.cc
++++ b/content/browser/devtools/protocol/page_handler.cc
+@@ -961,14 +961,14 @@ Response PageHandler::SetDownloadBehavior(const std::string& behavior,
+
+ void PageHandler::GetAppManifest(
+ std::unique_ptr<GetAppManifestCallback> callback) {
+- if (!host_) {
++ WebContentsImpl* web_contents = GetWebContents();
++ if (!web_contents || !web_contents->GetManifestManagerHost()) {
+ callback->sendFailure(Response::ServerError("Cannot retrieve manifest"));
+ return;
+ }
+- ManifestManagerHost::GetOrCreateForCurrentDocument(host_->GetMainFrame())
+- ->RequestManifestDebugInfo(base::BindOnce(&PageHandler::GotManifest,
+- weak_factory_.GetWeakPtr(),
+- std::move(callback)));
++ web_contents->GetManifestManagerHost()->RequestManifestDebugInfo(
++ base::BindOnce(&PageHandler::GotManifest, weak_factory_.GetWeakPtr(),
++ std::move(callback)));
+ }
+
+ WebContentsImpl* PageHandler::GetWebContents() {
+diff --git a/content/browser/frame_host/render_document_host_user_data_browsertest.cc b/content/browser/frame_host/render_document_host_user_data_browsertest.cc
+index 09dff7842..290e5509b 100644
+--- a/content/browser/frame_host/render_document_host_user_data_browsertest.cc
++++ b/content/browser/frame_host/render_document_host_user_data_browsertest.cc
+@@ -88,7 +88,7 @@ class RenderDocumentHostUserDataTest : public ContentBrowserTest {
+
+ // Test basic functionality of RenderDocumentHostUserData.
+ IN_PROC_BROWSER_TEST_F(RenderDocumentHostUserDataTest,
+- GetCreateAndDeleteForCurrentDocument) {
++ GetAndCreateForCurrentDocument) {
+ ASSERT_TRUE(embedded_test_server()->Start());
+ GURL url_a(embedded_test_server()->GetURL("a.com", "/title1.html"));
+
+@@ -104,14 +104,8 @@ IN_PROC_BROWSER_TEST_F(RenderDocumentHostUserDataTest,
+ // 3) Create Data and check that GetForCurrentDocument shouldn't return null
+ // now.
+ Data::CreateForCurrentDocument(rfh_a);
+- base::WeakPtr<Data> created_data =
+- Data::GetForCurrentDocument(rfh_a)->GetWeakPtr();
+- EXPECT_TRUE(created_data);
+-
+- // 4) Delete Data and check that GetForCurrentDocument should return null.
+- Data::DeleteForCurrentDocument(rfh_a);
+- EXPECT_FALSE(created_data);
+- EXPECT_FALSE(Data::GetForCurrentDocument(rfh_a));
++ data = Data::GetForCurrentDocument(rfh_a);
++ EXPECT_TRUE(data);
+ }
+
+ // Tests that RenderDocumentHostUserData objects are different for each
+diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
+index 23bc92faa..e95952a01 100644
+--- a/content/browser/frame_host/render_frame_host_impl.cc
++++ b/content/browser/frame_host/render_frame_host_impl.cc
+@@ -75,7 +75,6 @@
+ #include "content/browser/loader/navigation_url_loader_impl.h"
+ #include "content/browser/loader/prefetch_url_loader_service.h"
+ #include "content/browser/log_console_message.h"
+-#include "content/browser/manifest/manifest_manager_host.h"
+ #include "content/browser/media/capture/audio_mirroring_manager.h"
+ #include "content/browser/media/media_interface_proxy.h"
+ #include "content/browser/media/webaudio/audio_context_manager_impl.h"
+@@ -6146,15 +6145,6 @@ void RenderFrameHostImpl::SetUpMojoIfNeeded() {
+ std::make_unique<ActiveURLMessageFilter>(impl));
+ },
+ base::Unretained(this)));
+-
+- associated_registry_->AddInterface(base::BindRepeating(
+- [](RenderFrameHostImpl* impl,
+- mojo::PendingAssociatedReceiver<
+- blink::mojom::ManifestUrlChangeObserver> receiver) {
+- ManifestManagerHost::GetOrCreateForCurrentDocument(impl)
+- ->BindObserver(std::move(receiver));
+- },
+- base::Unretained(this)));
+ }
+
+ associated_registry_->AddInterface(base::BindRepeating(
+diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
+index bfd421386..2bba134e0 100644
+--- a/content/browser/frame_host/render_frame_host_impl.h
++++ b/content/browser/frame_host/render_frame_host_impl.h
+@@ -1595,10 +1595,6 @@ class CONTENT_EXPORT RenderFrameHostImpl
+ document_associated_data_.SetUserData(key, std::move(data));
+ }
+
+- void RemoveRenderDocumentHostUserData(const void* key) {
+- document_associated_data_.RemoveUserData(key);
+- }
+-
+ // Returns the child RenderFrameHostImpl if |child_frame_routing_id| is an
+ // immediate child of this FrameTreeNode. |child_frame_routing_id| is
+ // considered untrusted, so the renderer process is killed if it refers to a
+diff --git a/content/browser/manifest/manifest_manager_host.cc b/content/browser/manifest/manifest_manager_host.cc
+index 68ea016c6..b063e0d1e 100644
+--- a/content/browser/manifest/manifest_manager_host.cc
++++ b/content/browser/manifest/manifest_manager_host.cc
+@@ -9,34 +9,25 @@
+ #include "base/bind.h"
+ #include "content/browser/web_contents/web_contents_impl.h"
+ #include "content/public/browser/render_frame_host.h"
++#include "content/public/browser/web_contents.h"
+ #include "services/service_manager/public/cpp/interface_provider.h"
+ #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
+ #include "third_party/blink/public/common/manifest/manifest.h"
+
+ namespace content {
+
+-ManifestManagerHost::ManifestManagerHost(RenderFrameHost* render_frame_host)
+- : manifest_manager_frame_(render_frame_host) {
+- // Check that |manifest_manager_frame_| is a main frame.
+- DCHECK(!manifest_manager_frame_->GetParent());
+-}
++ManifestManagerHost::ManifestManagerHost(WebContents* web_contents)
++ : WebContentsObserver(web_contents),
++ manifest_url_change_observer_receivers_(web_contents, this) {}
+
+ ManifestManagerHost::~ManifestManagerHost() {
+ OnConnectionError();
+ }
+
+-void ManifestManagerHost::BindObserver(
+- mojo::PendingAssociatedReceiver<blink::mojom::ManifestUrlChangeObserver>
+- receiver) {
+- manifest_url_change_observer_receiver_.Bind(std::move(receiver));
+-}
+-
+-ManifestManagerHost* ManifestManagerHost::GetOrCreateForCurrentDocument(
+- RenderFrameHostImpl* rfh) {
+- DCHECK(rfh->is_main_frame());
+- if (!GetForCurrentDocument(rfh))
+- CreateForCurrentDocument(rfh);
+- return GetForCurrentDocument(rfh);
++void ManifestManagerHost::RenderFrameDeleted(
++ RenderFrameHost* render_frame_host) {
++ if (render_frame_host == manifest_manager_frame_)
++ OnConnectionError();
+ }
+
+ void ManifestManagerHost::GetManifest(GetManifestCallback callback) {
+@@ -54,7 +45,11 @@ void ManifestManagerHost::RequestManifestDebugInfo(
+ }
+
+ blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() {
++ if (manifest_manager_frame_ != web_contents()->GetMainFrame())
++ OnConnectionError();
++
+ if (!manifest_manager_) {
++ manifest_manager_frame_ = web_contents()->GetMainFrame();
+ manifest_manager_frame_->GetRemoteInterfaces()->GetInterface(
+ manifest_manager_.BindNewPipeAndPassReceiver());
+ manifest_manager_.set_disconnect_handler(base::BindOnce(
+@@ -64,6 +59,8 @@ blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() {
+ }
+
+ void ManifestManagerHost::OnConnectionError() {
++ manifest_manager_frame_ = nullptr;
++ manifest_manager_.reset();
+ std::vector<GetManifestCallback> callbacks;
+ for (CallbackMap::iterator it(&callbacks_); !it.IsAtEnd(); it.Advance()) {
+ callbacks.push_back(std::move(*it.GetCurrentValue()));
+@@ -71,10 +68,6 @@ void ManifestManagerHost::OnConnectionError() {
+ callbacks_.Clear();
+ for (auto& callback : callbacks)
+ std::move(callback).Run(GURL(), blink::Manifest());
+-
+- if (GetForCurrentDocument(manifest_manager_frame_)) {
+- DeleteForCurrentDocument(manifest_manager_frame_);
+- }
+ }
+
+ void ManifestManagerHost::OnRequestManifestResponse(
+@@ -88,16 +81,12 @@ void ManifestManagerHost::OnRequestManifestResponse(
+
+ void ManifestManagerHost::ManifestUrlChanged(
+ const base::Optional<GURL>& manifest_url) {
+- if (!manifest_manager_frame_->IsCurrent())
++ if (manifest_url_change_observer_receivers_.GetCurrentTargetFrame() !=
++ web_contents()->GetMainFrame()) {
+ return;
+-
+- // TODO(yuzus): |NotifyManifestUrlChanged| should start taking a
+- // |RenderFrameHost| parameter.
+- WebContents* web_contents =
+- WebContents::FromRenderFrameHost(manifest_manager_frame_);
+- static_cast<WebContentsImpl*>(web_contents)
++ }
++ static_cast<WebContentsImpl*>(web_contents())
+ ->NotifyManifestUrlChanged(manifest_url);
+ }
+
+-RENDER_DOCUMENT_HOST_USER_DATA_KEY_IMPL(ManifestManagerHost)
+ } // namespace content
+diff --git a/content/browser/manifest/manifest_manager_host.h b/content/browser/manifest/manifest_manager_host.h
+index 57f51dc9f..3dc0bbf6e 100644
+--- a/content/browser/manifest/manifest_manager_host.h
++++ b/content/browser/manifest/manifest_manager_host.h
+@@ -8,8 +8,8 @@
+ #include "base/callback_forward.h"
+ #include "base/containers/id_map.h"
+ #include "base/macros.h"
+-#include "content/public/browser/render_document_host_user_data.h"
+-#include "mojo/public/cpp/bindings/associated_receiver.h"
++#include "content/public/browser/web_contents_observer.h"
++#include "content/public/browser/web_contents_receiver_set.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+ #include "third_party/blink/public/mojom/manifest/manifest_manager.mojom.h"
+ #include "third_party/blink/public/mojom/manifest/manifest_observer.mojom.h"
+@@ -21,16 +21,16 @@ struct Manifest;
+ namespace content {
+
+ class RenderFrameHost;
+-class RenderFrameHostImpl;
++class WebContents;
+
+ // ManifestManagerHost is a helper class that allows callers to get the Manifest
+ // associated with the main frame of the observed WebContents. It handles the
+ // IPC messaging with the child process.
+ // TODO(mlamouri): keep a cached version and a dirty bit here.
+-class ManifestManagerHost
+- : public RenderDocumentHostUserData<ManifestManagerHost>,
+- public blink::mojom::ManifestUrlChangeObserver {
++class ManifestManagerHost : public WebContentsObserver,
++ public blink::mojom::ManifestUrlChangeObserver {
+ public:
++ explicit ManifestManagerHost(WebContents* web_contents);
+ ~ManifestManagerHost() override;
+
+ using GetManifestCallback =
+@@ -44,18 +44,10 @@ class ManifestManagerHost
+ void RequestManifestDebugInfo(
+ blink::mojom::ManifestManager::RequestManifestDebugInfoCallback callback);
+
+- void BindObserver(
+- mojo::PendingAssociatedReceiver<blink::mojom::ManifestUrlChangeObserver>
+- receiver);
+-
+- static ManifestManagerHost* GetOrCreateForCurrentDocument(
+- RenderFrameHostImpl* rfh);
++ // WebContentsObserver
++ void RenderFrameDeleted(RenderFrameHost* render_frame_host) override;
+
+ private:
+- explicit ManifestManagerHost(RenderFrameHost* render_frame_host);
+-
+- friend class RenderDocumentHostUserData<ManifestManagerHost>;
+-
+ using CallbackMap = base::IDMap<std::unique_ptr<GetManifestCallback>>;
+
+ blink::mojom::ManifestManager& GetManifestManager();
+@@ -68,14 +60,13 @@ class ManifestManagerHost
+ // blink::mojom::ManifestUrlChangeObserver:
+ void ManifestUrlChanged(const base::Optional<GURL>& manifest_url) override;
+
+- RenderFrameHost* manifest_manager_frame_;
++ RenderFrameHost* manifest_manager_frame_ = nullptr;
+ mojo::Remote<blink::mojom::ManifestManager> manifest_manager_;
+ CallbackMap callbacks_;
+
+- mojo::AssociatedReceiver<blink::mojom::ManifestUrlChangeObserver>
+- manifest_url_change_observer_receiver_{this};
++ WebContentsFrameReceiverSet<blink::mojom::ManifestUrlChangeObserver>
++ manifest_url_change_observer_receivers_;
+
+- RENDER_DOCUMENT_HOST_USER_DATA_KEY_DECL();
+ DISALLOW_COPY_AND_ASSIGN(ManifestManagerHost);
+ };
+
+diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
+index 024415bb0..115f480ce 100644
+--- a/content/browser/web_contents/web_contents_impl.cc
++++ b/content/browser/web_contents/web_contents_impl.cc
+@@ -2122,6 +2122,8 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
+
+ screen_orientation_provider_.reset(new ScreenOrientationProvider(this));
+
++ manifest_manager_host_.reset(new ManifestManagerHost(this));
++
+ #if defined(OS_ANDROID)
+ DateTimeChooserAndroid::CreateForWebContents(this);
+ #endif
+@@ -4202,10 +4204,7 @@ bool WebContentsImpl::WasEverAudible() {
+ }
+
+ void WebContentsImpl::GetManifest(GetManifestCallback callback) {
+- // TODO(yuzus, 1061899): Move this function to RenderFrameHostImpl.
+- ManifestManagerHost* manifest_manager_host =
+- ManifestManagerHost::GetOrCreateForCurrentDocument(GetMainFrame());
+- manifest_manager_host->GetManifest(std::move(callback));
++ manifest_manager_host_->GetManifest(std::move(callback));
+ }
+
+ void WebContentsImpl::ExitFullscreen(bool will_cause_resize) {
+diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
+index 59510b1f8..e86be96fc 100644
+--- a/content/browser/web_contents/web_contents_impl.h
++++ b/content/browser/web_contents/web_contents_impl.h
+@@ -102,6 +102,7 @@ class DisplayCutoutHostImpl;
+ class FindRequestManager;
+ class JavaScriptDialogManager;
+ class JavaScriptDialogNavigationDeferrer;
++class ManifestManagerHost;
+ class MediaWebContentsObserver;
+ class NFCHost;
+ class PluginContentOriginAllowlist;
+@@ -311,6 +312,10 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
+
+ void NotifyManifestUrlChanged(const base::Optional<GURL>& manifest_url);
+
++ ManifestManagerHost* GetManifestManagerHost() const {
++ return manifest_manager_host_.get();
++ }
++
+ #if defined(OS_ANDROID)
+ void SetMainFrameImportance(ChildProcessImportance importance);
+ #endif
+@@ -1897,6 +1902,8 @@ class CONTENT_EXPORT WebContentsImpl : public WebContents,
+
+ std::unique_ptr<ScreenOrientationProvider> screen_orientation_provider_;
+
++ std::unique_ptr<ManifestManagerHost> manifest_manager_host_;
++
+ // The accessibility mode for all frames. This is queried when each frame
+ // is created, and broadcast to all frames when it changes.
+ ui::AXMode accessibility_mode_;
+diff --git a/content/public/browser/render_document_host_user_data.cc b/content/public/browser/render_document_host_user_data.cc
+index 3b58bf8a3..b1b385455 100644
+--- a/content/public/browser/render_document_host_user_data.cc
++++ b/content/public/browser/render_document_host_user_data.cc
+@@ -23,8 +23,4 @@ void SetRenderDocumentHostUserData(
+ key, std::move(data));
+ }
+
+-void RemoveRenderDocumentHostUserData(RenderFrameHost* rfh, const void* key) {
+- static_cast<RenderFrameHostImpl*>(rfh)->RemoveRenderDocumentHostUserData(key);
+-}
+-
+ } // namespace content
+diff --git a/content/public/browser/render_document_host_user_data.h b/content/public/browser/render_document_host_user_data.h
+index a138fd60a..f55f24f60 100644
+--- a/content/public/browser/render_document_host_user_data.h
++++ b/content/public/browser/render_document_host_user_data.h
+@@ -22,9 +22,6 @@ CONTENT_EXPORT void SetRenderDocumentHostUserData(
+ const void* key,
+ std::unique_ptr<base::SupportsUserData::Data> data);
+
+-CONTENT_EXPORT void RemoveRenderDocumentHostUserData(RenderFrameHost* rfh,
+- const void* key);
+-
+ // This class approximates the lifetime of a single blink::Document in the
+ // browser process. At the moment RenderFrameHost can correspond to multiple
+ // blink::Documents (when RenderFrameHost is reused for same-process
+@@ -85,12 +82,6 @@ class RenderDocumentHostUserData : public base::SupportsUserData::Data {
+ return static_cast<T*>(GetRenderDocumentHostUserData(rfh, UserDataKey()));
+ }
+
+- static void DeleteForCurrentDocument(RenderFrameHost* rfh) {
+- DCHECK(rfh);
+- DCHECK(GetForCurrentDocument(rfh));
+- RemoveRenderDocumentHostUserData(rfh, UserDataKey());
+- }
+-
+ static const void* UserDataKey() { return &T::kUserDataKey; }
+ };
+
diff --git a/www-client/chromium/files/chromium-revert-e7963c4-78.patch b/www-client/chromium/files/chromium-revert-e7963c4-78.patch
new file mode 100644
index 0000000..fe7e1a6
--- /dev/null
+++ b/www-client/chromium/files/chromium-revert-e7963c4-78.patch
@@ -0,0 +1,335 @@
+diff --git a/chrome/test/chromedriver/client/chromedriver.py b/chrome/test/chromedriver/client/chromedriver.py
+index 74b780e5f..8bd1cc004 100644
+--- a/chrome/test/chromedriver/client/chromedriver.py
++++ b/chrome/test/chromedriver/client/chromedriver.py
+@@ -653,7 +653,3 @@ class ChromeDriver(object):
+ if signCount is not None:
+ options['signCount'] = signCount
+ return self.ExecuteCommand(Command.ADD_CREDENTIAL, options)
+-
+- def GetCredentials(self, authenticatorId):
+- params = {'authenticatorId': authenticatorId}
+- return self.ExecuteCommand(Command.GET_CREDENTIALS, params)
+diff --git a/chrome/test/chromedriver/client/command_executor.py b/chrome/test/chromedriver/client/command_executor.py
+index 2286d839f..de27e1a3c 100644
+--- a/chrome/test/chromedriver/client/command_executor.py
++++ b/chrome/test/chromedriver/client/command_executor.py
+@@ -176,9 +176,6 @@ class Command(object):
+ ADD_CREDENTIAL = (
+ _Method.POST,
+ '/session/:sessionId/webauthn/authenticator/:authenticatorId/credential')
+- GET_CREDENTIALS = (
+- _Method.GET,
+- '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials')
+
+ # Custom Chrome commands.
+ IS_LOADING = (_Method.GET, '/session/:sessionId/is_loading')
+diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc
+index 737e34dce..0c9a00119 100644
+--- a/chrome/test/chromedriver/server/http_handler.cc
++++ b/chrome/test/chromedriver/server/http_handler.cc
+@@ -764,14 +764,6 @@ HttpHandler::HttpHandler(
+ "AddCredential",
+ base::BindRepeating(&ExecuteWebAuthnCommand,
+ base::BindRepeating(&ExecuteAddCredential)))),
+- CommandMapping(
+- kGet,
+- "session/:sessionId/webauthn/authenticator/:authenticatorId/"
+- "credentials",
+- WrapToCommand("GetCredentials",
+- base::BindRepeating(
+- &ExecuteWebAuthnCommand,
+- base::BindRepeating(&ExecuteGetCredentials)))),
+
+ //
+ // Non-standard extension commands
+diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py
+index 15e986899..d59650004 100755
+--- a/chrome/test/chromedriver/test/run_py_tests.py
++++ b/chrome/test/chromedriver/test/run_py_tests.py
+@@ -226,7 +226,6 @@ _ANDROID_NEGATIVE_FILTER['chrome'] = (
+ 'ChromeDriverSecureContextTest.testAddVirtualAuthenticator',
+ 'ChromeDriverSecureContextTest.testRemoveVirtualAuthenticator',
+ 'ChromeDriverSecureContextTest.testAddCredential',
+- 'ChromeDriverSecureContextTest.testGetCredentials',
+ ]
+ )
+ _ANDROID_NEGATIVE_FILTER['chrome_stable'] = (
+@@ -2018,11 +2017,6 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
+
+ # Tests that require a secure context.
+ class ChromeDriverSecureContextTest(ChromeDriverBaseTest):
+- # The example attestation private key from the U2F spec at
+- # https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-raw-message-formats-v1.2-ps-20170411.html#registration-example
+- # PKCS.8 encoded without encryption, as a base64url string.
+- privateKey = "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8_zMDQDYAxlU-Qhk1Dwkf0v18GZca1DMF3SaJ9HPdmShRANCAASNYX5lyVCOZLzFZzrIKmeZ2jwURmgsJYxGP__fWN_S-j5sN4tT15XEpN_7QZnt14YvI6uvAgO0uJEboFaZlOEB"
+-
+ @staticmethod
+ def GlobalSetUp():
+ cert_path = os.path.join(chrome_paths.GetTestData(),
+@@ -2039,21 +2033,6 @@ class ChromeDriverSecureContextTest(ChromeDriverBaseTest):
+ return ChromeDriverSecureContextTest._https_server.GetUrl(
+ host) + file_path
+
+- # Encodes a string in URL-safe base64 with no padding.
+- @staticmethod
+- def URLSafeBase64Encode(string):
+- encoded = base64.urlsafe_b64encode(string)
+- while encoded[-1] == "=":
+- encoded = encoded[0:-1]
+- return encoded
+-
+- # Decodes a base64 string with no padding.
+- @staticmethod
+- def UrlSafeBase64Decode(string):
+- string = string.encode("utf-8")
+- string += "=" * (4 - len(string) % 4)
+- return base64.urlsafe_b64decode(string)
+-
+ def setUp(self):
+ self._driver = self.CreateDriver(
+ chrome_switches=['host-resolver-rules=MAP * 127.0.0.1'])
+@@ -2101,6 +2080,10 @@ class ChromeDriverSecureContextTest(ChromeDriverBaseTest):
+ self._driver.RemoveVirtualAuthenticator, response['authenticatorId'])
+
+ def testAddCredential(self):
++ # The example attestation private key from the U2F spec at
++ # https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-raw-message-formats-v1.2-ps-20170411.html#registration-example
++ # PKCS.8 encoded without encryption.
++ privateKey = "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg8/zMDQDYAxlU+Qhk1Dwkf0v18GZca1DMF3SaJ9HPdmShRANCAASNYX5lyVCOZLzFZzrIKmeZ2jwURmgsJYxGP//fWN/S+j5sN4tT15XEpN/7QZnt14YvI6uvAgO0uJEboFaZlOEB"
+
+ script = """
+ let done = arguments[0];
+@@ -2123,78 +2106,16 @@ class ChromeDriverSecureContextTest(ChromeDriverBaseTest):
+ # Register a credential and try authenticating with it.
+ self._driver.AddCredential(
+ authenticatorId = authenticatorId,
+- credentialId = self.URLSafeBase64Encode("cred-1"),
++ credentialId = base64.b64encode("cred-1"),
+ isResidentCredential=False,
+ rpId="chromedriver.test",
+- privateKey=self.privateKey,
++ privateKey=privateKey,
+ signCount=1,
+ )
+
+ result = self._driver.ExecuteAsyncScript(script)
+ self.assertEquals('OK', result['status'])
+
+- def testAddCredentialBase64Errors(self):
+- # Test that AddCredential checks UrlBase64 parameteres.
+- self._driver.Load(self.GetHttpsUrlForFile(
+- '/chromedriver/webauthn_test.html', 'chromedriver.test'))
+-
+- authenticatorId = self._driver.AddVirtualAuthenticator(
+- protocol = 'ctap2',
+- transport = 'usb',
+- hasResidentKey = False,
+- hasUserVerification = False,
+- )['authenticatorId']
+-
+- # Try adding a credentialId that is encoded in vanilla base64.
+- self.assertRaisesRegexp(
+- chromedriver.InvalidArgument,
+- 'credentialId must be a base64url encoded string',
+- self._driver.AddCredential, authenticatorId, '_0n+wWqg=',
+- False, "chromedriver.test", self.privateKey, None, 1,
+- )
+-
+- # Try adding a credentialId that is not a string.
+- self.assertRaisesRegexp(
+- chromedriver.InvalidArgument,
+- 'credentialId must be a base64url encoded string',
+- self._driver.AddCredential, authenticatorId, 1,
+- False, "chromedriver.test", self.privateKey, None, 1,
+- )
+-
+- def testGetCredentials(self):
+- script = """
+- let done = arguments[0];
+- registerCredential({
+- authenticatorSelection: {
+- requireResidentKey: true,
+- },
+- }).then(done);
+- """
+- self._driver.Load(self.GetHttpsUrlForFile(
+- '/chromedriver/webauthn_test.html', 'chromedriver.test'))
+- authenticatorId = self._driver.AddVirtualAuthenticator(
+- protocol = 'ctap2',
+- transport = 'usb',
+- hasResidentKey = True,
+- hasUserVerification = True,
+- )['authenticatorId']
+-
+- # Register a credential via the webauthn API.
+- result = self._driver.ExecuteAsyncScript(script)
+- self.assertEquals('OK', result['status'])
+- credentialId = result['credential']['id']
+-
+- # GetCredentials should return the credential that was just created.
+- credentials = self._driver.GetCredentials(authenticatorId)['credentials']
+- self.assertEquals(1, len(credentials))
+- self.assertEquals(credentialId, credentials[0]['credentialId'])
+- self.assertEquals(True, credentials[0]['isResidentCredential'])
+- self.assertEquals('chromedriver.test', credentials[0]['rpId'])
+- self.assertEquals(chr(1),
+- self.UrlSafeBase64Decode(credentials[0]['userHandle']))
+- self.assertEquals(1, credentials[0]['signCount'])
+- self.assertTrue(credentials[0]['privateKey'])
+-
+ # Tests in the following class are expected to be moved to ChromeDriverTest
+ # class when we no longer support the legacy mode.
+ class ChromeDriverW3cTest(ChromeDriverBaseTestWithWebServer):
+diff --git a/chrome/test/chromedriver/webauthn_commands.cc b/chrome/test/chromedriver/webauthn_commands.cc
+index b0d4d62bc..32c8a4a61 100644
+--- a/chrome/test/chromedriver/webauthn_commands.cc
++++ b/chrome/test/chromedriver/webauthn_commands.cc
+@@ -6,8 +6,6 @@
+
+ #include <utility>
+
+-#include "base/base64.h"
+-#include "base/base64url.h"
+ #include "base/callback.h"
+ #include "base/containers/flat_map.h"
+ #include "base/values.h"
+@@ -17,8 +15,6 @@
+
+ namespace {
+
+-static constexpr char kBase64UrlError[] = " must be a base64url encoded string";
+-
+ // Creates a base::DictionaryValue by cloning the parameters specified by
+ // |mapping| from |params|.
+ base::DictionaryValue MapParams(
+@@ -33,48 +29,6 @@ base::DictionaryValue MapParams(
+ return options;
+ }
+
+-// Converts the string |keys| in |params| from base64url to base64. Returns a
+-// status error if conversion of one of the keys failed.
+-Status ConvertBase64UrlToBase64(base::Value* params,
+- const std::vector<const std::string> keys) {
+- for (const std::string key : keys) {
+- base::Value* maybe_value = params->FindKey(key);
+- if (!maybe_value)
+- continue;
+-
+- if (!maybe_value->is_string())
+- return Status(kInvalidArgument, key + kBase64UrlError);
+-
+- std::string& value = maybe_value->GetString();
+- std::string temp;
+- if (!Base64UrlDecode(value, base::Base64UrlDecodePolicy::IGNORE_PADDING,
+- &temp)) {
+- return Status(kInvalidArgument, key + kBase64UrlError);
+- }
+-
+- base::Base64Encode(temp, &value);
+- }
+-
+- return Status(kOk);
+-}
+-
+-// Converts the string |keys| in |params| from base64 to base64url.
+-void ConvertBase64ToBase64Url(base::Value* params,
+- const std::vector<const std::string> keys) {
+- for (const std::string key : keys) {
+- std::string* maybe_value = params->FindStringKey(key);
+- if (!maybe_value)
+- continue;
+-
+- std::string temp;
+- bool result = base::Base64Decode(*maybe_value, &temp);
+- DCHECK(result);
+-
+- base::Base64UrlEncode(temp, base::Base64UrlEncodePolicy::OMIT_PADDING,
+- maybe_value);
+- }
+-}
+-
+ } // namespace
+
+ Status ExecuteWebAuthnCommand(const WebAuthnCommand& command,
+@@ -125,40 +79,18 @@ Status ExecuteRemoveVirtualAuthenticator(WebView* web_view,
+ Status ExecuteAddCredential(WebView* web_view,
+ const base::Value& params,
+ std::unique_ptr<base::Value>* value) {
+- base::DictionaryValue mapped_params = MapParams(
+- {
+- {"authenticatorId", "authenticatorId"},
+- {"credential.credentialId", "credentialId"},
+- {"credential.isResidentCredential", "isResidentCredential"},
+- {"credential.rpId", "rpId"},
+- {"credential.privateKey", "privateKey"},
+- {"credential.userHandle", "userHandle"},
+- {"credential.signCount", "signCount"},
+- },
+- params);
+- Status status =
+- ConvertBase64UrlToBase64(mapped_params.FindKey("credential"),
+- {"credentialId", "privateKey", "userHandle"});
+- if (status.IsError())
+- return status;
+-
+- return web_view->SendCommandAndGetResult("WebAuthn.addCredential",
+- std::move(mapped_params), value);
+-}
+-
+-Status ExecuteGetCredentials(WebView* web_view,
+- const base::Value& params,
+- std::unique_ptr<base::Value>* value) {
+- Status status = web_view->SendCommandAndGetResult(
+- "WebAuthn.getCredentials",
+- MapParams({{"authenticatorId", "authenticatorId"}}, params), value);
+- if (status.IsError())
+- return status;
+-
+- for (base::Value& credential : (*value)->FindKey("credentials")->GetList()) {
+- ConvertBase64ToBase64Url(&credential,
+- {"credentialId", "privateKey", "userHandle"});
+- }
+-
+- return status;
++ return web_view->SendCommandAndGetResult(
++ "WebAuthn.addCredential",
++ MapParams(
++ {
++ {"authenticatorId", "authenticatorId"},
++ {"credential.credentialId", "credentialId"},
++ {"credential.isResidentCredential", "isResidentCredential"},
++ {"credential.rpId", "rpId"},
++ {"credential.privateKey", "privateKey"},
++ {"credential.userHandle", "userHandle"},
++ {"credential.signCount", "signCount"},
++ },
++ params),
++ value);
+ }
+diff --git a/chrome/test/chromedriver/webauthn_commands.h b/chrome/test/chromedriver/webauthn_commands.h
+index dcc278428..fd75ecfed 100644
+--- a/chrome/test/chromedriver/webauthn_commands.h
++++ b/chrome/test/chromedriver/webauthn_commands.h
+@@ -44,9 +44,4 @@ Status ExecuteAddCredential(WebView* web_view,
+ const base::Value& params,
+ std::unique_ptr<base::Value>* value);
+
+-// Retrieve all the credentials stored in an authenticator.
+-Status ExecuteGetCredentials(WebView* web_view,
+- const base::Value& params,
+- std::unique_ptr<base::Value>* value);
+-
+ #endif // CHROME_TEST_CHROMEDRIVER_WEBAUTHN_COMMANDS_H_
+diff --git a/device/fido/virtual_ctap2_device.cc b/device/fido/virtual_ctap2_device.cc
+index 672b61cb5..843bd0f4e 100644
+--- a/device/fido/virtual_ctap2_device.cc
++++ b/device/fido/virtual_ctap2_device.cc
+@@ -864,7 +864,6 @@ base::Optional<CtapDeviceResponseCode> VirtualCtap2Device::OnMakeCredential(
+
+ registration.is_resident = true;
+ registration.user = request.user;
+- registration.rp = request.rp;
+ }
+
+ if (request.cred_protect) {
diff --git a/www-client/chromium/files/chromium-serviceworker-83.patch b/www-client/chromium/files/chromium-serviceworker-83.patch
new file mode 100644
index 0000000..a836e7f
--- /dev/null
+++ b/www-client/chromium/files/chromium-serviceworker-83.patch
@@ -0,0 +1,130 @@
+From 0914a38252f205fc04fa50e858b24fa5f535ab11 Mon Sep 17 00:00:00 2001
+From: Hiroki Nakagawa <nhiroki@chromium.org>
+Date: Wed, 29 Apr 2020 11:46:54 +0900
+Subject: [PATCH] ServiceWorker: Avoid double destruction of ServiceWorkerObjectHost on connection error
+
+This CL avoids the case where ServiceWorkerObjectHost is destroyed twice
+on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built
+with the GCC build toolchain.
+
+> How does the issue happen?
+
+ServiceWorkerObjectHost has a cyclic reference like this:
+
+ServiceWorkerObjectHost
+ --([1] scoped_refptr)--> ServiceWorkerVersion
+ --([2] std::unique_ptr)--> ServiceWorkerProviderHost
+ --([3] std::unique_ptr)--> ServiceWorkerContainerHost
+ --([4] std::unique_ptr)--> ServiceWorkerObjectHost
+
+Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in
+map<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>.
+
+When ServiceWorkerObjectHost::OnConnectionError() is called, the
+function removes the reference [4] from the map, and destroys
+ServiceWorkerObjectHost. If the object host has the last reference [1]
+to ServiceWorkerVersion, the destruction also cuts off the references
+[2] and [3], and destroys ServiceWorkerProviderHost and
+ServiceWorkerContainerHost.
+
+This seems to work well on the Chromium's default toolchain, but not
+work on the GCC toolchain. According to the report, destruction of
+ServiceWorkerContainerHost happens while the map owned by the container
+host is erasing the ServiceWorkerObjectHost, and this results in crash
+due to double destruction of the object host.
+
+I don't know the reason why this happens only on the GCC toolchain, but
+I suspect the order of object destruction on std::map::erase() could be
+different depending on the toolchains.
+
+> How does this CL fix this?
+
+The ideal fix is to redesign the ownership model of
+ServiceWorkerVersion, but it's not feasible in the short term.
+
+Instead, this CL avoids destruction of ServiceWorkerObjectHost on
+std::map::erase(). The new code takes the ownership of the object host
+from the map first, and then erases the entry from the map. This
+separates timings to erase the map entry and to destroy the object host,
+so the crash should no longer happen.
+
+Bug: 1056598
+Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613
+---
+
+diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
+index c631bcd..ff917f8 100644
+--- a/content/browser/service_worker/service_worker_container_host.cc
++++ b/content/browser/service_worker/service_worker_container_host.cc
+@@ -717,6 +717,16 @@
+ int64_t version_id) {
+ DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
+ DCHECK(base::Contains(service_worker_object_hosts_, version_id));
++
++ // ServiceWorkerObjectHost to be deleted may have the last reference to
++ // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost.
++ // If we erase the object host directly from the map, |this| could be deleted
++ // during the map operation and may crash. To avoid the case, we take the
++ // ownership of the object host from the map first, and then erase the entry
++ // from the map. See https://crbug.com/1056598 for details.
++ std::unique_ptr<ServiceWorkerObjectHost> to_be_deleted =
++ std::move(service_worker_object_hosts_[version_id]);
++ DCHECK(to_be_deleted);
+ service_worker_object_hosts_.erase(version_id);
+ }
+
+diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
+index 238cb8b..f60c7a2 100644
+--- a/content/browser/service_worker/service_worker_object_host_unittest.cc
++++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
+@@ -200,6 +200,19 @@
+ return registration_info;
+ }
+
++ void CallOnConnectionError(ServiceWorkerContainerHost* container_host,
++ int64_t version_id) {
++ // ServiceWorkerObjectHost has the last reference to the version.
++ ServiceWorkerObjectHost* object_host =
++ GetServiceWorkerObjectHost(container_host, version_id);
++ EXPECT_TRUE(object_host->version_->HasOneRef());
++
++ // Make sure that OnConnectionError induces destruction of the version and
++ // the object host.
++ object_host->receivers_.Clear();
++ object_host->OnConnectionError();
++ }
++
+ BrowserTaskEnvironment task_environment_;
+ std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
+ scoped_refptr<ServiceWorkerRegistration> registration_;
+@@ -409,5 +422,30 @@
+ events[0]->source_info_for_client->client_type);
+ }
+
++// This is a regression test for https://crbug.com/1056598.
++TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) {
++ const GURL scope("https://www.example.com/");
++ const GURL script_url("https://www.example.com/service_worker.js");
++ Initialize(std::make_unique<EmbeddedWorkerTestHelper>(base::FilePath()));
++ SetUpRegistration(scope, script_url);
++
++ // Create the provider host.
++ ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
++ StartServiceWorker(version_.get()));
++
++ // Set up the case where the last reference to the version is owned by the
++ // service worker object host.
++ ServiceWorkerContainerHost* container_host =
++ version_->provider_host()->container_host();
++ ServiceWorkerVersion* version_rawptr = version_.get();
++ version_ = nullptr;
++ ASSERT_TRUE(version_rawptr->HasOneRef());
++
++ // Simulate the connection error that induces the object host destruction.
++ // This shouldn't crash.
++ CallOnConnectionError(container_host, version_rawptr->version_id());
++ base::RunLoop().RunUntilIdle();
++}
++
+ } // namespace service_worker_object_host_unittest
+ } // namespace content
diff --git a/www-client/chromium/files/chromium-shim_headers.patch b/www-client/chromium/files/chromium-shim_headers.patch
new file mode 100644
index 0000000..9372632
--- /dev/null
+++ b/www-client/chromium/files/chromium-shim_headers.patch
@@ -0,0 +1,48 @@
+From e273172bbafedca36984fc40f4aa6c44b79ac2ef Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Fri, 25 Dec 2020 09:10:32 +0000
+Subject: [PATCH] shim_headers: fix outputs generation
+
+---
+ build/shim_headers.gni | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/build/shim_headers.gni b/build/shim_headers.gni
+index 0900cba..5138647 100644
+--- a/build/shim_headers.gni
++++ b/build/shim_headers.gni
+@@ -6,6 +6,8 @@ template("shim_headers") {
+ action_name = "gen_${target_name}"
+ config_name = "${target_name}_config"
+ shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}"
++ shim_root_path = rebase_path(invoker.root_path)
++ shim_rel_path = rebase_path("${shim_root_path}", rebase_path("//"))
+
+ config(config_name) {
+ include_dirs = [ shim_headers_path ]
+@@ -16,7 +18,7 @@ template("shim_headers") {
+ args = [
+ "--generate",
+ "--headers-root",
+- rebase_path(invoker.root_path),
++ "${shim_root_path}",
+ "--output-directory",
+ rebase_path(shim_headers_path),
+ ]
+@@ -27,9 +29,10 @@ template("shim_headers") {
+ ]
+ }
+ args += invoker.headers
+-
+- outputs = process_file_template(invoker.headers,
+- "${shim_headers_path}/{{source_file_part}}")
++ outputs = []
++ foreach(shim_header, invoker.headers) {
++ outputs += [ "${shim_headers_path}/${shim_rel_path}/" + shim_header ]
++ }
+ }
+
+ group(target_name) {
+--
+2.26.2
+
diff --git a/www-client/chromium/files/chromium-simhash-include-84.patch b/www-client/chromium/files/chromium-simhash-include-84.patch
new file mode 100644
index 0000000..eb77921
--- /dev/null
+++ b/www-client/chromium/files/chromium-simhash-include-84.patch
@@ -0,0 +1,26 @@
+diff --git a/components/federated_learning/sim_hash.cc b/components/federated_learning/sim_hash.cc
+index 3624459f3..9287dbe72 100644
+--- a/components/federated_learning/sim_hash.cc
++++ b/components/federated_learning/sim_hash.cc
+@@ -6,6 +6,7 @@
+
+ #include "base/hash/legacy_hash.h"
+
++#include <cmath>
+ #include <algorithm>
+
+ namespace federated_learning {
+diff --git a/components/federated_learning/sim_hash.h b/components/federated_learning/sim_hash.h
+index 55030d9d2..26087e74e 100644
+--- a/components/federated_learning/sim_hash.h
++++ b/components/federated_learning/sim_hash.h
+@@ -5,7 +5,9 @@
+ #ifndef COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_
+ #define COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_
+
++#include <stdint.h>
+ #include <set>
++#include <string>
+ #include <unordered_set>
+
+ namespace federated_learning {
diff --git a/www-client/chromium/files/chromium-simhash-include-85.patch b/www-client/chromium/files/chromium-simhash-include-85.patch
new file mode 100644
index 0000000..4075548
--- /dev/null
+++ b/www-client/chromium/files/chromium-simhash-include-85.patch
@@ -0,0 +1,15 @@
+diff --git a/components/federated_learning/sim_hash.h b/components/federated_learning/sim_hash.h
+index 55030d9d2..ab7e57132 100644
+--- a/components/federated_learning/sim_hash.h
++++ b/components/federated_learning/sim_hash.h
+@@ -5,7 +5,10 @@
+ #ifndef COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_
+ #define COMPONENTS_FEDERATED_LEARNING_SIM_HASH_H_
+
++#include <stdint.h>
++
+ #include <set>
++#include <string>
+ #include <unordered_set>
+
+ namespace federated_learning {
diff --git a/www-client/chromium/files/chromium-sqrt.patch b/www-client/chromium/files/chromium-sqrt.patch
new file mode 100644
index 0000000..4e391fd
--- /dev/null
+++ b/www-client/chromium/files/chromium-sqrt.patch
@@ -0,0 +1,13 @@
+diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc
+index c868cd54b..ed33c5c18 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;
++ (float)std::sqrt((dark_luminance + 0.05f) * (kWhiteLuminance + 0.05f)) - 0.05f;
+
+ return previous_darkest_color;
+ }
diff --git a/www-client/chromium/files/chromium-std-nullptr-83.patch b/www-client/chromium/files/chromium-std-nullptr-83.patch
new file mode 100644
index 0000000..a2efc76
--- /dev/null
+++ b/www-client/chromium/files/chromium-std-nullptr-83.patch
@@ -0,0 +1,22 @@
+diff --git a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
+index a6b8547f5..5fa03cb35 100644
+--- a/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
++++ b/third_party/blink/renderer/core/typed_arrays/array_buffer_view_helpers.h
+@@ -36,7 +36,7 @@ class NotShared {
+ template <typename U, std::enable_if_t<std::is_base_of<T, U>::value, int> = 0>
+ NotShared(const NotShared<U>& other) : typed_array_(other.Get()) {}
+
+- explicit NotShared(nullptr_t) {}
++ explicit NotShared(std::nullptr_t) {}
+ explicit NotShared(T* typed_array) : typed_array_(typed_array) {
+ DCHECK(!typed_array || !typed_array->IsShared());
+ }
+@@ -95,7 +95,7 @@ class MaybeShared {
+ template <typename U, std::enable_if_t<std::is_base_of<T, U>::value, int> = 0>
+ MaybeShared(const MaybeShared<U>& other) : typed_array_(other.Get()) {}
+
+- explicit MaybeShared(nullptr_t) {}
++ explicit MaybeShared(std::nullptr_t) {}
+ // [AllowShared] array buffer view may be a view of non-shared array buffer,
+ // so we don't check if the buffer is SharedArrayBuffer or not.
+ // https://heycam.github.io/webidl/#AllowShared
diff --git a/www-client/chromium/files/chromium-stdint.patch b/www-client/chromium/files/chromium-stdint.patch
new file mode 100644
index 0000000..8774439
--- /dev/null
+++ b/www-client/chromium/files/chromium-stdint.patch
@@ -0,0 +1,21 @@
+From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela@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/www-client/chromium/files/chromium-stdset.patch b/www-client/chromium/files/chromium-stdset.patch
new file mode 100644
index 0000000..6ac0346
--- /dev/null
+++ b/www-client/chromium/files/chromium-stdset.patch
@@ -0,0 +1,13 @@
+diff --git a/components/language/core/browser/language_prefs.cc b/components/language/core/browser/language_prefs.cc
+index 317aa1d82..df258ca62 100644
+--- a/components/language/core/browser/language_prefs.cc
++++ b/components/language/core/browser/language_prefs.cc
+@@ -85,7 +85,7 @@ void LanguagePrefs::ResetEmptyFluentLanguagesToDefault() {
+ }
+
+ base::Value LanguagePrefs::GetDefaultFluentLanguages() {
+- std::set<const std::string> languages;
++ std::set<std::string> languages;
+ #if defined(OS_CHROMEOS)
+ // Preferred languages.
+ std::string language = language::kFallbackInputMethodLocale;
diff --git a/www-client/chromium/files/chromium-string_view-79.patch b/www-client/chromium/files/chromium-string_view-79.patch
new file mode 100644
index 0000000..11ad56d
--- /dev/null
+++ b/www-client/chromium/files/chromium-string_view-79.patch
@@ -0,0 +1,78 @@
+diff --git a/components/safe_browsing/browser/threat_details.cc b/components/safe_browsing/browser/threat_details.cc
+index 05bcd3ff3..5149e911d 100644
+--- a/components/safe_browsing/browser/threat_details.cc
++++ b/components/safe_browsing/browser/threat_details.cc
+@@ -8,7 +8,6 @@
+
+ #include <stddef.h>
+ #include <stdint.h>
+-#include <string_view>
+ #include <unordered_set>
+ #include <utility>
+ #include <vector>
+@@ -18,6 +17,7 @@
+ #include "base/lazy_instance.h"
+ #include "base/metrics/histogram_macros.h"
+ #include "base/stl_util.h"
++#include "base/strings/string_piece.h"
+ #include "base/strings/string_util.h"
+ #include "base/task/post_task.h"
+ #include "components/history/core/browser/history_service.h"
+@@ -312,7 +312,7 @@ void TrimElements(const std::set<int> target_ids,
+ }
+
+ void DisableBackForwardCache(content::RenderFrameHost* rfh,
+- std::string_view reason) {
++ base::StringPiece reason) {
+ content::WebContents::FromRenderFrameHost(rfh)
+ ->GetController()
+ .GetBackForwardCache()
+diff --git a/content/browser/frame_host/back_forward_cache_impl.cc b/content/browser/frame_host/back_forward_cache_impl.cc
+index a7c06949b..3c72b7e9e 100644
+--- a/content/browser/frame_host/back_forward_cache_impl.cc
++++ b/content/browser/frame_host/back_forward_cache_impl.cc
+@@ -360,7 +360,7 @@ void BackForwardCacheImpl::PostTaskToDestroyEvictedFrames() {
+ }
+
+ void BackForwardCacheImpl::DisableForRenderFrameHost(GlobalFrameRoutingId id,
+- std::string_view reason) {
++ base::StringPiece reason) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ auto* rfh = RenderFrameHostImpl::FromID(id);
+ if (rfh)
+diff --git a/content/browser/frame_host/back_forward_cache_impl.h b/content/browser/frame_host/back_forward_cache_impl.h
+index 712594a3d..6ed6931a3 100644
+--- a/content/browser/frame_host/back_forward_cache_impl.h
++++ b/content/browser/frame_host/back_forward_cache_impl.h
+@@ -175,7 +175,7 @@ class CONTENT_EXPORT BackForwardCacheImpl : public BackForwardCache {
+
+ // BackForwardCache:
+ void DisableForRenderFrameHost(GlobalFrameRoutingId id,
+- std::string_view reason) override;
++ base::StringPiece reason) override;
+
+ private:
+ // Destroys all evicted frames in the BackForwardCache.
+diff --git a/content/public/browser/back_forward_cache.h b/content/public/browser/back_forward_cache.h
+index f7abe8bec..bb7298651 100644
+--- a/content/public/browser/back_forward_cache.h
++++ b/content/public/browser/back_forward_cache.h
+@@ -5,8 +5,7 @@
+ #ifndef CONTENT_PUBLIC_BROWSER_BACK_FORWARD_CACHE_H_
+ #define CONTENT_PUBLIC_BROWSER_BACK_FORWARD_CACHE_H_
+
+-#include <string_view>
+-
++#include "base/strings/string_piece.h"
+ #include "content/common/content_export.h"
+ #include "content/public/browser/global_routing_id.h"
+
+@@ -43,7 +42,7 @@ class CONTENT_EXPORT BackForwardCache {
+ // |id|: If no RenderFrameHost can be found for the given id nothing happens.
+ // |reason|: Free form string to be used in logging and metrics.
+ virtual void DisableForRenderFrameHost(GlobalFrameRoutingId id,
+- std::string_view reason) = 0;
++ base::StringPiece reason) = 0;
+
+ protected:
+ BackForwardCache() = default;
diff --git a/www-client/chromium/files/chromium-swiftshader-77.patch b/www-client/chromium/files/chromium-swiftshader-77.patch
new file mode 100644
index 0000000..34d5032
--- /dev/null
+++ b/www-client/chromium/files/chromium-swiftshader-77.patch
@@ -0,0 +1,53 @@
+diff --git a/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn b/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn
+index f4c826d..993ca6a 100644
+--- a/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn
++++ b/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn
+@@ -78,6 +78,9 @@
+ if (use_x11) {
+ sources += [ "../../Main/libX11.cpp" ]
+ }
++ inputs = [
++ "libEGL.lds",
++ ]
+ ldflags =
+ [ "-Wl,--version-script=" + rebase_path("libEGL.lds", root_build_dir) ]
+ }
+diff --git a/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn b/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn
+index 571b08a..d7037ca 100644
+--- a/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn
++++ b/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn
+@@ -127,6 +127,9 @@
+ if (is_mac) {
+ ldflags = [ "-Wl,-install_name,@rpath/libswiftshader_libGLESv2.dylib" ]
+ } else if (is_linux) {
++ inputs = [
++ "libGLESv2.lds",
++ ]
+ ldflags = [ "-Wl,--version-script=" +
+ rebase_path("libGLESv2.lds", root_build_dir) ]
+ }
+diff --git a/third_party/swiftshader/src/Vulkan/BUILD.gn b/third_party/swiftshader/src/Vulkan/BUILD.gn
+index 2627f03..6aeaec8 100644
+--- a/third_party/swiftshader/src/Vulkan/BUILD.gn
++++ b/third_party/swiftshader/src/Vulkan/BUILD.gn
+@@ -99,7 +99,6 @@
+ "VulkanPlatform.h",
+ "libVulkan.cpp",
+ "libvk_swiftshader.def",
+- "libvk_swiftshader.lds",
+ "main.cpp",
+ "resource.h",
+ ]
+@@ -109,8 +108,10 @@
+ output_name = "libvulkan"
+ output_dir = "$root_out_dir/swiftshader"
+
+- if (is_linux)
+- {
++ if (is_linux) {
++ inputs = [
++ "libvk_swiftshader.lds",
++ ]
+ ldflags = [ "-Wl,--version-script=" +
+ rebase_path("libvk_swiftshader.lds", root_build_dir) ]
+ }
diff --git a/www-client/chromium/files/chromium-unbundle-zlib.patch b/www-client/chromium/files/chromium-unbundle-zlib.patch
new file mode 100644
index 0000000..d6c45ad
--- /dev/null
+++ b/www-client/chromium/files/chromium-unbundle-zlib.patch
@@ -0,0 +1,25 @@
+From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
+From: Your Name <you@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/www-client/chromium/files/chromium-union.patch b/www-client/chromium/files/chromium-union.patch
new file mode 100644
index 0000000..be41f6d
--- /dev/null
+++ b/www-client/chromium/files/chromium-union.patch
@@ -0,0 +1,54 @@
+diff --git a/base/values.h b/base/values.h
+index 6f2cd3cc3..7f148d259 100644
+--- a/base/values.h
++++ b/base/values.h
+@@ -415,42 +415,13 @@ class BASE_EXPORT Value {
+ // of 24, without losing any information. Results are unchanged for x86,
+ // x86_64 and arm64 (16, 32 and 32 bytes respectively).
+ union {
+- struct {
+- // TODO(crbug.com/646113): Make these private once DictionaryValue and
+- // ListValue are properly inlined.
+- Type type_ : 8;
+- };
+- struct {
+- Type bool_type_ : 8;
+- bool bool_value_;
+- };
+- struct {
+- Type int_type_ : 8;
+- int int_value_;
+- };
+- struct {
+- Type double_type_ : 8;
+- // Subtle: On architectures that require it, the compiler will ensure
+- // that |double_value_|'s offset is a multiple of 8 (e.g. 32-bit ARM).
+- // See technical note above to understand why it is important.
+- double double_value_;
+- };
+- struct {
+- Type string_type_ : 8;
+- std::string string_value_;
+- };
+- struct {
+- Type binary_type_ : 8;
+- BlobStorage binary_value_;
+- };
+- struct {
+- Type dict_type_ : 8;
+- DictStorage dict_;
+- };
+- struct {
+- Type list_type_ : 8;
+- ListStorage list_;
+- };
++ bool bool_value_;
++ int int_value_;
++ double double_value_;
++ std::string string_value_;
++ BlobStorage binary_value_;
++ DictStorage dict_;
++ ListStorage list_;
+ };
+
+ private:
diff --git a/www-client/chromium/files/chromium-unique_ptr-80-r1.patch b/www-client/chromium/files/chromium-unique_ptr-80-r1.patch
new file mode 100644
index 0000000..fb377db
--- /dev/null
+++ b/www-client/chromium/files/chromium-unique_ptr-80-r1.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/renderer/core/core_initializer.h b/third_party/blink/renderer/core/core_initializer.h
+index 5e67f468f..3f6d8de03 100644
+--- a/third_party/blink/renderer/core/core_initializer.h
++++ b/third_party/blink/renderer/core/core_initializer.h
+@@ -31,6 +31,8 @@
+ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CORE_INITIALIZER_H_
+ #define THIRD_PARTY_BLINK_RENDERER_CORE_CORE_INITIALIZER_H_
+
++#include <memory>
++
+ #include "base/macros.h"
+ #include "third_party/blink/public/common/dom_storage/session_storage_namespace_id.h"
+ #include "third_party/blink/renderer/core/core_export.h"
diff --git a/www-client/chromium/files/chromium-unique_ptr-80.patch b/www-client/chromium/files/chromium-unique_ptr-80.patch
new file mode 100644
index 0000000..4da5f0b
--- /dev/null
+++ b/www-client/chromium/files/chromium-unique_ptr-80.patch
@@ -0,0 +1,12 @@
+diff --git a/net/dns/address_info.h b/net/dns/address_info.h
+index 782898535..95bc277c3 100644
+--- a/net/dns/address_info.h
++++ b/net/dns/address_info.h
+@@ -5,6 +5,7 @@
+ #ifndef NET_DNS_ADDRESS_INFO_H_
+ #define NET_DNS_ADDRESS_INFO_H_
+
++#include <memory>
+ #include <string>
+ #include <tuple>
+
diff --git a/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch b/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch
new file mode 100644
index 0000000..9d9c57b
--- /dev/null
+++ b/www-client/chromium/files/chromium-use-oauth2-client-switches-as-default.patch
@@ -0,0 +1,17 @@
+diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc
+--- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000
++++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000
+@@ -154,11 +154,11 @@ class APIKeyCache {
+
+ std::string default_client_id = CalculateKeyValue(
+ GOOGLE_DEFAULT_CLIENT_ID,
+- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr,
++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID,
+ std::string(), environment.get(), command_line, gaia_config);
+ std::string default_client_secret = CalculateKeyValue(
+ GOOGLE_DEFAULT_CLIENT_SECRET,
+- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr,
++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret,
+ std::string(), environment.get(), command_line, gaia_config);
+
+ // We currently only allow overriding the baked-in values for the
diff --git a/www-client/chromium/files/chromium-vaapi-76-r1.patch b/www-client/chromium/files/chromium-vaapi-76-r1.patch
new file mode 100644
index 0000000..6080901
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-76-r1.patch
@@ -0,0 +1,213 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index f3759b099..11c0982ab 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1314,7 +1314,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ #if defined(OS_CHROMEOS)
+@@ -1768,12 +1768,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // ENABLE_ISOLATED_XR_SERVICE
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
+ flag_descriptions::kV8CacheOptionsDescription, kOsAll,
+ MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index d05bc47f4..5d5c77b5e 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -2760,13 +2760,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID)
++
++#if defined(OS_CHROMEOS)
+
+ const char kAppServiceAshName[] = "App Service Ash";
+ const char kAppServiceAshDescription[] =
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index aef7105e3..149c5c034 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1650,11 +1650,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
+ extern const char kAppServiceAshName[];
+ extern const char kAppServiceAshDescription[];
+
+diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc
+index 53292ae76..d5007860c 100644
+--- a/components/viz/service/main/viz_main_impl.cc
++++ b/components/viz/service/main/viz_main_impl.cc
+@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() {
+ // It should be possible to use |main_task_runner_| for doing IO tasks.
+ base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0);
+ thread_options.priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // TODO(reveman): Remove this in favor of setting it explicitly for each
+ // type of process.
+ thread_options.priority = base::ThreadPriority::DISPLAY;
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 2b1165264..fec963bd9 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -127,4 +128,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
+index a838f0ccf..4c891fb92 100644
+--- a/content/gpu/gpu_main.cc
++++ b/content/gpu/gpu_main.cc
+@@ -288,7 +288,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+
+ base::PlatformThread::SetName("CrGpuMain");
+
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // Set thread priority before sandbox initialization.
+ base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY);
+ #endif
+@@ -321,7 +321,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+ GetContentClient()->SetGpuInfo(gpu_init->gpu_info());
+
+ base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ io_thread_priority = base::ThreadPriority::DISPLAY;
+ #endif
+
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index 0042a3457..efe1b3f4d 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -369,17 +369,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 2e364d0cf..728cab164 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -520,7 +520,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
+index 1324da986..b4d235f50 100644
+--- a/media/filters/BUILD.gn
++++ b/media/filters/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/jumbo.gni")
+ import("//media/media_options.gni")
+ import("//third_party/libaom/options.gni")
++import("//media/gpu/args.gni")
+
+ jumbo_source_set("filters") {
+ # Do not expand the visibility here without double-checking with OWNERS, this
+@@ -207,7 +208,7 @@ jumbo_source_set("filters") {
+ deps += [ "//media/base/android" ]
+ }
+
+- if (current_cpu != "arm" && is_linux) {
++ if (use_vaapi && is_linux) {
+ sources += [
+ "h264_bitstream_buffer.cc",
+ "h264_bitstream_buffer.h",
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index 2020a4c23..af61e3e75 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -499,9 +499,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media:test_support" ]
+ testonly = true
diff --git a/www-client/chromium/files/chromium-vaapi-76.patch b/www-client/chromium/files/chromium-vaapi-76.patch
new file mode 100644
index 0000000..6b9c372
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-76.patch
@@ -0,0 +1,218 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index e727a7633..321ec6374 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1344,7 +1344,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ #if defined(OS_WIN)
+@@ -1840,12 +1840,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // ENABLE_ISOLATED_XR_SERVICE
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"v8-cache-options", flag_descriptions::kV8CacheOptionsName,
+ flag_descriptions::kV8CacheOptionsDescription, kOsAll,
+ MULTI_VALUE_TYPE(kV8CacheOptionsChoices)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index e935e0fd6..3225adb3b 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -2873,13 +2873,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID)
++
++#if defined(OS_CHROMEOS)
+
+ const char kAppServiceAshName[] = "App Service Ash";
+ const char kAppServiceAshDescription[] =
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index 8450a5b76..80b68b724 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1723,11 +1723,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
+ extern const char kAppServiceAshName[];
+ extern const char kAppServiceAshDescription[];
+
+diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc
+index a5a38f8ec..7a110c4f9 100644
+--- a/components/viz/service/main/viz_main_impl.cc
++++ b/components/viz/service/main/viz_main_impl.cc
+@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() {
+ // It should be possible to use |main_task_runner_| for doing IO tasks.
+ base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0);
+ thread_options.priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // TODO(reveman): Remove this in favor of setting it explicitly for each
+ // type of process.
+ thread_options.priority = base::ThreadPriority::DISPLAY;
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 2b1165264..fec963bd9 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -127,4 +128,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
+index a838f0ccf..4c891fb92 100644
+--- a/content/gpu/gpu_main.cc
++++ b/content/gpu/gpu_main.cc
+@@ -288,7 +288,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+
+ base::PlatformThread::SetName("CrGpuMain");
+
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // Set thread priority before sandbox initialization.
+ base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY);
+ #endif
+@@ -321,7 +321,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+ GetContentClient()->SetGpuInfo(gpu_init->gpu_info());
+
+ base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ io_thread_priority = base::ThreadPriority::DISPLAY;
+ #endif
+
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index d4c3b4364..935fdeb86 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -369,17 +369,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index a8b11a3b9..a6ac202f9 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -509,7 +509,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
+index 4fac91144..7086ada95 100644
+--- a/media/filters/BUILD.gn
++++ b/media/filters/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/jumbo.gni")
+ import("//media/media_options.gni")
+ import("//third_party/libaom/options.gni")
++import("//media/gpu/args.gni")
+
+ jumbo_source_set("filters") {
+ # Do not expand the visibility here without double-checking with OWNERS, this
+@@ -211,7 +212,7 @@ jumbo_source_set("filters") {
+ deps += [ "//media/base/android" ]
+ }
+
+- if (current_cpu != "arm" && is_linux) {
++ if (use_vaapi && is_linux) {
+ sources += [
+ "h264_bitstream_buffer.cc",
+ "h264_bitstream_buffer.h",
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index 6eed6db69..ffd81b968 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -510,6 +510,13 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
++
+ if (use_v4l2_codec || use_vaapi) {
+ test("jpeg_encode_accelerator_unittest") {
+ deps = [
+@@ -580,6 +587,7 @@ if (is_chromeos || is_linux) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
diff --git a/www-client/chromium/files/chromium-vaapi-77.patch b/www-client/chromium/files/chromium-vaapi-77.patch
new file mode 100644
index 0000000..01ad8c5
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-77.patch
@@ -0,0 +1,213 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index b6747f0d7..5c8a4d3e1 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1420,7 +1420,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -1867,12 +1867,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // ENABLE_ISOLATED_XR_SERVICE
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 8573fb58f..ece9a30ea 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -2791,13 +2791,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID)
++
++#if defined(OS_CHROMEOS)
+
+ const char kAppServiceAshName[] = "App Service Ash";
+ const char kAppServiceAshDescription[] =
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index f21e223fc..f9527ea64 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1661,11 +1661,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
+ extern const char kAppServiceAshName[];
+ extern const char kAppServiceAshDescription[];
+
+diff --git a/components/viz/service/main/viz_main_impl.cc b/components/viz/service/main/viz_main_impl.cc
+index 53292ae76..d5007860c 100644
+--- a/components/viz/service/main/viz_main_impl.cc
++++ b/components/viz/service/main/viz_main_impl.cc
+@@ -36,7 +36,7 @@ std::unique_ptr<base::Thread> CreateAndStartIOThread() {
+ // It should be possible to use |main_task_runner_| for doing IO tasks.
+ base::Thread::Options thread_options(base::MessageLoop::TYPE_IO, 0);
+ thread_options.priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // TODO(reveman): Remove this in favor of setting it explicitly for each
+ // type of process.
+ thread_options.priority = base::ThreadPriority::DISPLAY;
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 29e78fec4..0ab429013 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc
+index bf47f4738..73a8b2daa 100644
+--- a/content/gpu/gpu_main.cc
++++ b/content/gpu/gpu_main.cc
+@@ -294,7 +294,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+
+ base::PlatformThread::SetName("CrGpuMain");
+
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ // Set thread priority before sandbox initialization.
+ base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY);
+ #endif
+@@ -327,7 +327,7 @@ int GpuMain(const MainFunctionParams& parameters) {
+ GetContentClient()->SetGpuInfo(gpu_init->gpu_info());
+
+ base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL;
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) || defined(OS_LINUX)
+ io_thread_priority = base::ThreadPriority::DISPLAY;
+ #endif
+
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index 03e251547..9eb0f1148 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -368,17 +368,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 4652a24f4..4e5259a9e 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -528,7 +528,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
+index 13d433354..8d89253fb 100644
+--- a/media/filters/BUILD.gn
++++ b/media/filters/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/jumbo.gni")
+ import("//media/media_options.gni")
+ import("//third_party/libaom/options.gni")
++import("//media/gpu/args.gni")
+
+ jumbo_source_set("filters") {
+ # Do not expand the visibility here without double-checking with OWNERS, this
+@@ -196,7 +197,7 @@ jumbo_source_set("filters") {
+ deps += [ "//media/base/android" ]
+ }
+
+- if (current_cpu != "arm" && is_linux) {
++ if (use_vaapi && is_linux) {
+ sources += [
+ "h264_bitstream_buffer.cc",
+ "h264_bitstream_buffer.h",
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index b3f43cd64..1d4a432fd 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -521,9 +521,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media:test_support" ]
+ testonly = true
diff --git a/www-client/chromium/files/chromium-vaapi-78-r1.patch b/www-client/chromium/files/chromium-vaapi-78-r1.patch
new file mode 100644
index 0000000..8e9aeb4
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-78-r1.patch
@@ -0,0 +1,220 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index ce15485ef..097b757dd 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1704,7 +1704,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2184,12 +2184,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // !defined(OS_ANDROID)
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 87d4934a5..2f4842e2e 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -3049,7 +3049,7 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+@@ -3057,6 +3057,21 @@ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
+
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++const char kVaapiWebPImageDecodeAccelerationName[] =
++ "VA-API WebP decode acceleration for images";
++const char kVaapiWebPImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of WebP images using the VA-API.";
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+@@ -3577,17 +3592,6 @@ const char kUsbguardDescription[] =
+ " until Chrome OS is unlocked to protect against malicious USB devices."
+ " Already connected USB devices will continue to function.";
+
+-const char kVaapiJpegImageDecodeAccelerationName[] =
+- "VA-API JPEG decode acceleration for images";
+-const char kVaapiJpegImageDecodeAccelerationDescription[] =
+- "Enable or disable decode acceleration of JPEG images (as opposed to camera"
+- " captures) using the VA-API.";
+-
+-const char kVaapiWebPImageDecodeAccelerationName[] =
+- "VA-API WebP decode acceleration for images";
+-const char kVaapiWebPImageDecodeAccelerationDescription[] =
+- "Enable or disable decode acceleration of WebP images using the VA-API.";
+-
+ const char kVirtualKeyboardName[] = "Virtual Keyboard";
+ const char kVirtualKeyboardDescription[] = "Enable virtual keyboard support.";
+
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index 1b73f5985..61d965e7d 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1812,11 +1812,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++extern const char kVaapiWebPImageDecodeAccelerationName[];
++extern const char kVaapiWebPImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+@@ -2144,12 +2154,6 @@ extern const char kUsbguardDescription[];
+ extern const char kUseMonitorColorSpaceName[];
+ extern const char kUseMonitorColorSpaceDescription[];
+
+-extern const char kVaapiJpegImageDecodeAccelerationName[];
+-extern const char kVaapiJpegImageDecodeAccelerationDescription[];
+-
+-extern const char kVaapiWebPImageDecodeAccelerationName[];
+-extern const char kVaapiWebPImageDecodeAccelerationDescription[];
+-
+ extern const char kVirtualKeyboardName[];
+ extern const char kVirtualKeyboardDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 0939d25cc..69f31c724 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index ea1294e4c..5ba052ec6 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -332,17 +332,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 08c606b39..0ac5dce80 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -582,7 +582,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
+index ac554920d..e10321d88 100644
+--- a/media/filters/BUILD.gn
++++ b/media/filters/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/jumbo.gni")
+ import("//media/media_options.gni")
+ import("//third_party/libaom/options.gni")
++import("//media/gpu/args.gni")
+
+ jumbo_source_set("filters") {
+ # Do not expand the visibility here without double-checking with OWNERS, this
+@@ -196,7 +197,7 @@ jumbo_source_set("filters") {
+ deps += [ "//media/base/android" ]
+ }
+
+- if (current_cpu != "arm" && is_linux) {
++ if (use_vaapi && is_linux) {
+ sources += [
+ "h264_bitstream_buffer.cc",
+ "h264_bitstream_buffer.h",
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index 85cb6c363..95ae2bb1e 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -525,9 +525,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media:test_support" ]
+ testonly = true
diff --git a/www-client/chromium/files/chromium-vaapi-78.patch b/www-client/chromium/files/chromium-vaapi-78.patch
new file mode 100644
index 0000000..8525792
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-78.patch
@@ -0,0 +1,178 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 1f68539de..e739ed7e0 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1605,7 +1605,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2075,12 +2075,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // !defined(OS_ANDROID)
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 81b32eb3e..0b3396198 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -2919,13 +2919,22 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++#endif // defined(OS_CHROMEOS) defined(OS_LINUX) and !defined(OS_ANDROID)
++
++#if defined(OS_CHROMEOS)
+
+ const char kAppServiceAshName[] = "App Service Ash";
+ const char kAppServiceAshDescription[] =
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index e079d7aa2..761d28974 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1733,11 +1733,17 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
+ extern const char kAppServiceAshName[];
+ extern const char kAppServiceAshDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 0939d25cc..69f31c724 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index 9def82b55..1f5a03ea0 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -368,17 +368,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 37f1a2380..d21c59439 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -550,7 +550,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
+index f33ca5866..70736d7fc 100644
+--- a/media/filters/BUILD.gn
++++ b/media/filters/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/jumbo.gni")
+ import("//media/media_options.gni")
+ import("//third_party/libaom/options.gni")
++import("//media/gpu/args.gni")
+
+ jumbo_source_set("filters") {
+ # Do not expand the visibility here without double-checking with OWNERS, this
+@@ -196,7 +197,7 @@ jumbo_source_set("filters") {
+ deps += [ "//media/base/android" ]
+ }
+
+- if (current_cpu != "arm" && is_linux) {
++ if (use_vaapi && is_linux) {
+ sources += [
+ "h264_bitstream_buffer.cc",
+ "h264_bitstream_buffer.h",
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index eec3b7fc7..aa27959b1 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -533,9 +533,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media:test_support" ]
+ testonly = true
diff --git a/www-client/chromium/files/chromium-vaapi-79.patch b/www-client/chromium/files/chromium-vaapi-79.patch
new file mode 100644
index 0000000..dc2c1ee
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-79.patch
@@ -0,0 +1,220 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 2a4ca2365..a657df74d 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1747,7 +1747,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2219,12 +2219,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // !defined(OS_ANDROID)
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 929544e4f..be0884a73 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -3080,7 +3080,7 @@ const char kMacSystemMediaPermissionsInfoUiDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+@@ -3088,6 +3088,21 @@ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
+
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++const char kVaapiWebPImageDecodeAccelerationName[] =
++ "VA-API WebP decode acceleration for images";
++const char kVaapiWebPImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of WebP images using the VA-API.";
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+@@ -3618,17 +3633,6 @@ const char kUsbguardDescription[] =
+ " until Chrome OS is unlocked to protect against malicious USB devices."
+ " Already connected USB devices will continue to function.";
+
+-const char kVaapiJpegImageDecodeAccelerationName[] =
+- "VA-API JPEG decode acceleration for images";
+-const char kVaapiJpegImageDecodeAccelerationDescription[] =
+- "Enable or disable decode acceleration of JPEG images (as opposed to camera"
+- " captures) using the VA-API.";
+-
+-const char kVaapiWebPImageDecodeAccelerationName[] =
+- "VA-API WebP decode acceleration for images";
+-const char kVaapiWebPImageDecodeAccelerationDescription[] =
+- "Enable or disable decode acceleration of WebP images using the VA-API.";
+-
+ const char kVirtualKeyboardName[] = "Virtual Keyboard";
+ const char kVirtualKeyboardDescription[] = "Enable virtual keyboard support.";
+
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index dc9450374..93fc6f14f 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1822,11 +1822,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++extern const char kVaapiWebPImageDecodeAccelerationName[];
++extern const char kVaapiWebPImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+@@ -2160,12 +2170,6 @@ extern const char kUseFakeDeviceForMediaStreamDescription[];
+ extern const char kUseMonitorColorSpaceName[];
+ extern const char kUseMonitorColorSpaceDescription[];
+
+-extern const char kVaapiJpegImageDecodeAccelerationName[];
+-extern const char kVaapiJpegImageDecodeAccelerationDescription[];
+-
+-extern const char kVaapiWebPImageDecodeAccelerationName[];
+-extern const char kVaapiWebPImageDecodeAccelerationDescription[];
+-
+ extern const char kVirtualKeyboardName[];
+ extern const char kVirtualKeyboardDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 0939d25cc..69f31c724 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index ea1294e4c..5ba052ec6 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -332,17 +332,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index e7b6efa18..2a3ad90ae 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -612,7 +612,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/filters/BUILD.gn b/media/filters/BUILD.gn
+index 481216a18..bde7319e6 100644
+--- a/media/filters/BUILD.gn
++++ b/media/filters/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/jumbo.gni")
+ import("//media/media_options.gni")
+ import("//third_party/libaom/options.gni")
++import("//media/gpu/args.gni")
+
+ jumbo_source_set("filters") {
+ # Do not expand the visibility here without double-checking with OWNERS, this
+@@ -196,7 +197,7 @@ jumbo_source_set("filters") {
+ deps += [ "//media/base/android" ]
+ }
+
+- if (current_cpu != "arm" && is_linux) {
++ if (use_vaapi && is_linux) {
+ sources += [
+ "h264_bitstream_buffer.cc",
+ "h264_bitstream_buffer.h",
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index c290ec2ef..1c06865b8 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -530,9 +530,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media/gpu/*" ]
+ testonly = true
diff --git a/www-client/chromium/files/chromium-vaapi-80.patch b/www-client/chromium/files/chromium-vaapi-80.patch
new file mode 100644
index 0000000..d9982dd
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-80.patch
@@ -0,0 +1,168 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index f9ddeca39..a581bca3d 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1754,7 +1754,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2228,12 +2228,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // !defined(OS_ANDROID)
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 90a193991..87d1eedac 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -3132,7 +3132,7 @@ const char kMetalDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+@@ -3140,6 +3140,21 @@ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
+
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++const char kVaapiWebPImageDecodeAccelerationName[] =
++ "VA-API WebP decode acceleration for images";
++const char kVaapiWebPImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of WebP images using the VA-API.";
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index 4d7349337..ea4838826 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1847,11 +1847,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++extern const char kVaapiWebPImageDecodeAccelerationName[];
++extern const char kVaapiWebPImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index fde557cc3..b150ccbad 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -129,4 +130,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index c1da1d8b7..bd83de134 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -332,17 +332,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 981cb7a08..33f3e8312 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -632,7 +632,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index 875c3515a..db52819f9 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -456,9 +456,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media/gpu/*" ]
+ testonly = true
diff --git a/www-client/chromium/files/chromium-vaapi-81.patch b/www-client/chromium/files/chromium-vaapi-81.patch
new file mode 100644
index 0000000..aac31c0
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-81.patch
@@ -0,0 +1,181 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 54c97b37d..8a72db3ab 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1846,7 +1846,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2307,12 +2307,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // !defined(OS_ANDROID)
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 5c2b3f3fa..67edf526e 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -3172,7 +3172,7 @@ const char kMetalDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+@@ -3180,6 +3180,21 @@ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
+
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++const char kVaapiWebPImageDecodeAccelerationName[] =
++ "VA-API WebP decode acceleration for images";
++const char kVaapiWebPImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of WebP images using the VA-API.";
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index 384a7bed3..719b1fce5 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1872,11 +1872,21 @@ extern const char kPermissionPromptPersistenceToggleDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++extern const char kVaapiWebPImageDecodeAccelerationName[];
++extern const char kVaapiWebPImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index d777b767b..34df35560 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -134,4 +135,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index 837bb8dd2..36c79fe83 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -332,17 +332,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247],
+- "os": {
+- "type": "linux"
+- },
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index d089b3975..2c8c2b885 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -653,7 +653,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index 76514826b..080a1d2ee 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -455,9 +455,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media/gpu/*" ]
+ testonly = true
+diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn
+index 21ff52759..9f3232a1b 100644
+--- a/media/gpu/test/BUILD.gn
++++ b/media/gpu/test/BUILD.gn
+@@ -158,7 +158,7 @@ if (use_vaapi || use_v4l2_codec) {
+ }
+ }
+
+-if (is_chromeos) {
++if (is_chromeos || is_linux) {
+ static_library("local_gpu_memory_buffer_manager") {
+ testonly = true
+ sources = [
diff --git a/www-client/chromium/files/chromium-vaapi-82.patch b/www-client/chromium/files/chromium-vaapi-82.patch
new file mode 100644
index 0000000..18115e3
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-82.patch
@@ -0,0 +1,186 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 77785e7a8..303f8c9f7 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -1957,7 +1957,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2390,12 +2390,12 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)},
+ #endif // !defined(OS_ANDROID)
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 3a5ea1399..f92d626fa 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -2995,7 +2995,7 @@ const char kMetalDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+@@ -3003,6 +3003,21 @@ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
+
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++const char kVaapiWebPImageDecodeAccelerationName[] =
++ "VA-API WebP decode acceleration for images";
++const char kVaapiWebPImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of WebP images using the VA-API.";
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index a3c3bf194..8e0730dbd 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1724,11 +1724,21 @@ extern const char kMetalDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++extern const char kVaapiWebPImageDecodeAccelerationName[];
++extern const char kVaapiWebPImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 088c791f0..464cf018c 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -131,4 +132,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index 22712bdbf..a06dd19a5 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -335,22 +335,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247, 1032907],
+- "os": {
+- "type": "linux"
+- },
+- "exceptions": [
+- {
+- "machine_model_name": ["Chromecast"]
+- }
+- ],
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index 4b271023c..94b0d8c79 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -693,7 +693,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index 13443f3d3..195208fed 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -451,9 +451,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media/gpu/*" ]
+ testonly = true
+diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn
+index 8d1275a43..71e5c9dca 100644
+--- a/media/gpu/test/BUILD.gn
++++ b/media/gpu/test/BUILD.gn
+@@ -152,7 +152,7 @@ if (use_vaapi || use_v4l2_codec) {
+ }
+ }
+
+-if (is_chromeos) {
++if (is_chromeos || is_linux) {
+ static_library("local_gpu_memory_buffer_manager") {
+ testonly = true
+ sources = [
diff --git a/www-client/chromium/files/chromium-vaapi-83.patch b/www-client/chromium/files/chromium-vaapi-83.patch
new file mode 100644
index 0000000..d614b94
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-83.patch
@@ -0,0 +1,186 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 0524711d0..0477b7bbd 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -2092,7 +2092,7 @@ const FeatureEntry kFeatureEntries[] = {
+ "disable-accelerated-video-decode",
+ flag_descriptions::kAcceleratedVideoDecodeName,
+ flag_descriptions::kAcceleratedVideoDecodeDescription,
+- kOsMac | kOsWin | kOsCrOS | kOsAndroid,
++ kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
+ },
+ {
+@@ -2514,12 +2514,12 @@ const FeatureEntry kFeatureEntries[] = {
+ flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
+ MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index 834232048..a77b963af 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -2954,7 +2954,7 @@ const char kMetalDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+@@ -2962,6 +2962,21 @@ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
+
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++const char kVaapiWebPImageDecodeAccelerationName[] =
++ "VA-API WebP decode acceleration for images";
++const char kVaapiWebPImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of WebP images using the VA-API.";
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index f497d6197..5762ce62e 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -1696,11 +1696,21 @@ extern const char kMetalDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++extern const char kVaapiWebPImageDecodeAccelerationName[];
++extern const char kVaapiWebPImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 64ebb18c5..682b4ffeb 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -6,6 +6,7 @@ import("//build/config/jumbo.gni")
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -133,4 +134,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json
+index 7eefd9966..747971b46 100644
+--- a/gpu/config/software_rendering_list.json
++++ b/gpu/config/software_rendering_list.json
+@@ -335,22 +335,6 @@
+ "all"
+ ]
+ },
+- {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247, 1032907],
+- "os": {
+- "type": "linux"
+- },
+- "exceptions": [
+- {
+- "machine_model_name": ["Chromecast"]
+- }
+- ],
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+ {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index bc7f518ae..eed869232 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -714,7 +714,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index be9406674..95782e01a 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -457,9 +457,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media/gpu/*" ]
+ testonly = true
+diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn
+index 5dd95ec1f..3dd7a1a20 100644
+--- a/media/gpu/test/BUILD.gn
++++ b/media/gpu/test/BUILD.gn
+@@ -182,7 +182,7 @@ if (use_vaapi || use_v4l2_codec) {
+ }
+ }
+
+-if (is_chromeos) {
++if (is_chromeos || is_linux) {
+ static_library("local_gpu_memory_buffer_manager") {
+ testonly = true
+ sources = [
diff --git a/www-client/chromium/files/chromium-vaapi-87.patch b/www-client/chromium/files/chromium-vaapi-87.patch
new file mode 100644
index 0000000..508a2f4
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-87.patch
@@ -0,0 +1,137 @@
+diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+index 78eedbcbf..eda2d0c48 100644
+--- a/chrome/browser/about_flags.cc
++++ b/chrome/browser/about_flags.cc
+@@ -3150,12 +3150,12 @@ const FeatureEntry kFeatureEntries[] = {
+ flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
+ MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
+ #endif // ENABLE_VR
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ {"disable-accelerated-mjpeg-decode",
+ flag_descriptions::kAcceleratedMjpegDecodeName,
+- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
++ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
+-#endif // OS_CHROMEOS
++#endif // OS_CHROMEOS OS_LINUX
+ {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
+ flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
+ FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
+diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
+index e4f4cf856..d448035db 100644
+--- a/chrome/browser/flag_descriptions.cc
++++ b/chrome/browser/flag_descriptions.cc
+@@ -3542,7 +3542,7 @@ const char kVideoToolboxVp9DecodingDescription[] =
+
+ // Chrome OS -------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ const char kAcceleratedMjpegDecodeName[] =
+ "Hardware-accelerated mjpeg decode for captured frame";
+@@ -3550,6 +3550,21 @@ const char kAcceleratedMjpegDecodeDescription[] =
+ "Enable hardware-accelerated mjpeg decode for captured frame where "
+ "available.";
+
++const char kVaapiJpegImageDecodeAccelerationName[] =
++ "VA-API JPEG decode acceleration for images";
++const char kVaapiJpegImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of JPEG images (as opposed to camera"
++ " captures) using the VA-API.";
++
++const char kVaapiWebPImageDecodeAccelerationName[] =
++ "VA-API WebP decode acceleration for images";
++const char kVaapiWebPImageDecodeAccelerationDescription[] =
++ "Enable or disable decode acceleration of WebP images using the VA-API.";
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ const char kAggregatedMlAppRankingName[] = "Rank suggested apps with ML.";
+ const char kAggregatedMlAppRankingDescription[] =
+ "Use the aggregated ML model to rank the suggested apps.";
+diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
+index a8a80f118..beddafe6f 100644
+--- a/chrome/browser/flag_descriptions.h
++++ b/chrome/browser/flag_descriptions.h
+@@ -2041,11 +2041,21 @@ extern const char kVideoToolboxVp9DecodingDescription[];
+
+ // Chrome OS ------------------------------------------------------------------
+
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID))
+
+ extern const char kAcceleratedMjpegDecodeName[];
+ extern const char kAcceleratedMjpegDecodeDescription[];
+
++extern const char kVaapiJpegImageDecodeAccelerationName[];
++extern const char kVaapiJpegImageDecodeAccelerationDescription[];
++
++extern const char kVaapiWebPImageDecodeAccelerationName[];
++extern const char kVaapiWebPImageDecodeAccelerationDescription[];
++
++#endif
++
++#if defined(OS_CHROMEOS)
++
+ extern const char kAggregatedMlAppRankingName[];
+ extern const char kAggregatedMlAppRankingDescription[];
+
+diff --git a/content/gpu/BUILD.gn b/content/gpu/BUILD.gn
+index 747df62b1..eb973a881 100644
+--- a/content/gpu/BUILD.gn
++++ b/content/gpu/BUILD.gn
+@@ -5,6 +5,7 @@
+ import("//build/config/ui.gni")
+ import("//gpu/vulkan/features.gni")
+ import("//media/media_options.gni")
++import("//media/gpu/args.gni")
+ import("//ui/ozone/ozone.gni")
+
+ # See //content/BUILD.gn for how this works.
+@@ -128,4 +129,8 @@ target(link_target_type, "gpu_sources") {
+ (!is_chromecast || is_cast_desktop_build)) {
+ configs += [ "//build/config/linux/dri" ]
+ }
++ # Use vaapi on desktop Linux builds when use_vaapi is set
++ if (is_desktop_linux && use_vaapi) {
++ public_configs = [ "//media/gpu:libva_config" ]
++ }
+ }
+diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
+index d9cf7349d..03d6ba73f 100644
+--- a/media/base/media_switches.cc
++++ b/media/base/media_switches.cc
+@@ -792,7 +792,7 @@ bool IsVideoCaptureAcceleratedJpegDecodingEnabled() {
+ switches::kUseFakeMjpegDecodeAccelerator)) {
+ return true;
+ }
+-#if defined(OS_CHROMEOS)
++#if defined(OS_CHROMEOS) || defined(OS_LINUX)
+ return true;
+ #endif
+ return false;
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index e3d961939..4e2963f9f 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -462,9 +462,16 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) {
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
++ public_configs = [ ":libva_config" ]
+ }
+ }
+
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("libva_config") {
++ packages = [ "libva" ]
++}
++
+ static_library("test_support") {
+ visibility = [ "//media/gpu/*" ]
+ testonly = true
diff --git a/www-client/chromium/files/chromium-vaapi-fix-87.patch b/www-client/chromium/files/chromium-vaapi-fix-87.patch
new file mode 100644
index 0000000..231434b
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-fix-87.patch
@@ -0,0 +1,200 @@
+diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
+index 843cf226e..af0389503 100644
+--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
+@@ -7,6 +7,8 @@
+ #include "media/gpu/vaapi/va_surface.h"
+ #include "media/gpu/vaapi/vaapi_wrapper.h"
+ #include "ui/base/ui_base_features.h"
++#include "ui/gfx/x/connection.h"
++#include "ui/gfx/x/xproto.h"
+ #include "ui/gl/gl_bindings.h"
+ #include "ui/gl/gl_image_egl_pixmap.h"
+ #include "ui/gl/scoped_binders.h"
+@@ -15,25 +17,31 @@ namespace media {
+
+ namespace {
+
+-inline Pixmap CreatePixmap(const gfx::Size& size) {
+- auto* display = gfx::GetXDisplay();
+- if (!display)
+- return 0;
++inline ::Pixmap CreatePixmap(const gfx::Size& size) {
++ auto* connection = x11::Connection::Get();
++ if (!connection->Ready())
++ return base::strict_cast<::Pixmap>(x11::Pixmap::None);
+
+- int screen = DefaultScreen(display);
+- auto root = XRootWindow(display, screen);
+- if (root == BadValue)
+- return 0;
++ auto root = connection->default_root();
+
+- XWindowAttributes win_attr = {};
+- // returns 0 on failure, see:
+- // https://tronche.com/gui/x/xlib/introduction/errors.html#Status
+- if (!XGetWindowAttributes(display, root, &win_attr))
+- return 0;
++ uint8_t depth = 0;
++ if (auto reply = connection->GetGeometry({root}).Sync())
++ depth = reply->depth;
++ else
++ return base::strict_cast<::Pixmap>(x11::Pixmap::None);
+
+ // TODO(tmathmeyer) should we use the depth from libva instead of root window?
+- return XCreatePixmap(display, root, size.width(), size.height(),
+- win_attr.depth);
++ auto pixmap = connection->GenerateId<x11::Pixmap>();
++ uint16_t pixmap_width, pixmap_height;
++ if (!base::CheckedNumeric<int>(size.width()).AssignIfValid(&pixmap_width) ||
++ !base::CheckedNumeric<int>(size.height()).AssignIfValid(&pixmap_height)) {
++ return base::strict_cast<::Pixmap>(x11::Pixmap::None);
++ }
++ auto req = connection->CreatePixmap(
++ {depth, pixmap, root, pixmap_width, pixmap_height});
++ if (req.Sync().error)
++ pixmap = x11::Pixmap::None;
++ return base::strict_cast<::Pixmap>(pixmap);
+ }
+
+ } // namespace
+@@ -71,11 +79,8 @@ VaapiPictureNativePixmapAngle::~VaapiPictureNativePixmapAngle() {
+ DCHECK_EQ(glGetError(), static_cast<GLenum>(GL_NO_ERROR));
+ }
+
+- if (x_pixmap_) {
+- if (auto* display = gfx::GetXDisplay()) {
+- XFreePixmap(display, x_pixmap_);
+- }
+- }
++ if (x_pixmap_)
++ x11::Connection::Get()->FreePixmap({static_cast<x11::Pixmap>(x_pixmap_)});
+ }
+
+ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
+diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h
+index de4698abe..41f52376d 100644
+--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h
++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h
+@@ -46,7 +46,7 @@ class VaapiPictureNativePixmapAngle : public VaapiPictureNativePixmap {
+ VASurfaceID va_surface_id() const override;
+
+ private:
+- Pixmap x_pixmap_ = 0;
++ ::Pixmap x_pixmap_ = 0;
+
+ DISALLOW_COPY_AND_ASSIGN(VaapiPictureNativePixmapAngle);
+ };
+diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
+index 9ff0372fa..a571b4b2b 100644
+--- a/media/gpu/vaapi/vaapi_picture_tfp.cc
++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
+@@ -7,6 +7,7 @@
+ #include "media/gpu/vaapi/va_surface.h"
+ #include "media/gpu/vaapi/vaapi_wrapper.h"
+ #include "ui/base/ui_base_features.h"
++#include "ui/gfx/x/connection.h"
+ #include "ui/gfx/x/x11_types.h"
+ #include "ui/gl/gl_bindings.h"
+ #include "ui/gl/gl_image_glx.h"
+@@ -33,7 +34,7 @@ VaapiTFPPicture::VaapiTFPPicture(
+ texture_id,
+ client_texture_id,
+ texture_target),
+- x_display_(gfx::GetXDisplay()),
++ connection_(x11::Connection::Get()),
+ x_pixmap_(0) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(!features::IsUsingOzonePlatform());
+@@ -49,7 +50,7 @@ VaapiTFPPicture::~VaapiTFPPicture() {
+ }
+
+ if (x_pixmap_)
+- XFreePixmap(x_display_, x_pixmap_);
++ connection_->FreePixmap({static_cast<x11::Pixmap>(x_pixmap_)});
+ }
+
+ Status VaapiTFPPicture::Initialize() {
+@@ -84,16 +85,33 @@ Status VaapiTFPPicture::Allocate(gfx::BufferFormat format) {
+ return StatusCode::kVaapiUnsupportedFormat;
+ }
+
+- XWindowAttributes win_attr;
+- int screen = DefaultScreen(x_display_);
+- XGetWindowAttributes(x_display_, XRootWindow(x_display_, screen), &win_attr);
++ if (!connection_->Ready())
++ return StatusCode::kVaapiNoPixmap;
++
++ auto root = connection_->default_root();
++
++ uint8_t depth = 0;
++ if (auto reply = connection_->GetGeometry({root}).Sync())
++ depth = reply->depth;
++ else
++ return StatusCode::kVaapiNoPixmap;
++
+ // TODO(posciak): pass the depth required by libva, not the RootWindow's
+ // depth
+- x_pixmap_ = XCreatePixmap(x_display_, XRootWindow(x_display_, screen),
+- size_.width(), size_.height(), win_attr.depth);
+- if (!x_pixmap_) {
++ auto pixmap = connection_->GenerateId<x11::Pixmap>();
++ uint16_t pixmap_width, pixmap_height;
++ if (!base::CheckedNumeric<int>(size_.width()).AssignIfValid(&pixmap_width) ||
++ !base::CheckedNumeric<int>(size_.height())
++ .AssignIfValid(&pixmap_height)) {
++ return StatusCode::kVaapiNoPixmap;
++ }
++ auto req = connection_->CreatePixmap(
++ {depth, pixmap, root, pixmap_width, pixmap_height});
++ if (req.Sync().error) {
+ DLOG(ERROR) << "Failed creating an X Pixmap for TFP";
+ return StatusCode::kVaapiNoPixmap;
++ } else {
++ x_pixmap_ = base::strict_cast<::Pixmap>(pixmap);
+ }
+
+ return Initialize();
+diff --git a/media/gpu/vaapi/vaapi_picture_tfp.h b/media/gpu/vaapi/vaapi_picture_tfp.h
+index c4eb2c1b5..8da323717 100644
+--- a/media/gpu/vaapi/vaapi_picture_tfp.h
++++ b/media/gpu/vaapi/vaapi_picture_tfp.h
+@@ -11,6 +11,7 @@
+ #include "base/memory/ref_counted.h"
+ #include "media/gpu/vaapi/vaapi_picture.h"
+ #include "ui/gfx/geometry/size.h"
++#include "ui/gfx/x/connection.h"
+ #include "ui/gl/gl_bindings.h"
+
+ namespace gl {
+@@ -47,9 +48,9 @@ class VaapiTFPPicture : public VaapiPicture {
+ private:
+ Status Initialize();
+
+- Display* x_display_;
++ x11::Connection* const connection_;
+
+- Pixmap x_pixmap_;
++ ::Pixmap x_pixmap_;
+ scoped_refptr<gl::GLImageGLX> glx_image_;
+
+ DISALLOW_COPY_AND_ASSIGN(VaapiTFPPicture);
+diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
+index 2ad0b997e..a98823343 100644
+--- a/media/gpu/vaapi/vaapi_wrapper.cc
++++ b/media/gpu/vaapi/vaapi_wrapper.cc
+@@ -57,8 +57,13 @@
+ #include "ui/gl/gl_implementation.h"
+
+ #if defined(USE_X11)
+-#include <va/va_x11.h>
+ #include "ui/gfx/x/x11_types.h" // nogncheck
++
++typedef XID Drawable;
++
++extern "C" {
++#include "media/gpu/vaapi/va_x11.sigs"
++}
+ #endif
+
+ #if defined(USE_OZONE)
diff --git a/www-client/chromium/files/chromium-vaapi-signature.patch b/www-client/chromium/files/chromium-vaapi-signature.patch
new file mode 100644
index 0000000..c84cc37
--- /dev/null
+++ b/www-client/chromium/files/chromium-vaapi-signature.patch
@@ -0,0 +1,26 @@
+diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
+index dca5b5c46..f65d580da 100644
+--- a/media/gpu/vaapi/vaapi_picture_tfp.cc
++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
+@@ -97,7 +97,7 @@ bool VaapiTFPPicture::Allocate(gfx::BufferFormat format) {
+
+ bool VaapiTFPPicture::ImportGpuMemoryBufferHandle(
+ gfx::BufferFormat format,
+- const gfx::GpuMemoryBufferHandle& gpu_memory_buffer_handle) {
++ gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ NOTIMPLEMENTED() << "GpuMemoryBufferHandle import not implemented";
+ return false;
+diff --git a/media/gpu/vaapi/vaapi_picture_tfp.h b/media/gpu/vaapi/vaapi_picture_tfp.h
+index a9ba8a1c5..9fb27a5cd 100644
+--- a/media/gpu/vaapi/vaapi_picture_tfp.h
++++ b/media/gpu/vaapi/vaapi_picture_tfp.h
+@@ -40,7 +40,7 @@ class VaapiTFPPicture : public VaapiPicture {
+ bool Allocate(gfx::BufferFormat format) override;
+ bool ImportGpuMemoryBufferHandle(
+ gfx::BufferFormat format,
+- const gfx::GpuMemoryBufferHandle& gpu_memory_buffer_handle) override;
++ gfx::GpuMemoryBufferHandle gpu_memory_buffer_handle) override;
+ bool DownloadFromSurface(const scoped_refptr<VASurface>& va_surface) override;
+
+ private:
diff --git a/www-client/chromium/files/chromium-vector-include-81.patch b/www-client/chromium/files/chromium-vector-include-81.patch
new file mode 100644
index 0000000..21c0bb1
--- /dev/null
+++ b/www-client/chromium/files/chromium-vector-include-81.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h b/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h
+index 401717c18..952bbad4a 100644
+--- a/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h
++++ b/chrome/browser/ui/autofill/payments/virtual_card_selection_dialog_controller.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_UI_AUTOFILL_PAYMENTS_VIRTUAL_CARD_SELECTION_DIALOG_CONTROLLER_H_
+ #define CHROME_BROWSER_UI_AUTOFILL_PAYMENTS_VIRTUAL_CARD_SELECTION_DIALOG_CONTROLLER_H_
+
++#include <vector>
++
+ #include "base/macros.h"
+ #include "base/strings/string16.h"
+
diff --git a/www-client/chromium/files/chromium-vector-init.patch b/www-client/chromium/files/chromium-vector-init.patch
new file mode 100644
index 0000000..ba8a18f
--- /dev/null
+++ b/www-client/chromium/files/chromium-vector-init.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/ui/tabs/tab_strip_model_observer.h b/chrome/browser/ui/tabs/tab_strip_model_observer.h
+index 8dacb579e..495e31bc5 100644
+--- a/chrome/browser/ui/tabs/tab_strip_model_observer.h
++++ b/chrome/browser/ui/tabs/tab_strip_model_observer.h
+@@ -125,7 +125,7 @@ class TabStripModelChange {
+
+ private:
+ const Type type_ = kSelectionOnly;
+- const std::vector<Delta> deltas_;
++ const std::vector<Delta> deltas_ = {};
+
+ DISALLOW_COPY_AND_ASSIGN(TabStripModelChange);
+ };
diff --git a/www-client/chromium/files/chromium-vk.patch b/www-client/chromium/files/chromium-vk.patch
new file mode 100644
index 0000000..c170c9c
--- /dev/null
+++ b/www-client/chromium/files/chromium-vk.patch
@@ -0,0 +1,21 @@
+diff --git a/third_party/skia/src/gpu/vk/GrVkVulkan.h b/third_party/skia/src/gpu/vk/GrVkVulkan.h
+index 1b78dc766..3bea44b20 100644
+--- a/third_party/skia/src/gpu/vk/GrVkVulkan.h
++++ b/third_party/skia/src/gpu/vk/GrVkVulkan.h
+@@ -14,14 +14,14 @@
+ #error "Skia's private vulkan header must be included before any other vulkan header."
+ #endif
+
+-#include "../../../include/third_party/vulkan/vulkan/vulkan_core.h"
++#include "vulkan/vulkan_core.h"
+
+ #ifdef SK_BUILD_FOR_ANDROID
+ #ifdef VULKAN_ANDROID_H_
+ #error "Skia's private vulkan android header must be included before any other vulkan header."
+ #endif
+ // This is needed to get android extensions for external memory
+-#include "../../../include/third_party/vulkan/vulkan/vulkan_android.h"
++#include "vulkan/vulkan_android.h"
+ #endif
+
+ #endif
diff --git a/www-client/chromium/files/chromium-vr.patch b/www-client/chromium/files/chromium-vr.patch
new file mode 100644
index 0000000..00230bb
--- /dev/null
+++ b/www-client/chromium/files/chromium-vr.patch
@@ -0,0 +1,47 @@
+diff --git a/tools/perf/contrib/vr_benchmarks/BUILD.gn b/tools/perf/contrib/vr_benchmarks/BUILD.gn
+index fef976f5c..14547d8e7 100644
+--- a/tools/perf/contrib/vr_benchmarks/BUILD.gn
++++ b/tools/perf/contrib/vr_benchmarks/BUILD.gn
+@@ -56,22 +56,23 @@ group("vr_perf_tests") {
+
+ # Copies files to the gen/ directory and creates a manifest so that the VR
+ # assets component can be used during Telemetry tests.
+-action("generate_vr_assets_profile") {
+- script = "generate_vr_assets_profile.py"
+-
+- # We should re-run anytime the version or any related files change.
+- inputs = [
+- "//chrome/browser/resources/vr/assets/google_chrome",
+- "//chrome/browser/resources/vr/assets/VERSION",
+- "//chrome/browser/resources/vr/assets/vr_assets_component_files.json",
+- ]
+- outputs = [
+- "$target_gen_dir/vr_assets_profile/",
+- ]
+- args = [
+- "--output",
+- rebase_path(target_gen_dir, root_build_dir),
+- "--asset-dir",
+- rebase_path("//chrome/browser/resources/vr/assets", root_build_dir),
+- ]
+-}
++#action("generate_vr_assets_profile") {
++# script = "generate_vr_assets_profile.py"
++#
++# # We should re-run anytime the version or any related files change.
++# inputs = [
++# "//chrome/browser/resources/vr/assets/google_chrome",
++# "//chrome/browser/resources/vr/assets/VERSION",
++# "//chrome/browser/resources/vr/assets/vr_assets_component_files.json",
++# ]
++# outputs = [
++# "$target_gen_dir/vr_assets_profile/",
++# ]
++# args = [
++# "--output",
++# rebase_path(target_gen_dir, root_build_dir),
++# "--asset-dir",
++# rebase_path("//chrome/browser/resources/vr/assets", root_build_dir),
++# ]
++#}
++#
diff --git a/www-client/chromium/files/chromium-webrtc-include-84.patch b/www-client/chromium/files/chromium-webrtc-include-84.patch
new file mode 100644
index 0000000..48ea179
--- /dev/null
+++ b/www-client/chromium/files/chromium-webrtc-include-84.patch
@@ -0,0 +1,10 @@
+--- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-05-22 15:16:41.083666290 +0800
++++ b/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-05-22 15:16:05.620205159 +0800
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+
++#include <cstddef>
+ #include <array>
+
+ namespace webrtc {
diff --git a/www-client/chromium/files/chromium-webrtc-r0.patch b/www-client/chromium/files/chromium-webrtc-r0.patch
new file mode 100644
index 0000000..e14b185
--- /dev/null
+++ b/www-client/chromium/files/chromium-webrtc-r0.patch
@@ -0,0 +1,34 @@
+From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Fri, 13 Oct 2017 15:49:32 +0200
+Subject: [PATCH] IWYU: Include math.h for round(3).
+
+math.h was being implicitly included, which can break the build with
+alternative libc implementations.
+
+Bug: None
+Change-Id: I969b320b65d0f44abb33d3e1036cfbcb859a4952
+Reviewed-on: https://webrtc-review.googlesource.com/9384
+Reviewed-by: Tommi <tommi@webrtc.org>
+Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#20292}
+---
+ p2p/base/port.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/p2p/base/port.cc b/p2p/base/port.cc
+index a1b478d11..81aa0aadb 100644
+--- a/third_party/webrtc/p2p/base/port.cc
++++ b/third_party/webrtc/p2p/base/port.cc
+@@ -10,6 +10,8 @@
+
+ #include "p2p/base/port.h"
+
++#include <math.h>
++
+ #include <algorithm>
+ #include <vector>
+
+--
+2.15.0.rc2
+
diff --git a/www-client/chromium/files/chromium-webrtc.patch b/www-client/chromium/files/chromium-webrtc.patch
new file mode 100644
index 0000000..07b770b
--- /dev/null
+++ b/www-client/chromium/files/chromium-webrtc.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/webrtc/api/ice_transport_factory.cc b/third_party/webrtc/api/ice_transport_factory.cc
+index b632f0913..6cc399aef 100644
+--- a/third_party/webrtc/api/ice_transport_factory.cc
++++ b/third_party/webrtc/api/ice_transport_factory.cc
+@@ -42,7 +42,7 @@ class IceTransportWithTransportChannel : public IceTransportInterface {
+ }
+
+ private:
+- const rtc::ThreadChecker thread_checker_;
++ const rtc::ThreadChecker thread_checker_{};
+ const std::unique_ptr<cricket::IceTransportInternal> internal_
+ RTC_GUARDED_BY(thread_checker_);
+ };
diff --git a/www-client/chromium/files/chromium-widevine-80.patch b/www-client/chromium/files/chromium-widevine-80.patch
new file mode 100644
index 0000000..ac03150
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-80.patch
@@ -0,0 +1,11 @@
+diff --git a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h
+index dd6efed02..eaa017197 100644
+--- a/third_party/widevine/cdm/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/widevine_cdm_version.h
+@@ -11,5 +11,6 @@
+ // If the Widevine CDM is available define the following:
+ // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+ // as a string, e.g., "1.0.123.456").
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+
+ #endif // WIDEVINE_CDM_VERSION_H_
diff --git a/www-client/chromium/files/chromium-widevine-r2.patch b/www-client/chromium/files/chromium-widevine-r2.patch
new file mode 100644
index 0000000..5527f7f
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r2.patch
@@ -0,0 +1,39 @@
+Minimal patch to get chromium to compile with widevine support.
+
+Exactly the same as -r1, but we now need to patch
+ninja to pretty please not terminate our build.
+
+caveat emptor: it's in no way clear that building chromium this
+way is safer, from a security perspective, than whatever Google
+Chrome does.
+
+Upstream appears to be cooking up a code-signing trust-chain
+which may protect users against malicious cdm blobs; I doubt
+we benefit from these using this kludge. Ideally, someone
+would look into this more carefully than I have ... tbh as
+soon as I got my "stories" back, I pretty much lost interest :)
+
+-gmt
+
+--
+--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
+@@ -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_
+--- a/third_party/widevine/cdm/BUILD.gn
++++ b/third_party/widevine/cdm/BUILD.gn
+@@ -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 --git a/www-client/chromium/files/chromium-widevine-r3.patch b/www-client/chromium/files/chromium-widevine-r3.patch
new file mode 100644
index 0000000..a126084
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r3.patch
@@ -0,0 +1,23 @@
+From 5818fdbef3d399fe1bfbb56f81e59184e1a8e467 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppymaster@gmail.com>
+Date: Sun, 14 Oct 2018 20:04:03 -0400
+Subject: [PATCH] Define WIDEVINE_CDM_VERSION_STRING
+
+---
+ third_party/widevine/cdm/widevine_cdm_version.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/third_party/widevine/cdm/widevine_cdm_version.h b/third_party/widevine/cdm/widevine_cdm_version.h
+index dd6efed02646..eaa017197e61 100644
+--- a/third_party/widevine/cdm/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/widevine_cdm_version.h
+@@ -11,5 +11,6 @@
+ // If the Widevine CDM is available define the following:
+ // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+ // as a string, e.g., "1.0.123.456").
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+
+ #endif // WIDEVINE_CDM_VERSION_H_
+--
+2.19.1
+
diff --git a/www-client/chromium/files/chromium-widevine-r4.patch b/www-client/chromium/files/chromium-widevine-r4.patch
new file mode 100644
index 0000000..d5a3be8
--- /dev/null
+++ b/www-client/chromium/files/chromium-widevine-r4.patch
@@ -0,0 +1,26 @@
+Define WIDEVINE_CDM_VERSION_STRING && re-re-re-patch for latest ninja
+
+Stolen from Arch basically.
+
+gmt
+
+--- a/chrome/common/chrome_content_client.cc
++++ b/chrome/common/chrome_content_client.cc
+@@ -99,7 +99,7 @@
+ // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
+ // bundled and not a component. When the Widevine CDM is a component, it is
+ // registered in widevine_cdm_component_installer.cc.
+-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
++#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+ #define REGISTER_BUNDLED_WIDEVINE_CDM
+ #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
+ // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
+--- a/third_party/widevine/cdm/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/widevine_cdm_version.h
+@@ -11,5 +11,6 @@
+ // If the Widevine CDM is available define the following:
+ // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+ // as a string, e.g., "1.0.123.456").
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+
+ #endif // WIDEVINE_CDM_VERSION_H_
diff --git a/www-client/chromium/files/chromium-wpt-gn-78.patch b/www-client/chromium/files/chromium-wpt-gn-78.patch
new file mode 100644
index 0000000..fc750e8
--- /dev/null
+++ b/www-client/chromium/files/chromium-wpt-gn-78.patch
@@ -0,0 +1,13 @@
+diff --git a/third_party/blink/tools/BUILD.gn b/third_party/blink/tools/BUILD.gn
+index d3004ee7b..ef293e3bf 100644
+--- a/third_party/blink/tools/BUILD.gn
++++ b/third_party/blink/tools/BUILD.gn
+@@ -13,7 +13,7 @@ action("build_wpt_metadata") {
+ "../../third_party/blink/web_tests/WPTOverrideExpectations",
+ ]
+ outputs = [
+- "$root_out_dir/wpt_expectations_metadata/",
++ "$root_out_dir/wpt_expectations_metadata",
+ ]
+ data = [
+ # Include the blinkpy tools to access expectations data
diff --git a/www-client/chromium/files/chromium-zlib-78.patch b/www-client/chromium/files/chromium-zlib-78.patch
new file mode 100644
index 0000000..a1da45f
--- /dev/null
+++ b/www-client/chromium/files/chromium-zlib-78.patch
@@ -0,0 +1,11 @@
+--- a/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:00.697132348 +0800
++++ b/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:41.235747858 +0800
+@@ -276,7 +276,7 @@
+ "//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/www-client/chromium/files/chromium-zlib-82.patch b/www-client/chromium/files/chromium-zlib-82.patch
new file mode 100644
index 0000000..1585445
--- /dev/null
+++ b/www-client/chromium/files/chromium-zlib-82.patch
@@ -0,0 +1,9 @@
+--- a/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:00.697132348 +0800
++++ b/third_party/perfetto/gn/BUILD.gn 2019-09-06 23:54:41.235747858 +0800
+@@ -299,4 +299,4 @@
+ public_deps = [ "//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/www-client/chromium/files/chromium.default b/www-client/chromium/files/chromium.default
new file mode 100644
index 0000000..c140cde
--- /dev/null
+++ b/www-client/chromium/files/chromium.default
@@ -0,0 +1,5 @@
+# Default settings for chromium. This file is sourced by /bin/bash from
+# the chromium launcher.
+
+# Options to pass to chromium.
+#CHROMIUM_FLAGS=""
diff --git a/x11-libs/libva-intel-driver/Manifest b/x11-libs/libva-intel-driver/Manifest
new file mode 100644
index 0000000..baf8799
--- /dev/null
+++ b/x11-libs/libva-intel-driver/Manifest
@@ -0,0 +1,4 @@
+DIST intel-vaapi-driver-2.4.0.pre1.tar.bz2 2888363 BLAKE2B fc7861e5d7625ed598feadc3b5649335c4f6bc0cacd66bdc38a58bbe4d95909c27c9b84478abdda687725070fa9fea850b3d86925ae6a7ea821a168e2bb98a13 SHA512 f637ca24b34573ae022f24f0352be8a6e2904a703ccfa005fb84da00c54e9e02ff0282e882312b86dd7e2d1a1611fba3eef37909ac66a3c2beb056d8cba6019f
+DIST intel-vaapi-driver-2.4.1.tar.bz2 2889762 BLAKE2B 25888ac7a1a42233c4b0269bd910c5161f99bf22c932b46e20c8c77ed0404bf99702dd9f11b73bc0fd76a3b012ffa1de6c6133cbd7be880428235de9cfcc6ad8 SHA512 1e9dc81ecd0b3640fccd1fb827a0ade0a1e5bbabe375130df159849e47ce98c8e879c65ddaaae11d16e916be76b507be69bc0c813494e37e7fca86b0b897a94f
+EBUILD libva-intel-driver-2.4.0_pre1.ebuild 1350 BLAKE2B 92a739dc8fe80ac7a904b40e60b4bff116dbb6a42b0e36384e9b789a8635506639ec08ac8e6b7b81667d922b7911b5aafaebcdd8ef4091b2268982c82333fa5b SHA512 238b18e9182b7975dbf6c8fbff11d1d05d01faefe1eaf82895f2651da3abe4fb8e515b57f6524b96068afd632b46204b8f76960e742be48e4183397e5dae6566
+EBUILD libva-intel-driver-2.4.1.ebuild 1338 BLAKE2B aa00a6564273fc4a205a35b0ec7def5deebd39eedc234942ff0264c9a17cee81356d223e1b87f1df2cce2bcbcc04e526cde14d369661f78d372ff4eaabcab0bb SHA512 bc5a9ea235ba6447b290e7753f039eeeb4b025ea8fecb1416fed07fe094529a6bb5df9d55075b3d58218c5e14e60c18265103441160a1732121a1c2a232ca627
diff --git a/x11-libs/libva-intel-driver/libva-intel-driver-2.4.0_pre1.ebuild b/x11-libs/libva-intel-driver/libva-intel-driver-2.4.0_pre1.ebuild
new file mode 100644
index 0000000..eb0dfe0
--- /dev/null
+++ b/x11-libs/libva-intel-driver/libva-intel-driver-2.4.0_pre1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_PN="intel-vaapi-driver"
+if [[ ${PV} = *9999* ]] ; then # Live ebuild
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/intel/intel-vaapi-driver"
+fi
+
+inherit autotools multilib-minimal
+
+DESCRIPTION="HW video decode support for Intel integrated graphics"
+HOMEPAGE="https://github.com/intel/intel-vaapi-driver"
+if [[ ${PV} != *9999* ]] ; then
+ SRC_URI="https://github.com/intel/${MY_PN}/releases/download/${PV/_/.}/${MY_PN}-${PV/_/.}.tar.bz2"
+ S="${WORKDIR}/${MY_PN}-${PV/_/.}"
+ KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="wayland X"
+RESTRICT="test" # No tests
+
+RDEPEND="
+ >=x11-libs/libdrm-2.4.52[video_cards_intel,${MULTILIB_USEDEP}]
+ >=x11-libs/libva-2.4.0:=[X?,wayland?,drm,${MULTILIB_USEDEP}]
+ wayland? (
+ >=dev-libs/wayland-1.11[${MULTILIB_USEDEP}]
+ >=media-libs/mesa-9.1.6[egl,${MULTILIB_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ eapply_user
+ sed -e 's/intel-gen4asm/\0diSaBlEd/g' -i configure.ac || die
+ eautoreconf
+}
+
+multilib_src_configure() {
+ local myconf=(
+ $(use_enable wayland)
+ $(use_enable X x11)
+ --enable-hybrid-codec
+ )
+ ECONF_SOURCE="${S}" econf "${myconf[@]}"
+}
+
+multilib_src_install_all() {
+ find "${D}" -name "*.la" -delete || die
+}
diff --git a/x11-libs/libva-intel-driver/libva-intel-driver-2.4.1.ebuild b/x11-libs/libva-intel-driver/libva-intel-driver-2.4.1.ebuild
new file mode 100644
index 0000000..8fba364
--- /dev/null
+++ b/x11-libs/libva-intel-driver/libva-intel-driver-2.4.1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_PN="intel-vaapi-driver"
+if [[ ${PV} = *9999* ]] ; then # Live ebuild
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/intel/intel-vaapi-driver"
+fi
+
+inherit autotools multilib-minimal
+
+DESCRIPTION="HW video decode support for Intel integrated graphics"
+HOMEPAGE="https://github.com/intel/intel-vaapi-driver"
+if [[ ${PV} != *9999* ]] ; then
+ SRC_URI="https://github.com/intel/${MY_PN}/releases/download/${PV}/${MY_PN}-${PV}.tar.bz2"
+ S="${WORKDIR}/${MY_PN}-${PV}"
+ KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="wayland X"
+RESTRICT="test" # No tests
+
+RDEPEND="
+ >=x11-libs/libdrm-2.4.52[video_cards_intel,${MULTILIB_USEDEP}]
+ >=x11-libs/libva-2.4.0:=[X?,wayland?,drm,${MULTILIB_USEDEP}]
+ wayland? (
+ >=dev-libs/wayland-1.11[${MULTILIB_USEDEP}]
+ >=media-libs/mesa-9.1.6[egl,${MULTILIB_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ eapply_user
+ sed -e 's/intel-gen4asm/\0diSaBlEd/g' -i configure.ac || die
+ eautoreconf
+}
+
+multilib_src_configure() {
+ local myconf=(
+ $(use_enable wayland)
+ $(use_enable X x11)
+ --enable-hybrid-codec
+ )
+ ECONF_SOURCE="${S}" econf "${myconf[@]}"
+}
+
+multilib_src_install_all() {
+ find "${D}" -name "*.la" -delete || die
+}
diff --git a/x11-libs/libva-intel-media-driver/Manifest b/x11-libs/libva-intel-media-driver/Manifest
new file mode 100644
index 0000000..c902330
--- /dev/null
+++ b/x11-libs/libva-intel-media-driver/Manifest
@@ -0,0 +1,2 @@
+DIST intel-media-19.2.0.tar.gz 15545039 BLAKE2B 58d354190d6dbda0f28a783a732a09267a761bedc8dbec6d8ec2075b85214f4c4488eadf956f27572bdb08faa5f93d13bae90913d10689d6ca09a8cb82ffc377 SHA512 9dfc046226660df589a6fa03500a493cf2c27e806f26e2123a50211b2780a0f30a35c2f4f2447b9cf13e9623048f1e8e7780f40fcc0ba5a8b8a69ea22ed21b50
+EBUILD libva-intel-media-driver-19.2.0.ebuild 892 BLAKE2B 4e19092e337db37fdb486b51f11221158e52e3ba3afdf2a0d7b9470432a190c93a2fc3e3759ead7c88cc81dc9953faf2c4b30a887f157dafbbfe4fe4b2af5159 SHA512 03b15d125277e14dc615493660a3314396aa2ad1cffc56b1eeb624845388cd33c8aea00e8c81c7b1bcd87c3d1fab0989d1075511f75935cef2feb22932e9eabf
diff --git a/x11-libs/libva-intel-media-driver/libva-intel-media-driver-19.2.0.ebuild b/x11-libs/libva-intel-media-driver/libva-intel-media-driver-19.2.0.ebuild
new file mode 100644
index 0000000..36b958f
--- /dev/null
+++ b/x11-libs/libva-intel-media-driver/libva-intel-media-driver-19.2.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+if [[ ${PV} == *9999 ]] ; then
+ : ${EGIT_REPO_URI:="https://github.com/intel/media-driver"}
+ if [[ ${PV%9999} != "" ]] ; then
+ : ${EGIT_BRANCH:="release/${PV%.9999}"}
+ fi
+ inherit git-r3
+fi
+
+DESCRIPTION="Intel Media Driver for VAAPI (iHD)"
+HOMEPAGE="https://github.com/intel/media-driver"
+if [[ ${PV} == *9999 ]] ; then
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="https://github.com/intel/media-driver/archive/intel-media-${PV}.tar.gz"
+ S="${WORKDIR}/media-driver-intel-media-${PV}"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="MIT BSD"
+SLOT="0"
+IUSE=""
+
+DEPEND=">=media-libs/gmmlib-${PV}
+ >=x11-libs/libva-2.5.0
+ >=x11-libs/libpciaccess-0.13.1-r1:=
+"
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DMEDIA_RUN_TEST_SUITE=OFF
+ )
+
+ cmake-utils_src_configure
+}
diff --git a/x11-wm/fvwm3/Manifest b/x11-wm/fvwm3/Manifest
new file mode 100644
index 0000000..b1e54df
--- /dev/null
+++ b/x11-wm/fvwm3/Manifest
@@ -0,0 +1,3 @@
+AUX fvwm3_perl528.patch 440 BLAKE2B de3e566c30fdedd0fa34f0183628c588fc347f220f8eb2f1b31fe47cc43b732ae77427c19b5299eca3f3d6d0dca5c8103ace6602135d08249302b2aed08c7b04 SHA512 f2919221f96a157beb4d08f47f4b2808cdfa5bcfdd6e4015f8e7b50c2990070399346bd61a930ab6450c5262181bfb84938afae5a7d97c55ab8f983e3c5ecd37
+DIST fvwm3-1.0.3.tar.gz 4639447 BLAKE2B ea8e4fac049b613a8ae8ad21f056f38f739c33092ee3e1b4f13730d8078d47eaa8d367b062c66541da8e78b1bd11dcbcc79718f6ef3a06bdeb2c6ec173f39ca2 SHA512 00835eb9a72aeb41b7df3380e69de7b6b9831985e625e99e44a8a0db402011bd193fb901dba9603eaeee8cb1ed8d4a996a99258078e3689936fb1fa729baba5e
+EBUILD fvwm3-1.0.3.ebuild 3460 BLAKE2B 223d8747b30a573f96ce7ff08ea01264d4ab595e2ed551ceee41f98bf5dc1e4cfe74d21d1bac108e0c5d1372469d3417836e15752b44c17a5eeac8cb704e37d9 SHA512 4cfd9a233c79a59693b20af142ea055d0d599102959e90a9547590ddb22aec7bbb2c2caaa50d398409d9f60ea75ee45b1957b653c1ae4e4b62865a543dbd7705
diff --git a/x11-wm/fvwm3/files/fvwm3_perl528.patch b/x11-wm/fvwm3/files/fvwm3_perl528.patch
new file mode 100644
index 0000000..ce318a9
--- /dev/null
+++ b/x11-wm/fvwm3/files/fvwm3_perl528.patch
@@ -0,0 +1,13 @@
+diff --git a/modules/FvwmPerl/FvwmPerl.in b/modules/FvwmPerl/FvwmPerl.in
+index a8ef5dbe..95d79e94 100644
+--- a/modules/FvwmPerl/FvwmPerl.in
++++ b/modules/FvwmPerl/FvwmPerl.in
+@@ -321,7 +321,7 @@ sub preprocess ($;$) {
+ }
+
+ # perl code substitution first
+- $$text_ref =~ s/\Q$quote1\E { ( .*? ) } \Q$quote2\E/
++ $$text_ref =~ s/\Q$quote1\E \{ ( .*? ) \} \Q$quote2\E/
+ my $result = eval "
+ no strict;
+ package PreprocessNamespace;
diff --git a/x11-wm/fvwm3/fvwm3-1.0.3.ebuild b/x11-wm/fvwm3/fvwm3-1.0.3.ebuild
new file mode 100644
index 0000000..fdbff14
--- /dev/null
+++ b/x11-wm/fvwm3/fvwm3-1.0.3.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools flag-o-matic desktop
+
+DESCRIPTION="An extremely powerful ICCCM-compliant multiple virtual desktop window manager"
+HOMEPAGE="https://www.fvwm.org/"
+SRC_URI="https://github.com/fvwmorg/fvwm3/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2+ FVWM"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~ia64 ppc ~ppc64 ~sparc x86"
+IUSE="bidi debug doc netpbm nls perl png readline rplay stroke svg tk truetype xinerama lock"
+
+COMMON_DEPEND="
+ sys-libs/zlib
+ dev-libs/libbson
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libxcb
+ x11-libs/libXcursor
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXpm
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ virtual/libiconv
+ bidi? ( dev-libs/fribidi )
+ nls? ( virtual/libintl )
+ png? ( media-libs/libpng:0= )
+ readline? (
+ sys-libs/ncurses:0=
+ sys-libs/readline:0=
+ )
+ stroke? ( dev-libs/libstroke )
+ svg? ( gnome-base/librsvg )
+ truetype? (
+ media-libs/fontconfig
+ x11-libs/libXft
+ )
+ xinerama? ( x11-libs/libXinerama )
+ !!x11-wm/fvwm
+"
+RDEPEND="${COMMON_DEPEND}
+ dev-lang/perl
+ perl? ( tk? (
+ dev-lang/tk
+ dev-perl/Tk
+ >=dev-perl/X11-Protocol-0.56
+ )
+ )
+ rplay? ( media-sound/rplay )
+ lock? ( x11-misc/xlockmore )
+ userland_GNU? ( sys-apps/debianutils )
+ !x86-fbsd? ( netpbm? ( media-libs/netpbm ) )
+"
+DEPEND="${COMMON_DEPEND}
+ virtual/pkgconfig
+ x11-base/xorg-proto
+ doc? ( dev-libs/libxslt )
+"
+
+src_prepare() {
+ # Fix for Perl 5.28
+ eapply -p1 "${FILESDIR}/${PN}_perl528.patch"
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)
+ --with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm
+ --enable-iconv
+ --enable-package-subdirs
+ $(use_enable bidi)
+ $(use_enable debug debug-msgs)
+ $(use_enable debug command-log)
+ $(use_enable doc htmldoc)
+ $(use_enable nls)
+ $(use_enable perl perllib)
+ $(use_enable png)
+ $(use_with readline readline-library)
+ $(use_with rplay rplay-library)
+ $(use_with stroke stroke-library)
+ $(use_enable svg rsvg)
+ $(use_enable truetype xft)
+ $(use_enable xinerama)
+ )
+
+ # Non-upstream email where bugs should be sent; used in fvwm-bug.
+ export FVWM_BUGADDR="maintainer-needed@gentoo.org"
+
+ # Recommended by upstream, reference ????
+ append-flags -fno-strict-aliasing
+
+ # Signed chars are required.
+ use ppc && append-flags -fsigned-char
+
+ use readline && myeconfargs+=( --without-termcap-library )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ make_session_desktop fvwm3 /usr/bin/fvwm3
+
+ if ! use lock; then
+ find "${D}" -name '*fvwm-menu-xlock' -exec rm -f '{}' \; 2>/dev/null
+ fi
+
+ if use perl; then
+ if ! use tk; then
+ rm "${D}"/usr/share/fvwm3/perllib/FVWM/Module/Tk.pm || die
+ rm "${D}"/usr/share/fvwm3/perllib/FVWM/Module/Toolkit.pm || die
+ find "${D}"/usr/share/fvwm3/perllib -depth -type d -exec rmdir '{}' \; 2>/dev/null
+ fi
+ else
+ # Completely wipe it if ! use perl
+ rm -r "${D}"/usr/bin/fvwm-perllib "${D}"/usr/share/man/man1/fvwm-perllib.1
+ fi
+
+ # Utility for testing FVWM behaviour by creating a simple window with
+ # configurable hints.
+ if use debug; then
+ dobin "${S}"/tests/hints/hints_test
+ newdoc "${S}"/tests/hints/README README.hints
+ fi
+
+ dodir /etc/X11/Sessions
+ echo "/usr/bin/fvwm3" > "${D}"/etc/X11/Sessions/${PN} || die
+ fperms a+x /etc/X11/Sessions/${PN}
+}