Thorium Browser added

This commit is contained in:
Torsten Kurbad 2025-07-10 11:02:22 +02:00
parent 86c090a6c2
commit 217a1e20a2
49 changed files with 8650 additions and 0 deletions

View File

@ -0,0 +1,66 @@
AUX chromium-109-system-openh264.patch 577 BLAKE2B ec83d9a72a163683d791893e6b72fd5a6ffaa18d611bc6e6785819292370cc9f4fd37d8d3a33ecb5621beb33a3271df00d7a1b629300fdfa8db6e4e4eb196f1e SHA512 5ea73c8522619d83047fcd429988b24687e928e01c2915ef4145469fbb1238ef4a72beca73493794e2275b855f95412355700579a31649d64d74133ed815f1cb
AUX chromium-109-system-zlib.patch 440 BLAKE2B 95bb1099055e3e0e122d4d8a77cddec0a3417b3d87ef252d7a475f6be23b16f587ec627c90bac41d743bd9dc07488edccb0946ed465f2244b61adc44cd19761d SHA512 b4e386613eb2a0dd61af40bb29621356085e183b97d830661e5157e4f22c2ada5606d80e56d5a65fb2985cdffb505a878c32bdafb081b1fa24cbe976c7b60b86
AUX chromium-111-InkDropHost-crash.patch 1066 BLAKE2B ee0b42803a59ef4731e4f316849c2062870b92040ff4e339c3f3f2562999b54fa3176b27e432f31ada76559087631fd623d9f57f1961a42acd0684041c322a01 SHA512 dfa3ab6a84b57b6e66053be2597f0d6c7f4caf54b0e45a359774a56dfbe1e65bdea91120134e77b1e7c38c336a4fd8d05a7c26e9d3bf4bdc0fe40ad7cd832a54
AUX chromium-118-ffmpeg.patch 1684 BLAKE2B 01fc5b3f3a4c6b68aa03327e49847462567ceed09ce42db93106f13558bc358116a85cc22812ab1b060e5d5b8e9913ffb74485e76af533382eeaa90a4e71a0e5 SHA512 cab524c7030e8d01921450eb9c00eaa678fd06073b60fc29a973bc7fa19a878666ad812b1e99863cc947fe1037cfce7216333eae52943e90f53f1277fc6642c5
AUX chromium-123-qrcode.patch 2100 BLAKE2B d42df3fd72d1930aceef3f9e3633167573f7d0cde7907b27cdc3d7a100e37f822a557baf2d9f9687cc11e1a4160e09535226437bf2d724df039a58f796408ade SHA512 339499323bc55a755618035f1f2b56472127c8b467031400d63569e5f9300782d3a5e655cb7a191e9759e90d3d27475f22fde6f5f63ab348af7a9f2829e7b715
AUX chromium-125-cloud_authenticator.patch 627 BLAKE2B 0517aba87901e0c318fee6a0ac7e4317eb4ea18807841bc89b761b1da8938cb4266ea5e6ea7aee629ae16ab622ff966cbe2a3f6dcd7871ff516fc1477db26226 SHA512 e6afae2766bcbffa5f259a0bd8fb3b1b6078b9f61102023229bb7b2d619a9b3911beabd39b1c88b04e3ec8c80a98843733881ed53039b6d98f764bbb4ec9d124
AUX chromium-126-oauth2-client-switches.patch 2214 BLAKE2B 0dfc0dcd585bcd12793033292b1e10f448b84a65ee9354803237aca225a5de8b40a56f78cc806353d5240d41bed2efe82bc1b39ebea8ae4db2f79855f6ce1eaf SHA512 77e4e5609b9191160c73681020defd2d3e6fc3874837611e1febef538d3997fccea267ed87f6bbff6bd140f98d8e909d935ce3e3e0d53bf597882bb2282ab72c
AUX chromium-127-cargo_crate.patch 299 BLAKE2B b9998c8681738ffa9b846c581df8084ae627163070498576b762da7aa6654b3e40a4c341280763cc7ab7c40f86190187aa18bf1f3246e0012cb1af42690283f5 SHA512 73b8708077ba106f1c44f29a52bc403e54df424587ca7ff1c662f24ae32b83bc90608a43dbb9beca4ccd1aea8200791e9f9f42287415d6e6f8c795ef0adeaa7c
AUX chromium-127-crabby.patch 1894 BLAKE2B 9132792722b911867079caa808d923a9168f784f5e1c1ccb66efd0a8c15c4f0d388716469e78b9780b90083ff41895ae00e34b8c5b1ab2c1464d7732e2108ac4 SHA512 bae8e58c55b45d45cac192995109fd3554989e54676fd175cecb895f000336bdca51f80affe9d87f3951a587cb719485d44100e48131e07fb4e70563c29b0321
AUX chromium-128-gtk-fix-prefers-color-scheme-query.patch 1986 BLAKE2B 8a7f4a99672e834b1b673476ca7428939f710adeebb0507ab65783d419e1d213be08cc17f188ccc7923a2b07da3a2791f2f122e11c5735726f6a72d7d6938b39 SHA512 d89ea59ddd1e0525994def0f6d1b8e5dec79c9e3fd920323231c2ebd946e74f8241f48efcb307c41339e01f4faa065e224e25ffc7780d1869203d6e58fc7ebc9
AUX chromium-130-fix-building-without-tflite-lib.patch 2535 BLAKE2B 2495b705966180cf034504559e440a9157b99df654e98572ba68c6c5a856ecfb914e08e53bea8134531d28584ffe19609b3c9db254fb4bbec80c03d9e545d531 SHA512 73913c527083d682638c28dbec5477a1847e393d638b985e9e3962b5fbb2b0e6c72078851a7b32d6b8433a5ac685dc6ab431b48e092a2558d426d3a5c751e308
AUX chromium-130-fix-includes.patch 3375 BLAKE2B df286cb1069414a5ba0207bd2815f42f0947d0f547c19308ce0f44ba8c5705931cac4d115ee33df66bad15ad97c87eb2743abfa749c8cd6c43b63dd6a3d271f9 SHA512 4951147efd4fbbe936e2184b2f92b69cb19e95d6c96b73e4df0bbbcdcbe7c1e0abcc86b318abdba034c23df9c58978ff257a2ae420bdd486846b79bbafe07e4f
AUX chromium-130-fontations.patch 3040 BLAKE2B e0379c940bb8fdfa28fd1973c11d5bb7d1fda56e4a76169bc7c4a2b1cdb83792b3de142f8f4d594f462dec1735fe4afddb32b962a6319a6aeacd36c5737e4e47 SHA512 aee5c88e97b2afe3ef4218bab859702a12e0f503df797bc03f594df47664105c758d8b1c869574ee25f32cc94e2de3c84dae0d89cb614011e94d54c3da53ce69
AUX chromium-130-libstdc++.patch 4618 BLAKE2B 175d64d4367b68d6ecd9d7d4f9c796a1c026066cbc61cdecdf1570ba069ebb9cf81b3be3f3cc4c62594a0bca89bce5b9f89b0903193d6eab8e86d80c166fa79f SHA512 85d08144423e9545a9bdc98eeb70bc8cbae23fe78a771b13abeb2dd7d324b197731bf64162b8b4bed0d88a055d9edcb9905a929c8a6f6ac0cf79c4a2ea296269
AUX chromium-131-compiler.patch 9766 BLAKE2B 70c472390bbb99ffb0a5c1b5b23c0deac4624c43b18bed06d15e9ea467b22f365aafd785c8abc4102d81cabb8ed56e6385da3e438ceea708c86094ef10baafa8 SHA512 336e4e90e831e58fe06b63c4b3d276a79a38d0e777c33e70c4050f41ac8b0c5044d57225fa45f41a1f6bfd9d8d2d6bb3e01759b77bfb39bb490801ea7fcca282
AUX chromium-132-mold.patch 6134 BLAKE2B 71dbc254343be868c31f542f564547d8c090d4a1b0729b6f75d0d518b80010bba63cb1b6af0af9d7be4971611305eec25e11fa18b048ba5bd3bfccb10b787a49 SHA512 c753a5eed66d86070da4d18096c6c3a5c7d8ed5982f5fee2bc48172362cbdb983090b921a743e78639eb21041aaaf77653222cd057cc4941d7a761d29d234280
AUX chromium-132-no-link-builtins.patch 550 BLAKE2B f838540e21afb61d3041ba8690e1d71269cdd0f165618b12ef8c3fb24e5e3f846c1bb56a36ac19738e17246d02d75937416a53fb4bb789153f76f6f7fe9bbf28 SHA512 6b685dccd8e833e22c4be4be14e6fece5db13e7635bba0442b0fc8000da7e921e7bc479726569e587c9ea8338fa95cf795f0f1912ca3cf37bc2622dc4a07ca19
AUX chromium-134-qt5-optional.patch 4140 BLAKE2B 2a5879384a95fa0a9edf2e6506b2f374f6366ef0bd5f248b14333cbe721c5ad85d04101cf7a15a207c476525a8ba22645d8446c684363b3fa8b9c642c89b8fbf SHA512 b9fba4b3d33430a9565a6605f8d525618e6691622095bfe17f781e030e4395cb5ed25242625761ca16b19da8014e4afa1335fc6719cae78c8b3594c9e9092978
AUX chromium-135-gperf.patch 1539 BLAKE2B 59ddd646ae97f8b77e6f4852ff4d1c50b0910f48199508935ad855719a6ad4081fd1c088a89e7e19c906aa98842fef7bbe97f219c10d7c4d279563650e4b65fc SHA512 3a66cdd30a9a2bd69d6d1bcf06602290830509910b37a9a96b3f4df1525fcda3b6b5c683d255ad976228cbc8a215bc3746985ab4d8096b1f48740ec0eb9247a5
AUX chromium-137-fix-for-kde.patch 718 BLAKE2B 0f511723c4712563b8db97db9fcb0c54575a4f757c2d5a44ff265cddfd11e37fa89f2865d5c3f2956d6680bc67b2cc8c399bf57d591d3ad37ae2297b9a18b9b7 SHA512 669b35bd5204f50c0e06718435a92f000e9f692b084f8ce1154465b0fc4d3f5796953f72b480e3e55ed66f122827275cb9358fc6a58a522855adb7781ab940b3
AUX chromium-99-opus.patch 556 BLAKE2B cad43be94fab004267ea1311f329f38b032a49374691a639a871feac1b1fb304768ac40659c0c72b0705738791b4ce774bca5591e7a19546d0ca4f76bec5f369 SHA512 8e5691104f6d724b59ae6e73fe0720bf483ff95bd80a4e66116d1555fa786c1e4ab813d9479a26d363c5a36da39dc31b56c69d3d84eff39bf0c2deee1cf632e7
AUX chromium-cross-compile.patch 323 BLAKE2B 8d5091ce5287422c9688ede2563360a96b8bd34b9750dc1c8f0b6ca9aeff2c066fac2da169396baa131d971c087c78f9af53999df0e102d1f57176f5e8d3dd57 SHA512 06d3afc1aa19e57daac0e4bad37e1f365a68408240430e5e818e5a4f12e3b7519214eafa463633e447e7029f4ae13ea864ca347ad1fac117702a0be88718a954
AUX chromium-revert-84fcdd0620a72aa73ea521c682fb246067f2c14d.patch 563 BLAKE2B b15d3f70f8cf6bf94c9c52f17e90b9d989a035903d70f8e10fe09c388522b9ab6b9959da003996cce6e308cdc9abc0631805ff40efe5805cd99076713c27c34f SHA512 d0618255f8bcf0429f7dbb94ec8f2972e8b09568a4c5b10df2e5bebf99d8eaae2d0be3217c48d97e655c9a617025211b2610117797820609442c376d93aacd78
AUX chromium-system-av1.patch 787 BLAKE2B 1b7925c4923bc559890c04626d12c813816516aa593a6ddbb195c4be0135f55fc255194b60927a21f0348a65f84ed0239630fcdada6e90fae5ae2b9b3ce37058 SHA512 67fa937ac254656277ea0d75c742437db0313ee05fa03c7a53efb0880be6aaaaf1a813c11a5838d1f0f8e696f3ebcaf774f02f9b87d13655e6acd223e20d4a45
AUX chromium-system-libvpx.patch 764 BLAKE2B bc73407a255da53f45b471a9407cbdad7d64c47f5780dc58bd92e35255c87bea1f4738ade04f3dad4aa14f8db76f66ea37aea351c8b198575d3127985b6e2766 SHA512 436f8df62e1ac7c87c6f998870cbc68b71e321859d384c91e144c4c5b80df498d75f162975ddb11e2c4e336ac80e576161e2bc4ca7765edd75082233071503ea
AUX chromium-system-openjpeg-r4.patch 1035 BLAKE2B d269a25bb13b42929a6ddd73a8d1f367b557b58c6a81af9c52e6ad2fbe70810fdde065c6d909c83ea42d9cf485d3a68f490510c695a4c2de3f963bc5a23df828 SHA512 913d164bb094b3a1d467fd129fd817b3be345869a9d7949c42f25f2c1a02edea501c1a42adb4e5f083bae9ccda16f2368e05c00b170ef3facc31ae90c1a2410c
AUX chromium-ucf-dict-utility-r1.patch 3843 BLAKE2B c9da2ed82f6113f810a430f09fc584aebc27ba7174c82c0b773d5387a03d7220a400cc24733886ef3e6d6040c03e04796f19dde342b11765ea8ea1c872b381da SHA512 47ac0d83f097a66370049babcb78cc70387865a33c8a679ce7380234544d0f0f5ed1a01afad7d5b8a6e4622c9c7c4f45c9254ed3241a991b634f60cc3a3ac724
AUX disable-bluez-r1.patch 3265 BLAKE2B 72465c584899c3f277155931b75487edc7ce61d7b251446264cf0f33af4afcd9a2227a68af68101c07346e3b5dc1b3b1937c68fee3cad902fed6b6e2a8654c8c SHA512 d8d8d60a2f689919d9254da3530ff5fd362415ae979db6651bc45f4fb0f9d7b6aabdb7ec0190bb9d95d23986dedde37a94a9907a9a26be6cc4535787306ae674
AUX ffmpeg-nb_coded_side_data-dolby.diff 896 BLAKE2B a90921aa94edc200c08bcf0ddeab962e17f73a22a699166fdf7011bee36bc9b42730727e1d59003dc2f3b798bbeeaa1ebffada3d7801e68e1e0ec8739360b392 SHA512 c627eebcc05a674978201e4b27cfbfa17780260526bcb5d441a3a5dbf9c6006a1f1c3ad14a538bcb288eb01a0595085fe2a13eb1a1500b0254777968493490a0
AUX ffmpeg-nb_coded_side_data-r1.patch 9732 BLAKE2B 3d71f7e2acc4b5db098fd5e052081297a5894263857dc53111814deb73acc075cd0e30276723b3d934d05004c94675d4a1f72a363ea3e3da2a0beec06aa8a7e3 SHA512 ecfdeb14ee9ce794cff2695da99aa818cc2f00d013f78fd9878769f0c941fb63256cac281b3d69612d79e4d12985219ffe4f428382ec650017645d2fe2c0a187
AUX fix-building-without-safebrowsing.patch 175026 BLAKE2B 14a4071ea5d6896594c6cd6d8ebd6940c29203447713767f03db06c7e61627c7aada5f415fc28f5a60cf5e55c1ac98ae0e2f79fe72413cb2b9cf08e808c05e00 SHA512 8f8e4b92845cd487fee676a4aa1b21084a60514b4e5d0cd0804bdb435a24b914194c0c572fdf74247fb9f2e286e58a731fd2e219eb89a95d748e15f466f97770
AUX font-gc-r2.patch 2692 BLAKE2B cd1085fe89cc7446c52d9b1a68bca57811eeb21b3fbad2318752fe7434fcaf96a2708557c90884f286becc6b300ff21a8b6bd3107a69bddbde24a68df0be3e9f SHA512 3575a769a77f25734603105693bfe97343050f7d2b9f7d6df4e81c3a8643c3f7b49c5b6bafe4f09594551968c5a941deb5862da6409d3a1ce9120a55909321ea
AUX libusb.gn 502 BLAKE2B 8971df95ef9690762eeb41eda4814fa57488a840751f21671bed01291dd0d840b8028737f7a59b4cd0858b57bbfdad4feb65485805fb50934bd339358b952659 SHA512 b2667fd1751b871f935ead6e7388f5046aaeea2a5b393cab27af6170be690e82f679bdc44c932de03d2c1b2bf51abc75b0fac16dd702f84cdc8c078befcec49b
AUX perfetto-acc24608c84d2d2d8d684f40a110d0a6f4eddc51.patch 3584 BLAKE2B ce9b6b5cadd5cfeb77af9e4c6728aaf01b9e137c5ac026608310f784832c937270ab02bdfc7113b70c714907cc03d04c244cb2193643301552d5372645effbd3 SHA512 4c9c50efabed768acecf571e2f5e142959a2d2c3dce793771719cda3a878afa8fa6ff47180e0d90f1d8dc1ff863fe46855a5ddefa1dd8bd24fbf895ec1d60562
AUX perfetto-system-zlib.patch 433 BLAKE2B 4cd2883262ab5b52b3bc78fe4b1ac000682a7d9bbfd0e29af424a088dcdad262c4d09a6098317698c8f554d015abdb7cf63f03f2f708f10f9ce01bbe5c116d21 SHA512 dc5320ec9fd991aaf47bd021010ca54f033e1514d1b551378c7b0dbb9cf5b8effc4aa895d180eb9b81634c363098f4c85e944089024cd9c32fa0ee4bb4589d5b
AUX reverse-roll-src-third_party-ffmpeg.patch 12334 BLAKE2B 3764501173a12429b6a526af4cd5bce4c53f44aa35286f26776c7e7b436361106ec3e93ffb5e8110cbe27e118e4c145d4f0e1ad0c7acec192d51419cb7202cf9 SHA512 d7fe1952004669c2ce1928d3fcf9ff2bb0bb6c594a2ac903aca66a725cf72a9e4b4a2bd7ea532d8b4029e68b756c112d76bc290acfa3385371b223083a6268db
AUX reverse-roll-src-third_party-ffmpeg_duration.patch 902 BLAKE2B 1852c817a247393c1574781d32e41b154de25c542ac767f95bfdfd3380f99438b8e97fbc08fb5a2cf5b84eb68cf049a1cd02cc5f60bea4adb702037a3a46cb07 SHA512 550c8d4d29562e846ed793e6a434396202a7cfea09361a0544a0539d60cad807e4e052bf9a3d000ef8af02f4bb213525542e73560651b7b89f2b59cbb9539a3b
AUX thorium-130-fix-building-without-libjxl.patch 978 BLAKE2B d0290a82fe67d0c43ea1194f95e5dc15caa8559f1e20ff63eafe7a20e8254a61ab45235010dd630c4a9e41707459c479c4ba9c6f1e4e3084cca3c7b1e7a2c477 SHA512 5e030a41c5a6e7190e4d254ee42528ed842fd37d8ccdda33657293449c1f954440624d1bb71238b93fc63324b25c5f8f52f49e90b0ef9baa0fb28f5d8ef72782
AUX thorium-browser.xml 403 BLAKE2B ddf0e198b06e84b787d5920ac0adaa2e1e532a03fa8673ca6542784cd19e668599acc01c67efde445bbdf8790dafae9e0f2ec272ab4d759e2a8b5cf10ade4c38 SHA512 8474477ffaffd92013f8121e4318f7cc183db63baa4dbd2c78cddda5a9d3876dd451405374154ba40a17b7a8cdea78b485ef89b0ac4283ff9670f5a08fb53fc6
AUX thorium-launcher.sh 1626 BLAKE2B 615fce7563f12f7907eda4bca861f2345b0b03ddc0529857fb13050ff3a0b837ef04f26730fa12cdc6345e87e1d1bd46f6307df399896e3ccee620c0e157bf47 SHA512 af6e9f89e988c3c58be9bf93603835a2f610f45a9a73b0500abc49141d0836409b118a6838935737aeeb011318584381c146812eed25914e3b4147e3353376ca
AUX thorium-shell-launcher.sh 1281 BLAKE2B 7224eeed73a3a58a4cb7123953f23f4e54b4257e73c32f566bae0908c39e3114985131c6f8ffe056b224ddab7f36f013d273f17b60376a9d4e2d01534f9b2a95 SHA512 7f5d9f43ba8002ee69f136ea76932b23058d6fc5e80a7c0d010178f04b912685bae6c45df17f501ba168bb7e8a0e8251ed0a7a959a4bfc3572acacbcc124a0f1
AUX thorium-shell.default 273 BLAKE2B 478437d707a7346a17af1db104e02ebed43d508ae2c9901a9773e5d1393cd5d2e90ce2ef43ee8313e349d79c69dbf12e6860c6f00bf273c29e9dcaacdc2854f0 SHA512 2c27040b79c8d1c76c323ca6561f697f00876b0c3be6edf0888b17df14a502a09f01de61f3de77778d4b1d29bcf4dc39883173b34212a4f5500eff1ccff12362
AUX thorium-shell.desktop 431 BLAKE2B f9ff55e270b01646d87b1f9236c27490c06003a249bf04ec22160701fa2e5cd680ede7d4dc3e0fd9733ce6c6de1f6eefbb7d2102edf99507a1c212dae484b9d4 SHA512 294295d13c7347771dc5f7c8be50b5eb5b43f830d2b0e52b94ae6fd454a04852734cfabaea8afd63874035485afa9c8ad4d3466a5a6783b7d291300a176b5e08
AUX thorium.default 256 BLAKE2B dd7a3c12f068d416917accf01b4c670251c62b987480c05588ec54e33d199ec899d6d3dbe4e8a92870119f0a057e60cfdef340947dc73ba2bd5005f6da84ff0c SHA512 c28e30a9838fbb3653288adb474b499050e193c29d48e6929de7c1360bd593a19f95180d55cf6bb561bc5a50c67efe9397096c2315be24e91b48735bcc3c4626
AUX unbundle-ffmpeg-av_stream_get_first_dts.patch 393 BLAKE2B fed72675027a27c852936559272ec88e18ccf6fe73cd4562270427005682e1d2dd184f9b51c470ab4e96dbb9751cbff1ae0c102d287c16294800d39b44a11f75 SHA512 4d184faf083a82e2a51480b8513b14c81a8d03a821fd25bd41523093e064bc2ced8e23fdc37da548d9e1e171784263436b82be373aa7307b4da41ee8b3b26a89
AUX update-dicts.sh 1680 BLAKE2B 8d3e8e90f62cde763256c0d3e48aa075776e8c21df9df60a23e788eed992ce12446fd1c92b3a9207793eeb8f7c4537e322845e728d35d0b57a2c83bffa5251a9 SHA512 c9868aadfa5a905b94e749074fe98a29489947f9aeecd728498918697a39b4bf77970c7b40f0b53f8de56985bd47ee17a3550ee5239d00e166e35d32f585cf4e
DIST chromium-130.0.6723.174-testdata-gentoo.tar.xz 97492 BLAKE2B 997562de242b14a99aa6998c41ce9f77d1fd36a73f48deff1c57ce90c6dac7c04a7a74493e1ea3c2206f0706dcbd24ed4be7d2283fa267cb628168b5eb38b176 SHA512 2e9d46f83a5649c0f06ea67df779a6f46f011636be08a0a3c0623f7ffcbc27af1e269d49319535b4c5f89e72ae0949736b6c0cd705a2890453ebea1b361253d7
DIST chromium-130.0.6723.174.tar.xz 1316010876 BLAKE2B 88ba934d72ffc9b40f456af925a46c94d6ff2378c6d246f686b258360a64c12590db7f92ccb5591430e79f33c10f7ca17cf4c17fd5903699b6e31c6a359c1392 SHA512 12c458560183965d1457147167f3ef598e9c83b9332a9bc27303647ef7f580849563351e6644d34aa78960db028780d834c3364a7e662f38d5b516ca2a2a287a
DIST chromium-39583ff118920284de516d262979960e7159bcfc.patch 1391 BLAKE2B 28815a2a49a78791c74462442863e26c10fbe770e883d82a36b8793f2900c4feea0053f116d9029bfb66b53f2df133fbe8f92635dcd460e3405d34dc9afb5329 SHA512 0ade99c4c8c4acff35502b195b0c46b944f31f2e2c5beb0e9f63a345cceebb1c4dd21e9e3410484f40d75e3ebae170536f651edcaa0b5c8d50edb7272b62a492
DIST chromium-40c273b2c0f5f26e16e67428ceaafd8b339bb61f.patch 1745 BLAKE2B 8df526e88bd22bc27a00ad5fafabcda20865c5fa2bd0ac91523c3b22709a725c010e4290bbb400c3f96f4bce61ca4b13f472fc27e2da34a7a2afa57e912a3f75 SHA512 4debcfe22af457bc3606bb7e394abaf3efd8f6e544f86da4bd3e0e0be81a7201ff038253e8d54fea5765cd1cfb52950e21f98685cf79c5c1a22f8e448b9e894c
DIST chromium-47fb59539e5744467eb6f7aae52f5a169910d56c.patch 1405 BLAKE2B e72e76133ef9e75eee65d5e7e840337912f93148ab6bc04d12d64c6d4b58c80fd4f3dfd9f033649948357e3956c6dac04561f9198d5bf443f03438a1dc72bc2e SHA512 714feb8e53b7510072407ac5c0d9026e978805d65a754d62dd53605f2d7dcdb8c5da1634c4a84614872c10f31d6ee2a5c15bb4d621a426ea939b38e42d5e39b8
DIST chromium-4c49d7f04f43ab4757637cac21cfef7c0cd060fc.patch 1172 BLAKE2B 346027f24009cccdbb479055567aae9e327ea88163d5cc25becc1512b7035c809ec8089b69b6084e6278b9a6029123dabbe824b7ffd988aa244ba84dceff629f SHA512 63028b4e747b92fd462d2663fc317bec8f3ee1e3fc486a9135fef7fd5f68eaae9d883144024f8ddebbce5f053ccfe8ef142b3f6d0dfbd785310fd40bbb060f6a
DIST chromium-7e28832cd3320d2b603e6ef9468581e1c65c14f1.patch 1339 BLAKE2B 8b8c9daa68f981b70627a07d9f7638c33158802d3ece8e7ab4e25734332944407810e8a2aa4f701d8153ccdd72138525598e23660feeb4b8a8e69893cc523d8d SHA512 10298ad3a257488add2e942e5522ac43e7979162acaf037122e437fe0a9734893e9bc03bd6a528d3052bb3ae2efe94fe61fb1fa051307db544e507d17603e4c3
DIST chromium-8739a5b33176e82e06a746163c0c76de4908ced9.patch 1635 BLAKE2B 3c8a62403bf90e3e35f237f0774196b8a15669717a4ece79f5d8306fd2bdfe01f7c1f1715609578185c236a12d5cf9c4b4438a6400fc16e4a89e6f7f681c8820 SHA512 0323edb3fb4f34e50035588423af412c16d95ea06fdbc6ff82758b4e640cad803d40989195a2c9782b87759374e42f3d38110ff929224f8e3dce3dfef9a7fae1
DIST chromium-b51da416e04ecc9edafff531f9678c6404e654b7.patch 1346 BLAKE2B f1215a48fcaf36b70b4cc1430f78d43e84d51089cc4cdfa8508e37574e0aa198bfd99ef99a627ca4b98e79547549a2844dac5debc7b8c026964db15bdaf849aa SHA512 7d1f79184e69d927e025371d3c50a997fe82ce9a328af7be4f7e459a92bb74b5cdc545c7d65974242ae084835cd59f3e1ce7924252cf79e5e698940052bd11d5
DIST chromium-c502d310d8cb91f1c1098a7287e75114023e57f0.patch 1391 BLAKE2B 4d7dbe9c2173d01756f99208804bafa2732d8992c9a9132905964a600103e8b8018aa188a2dfe96e0cf688686b585fffe05930cb3af734c26c648ccb9ad211df SHA512 0c3f681d8cf971511cc325db17bb36e81589c12404e70858a6f41dc3b41d1b0eb4ac8ccb02904218739625275683cd5fd94b7426c57e3d43ae8753303ef1d6aa
DIST chromium-dc9db222b929f5da415216134b77d7f3bf141813.patch 1253 BLAKE2B f0480b418bc2b4f0a0a21a10a139f304760b1ffad093a22fca3618afffc452e2bd22e9139751508ef00814f1a5c78391a845632dbdffc205bf73ed2bcf35666e SHA512 929004b1286f15916a4d21b6b7c4f73a6da9d7ed704ad2d52fbc37fe0f967615be0a774890cd4cbc377f99bd8ea3e1560bc837e4dcc9527c4d052195265e5490
DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b
DIST chromium-patches-130-2.tar.bz2 10151 BLAKE2B b46515a3e01153d8c4e5c3ee1f6e9f905265bf88b698d46c8ceed0f90d36a057b8bb30a860e8d934bf0b85f9c0a671bef2c9a00349228fa076b7aec37ff62ca0 SHA512 e1ecca666c3998ee285426751be3220a5b67a057f2c92b1f45c7b786efb8d0b0e1d49ba70471fa74155f79f22811d240af636f61007191756c9981b53d3b23de
DIST chromium-testfonts-f26f29c9d3.tar.gz 32750602 BLAKE2B 498f8b2e0811c98dc3d4aaa75559e69c782afb4bd12328cfdb7244ddba5cae7ee47becd27b2549d7b36bed417601f70f4c192934b0f08496cef1547d0502d93c SHA512 96b090446862997c8134e2971f0e38793ecc1208d547e554c9b651ccfb4127c4de86754903fea57a7292a2823c45117bae0ec13ed87aed20c248fb779579fbde
DIST ruy-587c2cf8b11d3c32fa26887063eda3171a3d353e.patch 684 BLAKE2B d00895efda90c4254ceb875e52d2959cb0d4c95cfc98775a02a6430f60f038c7da701316de40888e5f63ad907f087bff105d79ee9c9bd386bae5053de9517a64 SHA512 93c78353c0f3d50d4ebfcbf34b0b5d2c2bc3e1a38bc0e545d2e547010f540dbe2e0e284362810a554f58e300d3c770d35ec49ff87e565dc4b66537ac515109a5
DIST thorium-6a89d88a334d8df585ce07f9a56254ef85fc8956.tar.gz 158609045 BLAKE2B 74173fc5373aa0ea975c944a1fe6683d86120f9476918b4cfe176deb6b892c32e27af5e060eff6d4b5eb0f0f7bc62a9c2a43bcfc07eb80da9a85c6bfb88f29b6 SHA512 cb9211ce25248345ca2f7d410686e9cdc7c6de5ba5871760f2564177749c5961990dce95da3e83e8aad9b58da2e7176d526d6da1b89cba6649f4a0be9414b9a0
DIST thorium-libjxl-059d2253e91e3c8af7cc860f1c633f18ac19eb67.tar.gz 3610533 BLAKE2B 019cce40f13fb163436a5d2a90c11f9d25836103ea7bdb508492138d9eeaa2f895e520bbc70ea54290b1d110283411ea4a70e427c75958bc4ade8467b254e132 SHA512 40634e8124f039d461984ce1929f36cb6d1a02ceb11c207390f7968a270bf4f513b45f588da607848edb9023c6f4795440e621f8d79366f70cbf5a6d90bf723d
DIST ungoogled-chromium-130.0.6723.116-1.tar.gz 1247229 BLAKE2B eaf49861d5a58854ccfb95d35fdb24c9adbee1d9c14ee5d51c1c2e14a8a41dc807c94b949e3f20f87c92c1f859a6a4c331f748367b08b9fd251ca3969a1e8da7 SHA512 aaf2bea58ee2a7689ed6df68f7b311df404f9d7a2b34e3101fb0689ffff158a4e7a6c6eed43e256183696eb6a3f6fe527162b37323015168ffbe279ed1638efb
EBUILD thorium-130.0.6723.174.ebuild 67354 BLAKE2B e077a826feed3de8f2612c44fef4510d0d42c9f87d95d151de61f51a185bd7633113d02454ba1700c84ce1db5afeb8865dc38da4c63f65bda0281d50a2e303fa SHA512 b1c21b36d707a20c5ac9583bceddacbd2d2b99c1458dd6dfa5265d01bdbc67769296952deb0e4e5ddc14db2bcda198d4ba22a62132cb445113e595525c3e8233
MISC metadata.xml 4711 BLAKE2B 47daffd026624b61a2da6bfb3d02b77f92e6b4f774a5d96994f01d02d84077b4f577b70b10d728f57f269ea9a5e75518d27650f3134120656cce24eb5bb493a3 SHA512 23917be73dd857421f3d9fb0d6b36940e8f7a215042219c48f0f1a91d5b0c8ae33d3078fc68b9ab4a5298c822a5ca141de9c21815ab1808206b7643502128ce8

