Thorium Browser added
This commit is contained in:
		
							parent
							
								
									86c090a6c2
								
							
						
					
					
						commit
						217a1e20a2
					
				
							
								
								
									
										66
									
								
								www-client/thorium/Manifest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								www-client/thorium/Manifest
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										20
									
								
								www-client/thorium/files/chromium-109-system-openh264.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								www-client/thorium/files/chromium-109-system-openh264.patch
									
									
									
									
									
										Normal 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" ]
 | 
				
			||||||
 | 
					+}
 | 
				
			||||||
							
								
								
									
										10
									
								
								www-client/thorium/files/chromium-109-system-zlib.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								www-client/thorium/files/chromium-109-system-zlib.patch
									
									
									
									
									
										Normal 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 {
 | 
				
			||||||
@ -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_;
 | 
				
			||||||
							
								
								
									
										40
									
								
								www-client/thorium/files/chromium-118-ffmpeg.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								www-client/thorium/files/chromium-118-ffmpeg.patch
									
									
									
									
									
										Normal 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));
 | 
				
			||||||
							
								
								
									
										68
									
								
								www-client/thorium/files/chromium-123-qrcode.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								www-client/thorium/files/chromium-123-qrcode.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
@ -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",
 | 
				
			||||||
@ -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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										12
									
								
								www-client/thorium/files/chromium-127-cargo_crate.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								www-client/thorium/files/chromium-127-cargo_crate.patch
									
									
									
									
									
										Normal 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.
 | 
				
			||||||
 | 
					 #
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										49
									
								
								www-client/thorium/files/chromium-127-crabby.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								www-client/thorium/files/chromium-127-crabby.patch
									
									
									
									
									
										Normal 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);
 | 
				
			||||||
@ -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
 | 
				
			||||||
@ -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 {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										56
									
								
								www-client/thorium/files/chromium-130-fix-includes.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								www-client/thorium/files/chromium-130-fix-includes.patch
									
									
									
									
									
										Normal 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>
 | 
				
			||||||
							
								
								
									
										93
									
								
								www-client/thorium/files/chromium-130-fontations.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								www-client/thorium/files/chromium-130-fontations.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										82
									
								
								www-client/thorium/files/chromium-130-libstdc++.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								www-client/thorium/files/chromium-130-libstdc++.patch
									
									
									
									
									
										Normal 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"
 | 
				
			||||||
							
								
								
									
										288
									
								
								www-client/thorium/files/chromium-131-compiler.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										288
									
								
								www-client/thorium/files/chromium-131-compiler.patch
									
									
									
									
									
										Normal 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" ]
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										175
									
								
								www-client/thorium/files/chromium-132-mold.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								www-client/thorium/files/chromium-132-mold.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										16
									
								
								www-client/thorium/files/chromium-132-no-link-builtins.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								www-client/thorium/files/chromium-132-no-link-builtins.patch
									
									
									
									
									
										Normal 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") {
 | 
				
			||||||
							
								
								
									
										133
									
								
								www-client/thorium/files/chromium-134-qt5-optional.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								www-client/thorium/files/chromium-134-qt5-optional.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										28
									
								
								www-client/thorium/files/chromium-135-gperf.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								www-client/thorium/files/chromium-135-gperf.patch
									
									
									
									
									
										Normal 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:
 | 
				
			||||||
							
								
								
									
										12
									
								
								www-client/thorium/files/chromium-137-fix-for-kde.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								www-client/thorium/files/chromium-137-fix-for-kde.patch
									
									
									
									
									
										Normal 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);
 | 
				
			||||||
							
								
								
									
										12
									
								
								www-client/thorium/files/chromium-99-opus.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								www-client/thorium/files/chromium-99-opus.patch
									
									
									
									
									
										Normal 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 {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										12
									
								
								www-client/thorium/files/chromium-cross-compile.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								www-client/thorium/files/chromium-cross-compile.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
@ -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
 | 
				
			||||||
							
								
								
									
										22
									
								
								www-client/thorium/files/chromium-system-av1.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								www-client/thorium/files/chromium-system-av1.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										23
									
								
								www-client/thorium/files/chromium-system-libvpx.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								www-client/thorium/files/chromium-system-libvpx.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										35
									
								
								www-client/thorium/files/chromium-system-openjpeg-r4.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								www-client/thorium/files/chromium-system-openjpeg-r4.patch
									
									
									
									
									
										Normal 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"
 | 
				
			||||||
							
								
								
									
										112
									
								
								www-client/thorium/files/chromium-ucf-dict-utility-r1.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								www-client/thorium/files/chromium-ucf-dict-utility-r1.patch
									
									
									
									
									
										Normal 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);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										92
									
								
								www-client/thorium/files/disable-bluez-r1.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								www-client/thorium/files/disable-bluez-r1.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