View File

@ -0,0 +1,20 @@
--- a/build/linux/unbundle/openh264.gn
+++ b/build/linux/unbundle/openh264.gn
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/buildflag_header.gni")
import("//build/config/linux/pkg_config.gni")
import("//build/shim_headers.gni")
@@ -34,3 +35,9 @@ source_set("encoder") {
deps = [ ":openh264_shim" ]
public_configs = [ ":config" ]
}
+
+buildflag_header("buildflags") {
+ header = "buildflags.h"
+ header_dir = "third_party/openh264"
+ flags = [ "OPENH264_API_WELS=1" ]
+}

View File

@ -0,0 +1,10 @@
--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
@@ -19,7 +19,6 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "third_party/zlib/contrib/minizip/ioapi.h"
namespace tflite {
namespace metadata {

View File

@ -0,0 +1,25 @@
https://chromium-review.googlesource.com/c/chromium/src/+/2959890
--- a/ui/views/animation/ink_drop_host.h
+++ b/ui/views/animation/ink_drop_host.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_;

View File

@ -0,0 +1,40 @@
--- chromium-118.0.5993.54/media/filters/ffmpeg_demuxer.cc.orig 2023-10-04 23:53:53.691762700 +0200
+++ chromium-118.0.5993.54/media/filters/ffmpeg_demuxer.cc 2023-10-08 16:56:57.616681160 +0200
@@ -398,7 +398,11 @@
// TODO(crbug.com/1471504): This is now broken without side data; remove.
buffer = DecoderBuffer::CopyFrom(packet->data, packet->size);
} else {
+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T
size_t side_data_size = 0;
+#else
+ int side_data_size = 0;
+#endif
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
@@ -461,7 +465,11 @@
packet->size - data_offset);
}
+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T
size_t skip_samples_size = 0;
+#else
+ int skip_samples_size = 0;
+#endif
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));
--- chromium-118.0.5993.54/media/filters/audio_decoder_unittest.cc.orig 2023-10-04 23:53:53.683762000 +0200
+++ chromium-118.0.5993.54/media/filters/audio_decoder_unittest.cc 2023-10-08 16:58:23.727519824 +0200
@@ -108,7 +108,11 @@
}
// If the timestamp is positive, try to use FFmpeg's discard data.
+#if defined FF_API_BUFFER_SIZE_T && ! FF_API_BUFFER_SIZE_T
size_t skip_samples_size = 0;
+#else
+ int skip_samples_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));

View File

@ -0,0 +1,68 @@
--- a/components/qr_code_generator/BUILD.gn
+++ b/components/qr_code_generator/BUILD.gn
@@ -38,24 +38,11 @@
"qr_code_generator.h",
]
deps = [
- ":qr_code_generator_ffi_glue",
"//base",
]
public_deps = [
":error",
"//base",
- ]
-}
-
-rust_static_library("qr_code_generator_ffi_glue") {
- allow_unsafe = true # Needed for FFI that underpins the `cxx` crate.
- crate_root = "qr_code_generator_ffi_glue.rs"
- sources = [ "qr_code_generator_ffi_glue.rs" ]
- cxx_bindings = [ "qr_code_generator_ffi_glue.rs" ]
- visibility = [ ":qr_code_generator" ]
- deps = [
- ":error",
- "//third_party/rust/qr_code/v2:lib",
]
}
--- a/components/qr_code_generator/qr_code_generator.cc
+++ b/components/qr_code_generator/qr_code_generator.cc
@@ -8,9 +8,7 @@
#include <vector>
#include "base/check_op.h"
-#include "base/containers/span_rust.h"
#include "base/numerics/safe_conversions.h"
-#include "components/qr_code_generator/qr_code_generator_ffi_glue.rs.h"
namespace qr_code_generator {
@@ -22,27 +20,7 @@
base::expected<GeneratedCode, Error> GenerateCode(
base::span<const uint8_t> in,
std::optional<int> min_version) {
- rust::Slice<const uint8_t> rs_in = base::SpanToRustSlice(in);
-
- // `min_version` might come from a fuzzer and therefore we use a lenient
- // `saturated_cast` instead of a `checked_cast`.
- int16_t rs_min_version =
- base::saturated_cast<int16_t>(min_version.value_or(0));
-
- std::vector<uint8_t> result_pixels;
- size_t result_width = 0;
- Error result_error = Error::kUnknownError;
- bool result_is_success = generate_qr_code_using_rust(
- rs_in, rs_min_version, result_pixels, result_width, result_error);
-
- if (!result_is_success) {
- return base::unexpected(result_error);
- }
- GeneratedCode code;
- code.data = std::move(result_pixels);
- code.qr_size = base::checked_cast<int>(result_width);
- CHECK_EQ(code.data.size(), static_cast<size_t>(code.qr_size * code.qr_size));
- return code;
+ return base::unexpected(Error::kUnknownError);
}
} // namespace qr_code_generator

View File

@ -0,0 +1,19 @@
--- a/chrome/browser/webauthn/BUILD.gn
+++ b/chrome/browser/webauthn/BUILD.gn
@@ -26,6 +26,5 @@
"//url",
]
- data_deps = [ "//third_party/cloud_authenticator/test/local_service:cloud_authenticator_test_service" ]
}
}
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -7112,7 +7112,6 @@
"//third_party/metrics_proto",
"//third_party/microsoft_webauthn",
"//third_party/re2",
- "//third_party/rust/fend_core/v1/wrapper:unit_tests",
"//third_party/webrtc_overrides:webrtc_component",
"//third_party/widevine/cdm:headers",
"//third_party/zlib/google:compression_utils",

View File

@ -0,0 +1,45 @@
From b6cda4bc2283a02a5b5209c0f4282a8365f6f33e Mon Sep 17 00:00:00 2001
From: Matt Jolly <Matt.Jolly@footclan.ninja>
Date: Tue, 21 May 2024 10:04:24 +1000
Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials -
126 update
126 changed the function proto; patch rebased.
Google doesn't let us bake in OAuth2 credentials, and for some time,
Google sign-in has been broken. Arch dealt with this in March, and so
did we to some degree, but in the last few months, our sign-in
credentials have been broken. It appears that we actually did remove API
credentials in March around Chrome 89, but they got added back, perhaps
when rotating newer versions to replace older versions. Work around this
by following Arch's lead: we remove the predefined credentials, as
before, but also we patch Chromium so that people can use their own
easily, using Arch's patch for that.
For more info, see:
https://archlinux.org/news/chromium-losing-sync-support-in-early-march/
https://bodhi.fedoraproject.org/updates/FEDORA-2021-48866282e5
https://hackaday.com/2021/01/26/whats-the-deal-with-chromium-on-linux-google-at-odds-with-package-maintainers/
Bug: https://bugs.gentoo.org/791871
Signed-off-by: Matt Jolly <kangie@gentoo.org>
--- a/google_apis/google_api_keys-inc.cc
+++ b/google_apis/google_api_keys-inc.cc
@@ -193,11 +193,11 @@ class APIKeyCache {
std::string default_client_id = CalculateKeyValue(
GOOGLE_DEFAULT_CLIENT_ID,
STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(),
- nullptr, std::string(), environment.get(), command_line, gaia_config);
+ ::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), std::string(),
- nullptr, std::string(), environment.get(), command_line, gaia_config);
+ ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config);
// We currently only allow overriding the baked-in values for the
// default OAuth2 client ID and secret using a command-line
--
2.45.1

View File

@ -0,0 +1,12 @@
--- a/build/rust/cargo_crate.gni
+++ b/build/rust/cargo_crate.gni
@@ -5,6 +5,8 @@
import("//build/rust/rust_executable.gni")
import("//build/rust/rust_macro.gni")
import("//build/rust/rust_static_library.gni")
+
+rust_sysroot=""
# This template allows for building Cargo crates within gn.
#

View File