@ -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;
 | 
				
			||||||
 | 
					     }
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										224
									
								
								www-client/thorium/files/ffmpeg-nb_coded_side_data-r1.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										224
									
								
								www-client/thorium/files/ffmpeg-nb_coded_side_data-r1.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										3981
									
								
								www-client/thorium/files/fix-building-without-safebrowsing.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3981
									
								
								www-client/thorium/files/fix-building-without-safebrowsing.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										69
									
								
								www-client/thorium/files/font-gc-r2.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								www-client/thorium/files/font-gc-r2.patch
									
									
									
									
									
										Normal 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
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										24
									
								
								www-client/thorium/files/libusb.gn
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								www-client/thorium/files/libusb.gn
									
									
									
									
									
										Normal 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" ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -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(®ex_.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"
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										11
									
								
								www-client/thorium/files/perfetto-system-zlib.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								www-client/thorium/files/perfetto-system-zlib.patch
									
									
									
									
									
										Normal 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" ]
 | 
				
			||||||
@ -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.";
 | 
				
			||||||
@ -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_));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
@ -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,
 | 
				
			||||||
							
								
								
									
										13
									
								
								www-client/thorium/files/thorium-browser.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								www-client/thorium/files/thorium-browser.xml
									
									
									
									
									
										Normal 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>
 | 
				
			||||||
							
								
								
									
										59
									
								
								www-client/thorium/files/thorium-launcher.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								www-client/thorium/files/thorium-launcher.sh
									
									
									
									
									
										Normal 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} "$@"
 | 
				
			||||||
							
								
								
									
										42
									
								
								www-client/thorium/files/thorium-shell-launcher.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								www-client/thorium/files/thorium-shell-launcher.sh
									
									
									
									
									
										Normal 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} "$@"
 | 
				
			||||||
							
								
								
									
										7
									
								
								www-client/thorium/files/thorium-shell.default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								www-client/thorium/files/thorium-shell.default
									
									
									
									
									
										Normal 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=""
 | 
				
			||||||
							
								
								
									
										15
									
								
								www-client/thorium/files/thorium-shell.desktop
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								www-client/thorium/files/thorium-shell.desktop
									
									
									
									
									
										Normal 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
 | 
				
			||||||
							
								
								
									
										7
									
								
								www-client/thorium/files/thorium.default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								www-client/thorium/files/thorium.default
									
									
									
									
									
										Normal 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=""
 | 
				
			||||||
@ -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") {
 | 
				
			||||||
							
								
								
									
										58
									
								
								www-client/thorium/files/update-dicts.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								www-client/thorium/files/update-dicts.sh
									
									
									
									
									
										Normal 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}"
 | 
				
			||||||
							
								
								
									
										53
									
								
								www-client/thorium/metadata.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								www-client/thorium/metadata.xml
									
									
									
									
									
										Normal 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>
 | 
				
			||||||
							
								
								
									
										1958
									
								
								www-client/thorium/thorium-130.0.6723.174.ebuild
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1958
									
								
								www-client/thorium/thorium-130.0.6723.174.ebuild
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user