@ -0,0 +1,49 @@
--- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn
+++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn
@@ -74,12 +74,9 @@
sources += [
"avif/avif_image_decoder.cc",
"avif/avif_image_decoder.h",
- "avif/crabbyavif_image_decoder.cc",
- "avif/crabbyavif_image_decoder.h",
]
deps += [
- "//third_party/crabbyavif",
"//third_party/libavif",
"//third_party/libavifinfo",
]
--- a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
+++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc
@@ -47,7 +47,6 @@
#if BUILDFLAG(ENABLE_AV1_DECODER)
#include "third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.h"
-#include "third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder.h"
#endif
namespace blink {
@@ -192,9 +191,7 @@
return "image/bmp";
}
#if BUILDFLAG(ENABLE_AV1_DECODER)
- if (base::FeatureList::IsEnabled(blink::features::kCrabbyAvif)
- ? CrabbyAVIFImageDecoder::MatchesAVIFSignature(fast_reader)
- : AVIFImageDecoder::MatchesAVIFSignature(fast_reader)) {
+ if (AVIFImageDecoder::MatchesAVIFSignature(fast_reader)) {
return "image/avif";
}
#endif
@@ -300,11 +300,7 @@
max_decoded_bytes);
#if BUILDFLAG(ENABLE_AV1_DECODER)
} else if (mime_type == "image/avif") {
- if (base::FeatureList::IsEnabled(blink::features::kCrabbyAvif)) {
- decoder = std::make_unique<CrabbyAVIFImageDecoder>(
- alpha_option, high_bit_depth_decoding_option, color_behavior,
- max_decoded_bytes, animation_option);
- } else {
+ if (true) {
decoder = std::make_unique<AVIFImageDecoder>(
alpha_option, high_bit_depth_decoding_option, color_behavior,
max_decoded_bytes, animation_option);

View File

@ -0,0 +1,53 @@
From 1c8472c1a44e63c96da7b7cb3873a2822635c18b Mon Sep 17 00:00:00 2001
From: Rune Lillesveen <futhark@chromium.org>
Date: Fri, 03 Dec 2021 12:28:22 +0100
Subject: [PATCH] Make dark theme Gtk affect preferred color scheme.
Selecting a dark Gtk theme gives a dark NativeThemeGtk and UI, but it
didn't affect the preferred color scheme on the web instance. Hence, the
prefers-color-scheme media query still matched 'light', not 'dark'.
Observe the ui native theme instance to propagate any theme changes to
the web instance. Code copied from the NativeThemeWin implementation.
This is a reland of:
https://chromium-review.googlesource.com/c/chromium/src/+/1774922
Bug: 998903
Change-Id: Id8147ecfbda1f3f5899a1e35b97f36382e63e899
---
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index 4afa399..fbaaf06e 100644
--- a/ui/gtk/native_theme_gtk.cc
+++ b/ui/gtk/native_theme_gtk.cc
@@ -96,6 +96,12 @@
NativeThemeGtk::NativeThemeGtk()
: NativeThemeBase(/*should_only_use_dark_colors=*/false,
ui::SystemTheme::kGtk) {
+ // Add the web native theme as an observer to stay in sync with dark mode,
+ // high contrast, and preferred color scheme changes.
+ color_scheme_observer_ =
+ std::make_unique<NativeTheme::ColorSchemeNativeThemeObserver>(
+ NativeTheme::GetInstanceForWeb());
+ AddObserver(color_scheme_observer_.get());
OnThemeChanged(gtk_settings_get_default(), nullptr);
}
diff --git a/ui/gtk/native_theme_gtk.h b/ui/gtk/native_theme_gtk.h
index 876a738..ad3b88d41 100644
--- a/ui/gtk/native_theme_gtk.h
+++ b/ui/gtk/native_theme_gtk.h
@@ -93,6 +93,11 @@
mutable absl::optional<SkColor> color_cache_[kColorId_NumColors];
ScopedCssProvider theme_css_override_;
+
+ // Used to notify the web native theme of changes to dark mode, high
+ // contrast, and preferred color scheme.
+ std::unique_ptr<NativeTheme::ColorSchemeNativeThemeObserver>
+ color_scheme_observer_;
};
} // namespace gtk

View File

@ -0,0 +1,63 @@
--- a/chrome/renderer/chrome_render_frame_observer.cc
+++ b/chrome/renderer/chrome_render_frame_observer.cc
@@ -69,7 +69,6 @@
#include "url/gurl.h"
#if !BUILDFLAG(IS_ANDROID)
-#include "chrome/renderer/accessibility/read_anything_app_controller.h"
#include "chrome/renderer/searchbox/searchbox_extension.h"
#endif // !BUILDFLAG(IS_ANDROID)
@@ -320,21 +319,6 @@ void ChromeRenderFrameObserver::DidCommi
}
void ChromeRenderFrameObserver::DidClearWindowObject() {
-#if !BUILDFLAG(IS_ANDROID)
- const base::CommandLine& command_line =
- *base::CommandLine::ForCurrentProcess();
- if (command_line.HasSwitch(switches::kInstantProcess))
- SearchBoxExtension::Install(render_frame()->GetWebFrame());
-
- // Install ReadAnythingAppController on render frames with the Read Anything
- // url, which is chrome-untrusted. ReadAnythingAppController installs v8
- // bindings in the chrome.readingMode namespace which are consumed by
- // read_anything/app.ts, the resource of the Read Anything WebUI.
- if (render_frame()->GetWebFrame()->GetDocument().Url() ==
- chrome::kChromeUIUntrustedReadAnythingSidePanelURL) {
- ReadAnythingAppController::Install(render_frame());
- }
-#endif // !BUILDFLAG(IS_ANDROID)
}
void ChromeRenderFrameObserver::DidMeaningfulLayout(
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -383,18 +383,6 @@ static_library("renderer") {
]
} else {
sources += [
- "accessibility/ax_tree_distiller.cc",
- "accessibility/ax_tree_distiller.h",
- "accessibility/read_aloud_app_model.cc",
- "accessibility/read_aloud_app_model.h",
- "accessibility/read_aloud_traversal_utils.cc",
- "accessibility/read_aloud_traversal_utils.h",
- "accessibility/read_anything_app_controller.cc",
- "accessibility/read_anything_app_controller.h",
- "accessibility/read_anything_app_model.cc",
- "accessibility/read_anything_app_model.h",
- "accessibility/read_anything_node_utils.cc",
- "accessibility/read_anything_node_utils.h",
"media/chrome_speech_recognition_client.cc",
"media/chrome_speech_recognition_client.h",
"searchbox/searchbox.cc",
--- a/services/passage_embeddings/passage_embeddings_service.cc
+++ b/services/passage_embeddings/passage_embeddings_service.cc
@@ -6,7 +6,6 @@
#include "base/files/file.h"
#include "components/optimization_guide/machine_learning_tflite_buildflags.h"
-#include "services/passage_embeddings/passage_embedder.h"
namespace passage_embeddings {

View File

@ -0,0 +1,56 @@
diff '--color=auto' -urN chromium-130.0.6723.174.orig/chrome/browser/ui/browser_commands.cc chromium-130.0.6723.174/chrome/browser/ui/browser_commands.cc
--- chromium-130.0.6723.174.orig/chrome/browser/ui/browser_commands.cc 2024-12-20 16:23:12.000000000 +0100
+++ chromium-130.0.6723.174/chrome/browser/ui/browser_commands.cc 2025-07-08 16:23:07.925563618 +0200
@@ -5,6 +5,7 @@
#include "chrome/browser/ui/browser_commands.h"
#include <memory>
+#include <numeric>
#include <optional>
#include <utility>
#include <vector>
diff '--color=auto' -urN chromium-130.0.6723.174.orig/chrome/browser/ui/lens/lens_overlay_controller.cc chromium-130.0.6723.174/chrome/browser/ui/lens/lens_overlay_controller.cc
--- chromium-130.0.6723.174.orig/chrome/browser/ui/lens/lens_overlay_controller.cc 2024-12-20 16:23:12.000000000 +0100
+++ chromium-130.0.6723.174/chrome/browser/ui/lens/lens_overlay_controller.cc 2025-07-08 16:23:07.925373915 +0200
@@ -12,6 +12,7 @@
#include "base/system/sys_info.h"
#include "base/task/bind_post_task.h"
#include "base/task/sequenced_task_runner.h"
+#include "base/task/thread_pool.h"
#include "chrome/browser/feedback/show_feedback_page.h"
#include "chrome/browser/lens/core/mojom/geometry.mojom.h"
#include "chrome/browser/lens/core/mojom/overlay_object.mojom.h"
diff '--color=auto' -urN chromium-130.0.6723.174.orig/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc chromium-130.0.6723.174/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc
--- chromium-130.0.6723.174.orig/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc 2024-12-20 16:23:12.000000000 +0100
+++ chromium-130.0.6723.174/chrome/browser/ui/views/webid/fedcm_account_selection_view_desktop.cc 2025-07-08 16:23:07.925657709 +0200
@@ -6,6 +6,7 @@
#include "base/debug/dump_without_crashing.h"
#include "base/functional/bind.h"
+#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/accessibility/accessibility_state_utils.h"
#include "chrome/browser/net/system_network_context_manager.h"
diff '--color=auto' -urN chromium-130.0.6723.174.orig/chrome/browser/ui/webui/searchbox/searchbox_handler.cc chromium-130.0.6723.174/chrome/browser/ui/webui/searchbox/searchbox_handler.cc
--- chromium-130.0.6723.174.orig/chrome/browser/ui/webui/searchbox/searchbox_handler.cc 2024-12-20 16:23:12.000000000 +0100
+++ chromium-130.0.6723.174/chrome/browser/ui/webui/searchbox/searchbox_handler.cc 2025-07-08 16:23:07.925476942 +0200
@@ -6,6 +6,7 @@
#include "base/base64.h"
#include "base/base64url.h"
+#include "base/containers/contains.h"
#include "build/branding_buildflags.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/browser_process.h"
diff '--color=auto' -urN chromium-130.0.6723.174.orig/third_party/re2/src/re2/re2.h chromium-130.0.6723.174/third_party/re2/src/re2/re2.h
--- chromium-130.0.6723.174.orig/third_party/re2/src/re2/re2.h 2024-12-20 16:23:12.000000000 +0100
+++ chromium-130.0.6723.174/third_party/re2/src/re2/re2.h 2025-07-08 16:20:41.135306190 +0200
@@ -220,7 +220,7 @@
#include "absl/base/call_once.h"
#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
-#include "re2/stringpiece.h"
+#include "stringpiece.h"
#if defined(__APPLE__)
#include <TargetConditionals.h>

View File

@ -0,0 +1,93 @@
--- a/skia/BUILD.gn
+++ b/skia/BUILD.gn
@@ -8,7 +8,6 @@
import("//build/config/freetype/freetype.gni")
import("//build/config/rust.gni")
import("//build/config/sanitizers/sanitizers.gni")
-import("//build/rust/rust_static_library.gni")
import("//gpu/vulkan/features.gni")
import("//testing/test.gni")
import("//third_party/skia/gn/shared_sources.gni")
@@ -47,27 +46,6 @@
]
}
-source_set("path_bridge") {
- sources = skia_fontations_path_bridge_sources
-}
-
-rust_static_library("bridge_rust_side") {
- allow_unsafe = true
- crate_root = skia_fontations_bridge_root
- sources = skia_fontations_bridge_sources
- cxx_bindings = skia_fontations_bridge_sources
- deps = [
- ":path_bridge",
- "//third_party/rust/font_types/v0_7:lib",
- "//third_party/rust/read_fonts/v0_22:lib",
- "//third_party/rust/skrifa/v0_22:lib",
- ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- ":skia_config",
- "//build/config/compiler:no_chromium_code",
- ]
-}
# External-facing config for dependent code.
config("skia_config") {
@@ -394,15 +373,9 @@
# See SK_TYPEFACE_FACTORY_FREETYPE
sources += skia_ports_freetype_sources
sources += skia_ports_fontmgr_custom_sources
- sources += skia_ports_typeface_fontations_sources
sources += skia_ports_fontmgr_empty_sources
public += skia_ports_fontmgr_empty_public
- # Fontations Rust/C++ bridge interfaces.
- deps += [
- ":bridge_rust_side",
- ":path_bridge",
- ]
}
if (is_win) {
--- a/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc
+++ b/third_party/blink/renderer/platform/fonts/web_font_typeface_factory.cc
@@ -12,7 +12,6 @@
#include "third_party/blink/renderer/platform/fonts/opentype/font_format_check.h"
#include "third_party/skia/include/core/SkStream.h"
#include "third_party/skia/include/core/SkTypeface.h"
-#include "third_party/skia/include/ports/SkTypeface_fontations.h"
#if BUILDFLAG(IS_WIN)
#include "third_party/blink/renderer/platform/fonts/win/dwrite_font_format_support.h"
@@ -54,7 +53,7 @@
}
sk_sp<SkTypeface> MakeTypefaceDefaultFontMgr(sk_sp<SkData> data) {
-#if !(BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE))
+#if (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE))
if (RuntimeEnabledFeatures::FontationsFontBackendEnabled()) {
std::unique_ptr<SkStreamAsset> stream(new SkMemoryStream(data));
return SkTypeface_Make_Fontations(std::move(stream), SkFontArguments());
@@ -82,10 +81,6 @@
}
#endif
-sk_sp<SkTypeface> MakeTypefaceFontations(sk_sp<SkData> data) {
- std::unique_ptr<SkStreamAsset> stream(new SkMemoryStream(data));
- return SkTypeface_Make_Fontations(std::move(stream), SkFontArguments());
-}
sk_sp<SkTypeface> MakeVariationsTypeface(
sk_sp<SkData> data,
@@ -187,7 +182,6 @@
const FontFormatCheck format_check(data);
const FontInstantiator instantiator = {
MakeTypefaceDefaultFontMgr,
- MakeTypefaceFontations,
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE)
MakeTypefaceFallback,
#endif

View File

@ -0,0 +1,82 @@
diff -r -u chromium-120.0.6099.129old/components/viz/service/display/surface_aggregator.cc chromium-120.0.6099.129/components/viz/service/display/surface_aggregator.cc
--- chromium-120.0.6099.129old/components/viz/service/display/surface_aggregator.cc 2023-12-21 01:49:05.646315300 +0100
+++ chromium-120.0.6099.129/components/viz/service/display/surface_aggregator.cc 2023-12-21 15:28:15.668850824 +0100
@@ -2228,7 +2228,7 @@
root_surface_id_ = surface_id;
// Start recording new stats for this aggregation.
- stats_.emplace();
+ stats_.emplace(AggregateStatistics{});
base::ElapsedTimer prewalk_timer;
ResolvedFrameData* resolved_frame = GetResolvedFrame(surface_id);
diff -r -u chromium-120.0.6099.129old/gpu/command_buffer/service/shared_image/shared_image_backing.cc chromium-120.0.6099.129/gpu/command_buffer/service/shared_image/shared_image_backing.cc
--- chromium-120.0.6099.129old/gpu/command_buffer/service/shared_image/shared_image_backing.cc 2023-12-21 01:49:08.186538700 +0100
+++ chromium-120.0.6099.129/gpu/command_buffer/service/shared_image/shared_image_backing.cc 2023-12-21 15:59:04.210747172 +0100
@@ -343,7 +343,7 @@
void SharedImageBacking::OnWriteSucceeded() {
AutoLock auto_lock(this);
- scoped_write_uma_.emplace();
+ scoped_write_uma_.emplace(gpu::SharedImageBacking::ScopedWriteUMA{});
}
size_t SharedImageBacking::GetEstimatedSize() const {
diff -r -u chromium-120.0.6099.129old/gpu/command_buffer/service/shared_image/shared_image_backing.h chromium-120.0.6099.129/gpu/command_buffer/service/shared_image/shared_image_backing.h
--- chromium-120.0.6099.129old/gpu/command_buffer/service/shared_image/shared_image_backing.h 2023-12-21 01:49:08.186538700 +0100
+++ chromium-120.0.6099.129/gpu/command_buffer/service/shared_image/shared_image_backing.h 2023-12-21 15:57:27.336515319 +0100
@@ -340,8 +340,8 @@
public:
ScopedWriteUMA() = default;
- ScopedWriteUMA(const ScopedWriteUMA&) = delete;
- ScopedWriteUMA& operator=(const ScopedWriteUMA&) = delete;
+ ScopedWriteUMA(const ScopedWriteUMA&) = default;
+ ScopedWriteUMA& operator=(const ScopedWriteUMA&) = default;
~ScopedWriteUMA() {
UMA_HISTOGRAM_BOOLEAN("GPU.SharedImage.ContentConsumed",
diff -r -u chromium-120.0.6099.129old/mojo/public/cpp/bindings/lib/multiplex_router.cc chromium-120.0.6099.129/mojo/public/cpp/bindings/lib/multiplex_router.cc
--- chromium-120.0.6099.129old/mojo/public/cpp/bindings/lib/multiplex_router.cc 2023-12-21 01:49:10.754764600 +0100
+++ chromium-120.0.6099.129/mojo/public/cpp/bindings/lib/multiplex_router.cc 2023-12-21 13:19:27.412481231 +0100
@@ -870,7 +870,7 @@
DCHECK(!exclusive_sync_wait_);
scoped_refptr<MultiplexRouter> keep_alive(this);
- exclusive_sync_wait_.emplace();
+ exclusive_sync_wait_.emplace(ExclusiveSyncWaitInfo{});
exclusive_sync_wait_->interface_id = interface_id;
exclusive_sync_wait_->request_id = request_id;
while (!exclusive_sync_wait_->finished) {
--- a/third_party/blink/common/interest_group/auction_config_mojom_traits.cc
+++ b/third_party/blink/common/interest_group/auction_config_mojom_traits.cc
@@ -207,8 +207,6 @@
!data.ReadAllBuyersPrioritySignals(&out->all_buyers_priority_signals) ||
!data.ReadAuctionReportBuyerKeys(&out->auction_report_buyer_keys) ||
!data.ReadAuctionReportBuyers(&out->auction_report_buyers) ||
- !data.ReadAuctionReportBuyerDebugModeConfig(
- &out->auction_report_buyer_debug_mode_config) ||
!data.ReadRequiredSellerCapabilities(
&out->required_seller_capabilities) ||
!data.ReadRequestedSize(&out->requested_size) ||
--- a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
@@ -594,7 +594,7 @@
mojom::blink::ScrollBehavior scroll_behavior) override {
if (!should_restore_scroll)
return;
- pending_view_state_.emplace();
+ pending_view_state_.emplace(PendingViewState{});
pending_view_state_->state = view_state;
pending_view_state_->scroll_behavior = scroll_behavior;
}
--- a/third_party/blink/renderer/platform/wtf/text/string_view.h
+++ b/third_party/blink/renderer/platform/wtf/text/string_view.h
@@ -20,6 +20,7 @@
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
#include "third_party/blink/renderer/platform/wtf/get_ptr.h"
#include "third_party/blink/renderer/platform/wtf/text/string_impl.h"
+#include "third_party/blink/renderer/platform/wtf/text/code_point_iterator.h"
#if DCHECK_IS_ON()
#include "base/memory/scoped_refptr.h"

View File

@ -0,0 +1,288 @@
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -311,9 +311,6 @@
configs += [
# See the definitions below.
- ":clang_revision",
- ":rustc_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
":compiler_deterministic",
]
@@ -587,63 +584,6 @@
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
}
- if (is_clang && !is_nacl) {
- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
- if (save_reproducers_on_lld_crash && use_lld) {
- ldflags += [
- "-fcrash-diagnostics=all",
- "-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/40283598): This causes binary size growth and potentially
- # other problems.
- # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version.
- if (default_toolchain != "//build/toolchain/cros:target" &&
- !llvm_android_mainline) {
- cflags += [
- # "-mllvm",
- # "-split-threshold-for-reg-with-hint=0",
- ]
- if (use_thin_lto && is_a_target_toolchain) {
- if (is_win) {
- # ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
- } else {
- # ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
- }
- }
- }
-
- if (use_avx2 || use_avx512 || use_fma || current_cpu == "arm64" || is_mac) {
- if (is_win) {
- cflags += [ "/clang:-ffp-contract=fast" ]
- } else {
- cflags += [ "-ffp-contract=fast" ]
- }
- } else {
- # TODO(crbug.com/40192287): 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) ||
@@ -1748,52 +1688,6 @@
}
}
- # 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=." ]
-
- # Convert absolute paths to relative paths. Expands to, for example:
- # -file-prefix-map /path/to/chromium/src=../..
- swiftflags += [
- "-file-prefix-map",
- rebase_path("//.", "") + "=" + rebase_path("//.", root_build_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 RBE cache entries.
@@ -1812,40 +1706,6 @@
}
}
-config("clang_revision") {
- if (is_clang && clang_base_path == default_clang_base_path &&
- current_os != "zos") {
- update_args = [
- "--print-revision",
- "--verify-version=$clang_version",
- ]
- if (llvm_force_head_revision) {
- update_args += [ "--llvm-force-head-revision" ]
- }
- clang_revision = exec_script("//tools/clang/scripts/update.py",
- update_args,
- "trim string")
-
- # This is here so that all files get recompiled after a clang roll and
- # when turning clang on or off. (defines are passed via the command line,
- # and build system rebuild things when their commandline changes). Nothing
- # should ever read this define.
- defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ]
- }
-}
-
-config("rustc_revision") {
- if (rustc_revision != "") {
- # Similar to the above config, this is here so that all files get recompiled
- # after a rustc roll. Nothing should ever read this cfg. This will not be
- # set if a custom toolchain is used.
- rustflags = [
- "--cfg",
- "cr_rustc_revision=\"$rustc_revision\"",
- ]
- }
-}
-
config("compiler_arm_fpu") {
if (current_cpu == "arm" && !is_ios && !is_nacl) {
cflags = [ "-mfpu=$arm_fpu" ]
@@ -2252,11 +2112,7 @@
defines = [ "_HAS_NODISCARD" ]
}
} else {
- cflags = [ "-Wall" ]
- if (is_clang) {
- # Enable extra warnings for chromium_code when we control the compiler.
- cflags += [ "-Wextra" ]
- }
+ cflags = []
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
@@ -2265,24 +2121,6 @@
"__STDC_FORMAT_MACROS",
]
- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
- current_cpu != "s390" && current_cpu != "ppc64" &&
- current_cpu != "mips" && current_cpu != "mips64" &&
- current_cpu != "riscv64" && current_cpu != "loong64") {
- # 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.
- fortify_level = "2"
-
- # ChromeOS's toolchain supports a high-quality _FORTIFY_SOURCE=3
- # implementation with a few custom glibc patches. Use that if it's
- # available.
- if (is_chromeos_device && !lacros_use_chromium_toolchain) {
- fortify_level = "3"
- }
- defines += [ "_FORTIFY_SOURCE=" + fortify_level ]
- }
-
if (is_apple) {
cflags_objc = [ "-Wimplicit-retain-self" ]
cflags_objcc = [ "-Wimplicit-retain-self" ]
@@ -2950,7 +2788,8 @@
# [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000
# [2]: https://crrev.com/c/5447532
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
if (is_win) {
# clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for
# consistency with the other platforms.
@@ -3000,7 +2839,8 @@
}
# Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -3040,7 +2880,8 @@
# Turns up the optimization level. Used to explicitly enable -O2 instead of
# -Os for select targets on platforms that use optimize_for_size. No-op
# elsewhere.
-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:
@@ -3076,7 +2917,8 @@
#
# TODO(crbug.com/41259697) - 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:
@@ -3105,7 +2947,8 @@
}
}
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
cflags = [ "-O3" ] + common_optimize_on_cflags
rustflags = [ "-Copt-level=3", ]
ldflags = common_optimize_on_ldflags
@@ -3271,7 +3114,8 @@
}
# Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
rustflags = []
configs = []
if (is_win) {
@@ -3433,7 +3277,8 @@
# 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") {
rustflags = []
if (is_win) {
# Functions, files, and line tables only.
@@ -3518,7 +3363,8 @@
# 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" ]

View File

@ -0,0 +1,175 @@
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -206,7 +206,7 @@
# Set to true to use icf, Identical Code Folding.
use_icf = (is_posix || is_fuchsia) && !is_debug && !using_sanitizer &&
!use_clang_coverage && current_os != "zos" &&
- !(is_android && use_order_profiling) && use_lld
+ !(is_android && use_order_profiling) && (use_lld || use_mold)
}
if (is_android) {
@@ -377,7 +377,9 @@
}
}
- if (use_lld) {
+ if (use_mold) {
+ ldflags += [ "-fuse-ld=mold" ]
+ } else if (use_lld) {
ldflags += [ "-fuse-ld=lld" ]
if (lld_path != "") {
ldflags += [ "-B$lld_path" ]
@@ -430,7 +432,7 @@
# links.
ldflags += [ "-Wl,--build-id=sha1" ]
} else if (current_os != "aix" && current_os != "zos") {
- if (use_lld && !is_nacl) {
+ if ((use_lld || use_mold) && !is_nacl) {
ldflags += [ "-Wl,--build-id=fast" ]
} else {
ldflags += [ "-Wl,--build-id" ]
@@ -511,7 +513,7 @@
# Linux-specific compiler flags setup.
# ------------------------------------
- if (use_icf && (!is_apple || use_lld)) {
+ if (use_icf && (!is_apple || use_lld || use_mold)) {
ldflags += [ "-Wl,--icf=all" ]
}
@@ -549,7 +551,7 @@
}
}
- if (use_lld) {
+ if (use_lld || use_mold) {
# TODO(thakis): Make the driver pass --color-diagnostics to the linker
# if -fcolor-diagnostics is passed to it, and pass -fcolor-diagnostics
# in ldflags instead.
@@ -564,7 +566,7 @@
# Enable text section splitting only on linux when using lld for now. Other
# platforms can be added later if needed.
- if ((is_linux || is_chromeos) && use_lld && use_text_section_splitting) {
+ if ((is_linux || is_chromeos) && (use_lld || use_mold) && use_text_section_splitting) {
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
}
@@ -732,7 +734,7 @@
# [0]: https://pinpoint-dot-chromeperf.appspot.com/job/15efb0313e0000
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/157f0b42be0000
if (!is_debug && use_thin_lto && is_a_target_toolchain) {
- assert(use_lld, "LTO is only supported with lld")
+ assert(use_lld || use_mold, "LTO is only supported with lld or mold")
cflags += [
"-flto=thin",
@@ -774,7 +776,9 @@
# [0]: https://pinpoint-dot-chromeperf.appspot.com/job/16984a18be0000
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/11984a18be0000
# [2]: https://ci.chromium.org/ui/p/chromium/builders/try/android-binary-size/1848442
+ if (!use_mold) {
import_instr_limit = 100
+ }
if (is_win) {
ldflags += [
@@ -807,7 +811,9 @@
import_instr_limit = 5
}
+ if (!use_mold) {
ldflags += [ "-Wl,-mllvm,-import-instr-limit=$import_instr_limit" ]
+ }
if (is_apple) {
ldflags += [ "-Wcrl,object_path_lto" ]
@@ -815,7 +821,9 @@
# We only use one version of LLVM within a build so there's no need to
# upgrade debug info, which can be expensive since it runs the verifier.
+ if (!use_mold) {
ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
+ }
}
if (!optimize_for_size) {
@@ -827,7 +835,7 @@
]
if (is_win) {
ldflags += [ "-mllvm:-inlinehint-threshold=360" ]
- } else {
+ } else if (!use_mold) {
ldflags += [ "-Wl,-mllvm,-inlinehint-threshold=360" ]
}
}
@@ -888,7 +896,7 @@
# TODO(crbug.com/40242425): Cleanup undefined symbol errors caught by
# --no-undefined-version.
- if (use_lld && !is_win && !is_mac && !is_ios) {
+ if ((use_lld || use_mold) && !is_win && !is_mac && !is_ios) {
ldflags += [ "-Wl,--undefined-version" ]
}
@@ -948,7 +956,7 @@
assert(
is_android && host_os == "linux",
"MLGO is currently only supported for targeting Android on a linux host")
- if (use_thin_lto) {
+ if (use_thin_lto && !use_mold ) {
ldflags += [ "-Wl,-mllvm,-enable-ml-inliner=release" ]
if (is_high_end_android) {
# Besides using the arm64 - trained model, instruct the inline advisor
@@ -1545,7 +1553,9 @@
# This can be removed once https://bugs.llvm.org/show_bug.cgi?id=40348
# has been resolved, and -mno-outline is obeyed by the linker during
# ThinLTO.
+ if (!use_mold) {
ldflags += [ "-Wl,-mllvm,-enable-machine-outliner=never" ]
+ }
}
asmflags = cflags
@@ -2928,7 +2938,7 @@
# sections" there. Maybe just a bug in nacl_switch_32.S.
_enable_gdb_index =
symbol_level == 2 && !is_apple && !is_nacl && current_cpu != "x86" &&
- current_os != "zos" && use_lld &&
+ current_os != "zos" && (use_lld || use_mold) &&
# Disable on non-fission 32-bit Android because it pushes
# libcomponents_unittests over the 4gb size limit.
!(is_android && !use_debug_fission && current_cpu != "x64" &&
--- a/build/config/compiler/pgo/BUILD.gn
+++ b/build/config/compiler/pgo/BUILD.gn
@@ -150,7 +150,7 @@
if (use_thin_lto) {
if (is_win) {
ldflags = [ "-mllvm:-enable-ext-tsp-block-placement=1" ]
- } else {
+ } else if (!use_mold) {
ldflags = [ "-Wl,-mllvm,-enable-ext-tsp-block-placement=1" ]
}
} else {
--- a/build/config/compiler/compiler.gni.orig
+++ b/build/config/compiler/compiler.gni
@@ -36,6 +36,9 @@
# The default linker everywhere else.
use_lld = is_clang && current_os != "zos"
+ # Set to true to use mold, the modern linker.
+ use_mold = false
+
# If true, optimize for size.
# Default to favoring speed over size for platforms not listed below.
optimize_for_size =
@@ -74,7 +77,7 @@
# gcc >= 4.8 or clang.
# http://gcc.gnu.org/wiki/DebugFission
use_debug_fission = !is_android && !is_fuchsia && !is_apple && !is_win &&
- use_lld && cc_wrapper == ""
+ (use_lld || use_mold) && cc_wrapper == ""
# Enables support for ThinLTO, which links 3x-10x faster than full LTO. See
# also http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html

View File

@ -0,0 +1,16 @@
--- a/build/config/clang/BUILD.gn
+++ b/build/config/clang/BUILD.gn
@@ -237,7 +237,12 @@
# Adds a dependency on the Clang runtime library clang_rt.builtins.
clang_lib("compiler_builtins") {
- if (is_mac) {
+ if (!toolchain_has_rust) {
+ # Since there's no Rust in the toolchain, there's no concern that we'll use
+ # the Rust stdlib's intrinsics here.
+ #
+ # Don't define libname which makes this target do nothing.
+ } else if (is_mac) {
libname = "osx"
} else if (is_ios) {
if (target_environment == "simulator") {

View File

@ -0,0 +1,133 @@
https://chromium.googlesource.com/chromium/src/+/0d8d0e0943489b59e452b4d0214959821880ad7f
From: Matt Jolly <kangie@gentoo.org>
Date: Tue, 28 Jan 2025 12:00:57 -0800
Subject: [PATCH] UI: make QT5 optional
To build with `use_qt6`, QT5 (`use_qt`) is also required.
This is undesirable for downstreams who are actively working
to drop support for QT5 (e.g. Gentoo).
To resolve this:
- Add `use_qt5`
- Replace most `use_qt` conditionals with this option;
these appear to be from before QT6 support was added.
- Use `use_qt5` to gate some previously unconditional QT5-related
items in chrome/installer/linux
- Remove `use_qt` as an argument, instead set to `use_qt5 || use_qt6`.
This change should not impact the current behaviour; if no options
are selected QT5 and QT6 support will be enabled, using existing logic
unless one is explicitly disabled with `use_qt{x}=false`.
See-also: https://bugs.gentoo.org/926166, https://bugs.gentoo.org/948836
Signed-off-by: Matt Jolly <kangie@gentoo.org>
Fixed: 328182252
Change-Id: I22ec7a068356412d3f9fce68a19aee4f8c89892c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6205488
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1412471}
--- a/chrome/installer/linux/BUILD.gn
+++ b/chrome/installer/linux/BUILD.gn
@@ -77,10 +77,10 @@ if (enable_swiftshader) {
packaging_files += [ "$root_out_dir/vk_swiftshader_icd.json" ]
}
-if (use_qt) {
- # Even though this is a shared library, add it to `packaging_files` instead of
- # `packaging_files_shlibs` to skip the dependency check. This is intentional
- # to prevent a hard dependency on QT for the package.
+# Even though this is a shared library, add it to `packaging_files` instead of
+# `packaging_files_shlibs` to skip the dependency check. This is intentional
+# to prevent a hard dependency on QT for the package.
+if (use_qt5) {
packaging_files += [ "$root_out_dir/libqt5_shim.so" ]
}
if (use_qt6) {
@@ -206,7 +206,7 @@ if (build_with_internal_optimization_guide) {
}
}
-if (use_qt) {
+if (use_qt5) {
strip_binary("strip_qt5_shim") {
binary_input = "$root_out_dir/libqt5_shim.so"
deps = [ "//ui/qt:qt5_shim" ]
@@ -399,7 +399,7 @@ group("installer_deps") {
"//components/optimization_guide/internal:optimization_guide_internal",
]
}
- if (use_qt) {
+ if (use_qt5) {
public_deps += [
":strip_qt5_shim",
"//ui/qt:qt5_shim",
--- a/ui/qt/BUILD.gn
+++ b/ui/qt/BUILD.gn
@@ -101,10 +101,12 @@ template("qt_shim") {
}
}
}
-qt_shim("qt5_shim") {
- qt_version = "5"
- if (!use_sysroot) {
- moc_qt_path = "$moc_qt5_path"
+if (use_qt5) {
+ qt_shim("qt5_shim") {
+ qt_version = "5"
+ if (!use_sysroot) {
+ moc_qt_path = "$moc_qt5_path"
+ }
}
}
if (use_qt6) {
@@ -122,7 +124,10 @@ component("qt") {
defines = [ "IS_QT_IMPL" ]
# qt_shim is in data_deps since we want to load it manually.
- data_deps = [ ":qt5_shim" ]
+ data_deps = []
+ if (use_qt5) {
+ data_deps += [ ":qt5_shim" ]
+ }
if (use_qt6) {
data_deps += [ ":qt6_shim" ]
}
--- a/ui/qt/qt.gni
+++ b/ui/qt/qt.gni
@@ -6,27 +6,20 @@ import("//build/config/cast.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/sysroot.gni")
+# TODO(crbug.com/40260415): Allow QT in MSAN builds once QT is
+# added to the instrumented libraries.
declare_args() {
- # TODO(crbug.com/40260415): Allow QT in MSAN builds once QT is
- # added to the instrumented libraries.
- use_qt = is_linux && !is_castos && !is_msan
+ use_qt5 = use_sysroot && is_linux && !is_castos && !is_msan
+ use_qt6 = use_sysroot && is_linux && !is_castos && !is_msan
}
declare_args() {
- if (!use_sysroot && use_qt) {
+ if (!use_sysroot && use_qt5) {
moc_qt5_path = ""
}
-}
-
-declare_args() {
- use_qt6 = use_qt && use_sysroot
-}
-
-declare_args() {
if (!use_sysroot && use_qt6) {
moc_qt6_path = ""
}
}
-# use_qt6 => use_qt
-assert(!use_qt6 || use_qt)
+use_qt = use_qt5 || use_qt6

View File

@ -0,0 +1,28 @@
https://bugs.gentoo.org/953436#c5
--- a/third_party/blink/renderer/build/scripts/gperf.py
+++ b/third_party/blink/renderer/build/scripts/gperf.py
@@ -28,24 +28,6 @@
stdout=subprocess.PIPE,
universal_newlines=True)
gperf_output = gperf.communicate(gperf_input)[0]
- # Massage gperf output to be more palatable for modern compilers.
- # TODO(thakis): Upstream these to gperf so we don't need massaging.
- # `register` is deprecated in C++11 and removed in C++17, so remove
- # it from gperf's output.
- # https://savannah.gnu.org/bugs/index.php?53028
- gperf_output = re.sub(r'\bregister ', '', gperf_output)
- # -Wimplicit-fallthrough needs an explicit fallthrough statement,
- # so replace gperf's /*FALLTHROUGH*/ comment with the statement.
- # https://savannah.gnu.org/bugs/index.php?53029
- gperf_output = gperf_output.replace('/*FALLTHROUGH*/',
- ' [[fallthrough]];')
- # -Wpointer-to-int-cast warns about casting pointers to smaller ints
- # Replace {(int)(long)&(foo), bar} with
- # {static_cast<int>(reinterpret_cast<uintptr_t>(&(foo)), bar}
- gperf_output = re.sub(
- r'\(int\)\(long\)(.*?),',
- r'static_cast<int>(reinterpret_cast<uintptr_t>(\1)),',
- gperf_output)
script = 'third_party/blink/renderer/build/scripts/gperf.py'
return '// Generated by %s\n' % script + gperf_output
except OSError:

View File

@ -0,0 +1,12 @@
--- a/chrome/browser/renderer_preferences_util.cc 2025-06-09 23:43:12.302027536 +0700
+++ b/chrome/browser/renderer_preferences_util.cc 2025-06-09 23:43:38.084028322 +0700
@@ -183,7 +183,8 @@
#if defined(USE_AURA) && BUILDFLAG(IS_LINUX)
auto* linux_ui_theme = ui::LinuxUiTheme::GetForProfile(profile);
if (linux_ui_theme) {
- if (ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) {
+ if (ThemeServiceFactory::GetForProfile(profile) &&
+ ThemeServiceFactory::GetForProfile(profile)->UsingSystemTheme()) {
linux_ui_theme->GetFocusRingColor(&prefs->focus_ring_color);
linux_ui_theme->GetActiveSelectionBgColor(
&prefs->active_selection_bg_color);

View File

@ -0,0 +1,12 @@
diff -up chromium-99.0.4818.0/media/audio/audio_opus_encoder.h.omv~ chromium-99.0.4818.0/media/audio/audio_opus_encoder.h
--- chromium-99.0.4818.0/media/audio/audio_opus_encoder.h.omv~ 2022-01-13 05:42:57.571250471 +0100
+++ chromium-99.0.4818.0/media/audio/audio_opus_encoder.h 2022-01-13 05:43:06.233291236 +0100
@@ -13,7 +13,7 @@
#include "media/base/audio_encoder.h"
#include "media/base/audio_push_fifo.h"
#include "media/base/audio_timestamp_helper.h"
-#include "third_party/opus/src/include/opus.h"
+#include <opus/opus.h>
namespace media {

View File

@ -0,0 +1,12 @@
--- a/build/toolchain/linux/unbundle/BUILD.gn
+++ b/build/toolchain/linux/unbundle/BUILD.gn
@@ -35,7 +35,7 @@ gcc_toolchain("host") {
extra_ldflags = getenv("BUILD_LDFLAGS")
toolchain_args = {
- current_cpu = current_cpu
- current_os = current_os
+ current_cpu = host_cpu
+ current_os = host_os
}
}

View File

@ -0,0 +1,12 @@
--- a/media/filters/ffmpeg_glue.cc
+++ b/media/filters/ffmpeg_glue.cc
@@ -123,7 +123,8 @@
// We don't allow H.264 parsing during demuxing since we have our own parser
// and the ffmpeg one increases memory usage unnecessarily.
if (base::FeatureList::IsEnabled(kForbidH264ParsingDuringDemuxing)) {
- format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
+ // TODO(crbug.com/355485812): Re-enable this flag.
+ // format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
}
// Ensures format parsing errors will bail out. From an audit on 11/2017, all

View File

@ -0,0 +1,22 @@
===================================================================
--- a/media/base/libaom_thread_wrapper.cc
+++ b/media/base/libaom_thread_wrapper.cc
@@ -4,18 +4,11 @@
#include "base/logging.h"
#include "media/base/codec_worker_impl.h"
#include "media/base/libvpx_thread_wrapper.h"
-#include "third_party/libaom/source/libaom/aom_util/aom_thread.h"
namespace media {
void InitLibAomThreadWrapper() {
- const AVxWorkerInterface interface =
- CodecWorkerImpl<AVxWorkerInterface, AVxWorkerImpl, AVxWorker,
- AVxWorkerStatus, AVX_WORKER_STATUS_NOT_OK,
- AVX_WORKER_STATUS_OK,
- AVX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
- CHECK(aom_set_worker_interface(&interface));
}
} // namespace media

View File

@ -0,0 +1,23 @@
===================================================================
--- a/media/base/libvpx_thread_wrapper.cc
+++ b/media/base/libvpx_thread_wrapper.cc
@@ -4,19 +4,11 @@
#include "media/base/libvpx_thread_wrapper.h"
#include "media/base/codec_worker_impl.h"
-#include "third_party/libvpx/source/libvpx/vpx_util/vpx_thread.h"
namespace media {
void InitLibVpxThreadWrapper() {
- const VPxWorkerInterface interface =
- CodecWorkerImpl<VPxWorkerInterface, VPxWorkerImpl, VPxWorker,
- VPxWorkerStatus, VPX_WORKER_STATUS_NOT_OK,
- VPX_WORKER_STATUS_OK,
- VPX_WORKER_STATUS_WORKING>::GetCodecWorkerInterface();
-
- CHECK(vpx_set_worker_interface(&interface));
}
} // namespace media

View File

@ -0,0 +1,35 @@
description: build using system openjpeg
author: Michael Gilbert <mgilbert@debian.org>
--- a/third_party/pdfium/BUILD.gn
+++ b/third_party/pdfium/BUILD.gn
@@ -25,7 +25,7 @@
cflags = []
cflags_cc = []
ldflags = []
- include_dirs = [ "." ]
+ include_dirs = [ ".", "/usr/include/openjpeg-2.4", "/usr/include/openjpeg-2.5" ]
defines = []
if (!use_system_libopenjpeg2) {
--- a/third_party/pdfium/core/fpdfapi/render/BUILD.gn
+++ b/third_party/pdfium/core/fpdfapi/render/BUILD.gn
@@ -49,6 +49,7 @@ source_set("render") {
"../../../:pdfium_noshorten_config",
]
deps = [
+ "../../../third_party:libopenjpeg2",
"../../../constants",
"../../fxcodec",
"../../fxcrt",
--- a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.h
+++ b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.h
@@ -12,7 +12,7 @@
#include "core/fxcrt/unowned_ptr.h"
#include "third_party/base/span.h"
-#if defined(USE_SYSTEM_LIBOPENJPEG2)
+#if 1
#include <openjpeg.h>
#else
#include "third_party/libopenjpeg20/openjpeg.h"

View File

@ -0,0 +1,112 @@
Taken from
https://github.com/qvint/ungoogled-chromium-fedora/commit/a68fdd679566da5134d916776f14e00c8e6a8042
--- a/chrome/tools/convert_dict/convert_dict.cc
+++ b/chrome/tools/convert_dict/convert_dict.cc
@@ -24,6 +24,7 @@
#include "build/build_config.h"
#include "chrome/tools/convert_dict/aff_reader.h"
#include "chrome/tools/convert_dict/dic_reader.h"
+#include "components/spellcheck/common/spellcheck_common.h"
#include "third_party/hunspell/google/bdict_reader.h"
#include "third_party/hunspell/google/bdict_writer.h"
@@ -76,13 +77,32 @@ bool VerifyWords(const convert_dict::Dic
}
int PrintHelp() {
- printf("Usage: convert_dict <dicfile base name>\n\n");
- printf("Example:\n");
- printf(" convert_dict en-US\nwill read en-US.dic, en-US.dic_delta, and "
- "en-US.aff from the current directory and generate en-US.bdic\n\n");
+ printf(
+ "Usage:\n"
+ " dict-utility list\n"
+ " dict-utility convert <aff_path> <dic_path> <out_path>\n");
return 1;
}
+int PrintList() {
+ base::FilePath root("/");
+ std::vector<std::string> languages = spellcheck::SpellCheckLanguages();
+
+ for (auto &language : languages) {
+ std::string language_region =
+ spellcheck::GetSpellCheckLanguageRegion(language);
+ base::FilePath language_bdic_path =
+ spellcheck::GetVersionedFileName(language, root).BaseName();
+
+ printf("%s\t%s\t%s\n",
+ language.c_str(),
+ language_region.c_str(),
+ language_bdic_path.value().c_str());
+ }
+
+ return 0;
+}
+
} // namespace
#if defined(OS_WIN)
@@ -91,16 +111,15 @@ int wmain(int argc, wchar_t* argv[]) {
int main(int argc, char* argv[]) {
#endif
base::EnableTerminationOnHeapCorruption();
- if (argc != 2)
+ if (argc == 2 && strcmp(argv[1], "list") == 0)
+ return PrintList();
+ if (argc != 5 || strcmp(argv[1], "convert") != 0)
return PrintHelp();
base::AtExitManager exit_manager;
base::i18n::InitializeICU();
- base::FilePath file_base = base::FilePath(argv[1]);
-
- base::FilePath aff_path =
- file_base.ReplaceExtension(FILE_PATH_LITERAL(".aff"));
+ base::FilePath aff_path = base::FilePath(argv[2]);
printf("Reading %" PRFilePath " ...\n", aff_path.value().c_str());
convert_dict::AffReader aff_reader(aff_path);
if (!aff_reader.Read()) {
@@ -108,8 +127,7 @@ int main(int argc, char* argv[]) {
return 1;
}
- base::FilePath dic_path =
- file_base.ReplaceExtension(FILE_PATH_LITERAL(".dic"));
+ base::FilePath dic_path = base::FilePath(argv[3]);
printf("Reading %" PRFilePath " ...\n", dic_path.value().c_str());
// DicReader will also read the .dic_delta file.
convert_dict::DicReader dic_reader(dic_path);
@@ -135,8 +153,7 @@ int main(int argc, char* argv[]) {
return 1;
}
- base::FilePath out_path =
- file_base.ReplaceExtension(FILE_PATH_LITERAL(".bdic"));
+ base::FilePath out_path = base::FilePath(argv[4]);
printf("Writing %" PRFilePath " ...\n", out_path.value().c_str());
FILE* out_file = base::OpenFile(out_path, "wb");
if (!out_file) {
--- a/chrome/tools/convert_dict/BUILD.gn
+++ b/chrome/tools/convert_dict/BUILD.gn
@@ -34,6 +34,7 @@ executable("convert_dict") {
"//base",
"//base:i18n",
"//build/win:default_exe_manifest",
+ "//components/spellcheck/common",
"//third_party/hunspell",
]
}
--- a/components/spellcheck/common/spellcheck_common.h
+++ b/components/spellcheck/common/spellcheck_common.h
@@ -34,6 +34,8 @@
// chrome/browser/resources/settings/languages_page/edit_dictionary_page.js
static const size_t kMaxCustomDictionaryWordBytes = 99;
+std::string GetSpellCheckLanguageRegion(std::string_view input_language);
+
base::FilePath GetVersionedFileName(std::string_view input_language,
const base::FilePath& dict_dir);

View File

@ -0,0 +1,92 @@
From: PF4Public@users.noreply.github.com
License: BSD
Subject: Fix building with use_bluez=false
This is a quick and dirty fix for building chromium with use_bluez=false
It prevents initialization and usage of Bluetooth by the browser
It is not supposed to be applied for use_bluez=true
The browser will SEGFAULT upon accessing chrome://bluetooth-internals/
It also breaks WebAuthn: https://github.com/PF4Public/gentoo-overlay/issues/254
---
--- a/headless/lib/browser/headless_browser_main_parts_posix.cc
+++ b/headless/lib/browser/headless_browser_main_parts_posix.cc
@@ -25,9 +25,8 @@
#include "components/os_crypt/sync/os_crypt.h"
#include "headless/public/switches.h"
-#if defined(USE_DBUS)
-#include "device/bluetooth/dbus/bluez_dbus_manager.h"
-#endif
+#include "device/bluetooth/bluetooth_adapter_factory.h"
+#include "device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.h"
#endif // BUILDFLAG(IS_LINUX)
@@ -134,7 +133,7 @@
#if BUILDFLAG(IS_LINUX)
#if defined(USE_DBUS)
- bluez::BluezDBusManager::Initialize(/*system_bus=*/nullptr);
+ bluez::DBusBluezManagerWrapperLinux::Initialize();
#endif
// Set up crypt config. This needs to be done before anything starts the
--- a/chrome/browser/chrome_browser_main_linux.cc
+++ b/chrome/browser/chrome_browser_main_linux.cc
@@ -35,6 +35,11 @@
#include "chrome/browser/dbus_memory_pressure_evaluator_linux.h"
#endif
+#if BUILDFLAG(IS_LINUX)
+#include "device/bluetooth/bluetooth_adapter_factory.h"
+#include "device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.h"
+#endif
+
#if !BUILDFLAG(IS_CHROMEOS_ASH)
#include "base/command_line.h"
#include "base/linux_util.h"
@@ -59,7 +64,9 @@
#endif // BUILDFLAG(IS_CHROMEOS)
#if !BUILDFLAG(IS_CHROMEOS)
- bluez::BluezDBusManager::Initialize(nullptr /* system_bus */);
+ #if BUILDFLAG(IS_LINUX)
+ bluez::DBusBluezManagerWrapperLinux::Initialize();
+ #endif
// Set up crypt config. This needs to be done before anything starts the
// network service, as the raw encryption key needs to be shared with the
@@ -117,7 +124,7 @@
#endif // defined(USE_DBUS) && !BUILDFLAG(IS_CHROMEOS)
void ChromeBrowserMainPartsLinux::PostDestroyThreads() {
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_LINUX)
// No-op; per PostBrowserStart() comment, this is done elsewhere.
#else
bluez::BluezDBusManager::Shutdown();
--- a/chrome/browser/metrics/bluetooth_metrics_provider.cc
+++ b/chrome/browser/metrics/bluetooth_metrics_provider.cc
@@ -16,9 +16,7 @@
bool BluetoothMetricsProvider::ProvideHistograms() {
base::UmaHistogramEnumeration("Bluetooth.StackName",
- floss::features::IsFlossEnabled()
- ? BluetoothStackName::kFloss
- : BluetoothStackName::kBlueZ);
+ BluetoothStackName::kBlueZ);
return true;
}
--- a/device/bluetooth/adapter.cc
+++ b/device/bluetooth/adapter.cc
@@ -115,7 +115,7 @@
adapter_info->system_name = adapter_->GetSystemName();
#endif
#if BUILDFLAG(IS_CHROMEOS)
- adapter_info->floss = floss::features::IsFlossEnabled();
+ adapter_info->floss = false;
adapter_info->extended_advertisement_support =
adapter_->IsExtendedAdvertisementsAvailable();
#endif

View File

@ -0,0 +1,24 @@
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index a55e4ab51d5b353..6049c6edb6a1ff3 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -762,7 +762,7 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
type.codec = VideoCodec::kDolbyVision;
type.level = dovi->dv_level;
type.color_space = color_space;
- type.hdr_metadata_type = gfx::HdrMetadataType::kSmpteSt2094_10;
+ type.hdr_metadata_type = gfx::HdrMetadataType::kNone;
switch (dovi->dv_profile) {
case 0:
type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
@@ -796,8 +796,8 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
break;
}
#endif // BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
- default:
- break;
+ default:
+ break;
}
}

View File

@ -0,0 +1,224 @@
From 84d1d7adcd1697348e3f821811179c525d3b5717 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Tue, 28 Nov 2023 00:41:42 +0000
Subject: [PATCH] Roll src/third_party/ffmpeg/ c1d0dc413..866768f35 (492
commits)
---
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 3c97e4a6cf4c781..a55e4ab51d5b353 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -653,15 +653,6 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
profile = ProfileIDToVideoCodecProfile(codec_context->profile);
}
- void* display_matrix =
- av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
-
- VideoTransformation video_transformation = VideoTransformation();
- if (display_matrix) {
- video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
- static_cast<int32_t*>(display_matrix));
- }
-
if (!color_space.IsSpecified()) {
// VP9 frames may have color information, but that information cannot
// express new color spaces, like HDR. For that reason, color space
@@ -718,88 +709,92 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
codec_context->extradata + codec_context->extradata_size);
}
- if (stream->nb_side_data) {
- for (int i = 0; i < stream->nb_side_data; ++i) {
- AVPacketSideData side_data = stream->side_data[i];
- switch (side_data.type) {
- case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
- AVMasteringDisplayMetadata* mdcv =
- reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
- gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
- if (mdcv->has_primaries) {
- smpte_st_2086.primaries = {
- static_cast<float>(av_q2d(mdcv->display_primaries[0][0])),
- static_cast<float>(av_q2d(mdcv->display_primaries[0][1])),
- static_cast<float>(av_q2d(mdcv->display_primaries[1][0])),
- static_cast<float>(av_q2d(mdcv->display_primaries[1][1])),
- static_cast<float>(av_q2d(mdcv->display_primaries[2][0])),
- static_cast<float>(av_q2d(mdcv->display_primaries[2][1])),
- static_cast<float>(av_q2d(mdcv->white_point[0])),
- static_cast<float>(av_q2d(mdcv->white_point[1])),
- };
- }
- if (mdcv->has_luminance) {
- smpte_st_2086.luminance_max = av_q2d(mdcv->max_luminance);
- smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
- }
-
- // TODO(https://crbug.com/1446302): Consider rejecting metadata that
- // does not specify all values.
- if (mdcv->has_primaries || mdcv->has_luminance) {
- hdr_metadata.smpte_st_2086 = smpte_st_2086;
- }
- break;
+ VideoTransformation video_transformation = VideoTransformation();
+ for (int i = 0; i < stream->codecpar->nb_coded_side_data; ++i) {
+ const auto& side_data = stream->codecpar->coded_side_data[i];
+ switch (side_data.type) {
+ case AV_PKT_DATA_DISPLAYMATRIX: {
+ CHECK_EQ(side_data.size, sizeof(int32_t) * 3 * 3);
+ video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
+ reinterpret_cast<int32_t*>(side_data.data));
+ break;
+ }
+ case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
+ AVMasteringDisplayMetadata* mdcv =
+ reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
+ gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
+ if (mdcv->has_primaries) {
+ smpte_st_2086.primaries = {
+ static_cast<float>(av_q2d(mdcv->display_primaries[0][0])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[0][1])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[1][0])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[1][1])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[2][0])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[2][1])),
+ static_cast<float>(av_q2d(mdcv->white_point[0])),
+ static_cast<float>(av_q2d(mdcv->white_point[1])),
+ };
}
- case AV_PKT_DATA_CONTENT_LIGHT_LEVEL: {
- AVContentLightMetadata* clli =
- reinterpret_cast<AVContentLightMetadata*>(side_data.data);
- hdr_metadata.cta_861_3 =
- gfx::HdrMetadataCta861_3(clli->MaxCLL, clli->MaxFALL);
- break;
+ if (mdcv->has_luminance) {
+ smpte_st_2086.luminance_max = av_q2d(mdcv->max_luminance);
+ smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
+ }
+
+ // TODO(https://crbug.com/1446302): Consider rejecting metadata that
+ // does not specify all values.
+ if (mdcv->has_primaries || mdcv->has_luminance) {
+ hdr_metadata.smpte_st_2086 = smpte_st_2086;
}
+ break;
+ }
+ case AV_PKT_DATA_CONTENT_LIGHT_LEVEL: {
+ AVContentLightMetadata* clli =
+ reinterpret_cast<AVContentLightMetadata*>(side_data.data);
+ hdr_metadata.cta_861_3 =
+ gfx::HdrMetadataCta861_3(clli->MaxCLL, clli->MaxFALL);
+ break;
+ }
#if BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
- case AV_PKT_DATA_DOVI_CONF: {
- AVDOVIDecoderConfigurationRecord* dovi =
- reinterpret_cast<AVDOVIDecoderConfigurationRecord*>(
- side_data.data);
- VideoType type;
- type.codec = VideoCodec::kDolbyVision;
- type.level = dovi->dv_level;
- type.color_space = color_space;
- type.hdr_metadata_type = gfx::HdrMetadataType::kSmpteSt2094_10;
- switch (dovi->dv_profile) {
- case 0:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
- break;
- case 5:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE5;
- break;
- case 7:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE7;
- break;
- case 8:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE8;
- break;
- case 9:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE9;
- break;
- default:
- type.profile = VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN;
- break;
- }
- // Treat dolby vision contents as dolby vision codec only if the
- // device support clear DV decoding, otherwise use the original
- // HEVC or AVC codec and profile.
- if (media::IsSupportedVideoType(type)) {
- codec = type.codec;
- profile = type.profile;
- }
- break;
+ case AV_PKT_DATA_DOVI_CONF: {
+ AVDOVIDecoderConfigurationRecord* dovi =
+ reinterpret_cast<AVDOVIDecoderConfigurationRecord*>(side_data.data);
+ VideoType type;
+ type.codec = VideoCodec::kDolbyVision;
+ type.level = dovi->dv_level;
+ type.color_space = color_space;
+ type.hdr_metadata_type = gfx::HdrMetadataType::kSmpteSt2094_10;
+ switch (dovi->dv_profile) {
+ case 0:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
+ break;
+ case 5:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE5;
+ break;
+ case 7:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE7;
+ break;
+ case 8:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE8;
+ break;
+ case 9:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE9;
+ break;
+ default:
+ type.profile = VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN;
+ break;
+ }
+ // Treat dolby vision contents as dolby vision codec only if the
+ // device support clear DV decoding, otherwise use the original
+ // HEVC or AVC codec and profile.
+ if (media::IsSupportedVideoType(type)) {
+ codec = type.codec;
+ profile = type.profile;
}
+ break;
+ }
#endif // BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
default:
break;
- }
}
}
diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc
index cb002490a6322bf..e841b4ad13383ac 100644
--- a/media/filters/audio_video_metadata_extractor.cc
+++ b/media/filters/audio_video_metadata_extractor.cc
@@ -113,13 +113,16 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source,
if (!stream)
continue;
- void* display_matrix =
- av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
- if (display_matrix) {
- rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
- static_cast<int32_t*>(display_matrix))
- .rotation;
- info.tags["rotate"] = base::NumberToString(rotation_);
+ for (int j = 0; j < stream->codecpar->nb_coded_side_data; j++) {
+ const AVPacketSideData& sd = stream->codecpar->coded_side_data[j];
+ if (sd.type == AV_PKT_DATA_DISPLAYMATRIX) {
+ CHECK_EQ(sd.size, sizeof(int32_t) * 3 * 3);
+ rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
+ reinterpret_cast<int32_t*>(sd.data))
+ .rotation;
+ info.tags["rotate"] = base::NumberToString(rotation_);
+ break;
+ }
}
// Extract dictionary from streams also. Needed for containers that attach

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
--- a/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
+++ b/third_party/blink/renderer/platform/fonts/font_face_creation_params.h
@@ -64,7 +64,7 @@
#endif
}
- FontFaceCreationParams(const std::string& filename,
+ FontFaceCreationParams(const WTF::String& filename,
int fontconfig_interface_id,
int ttc_index = 0)
: creation_type_(kCreateFontByFciIdAndTtcIndex),
@@ -77,7 +77,7 @@
DCHECK_EQ(creation_type_, kCreateFontByFamily);
return family_;
}
- const std::string& Filename() const {
+ const WTF::String& Filename() const {
DCHECK_EQ(creation_type_, kCreateFontByFciIdAndTtcIndex);
#if defined(ADDRESS_SANITIZER)
DCHECK(filename_.has_value());
@@ -105,7 +105,7 @@
std::tuple<int, int, unsigned> hash_data = {
ttc_index_, fontconfig_interface_id_,
HasFilename() ? StringHasher::HashMemory(
- Filename().data(),
+ Filename().Utf8().data(),
static_cast<unsigned>(Filename().length()))
: 0};
return StringHasher::HashMemory(&hash_data, sizeof(hash_data));
@@ -130,7 +130,7 @@
FontFaceCreationType creation_type_;
AtomicString family_;
- void SetFilename(std::string& filename) {
+ void SetFilename(WTF::String& filename) {
#if defined(ADDRESS_SANITIZER)
*filename_ = filename;
#else
@@ -167,7 +167,7 @@
// See crbug.com/346174906.
std::optional<std::string> filename_;
#else
- std::string filename_;
+ WTF::String filename_;
#endif
int fontconfig_interface_id_ = 0;
int ttc_index_ = 0;
--- a/third_party/blink/renderer/platform/fonts/linux/font_cache_linux.cc
+++ b/third_party/blink/renderer/platform/fonts/linux/font_cache_linux.cc
@@ -111,7 +111,7 @@
FontFaceCreationParams creation_params;
creation_params = FontFaceCreationParams(
- fallback_font.filepath.value(), fallback_font.fontconfig_interface_id,
+ WTF::String(fallback_font.filepath.value()), fallback_font.fontconfig_interface_id,
fallback_font.ttc_index);
// Changes weight and/or italic of given FontDescription depends on
--- a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
+++ b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
@@ -234,7 +234,7 @@
creation_params.FontconfigInterfaceId(), creation_params.TtcIndex());
}
return SkTypeface_Factory::FromFilenameAndTtcIndex(
- creation_params.Filename().data(), creation_params.TtcIndex());
+ creation_params.Filename().Utf8().data(), creation_params.TtcIndex());
}
#endif

View File

@ -0,0 +1,24 @@
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/linux/pkg_config.gni")
import("//build/shim_headers.gni")
pkg_config("system_libusb") {
packages = [ "libusb-1.0" ]
}
shim_headers("libusb_shim") {
root_path = "src/libusb"
headers = [
"libusb.h",
]
}
source_set("libusb") {
deps = [
":libusb_shim",
]
public_configs = [ ":system_libusb" ]
}

View File

@ -0,0 +1,89 @@
From acc24608c84d2d2d8d684f40a110d0a6f4eddc51 Mon Sep 17 00:00:00 2001
From: Daniele Di Proietto <ddiproietto@google.com>
Date: Mon, 6 Jan 2025 15:30:23 +0000
Subject: [PATCH] Small fixes for libstdc++
Change-Id: I054305ff3de0007f98f9713347f72d63d69569e8
---
include/perfetto/tracing/track.h | 1 +
src/profiling/common/producer_support.cc | 1 +
src/trace_processor/importers/common/tracks.h | 4 ++--
src/trace_processor/importers/common/tracks_internal.h | 8 ++++----
.../perfetto_sql/engine/created_function.cc | 4 ++--
src/trace_processor/util/regex.h | 2 +-
src/traceconv/pprof_reader.cc | 2 +-
7 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/include/perfetto/tracing/track.h b/include/perfetto/tracing/track.h
index 43a8de13d4299387bc1c77582d33542371ffd74f..2a857298c7f4769a05d0db309aca59b72c22b115 100644
--- a/include/perfetto/tracing/track.h
+++ b/include/perfetto/tracing/track.h
@@ -39,6 +39,7 @@
#include <stdint.h>
#include <map>
#include <mutex>
+#include <optional>
namespace perfetto {
namespace internal {
diff --git a/src/profiling/common/producer_support.cc b/src/profiling/common/producer_support.cc
index 5303658d7b7bb0d4b08c00a1decc5c757b006ecb..e9e193db81f87b5c48eefc5aa5a3cfa307baafdb 100644
--- a/src/profiling/common/producer_support.cc
+++ b/src/profiling/common/producer_support.cc
@@ -16,6 +16,7 @@
#include "src/profiling/common/producer_support.h"
+#include <algorithm>
#include <optional>
#include "perfetto/ext/base/android_utils.h"
diff --git a/src/trace_processor/perfetto_sql/engine/created_function.cc b/src/trace_processor/perfetto_sql/engine/created_function.cc
index 1c01c1787ea9ab1972159ce4efd65e225040cee6..e6cef14909d7dab58d1c4abbbe3e536c696910fb 100644
--- a/src/trace_processor/perfetto_sql/engine/created_function.cc
+++ b/src/trace_processor/perfetto_sql/engine/created_function.cc
@@ -109,7 +109,7 @@ struct StoredSqlValue {
// the destructors run correctly for non-trivial members of the
// union.
using Data =
- std::variant<int64_t, double, OwnedString, OwnedBytes, nullptr_t>;
+ std::variant<int64_t, double, OwnedString, OwnedBytes, std::nullptr_t>;
StoredSqlValue(SqlValue value) {
switch (value.type) {
@@ -134,7 +134,7 @@ struct StoredSqlValue {
}
SqlValue AsSqlValue() {
- if (std::holds_alternative<nullptr_t>(data)) {
+ if (std::holds_alternative<std::nullptr_t>(data)) {
return SqlValue();
} else if (std::holds_alternative<int64_t>(data)) {
return SqlValue::Long(std::get<int64_t>(data));
diff --git a/src/trace_processor/util/regex.h b/src/trace_processor/util/regex.h
index 120e4c968279d75d8b8f341a96a1f6402a9c4e41..167af55d9bebe4c3c7febf1be91d0bdd01910282 100644
--- a/src/trace_processor/util/regex.h
+++ b/src/trace_processor/util/regex.h
@@ -48,7 +48,7 @@ class Regex {
regfree(&regex_.value());
}
}
- Regex(Regex&) = delete;
+ Regex(const Regex&) = delete;
Regex(Regex&& other) {
regex_ = std::move(other.regex_);
other.regex_ = std::nullopt;
diff --git a/src/traceconv/pprof_reader.cc b/src/traceconv/pprof_reader.cc
index f14cca73778b14505cce7d4f99848fae67a111c0..612b7c7a40e7127109550a7d0bcfed3685afa2b6 100644
--- a/src/traceconv/pprof_reader.cc
+++ b/src/traceconv/pprof_reader.cc
@@ -16,8 +16,8 @@
#include "src/traceconv/pprof_reader.h"
+#include <algorithm>
#include <cinttypes>
-#include <fstream>
#include "perfetto/ext/base/file_utils.h"

View File

@ -0,0 +1,11 @@
--- a/third_party/perfetto/gn/BUILD.gn
+++ b/third_party/perfetto/gn/BUILD.gn
@@ -382,7 +382,7 @@
if (enable_perfetto_zlib) {
group("zlib") {
if (perfetto_use_system_zlib) {
- public_configs = [ "//gn:system_zlib_config" ]
+ public_configs = [ ":system_zlib_config" ]
} else if (perfetto_root_path == "//") {
public_configs = [ "//buildtools:zlib_config" ]
public_deps = [ "//buildtools:zlib" ]

View File

@ -0,0 +1,287 @@
--- b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+++ a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
@@ -74,7 +74,7 @@
codec_context->sample_fmt = AV_SAMPLE_FMT_NONE;
}
+ codec_context->channels = config.channel_count;
- codec_context->ch_layout.nb_channels = config.channel_count;
codec_context->sample_rate = config.samples_per_second;
if (config.extra_data) {
@@ -124,8 +124,8 @@
case cdm::kAudioFormatPlanarS16:
case cdm::kAudioFormatPlanarF32: {
const int decoded_size_per_channel =
+ decoded_audio_size / av_frame.channels;
+ for (int i = 0; i < av_frame.channels; ++i) {
- decoded_audio_size / av_frame.ch_layout.nb_channels;
- for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) {
memcpy(output_buffer, av_frame.extended_data[i],
decoded_size_per_channel);
output_buffer += decoded_size_per_channel;
@@ -185,14 +185,13 @@
// Success!
decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get());
samples_per_second_ = config.samples_per_second;
+ bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8;
- bytes_per_frame_ =
- codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8;
output_timestamp_helper_ =
std::make_unique<AudioTimestampHelper>(config.samples_per_second);
is_initialized_ = true;
// Store initial values to guard against midstream configuration changes.
+ channels_ = codec_context_->channels;
- channels_ = codec_context_->ch_layout.nb_channels;
av_sample_format_ = codec_context_->sample_fmt;
return true;
@@ -292,19 +291,17 @@
for (auto& frame : audio_frames) {
int decoded_audio_size = 0;
if (frame->sample_rate != samples_per_second_ ||
+ frame->channels != channels_ || frame->format != av_sample_format_) {
- frame->ch_layout.nb_channels != channels_ ||
- frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
<< " Sample Rate: " << frame->sample_rate << " vs "
+ << samples_per_second_ << ", Channels: " << frame->channels
+ << " vs " << channels_ << ", Sample Format: " << frame->format
+ << " vs " << av_sample_format_;
- << samples_per_second_
- << ", Channels: " << frame->ch_layout.nb_channels << " vs "
- << channels_ << ", Sample Format: " << frame->format << " vs "
- << av_sample_format_;
return cdm::kDecodeError;
}
decoded_audio_size = av_samples_get_buffer_size(
+ nullptr, codec_context_->channels, frame->nb_samples,
- nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
codec_context_->sample_fmt, 1);
if (!decoded_audio_size)
continue;
@@ -323,9 +320,9 @@
size_t* total_size,
std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames,
AVFrame* frame) {
+ *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels,
+ frame->nb_samples,
+ codec_context_->sample_fmt, 1);
- *total_size += av_samples_get_buffer_size(
- nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
- codec_context_->sample_fmt, 1);
audio_frames->emplace_back(av_frame_clone(frame));
return true;
}
--- b/media/ffmpeg/ffmpeg_common.cc
+++ a/media/ffmpeg/ffmpeg_common.cc
@@ -345,11 +345,10 @@
codec_context->sample_fmt, codec_context->codec_id);
ChannelLayout channel_layout =
+ codec_context->channels > 8
- codec_context->ch_layout.nb_channels > 8
? CHANNEL_LAYOUT_DISCRETE
+ : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout,
+ codec_context->channels);
- : ChannelLayoutToChromeChannelLayout(
- codec_context->ch_layout.u.mask,
- codec_context->ch_layout.nb_channels);
int sample_rate = codec_context->sample_rate;
switch (codec) {
@@ -402,7 +401,7 @@
extra_data, encryption_scheme, seek_preroll,
codec_context->delay);
if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
+ config->SetChannelsForDiscrete(codec_context->channels);
- config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
// These are bitstream formats unknown to ffmpeg, so they don't have
@@ -471,7 +470,7 @@
// TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses
// said information to decode.
+ codec_context->channels = config.channels();
- codec_context->ch_layout.nb_channels = config.channels();
codec_context->sample_rate = config.samples_per_second();
if (config.extra_data().empty()) {
--- b/media/filters/audio_file_reader.cc
+++ a/media/filters/audio_file_reader.cc
@@ -113,15 +113,14 @@
// Verify the channel layout is supported by Chrome. Acts as a sanity check
// against invalid files. See http://crbug.com/171962
+ if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout,
+ codec_context_->channels) ==
- if (ChannelLayoutToChromeChannelLayout(
- codec_context_->ch_layout.u.mask,
- codec_context_->ch_layout.nb_channels) ==
CHANNEL_LAYOUT_UNSUPPORTED) {
return false;
}
// Store initial values to guard against midstream configuration changes.
+ channels_ = codec_context_->channels;
- channels_ = codec_context_->ch_layout.nb_channels;
audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id);
sample_rate_ = codec_context_->sample_rate;
av_sample_format_ = codec_context_->sample_fmt;
@@ -224,7 +223,7 @@
if (frames_read < 0)
return false;
+ const int channels = frame->channels;
- const int channels = frame->ch_layout.nb_channels;
if (frame->sample_rate != sample_rate_ || channels != channels_ ||
frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
--- b/media/filters/audio_file_reader_unittest.cc
+++ a/media/filters/audio_file_reader_unittest.cc
@@ -121,11 +121,11 @@
EXPECT_FALSE(reader_->Open());
}
+ void RunTestFailingDecode(const char* fn) {
- void RunTestFailingDecode(const char* fn, int expect_read = 0) {
Initialize(fn);
EXPECT_TRUE(reader_->Open());
std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
+ EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
- EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
}
void RunTestPartialDecode(const char* fn) {
@@ -219,7 +219,7 @@
}
TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
+ RunTestFailingDecode("midstream_config_change.mp3");
- RunTestFailingDecode("midstream_config_change.mp3", 42624);
}
#endif
--- b/media/filters/audio_video_metadata_extractor.cc
+++ a/media/filters/audio_video_metadata_extractor.cc
@@ -113,15 +113,6 @@
if (!stream)
continue;
- void* display_matrix =
- av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
- if (display_matrix) {
- rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
- static_cast<int32_t*>(display_matrix))
- .rotation;
- info.tags["rotate"] = base::NumberToString(rotation_);
- }
-
// Extract dictionary from streams also. Needed for containers that attach
// metadata to contained streams instead the container itself, like OGG.
ExtractDictionary(stream->metadata, &info.tags);
@@ -264,6 +255,8 @@
if (raw_tags->find(tag->key) == raw_tags->end())
(*raw_tags)[tag->key] = tag->value;
+ if (ExtractInt(tag, "rotate", &rotation_))
+ continue;
if (ExtractString(tag, "album", &album_))
continue;
if (ExtractString(tag, "artist", &artist_))
--- b/media/filters/ffmpeg_aac_bitstream_converter.cc
+++ a/media/filters/ffmpeg_aac_bitstream_converter.cc
@@ -195,15 +195,14 @@
if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id ||
audio_profile_ != stream_codec_parameters_->profile ||
sample_rate_index_ != sample_rate_index ||
+ channel_configuration_ != stream_codec_parameters_->channels ||
- channel_configuration_ !=
- stream_codec_parameters_->ch_layout.nb_channels ||
frame_length_ != header_plus_packet_size) {
header_generated_ =
GenerateAdtsHeader(stream_codec_parameters_->codec_id,
0, // layer
stream_codec_parameters_->profile, sample_rate_index,
0, // private stream
+ stream_codec_parameters_->channels,
- stream_codec_parameters_->ch_layout.nb_channels,
0, // originality
0, // home
0, // copyrighted_stream
@@ -215,7 +214,7 @@
codec_ = stream_codec_parameters_->codec_id;
audio_profile_ = stream_codec_parameters_->profile;
sample_rate_index_ = sample_rate_index;
+ channel_configuration_ = stream_codec_parameters_->channels;
- channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels;
frame_length_ = header_plus_packet_size;
}
--- b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+++ a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
@@ -34,7 +34,7 @@
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
test_parameters_.codec_id = AV_CODEC_ID_AAC;
test_parameters_.profile = FF_PROFILE_AAC_MAIN;
+ test_parameters_.channels = 2;
- test_parameters_.ch_layout.nb_channels = 2;
test_parameters_.extradata = extradata_header_;
test_parameters_.extradata_size = sizeof(extradata_header_);
}
--- b/media/filters/ffmpeg_audio_decoder.cc
+++ a/media/filters/ffmpeg_audio_decoder.cc
@@ -28,7 +28,7 @@
// Return the number of channels from the data in |frame|.
static inline int DetermineChannels(AVFrame* frame) {
+ return frame->channels;
- return frame->ch_layout.nb_channels;
}
// Called by FFmpeg's allocation routine to allocate a buffer. Uses
@@ -231,7 +231,7 @@
// Translate unsupported into discrete layouts for discrete configurations;
// ffmpeg does not have a labeled discrete configuration internally.
ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout(
+ codec_context_->channel_layout, codec_context_->channels);
- codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
channel_layout = CHANNEL_LAYOUT_DISCRETE;
@@ -348,11 +348,11 @@
// Success!
av_sample_format_ = codec_context_->sample_fmt;
+ if (codec_context_->channels != config.channels()) {
- if (codec_context_->ch_layout.nb_channels != config.channels()) {
MEDIA_LOG(ERROR, media_log_)
<< "Audio configuration specified " << config.channels()
<< " channels, but FFmpeg thinks the file contains "
+ << codec_context_->channels << " channels";
- << codec_context_->ch_layout.nb_channels << " channels";
ReleaseFFmpegResources();
state_ = DecoderState::kUninitialized;
return false;
@@ -403,7 +403,7 @@
if (frame->nb_samples <= 0)
return AVERROR(EINVAL);
+ if (s->channels != channels) {
- if (s->ch_layout.nb_channels != channels) {
DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count.";
return AVERROR(EINVAL);
}
@@ -436,8 +436,7 @@
ChannelLayout channel_layout =
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE
? CHANNEL_LAYOUT_DISCRETE
+ : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels);
- : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask,
- s->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) {
DLOG(ERROR) << "Unsupported channel layout.";

View File

@ -0,0 +1,15 @@
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame(
// silence from being output. In the case where we are also discarding some
// portion of the packet (as indicated by a negative pts), we further want to
// adjust the duration downward by however much exists before zero.
- if (audio_codec_ == AudioCodec::kAAC && frame->duration) {
+ if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) {
const base::TimeDelta pkt_duration = ConvertFromTimeBase(
glue_->format_context()->streams[stream_index_]->time_base,
- frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
+ frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
const base::TimeDelta frame_duration =
base::Seconds(frames_read / static_cast<double>(sample_rate_));

View File

@ -0,0 +1,29 @@
--- a/third_party/blink/public/public_features.gni
+++ b/third_party/blink/public/public_features.gni
@@ -4,6 +4,11 @@
import("//build/config/ui.gni")
+declare_args() {
+ # Thorium internal flag
+ is_thorium_build = true
+}
+
# Unhandled Tap enable means Contextual Search aka Touch to Search.
# TODO(donnd): remove all unhandled-tap handling after the Long-press experiment
# is fully launched.
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -8928,12 +8928,6 @@
"LauncherDynamicAnimations")},
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
-#if BUILDFLAG(ENABLE_JXL_DECODER)
- {"enable-jxl", flag_descriptions::kEnableJXLName,
- flag_descriptions::kEnableJXLDescription, kOsAll,
- FEATURE_VALUE_TYPE(blink::features::kJXL)},
-#endif // BUILDFLAG(ENABLE_JXL_DECODER)
-
#if BUILDFLAG(IS_ANDROID)
{"incognito-reauthentication-for-android",
flag_descriptions::kIncognitoReauthenticationForAndroidName,

View File

@ -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>Thorium</name>
<executable>thorium-browser</executable>
<command>thorium-browser %s</command>
<icon-name>thorium-browser</icon-name>
<run-in-terminal>false</run-in-terminal>
</web-browser>
</web-browsers>
</default-apps>

View File

@ -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/thorium/*; do
[[ -f ${f} ]] && source "${f}"
done
# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/thorium/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}/thorium
${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="thorium-browser-thorium.desktop"
exec -a "thorium-browser" "$PROGDIR/thorium" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"

View File

@ -0,0 +1,42 @@
#!/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/thorium-shell/*; do
[[ -f ${f} ]] && source "${f}"
done
# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/thorium-shell/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}/thorium-shell
${CHROMIUM_FLAGS}"
fi
CHROMIUM_FLAGS="--enable-experimental-web-platform-features --debug --enable-clear-hevc-for-testing
${CHROMIUM_FLAGS}"
# Set the .desktop file name
export CHROME_DESKTOP="thorium-shell.desktop"
exec -a "thorium-shell" "$PROGDIR/thorium_shell" ${CHROMIUM_FLAGS} "$@"

View File

@ -0,0 +1,7 @@
# Default settings for thorium_shell. This file is sourced by /bin/bash
# from the thorium_shell launcher.
# Options to pass to thorium_shell.
# See https://github.com/Alex313031/thorium/blob/main/docs/PATCHES.md for additional
# command-line switches.
#CHROMIUM_FLAGS=""

View File

@ -0,0 +1,15 @@
[Desktop Entry]
Version=1.0
Name=Thorium Shell
GenericName=Blink Core
Comment=Run Thorium Tests in content_shell
Exec=/usr/bin/thorium-shell %U
Terminal=false
X-MultipleArgs=True
Keywords=shell
Type=Application
Icon=thorium-shell
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml_xml;application/x-mimearchive;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=thorium_shell
StartupNotify=true

View File

@ -0,0 +1,7 @@
# Default settings for thorium. This file is sourced by /bin/bash
# from the chromium launcher.
# Options to pass to thorium.
# See https://github.com/Alex313031/thorium/blob/main/docs/PATCHES.md for additional
# command-line switches.
#CHROMIUM_FLAGS=""

View File

@ -0,0 +1,12 @@
diff --git a/build/linux/unbundle/ffmpeg.gn b/build/linux/unbundle/ffmpeg.gn
index 16e20744706..6a079b32221 100644
--- a/build/linux/unbundle/ffmpeg.gn
+++ b/build/linux/unbundle/ffmpeg.gn
@@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
"libavformat",
"libavutil",
]
+ defines = [ "av_stream_get_first_dts(stream)=stream->first_dts" ]
}
buildflag_header("ffmpeg_features") {

View File

@ -0,0 +1,58 @@
#!/usr/bin/env bash
# Taken from
# https://github.com/qvint/ungoogled-chromium-fedora/commit/a68fdd679566da5134d916776f14e00c8e6a8042
self="$(readlink -f "${0}")"
self_dir="$(dirname "${self}")"
dict_utility="${self_dir}/convert_dict"
# Defaults.
hunspell_dicts_dir="/usr/share/myspell"
user_data_dir="${HOME}/.config/thorium"
# Parse command-line arguments.
while [[ $# -gt 0 ]]; do
arg_name="${1}"
case "${arg_name}" in
"--hunspell-dicts-dir")
hunspell_dicts_dir="${2}"
shift; shift
;;
"--user-data-dir")
user_data_dir="${2}"
shift; shift
;;
*)
echo -n "Usage: ungoogled-chromium-update-dicts "
echo "[--hunspell-dicts-dir DIR] [--user-data-dir DIR]"
exit 1
esac
done
# List all chromium language entries.
chromium_language_entries="$("${dict_utility}" list)"
# Iterate through chromium language entries and make *.bdic files.
chromium_dicts_dir="${user_data_dir}/Dictionaries"
mkdir -p "${chromium_dicts_dir}"
while read -r chromium_language_entry; do
while read \
chromium_language \
chromium_language_region \
chromium_bdic_basename; do
hunspell_language_region="${chromium_language_region//-/_}"
aff_path="${hunspell_dicts_dir}/${hunspell_language_region}.aff"
dic_path="${hunspell_dicts_dir}/${hunspell_language_region}.dic"
bdic_path="${chromium_dicts_dir}/${chromium_bdic_basename}"
if \
[[ -f "${aff_path}" ]] && \
[[ -f "${dic_path}" ]] && \
[[ ! -f "${bdic_path}" ]]; then
"${dict_utility}" convert "${aff_path}" "${dic_path}" "${bdic_path}"
fi
done <<< "${chromium_language_entry}"
done <<< "${chromium_language_entries}"

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<name>blackteahamburger</name>
<email>blackteahamburger@outlook.com</email>
</maintainer>
<upstream>
<remote-id type="github">Alex313031/thorium</remote-id>
<remote-id type="gitlab">Matt.Jolly/chromium-patches</remote-id>
<bugs-to>https://github.com/Alex313031/thorium</bugs-to>
<doc>https://thorium.rocks/docs</doc>
</upstream>
<use>
<flag name="bluetooth">Enable Bluetooth. Disabling bluetooth does break WebAuthn. Could also break something else. Improved patch is welcome.</flag>
<flag name="cfi">Build with CFI (Control Flow Integrity) enabled. It requires "-stdlib=libc++", see #40 for more details.</flag>
<flag name="convert-dict">Patch and build the convert_dict utility. The script will be installed into /usr/lib64/chromium-browser/update-dicts.sh. More info here: https://github.com/ungoogled-software/ungoogled-chromium/issues/188#issuecomment-444752907</flag>
<flag name="debug">Enable DCHECK feature with severity configurable at runtime. Mostly intended for debugging and development, NOT RECOMMENDED for general use.</flag>
<flag name="enable-driver">Build chromedriver</flag>
<flag name="gtk4">Build with GTK4 headers</flag>
<flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag>
<flag name="headless">Build Ozone only with headless backend, NOT RECOMMENDED for general uses</flag>
<flag name="hevc">Enable HEVC decoding support. Should work with system-ffmpeg, but might require additional patching for the built-in one.</flag>
<flag name="libcxx">Use bundled C++ Standard Library (libc++)</flag>
<flag name="nvidia">Use libXNVCtrl library from <pkg>x11-drivers/nvidia-drivers</pkg> instead of the bundled one</flag>
<flag name="official">Enable Official build instead of Developer build</flag>
<flag name="optimize-webui">Optimize parts of Chromium's UI written with web technologies (HTML/CSS/JS) for runtime performance purposes. This does more work at compile time for speed benefits at runtime.</flag>
<flag name="pax-kernel">Allow building on a PaX-enabled kernel</flag>
<flag name="pgo">Enable PGO. Requires bundled binary profile data in sources tree. Often requires masked/testing llvm.</flag>
<flag name="proprietary-codecs">Enable proprietary codecs like H.264, MP3</flag>
<flag name="screencast">Enable support for remote desktop and screen cast using <pkg>media-video/pipewire</pkg></flag>
<flag name="system-brotli">Use the system <pkg>app-arch/brotli</pkg> instead of the bundled one</flag>
<flag name="system-crc32c">Use the system <pkg>dev-libs/crc32c</pkg> instead of the bundled one</flag>
<flag name="system-double-conversion">Use the system <pkg>dev-libs/double-conversion</pkg> instead of the bundled one</flag>
<flag name="system-ffmpeg">Use the system <pkg>media-video/ffmpeg</pkg> instead of the bundled one</flag>
<flag name="system-harfbuzz">Use the system <pkg>media-libs/harfbuzz</pkg> instead of the bundled one</flag>
<flag name="system-icu">Use the system <pkg>dev-libs/icu</pkg> instead of the bundled one</flag>
<flag name="system-jsoncpp">Use the system <pkg>dev-libs/jsoncpp</pkg> instead of the bundled one</flag>
<flag name="system-libevent">Use the system <pkg>dev-libs/libevent</pkg> instead of the bundled one</flag>
<flag name="system-libusb">Use the system <pkg>dev-libs/libusb</pkg> instead of the bundled one</flag>
<flag name="system-openh264">Use the system <pkg>media-libs/openh264</pkg> instead of the bundled one. If disabled, it will restrict USE=bindist.</flag>
<flag name="system-openjpeg">Use the system-wide <pkg>media-libs/openjpeg</pkg> instead of the bundled one. OpenJPEG use are exclusively for Chromium's PDF viewer.</flag>
<flag name="system-png">Use system libpng instead of the bundled one</flag>
<flag name="system-re2">Use the system-wide <pkg>dev-libs/re2</pkg> instead of the bundled one</flag>
<flag name="system-snappy">Use the system-wide <pkg>app-arch/snappy</pkg> instead of the bundled one</flag>
<flag name="system-woff2">Use the system <pkg>media-libs/woff2</pkg> instead of the bundled one</flag>
<flag name="system-zstd">Use the system <pkg>app-arch/zstd</pkg> instead of the bundled one</flag>
<flag name="ungoogled">Apply ungoogled-chromium modifications to chromium sources</flag>
<flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>
<flag name="thorium-libjxl">Build with libjxl for Thorium</flag>
<flag name="thorium-shell">Build Thorium Content Shell</flag>
</use>
</pkgmetadata>

File diff suppressed because it is too large Load Diff