Compare commits
350 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9bb5104466 | ||
|
|
76cf83117e | ||
|
|
877e1d3494 | ||
|
|
e815651b48 | ||
|
|
5c7dc50188 | ||
|
|
c7108086b8 | ||
|
|
67543ab854 | ||
|
|
12620ddec7 | ||
|
|
601940babc | ||
|
|
d0a50452ed | ||
|
|
949daab63a | ||
|
|
0082e2e455 | ||
|
|
dd1ff590fb | ||
|
|
bac41826b0 | ||
|
|
e6c13d721b | ||
|
|
92658a248f | ||
|
|
e6e6897ae4 | ||
|
|
d6489329de | ||
|
|
31e9323f9e | ||
|
|
c66c28f8d6 | ||
|
|
6d1f9dcda7 | ||
|
|
043fa72cdd | ||
|
|
3e712e05b7 | ||
|
|
35e9900c2f | ||
|
|
b2f3ed3cfe | ||
|
|
e42fb72424 | ||
|
|
b37045e88b | ||
|
|
4b1c39c522 | ||
|
|
b3959a29a6 | ||
|
|
7da8ecdbdf | ||
|
|
ae640ad661 | ||
|
|
ad3a48a2cd | ||
|
|
21b334e53d | ||
|
|
e5a96df9ac | ||
|
|
4ce587552c | ||
|
|
1d3f9fe61f | ||
|
|
b371002413 | ||
|
|
d0d7b964dd | ||
|
|
8aad7d0904 | ||
|
|
fb5b31aab6 | ||
|
|
ce1f8ffead | ||
|
|
3d7f8e2c51 | ||
|
|
825d8dec97 | ||
|
|
a0a6912cb2 | ||
|
|
af5987fea7 | ||
|
|
1eb82a1139 | ||
|
|
153e450492 | ||
|
|
2e95703156 | ||
|
|
ed541732a6 | ||
|
|
a3963a5de6 | ||
|
|
48814c0971 | ||
|
|
576f5d64b7 | ||
|
|
f143d871a0 | ||
|
|
9f2bc0fee0 | ||
|
|
8b817ce118 | ||
|
|
8e609e5072 | ||
|
|
5f9ce733b7 | ||
|
|
08d4b41252 | ||
|
|
6b3f455d4f | ||
|
|
a4318122ca | ||
|
|
20f4ffff07 | ||
|
|
8c80932926 | ||
|
|
e29d8d6633 | ||
|
|
8aae756e78 | ||
|
|
6895b2796e | ||
|
|
2b058c423b | ||
|
|
1ef3ae8034 | ||
|
|
3633261b4a | ||
|
|
7d71541527 | ||
|
|
fafac2aff6 | ||
|
|
c7d064dc50 | ||
|
|
4d1fcc9520 | ||
|
|
2a863ee65d | ||
|
|
f2c1a42b4b | ||
|
|
624743709a | ||
|
|
a59842c0bf | ||
|
|
037bec18a5 | ||
|
|
d1b5817a4c | ||
|
|
ff2c86d612 | ||
|
|
21f3241219 | ||
|
|
95b0a6923f | ||
|
|
f040fc0ab8 | ||
|
|
94f70e9d2b | ||
|
|
a075ca1fec | ||
|
|
654d5d1027 | ||
|
|
49a8658099 | ||
|
|
397e2ef821 | ||
|
|
0d3a82d783 | ||
|
|
84112ccf17 | ||
|
|
00bb264463 | ||
|
|
07431212fd | ||
|
|
1499cbc50f | ||
|
|
1f2f0134d4 | ||
|
|
199a717b3c | ||
|
|
8384f31f4f | ||
|
|
0008664082 | ||
|
|
e223a3cc93 | ||
|
|
63e2e731de | ||
|
|
331ec3a977 | ||
|
|
bf05a6d1c9 | ||
|
|
f6f8cc4499 | ||
|
|
be99293fa4 | ||
|
|
66b640dd22 | ||
|
|
925cffd0e5 | ||
|
|
cde761c2a4 | ||
|
|
fc1527d129 | ||
|
|
5ceaf96295 | ||
|
|
c1e0f10b13 | ||
|
|
ac22d825a0 | ||
|
|
87f2b73b90 | ||
|
|
27357afda6 | ||
|
|
fe2bfbe1dc | ||
|
|
6253ffe421 | ||
|
|
c66197e480 | ||
|
|
775cb0ebfd | ||
|
|
fd9745a59a | ||
|
|
31005b53e4 | ||
|
|
dde38c0354 | ||
|
|
68cf0224ae | ||
|
|
84b7afbd5f | ||
|
|
90fab27e53 | ||
|
|
239fb07bd4 | ||
|
|
37373373d3 | ||
|
|
a02439e311 | ||
|
|
67531fb3c5 | ||
|
|
01e7faaeda | ||
|
|
643a8f2734 | ||
|
|
02aad2983b | ||
|
|
0990aced23 | ||
|
|
a939d1fb6d | ||
|
|
e998cbea16 | ||
|
|
5ba1bc0a67 | ||
|
|
f45d231b6b | ||
|
|
2d8e9a1839 | ||
|
|
db252abf78 | ||
|
|
6d80f1870d | ||
|
|
aeeb81624d | ||
|
|
1dd01d652c | ||
|
|
3ea24739e8 | ||
|
|
73b3502d45 | ||
|
|
c7ae0a2cfd | ||
|
|
8f4b84c5c3 | ||
|
|
adb980f269 | ||
|
|
f3f3265221 | ||
|
|
b3921374af | ||
|
|
c51f3a7673 | ||
|
|
279f18e37f | ||
|
|
0f7991b50b | ||
|
|
75e4d9b2a7 | ||
|
|
b764389c15 | ||
|
|
627198ba3d | ||
|
|
faa96934e4 | ||
|
|
1fc6bbb5f6 | ||
|
|
8150ce3e87 | ||
|
|
305101e0e2 | ||
|
|
70ff6b81f4 | ||
|
|
8faef9ea23 | ||
|
|
855ee44513 | ||
|
|
b60c75f975 | ||
|
|
7f6efcfe1d | ||
|
|
091918819c | ||
|
|
c3f922b414 | ||
|
|
c2ca8cd452 | ||
|
|
1d4906474b | ||
|
|
2174554c7f | ||
|
|
096d8832a6 | ||
|
|
8ac937ba3c | ||
|
|
f60c04b4ff | ||
|
|
b225abb01b | ||
|
|
1ab65a6c2b | ||
|
|
e2a7e8d1fb | ||
|
|
ac11ffa704 | ||
|
|
5a3ba385bf | ||
|
|
721a821679 | ||
|
|
2217b16559 | ||
|
|
5b58b667a3 | ||
|
|
e22ab3dd8d | ||
|
|
6b2a80bcc8 | ||
|
|
7978e3edfa | ||
|
|
8a79185521 | ||
|
|
1d11971fbb | ||
|
|
7feab46c2a | ||
|
|
687dfc9088 | ||
|
|
a6dc7c4bb8 | ||
|
|
3f1fe5373d | ||
|
|
4e890a2267 | ||
|
|
5b01f78e2d | ||
|
|
8f1406c203 | ||
|
|
555e14708a | ||
|
|
14b2511c60 | ||
|
|
eebaa1fed6 | ||
|
|
213be47502 | ||
|
|
3cf2effd5e | ||
|
|
d59c8c882b | ||
|
|
ebbe1bb6d5 | ||
|
|
3342504b6a | ||
|
|
daa8b02ddd | ||
|
|
efba73005d | ||
|
|
761fd23eb5 | ||
|
|
9945f48de7 | ||
|
|
a20c59e311 | ||
|
|
b4f40e7059 | ||
|
|
37c438b574 | ||
|
|
0163a46ea8 | ||
|
|
7ae49b344c | ||
|
|
14a718a1f7 | ||
|
|
c92a9b4724 |
||
|
|
2fe979aefe | ||
|
|
454e2f83bf | ||
|
|
5711d012bf | ||
|
|
7e87f3512b | ||
|
|
aa19dbd649 | ||
|
|
52df09fc14 | ||
|
|
d4d149b776 | ||
|
|
c472a02982 | ||
|
|
5b55bcb5b2 | ||
|
|
f7f92cabef | ||
|
|
414ede8a89 | ||
|
|
7f7c90bdfa | ||
|
|
563533b6cd | ||
|
|
520bb3f8e1 | ||
|
|
5a92d6a123 | ||
|
|
33047efdb7 | ||
|
|
300eedcb8f | ||
|
|
aec8a9fc4e | ||
|
|
4dafe38fe7 | ||
|
|
2ed2aebfd4 | ||
|
|
aa3876c5ec | ||
|
|
c0a826276e | ||
|
|
6f9ab8eb88 | ||
|
|
9002dba6c6 | ||
|
|
27d280f02e | ||
|
|
b3adfcd910 | ||
|
|
3c73b1952b | ||
|
|
ac38dfa7bb | ||
|
|
2cb50428a8 | ||
|
|
63bcaa0bbb | ||
|
|
e2f677ed86 | ||
|
|
59bca84113 | ||
|
|
9350b80cd5 | ||
|
|
84ea78579f | ||
|
|
49440028de | ||
|
|
0a6e454fe5 | ||
|
|
04e3898d89 | ||
|
|
9759e8da05 | ||
|
|
0af939cb41 | ||
|
|
8e06f28b96 | ||
|
|
e09feac67a | ||
|
|
b6c017a439 | ||
|
|
619a0f6a90 | ||
|
|
0369e52267 | ||
|
|
6d50ea16f3 | ||
|
|
91270370e0 | ||
|
|
cb5f569e13 | ||
|
|
081e3616e7 | ||
|
|
6509dc78d0 | ||
|
|
7a130b53cd | ||
|
|
7ca16dae63 | ||
|
|
44716e4c48 | ||
|
|
223056b0bf | ||
|
|
ebc93c5543 | ||
|
|
058bc8f6fb | ||
|
|
0a3cfe9877 | ||
|
|
d0552012e6 | ||
|
|
8b16b2c3ab | ||
|
|
de561ad09b | ||
|
|
87e2702902 | ||
|
|
902a94597e | ||
|
|
69de53ca1f | ||
|
|
b39dd03bd2 | ||
|
|
7b3f829556 | ||
|
|
38cdaf8b58 | ||
|
|
f72e804ab6 | ||
|
|
843db03713 | ||
|
|
4a9cd7fde6 | ||
|
|
eb79d9fd6b | ||
|
|
19166c6495 | ||
|
|
23b052ecd6 | ||
|
|
e9052e292e | ||
|
|
0252c7f475 | ||
|
|
72d10fce05 | ||
|
|
c3c341e2fb | ||
|
|
ceeaa5f464 | ||
|
|
b82e457b57 | ||
|
|
31d5d24ff5 | ||
|
|
69d8fd7c19 | ||
|
|
7dee618fbf | ||
|
|
913f7f42da | ||
|
|
58e4ba0596 | ||
|
|
4cbb214d6e | ||
|
|
a6aae13bc5 | ||
|
|
251b3660bb | ||
|
|
6d55c417b9 | ||
|
|
f276fe6691 | ||
|
|
17a41178bb | ||
|
|
eb0982b7f3 | ||
|
|
46f9470fbb | ||
|
|
ab19fa9c77 | ||
|
|
eb28d6f69b | ||
|
|
dc4620fcee | ||
|
|
d87544d513 | ||
|
|
bb9fb2faf1 | ||
|
|
efa8e56194 | ||
|
|
1cfb4b8ab6 | ||
|
|
fddb9dd4fe | ||
|
|
474f89b317 | ||
|
|
3dab25d3a4 | ||
|
|
894fee804f | ||
|
|
81226a4ab3 | ||
|
|
dd3dc84ce6 | ||
|
|
b160413ae5 | ||
|
|
3a6cd7a2a5 | ||
|
|
7fccc772ce | ||
|
|
1f611d5b19 | ||
|
|
ba3d3fd48c | ||
|
|
67032735c3 | ||
|
|
10e8270a46 | ||
|
|
42bafbe14e | ||
|
|
6e5b0b7f1e | ||
|
|
c425df3128 | ||
|
|
ee476941ca | ||
|
|
f2082f91a5 | ||
|
|
6f918a102e | ||
|
|
06564d148e | ||
|
|
1badc0d525 | ||
|
|
6644f01d3c | ||
|
|
327e0f499a | ||
|
|
da37eaabdd | ||
|
|
4003b9aea5 | ||
|
|
0967831236 | ||
|
|
0412dc3920 | ||
|
|
003a2d86da | ||
|
|
db3ceaeba5 | ||
|
|
bb6dd4e63c | ||
|
|
3f82021ecf | ||
|
|
652a78e6d4 | ||
|
|
79660189fa | ||
|
|
004113fa5e | ||
|
|
763f6acf6c | ||
|
|
360e74f38f | ||
|
|
3d0e11c3a6 | ||
|
|
4efcdf6f0e | ||
|
|
4d145c97bf | ||
|
|
b89d2160d4 | ||
|
|
190868b00d | ||
|
|
6fa78889ab | ||
|
|
53eacc74b7 | ||
|
|
6aa999d7b8 | ||
|
|
63834300ec | ||
|
|
91d1df5da9 |
41 changed files with 728 additions and 2682 deletions
180
.gitignore
vendored
180
.gitignore
vendored
|
|
@ -116,3 +116,183 @@
|
|||
/icecat-68.9.0-rh1.tar.bz2
|
||||
/icecat-68.9.0-rh2.tar.bz2
|
||||
/icecat-68.9.0-langpacks.tar.gz
|
||||
/icecat-78.0-langpacks.tar.gz
|
||||
/icecat-78.0-rh1.tar.bz2
|
||||
/icecat-78.0.1-langpacks.tar.gz
|
||||
/icecat-78.0.1-rh1.tar.bz2
|
||||
/icecat-78.2.0-rh1.tar.bz2
|
||||
/icecat-78.2.0-langpacks.tar.gz
|
||||
/icecat-78.2.0-rh2.tar.bz2
|
||||
/icecat-78.2.0-rh3.tar.bz2
|
||||
/icecat-78.2.0-rh4.tar.bz2
|
||||
/icecat-78.2.0-rh5.tar.bz2
|
||||
/icecat-78.2.0-rh6.tar.bz2
|
||||
/icecat-78.3.0-langpacks.tar.gz
|
||||
/icecat-78.3.0-rh1.tar.bz2
|
||||
/icecat-78.3.1-langpacks.tar.gz
|
||||
/icecat-78.3.1-rh1.tar.bz2
|
||||
/icecat-78.4.0-langpacks.tar.gz
|
||||
/icecat-78.4.0-rh1.tar.bz2
|
||||
/icecat-78.5.0-langpacks.tar.gz
|
||||
/icecat-78.5.0-rh1.tar.bz2
|
||||
/icecat-78.5.0-rh2.tar.bz2
|
||||
/icecat-78.6.0-langpacks.tar.gz
|
||||
/icecat-78.6.0-rh1.tar.bz2
|
||||
/icecat-78.6.1-langpacks.tar.gz
|
||||
/icecat-78.6.1-rh1.tar.bz2
|
||||
/icecat-78.7.0-langpacks.tar.gz
|
||||
/icecat-78.7.0-rh1.tar.bz2
|
||||
/icecat-78.7.0-rh2.tar.bz2
|
||||
/icecat-78.7.1-langpacks.tar.gz
|
||||
/icecat-78.7.1-rh1.tar.bz2
|
||||
/icecat-78.8.0-langpacks.tar.gz
|
||||
/icecat-78.8.0-rh1.tar.bz2
|
||||
/icecat-78.9.0-langpacks.tar.gz
|
||||
/icecat-78.9.0-rh1.tar.bz2
|
||||
/icecat-78.10.0-langpacks.tar.gz
|
||||
/icecat-78.10.0-rh1.tar.bz2
|
||||
/icecat-78.10.1-langpacks.tar.gz
|
||||
/icecat-78.10.1-rh1.tar.bz2
|
||||
/icecat-78.11.0-langpacks.tar.gz
|
||||
/icecat-78.11.0-rh1.tar.bz2
|
||||
/icecat-78.12.0-langpacks.tar.gz
|
||||
/icecat-78.12.0-rh1.tar.bz2
|
||||
/icecat-78.12.0-rh2.tar.bz2
|
||||
/icecat-78.13.0-rh1.tar.bz2
|
||||
/icecat-78.13.0-rh2.tar.bz2
|
||||
/icecat-78.13.0-langpacks.tar.gz
|
||||
/icecat-78.13.0-rh3.tar.bz2
|
||||
/icecat-78.14.0-langpacks.tar.gz
|
||||
/icecat-78.14.0-rh1.tar.bz2
|
||||
/icecat-78.15.0-langpacks.tar.gz
|
||||
/icecat-78.15.0-rh1.tar.bz2
|
||||
/icecat-91.2.0-langpacks.tar.gz
|
||||
/icecat-91.2.0-rh1.tar.bz2
|
||||
/icecat-91.3.0-langpacks.tar.gz
|
||||
/icecat-91.3.0-rh1.tar.bz2
|
||||
/icecat-91.4.0-langpacks.tar.gz
|
||||
/icecat-91.4.0-rh1.tar.bz2
|
||||
/icecat-91.4.1-langpacks.tar.gz
|
||||
/icecat-91.4.1-rh1.tar.bz2
|
||||
/icecat-91.5.0-langpacks.tar.gz
|
||||
/icecat-91.5.0-rh1.tar.bz2
|
||||
/icecat-91.6.0-langpacks.tar.gz
|
||||
/icecat-91.6.0-rh1.tar.bz2
|
||||
/icecat-91.6.1-langpacks.tar.gz
|
||||
/icecat-91.6.1-rh1.tar.bz2
|
||||
/icecat-91.7.0-langpacks.tar.gz
|
||||
/icecat-91.7.0-rh1.tar.bz2
|
||||
/icecat-91.7.1-langpacks.tar.gz
|
||||
/icecat-91.7.1-rh1.tar.bz2
|
||||
/icecat-91.8.0-langpacks.tar.gz
|
||||
/icecat-91.8.0-rh1.tar.bz2
|
||||
/icecat-91.9.0-langpacks.tar.gz
|
||||
/icecat-91.9.0-rh1.tar.bz2
|
||||
/icecat-91.9.1-langpacks.tar.gz
|
||||
/icecat-91.9.1-rh1.tar.bz2
|
||||
/icecat-91.10.0-langpacks.tar.gz
|
||||
/icecat-91.10.0-rh1.tar.bz2
|
||||
/icecat-91.10.0-rh2.tar.bz2
|
||||
/icecat-91.10.0-rh3.tar.bz2
|
||||
/icecat-91.11.0-langpacks.tar.gz
|
||||
/icecat-91.11.0-rh1.tar.bz2
|
||||
/icecat-91.12.0-langpacks.tar.gz
|
||||
/icecat-91.12.0-rh1.tar.bz2
|
||||
/icecat-91.13.0-langpacks.tar.gz
|
||||
/icecat-91.13.0-rh1.tar.bz2
|
||||
/icecat-102.2.0-langpacks.tar.gz
|
||||
/icecat-102.2.0-rh1.tar.bz2
|
||||
/icecat-102.3.0-langpacks.tar.gz
|
||||
/icecat-102.3.0-rh1.tar.bz2
|
||||
/icecat-102.4.0-langpacks.tar.gz
|
||||
/icecat-102.4.0-rh1.tar.bz2
|
||||
/icecat-102.5.0-langpacks.tar.gz
|
||||
/icecat-102.5.0-rh1.tar.bz2
|
||||
/icecat-102.6.0-langpacks.tar.gz
|
||||
/icecat-102.6.0-rh1.tar.bz2
|
||||
/icecat-102.7.0-langpacks.tar.gz
|
||||
/icecat-102.7.0-rh1.tar.bz2
|
||||
/icecat-102.8.0-langpacks.tar.gz
|
||||
/icecat-102.8.0-rh1.tar.bz2
|
||||
/icecat-102.9.0-langpacks.tar.gz
|
||||
/icecat-102.9.0-rh1.tar.bz2
|
||||
/icecat-102.10.0-langpacks.tar.gz
|
||||
/icecat-102.10.0-rh1.tar.bz2
|
||||
/icecat-102.11.0-langpacks.tar.gz
|
||||
/icecat-102.11.0-rh1.tar.bz2
|
||||
/icecat-102.11.0-rh2.tar.bz2
|
||||
/icecat-102.12.0-langpacks.tar.gz
|
||||
/icecat-102.12.0-rh1.tar.bz2
|
||||
/icecat-102.13.0-langpacks.tar.gz
|
||||
/icecat-102.13.0-rh1.tar.bz2
|
||||
/icecat-102.14.0-langpacks.tar.gz
|
||||
/icecat-102.14.0-rh1.tar.bz2
|
||||
/icecat-102.15.0-langpacks.tar.gz
|
||||
/icecat-102.15.0-rh1.tar.bz2
|
||||
/icecat-115.3.1-langpacks.tar.gz
|
||||
/icecat-115.3.1-rh1.tar.bz2
|
||||
/icecat-115.3.1-rh2.tar.bz2
|
||||
/icecat-115.4.0-langpacks.tar.gz
|
||||
/icecat-115.4.0-rh1.tar.bz2
|
||||
/icecat-115.4.0-rh2.tar.bz2
|
||||
/icecat-115.5.0-langpacks.tar.gz
|
||||
/icecat-115.5.0-rh1.tar.bz2
|
||||
/icecat-115.6.0-langpacks.tar.gz
|
||||
/icecat-115.6.0-rh1.tar.bz2
|
||||
/icecat-115.7.0-langpacks.tar.gz
|
||||
/icecat-115.7.0-rh1.tar.bz2
|
||||
/icecat-115.8.0-langpacks.tar.gz
|
||||
/icecat-115.8.0-rh1.tar.bz2
|
||||
/icecat-115.9.0-langpacks.tar.gz
|
||||
/icecat-115.9.0-rh1.tar.bz2
|
||||
/icecat-115.10.0-langpacks.tar.gz
|
||||
/icecat-115.10.0-rh1.tar.bz2
|
||||
/icecat-115.11.0-langpacks.tar.gz
|
||||
/icecat-115.11.0-rh1.tar.bz2
|
||||
/icecat-115.12.0-langpacks.tar.gz
|
||||
/icecat-115.12.0-rh1.tar.bz2
|
||||
/icecat-115.13.0-langpacks.tar.gz
|
||||
/icecat-115.13.0-rh1.tar.bz2
|
||||
/icecat-115.14.0-langpacks.tar.gz
|
||||
/icecat-115.14.0-rh1.tar.bz2
|
||||
/icecat-115.15.0-langpacks.tar.gz
|
||||
/icecat-115.15.0-rh1.tar.bz2
|
||||
/icecat-115.16.0-langpacks.tar.gz
|
||||
/icecat-115.16.0-rh1.tar.bz2
|
||||
/icecat-115.16.1-langpacks.tar.gz
|
||||
/icecat-115.16.1-rh1.tar.bz2
|
||||
/icecat-115.17.0-langpacks.tar.gz
|
||||
/icecat-115.17.0-rh1.tar.bz2
|
||||
/icecat-115.18.0-langpacks.tar.gz
|
||||
/icecat-115.18.0-rh1.tar.bz2
|
||||
/icecat-115.18.0-rh2.tar.bz2
|
||||
/icecat-115.19.0-langpacks.tar.gz
|
||||
/icecat-115.19.0-rh1.tar.bz2
|
||||
/icecat-115.20.0-langpacks.tar.gz
|
||||
/icecat-115.20.0-rh1.tar.bz2
|
||||
/icecat-115.21.0-langpacks.tar.gz
|
||||
/icecat-115.21.0-rh1.tar.bz2
|
||||
/icecat-115.22.0-langpacks.tar.gz
|
||||
/icecat-115.22.0-rh1.tar.bz2
|
||||
/icecat-115.23.0-langpacks.tar.gz
|
||||
/icecat-115.23.0-rh1.tar.bz2
|
||||
/icecat-115.23.1-langpacks.tar.gz
|
||||
/icecat-115.23.1-rh1.tar.bz2
|
||||
/icecat-115.24.0-langpacks.tar.gz
|
||||
/icecat-115.24.0-rh1.tar.bz2
|
||||
/icecat-128.12.0-langpacks.tar.gz
|
||||
/icecat-128.12.0-rh1.tar.bz2
|
||||
/icecat-128.13.0-langpacks.tar.gz
|
||||
/icecat-128.13.0-rh1.tar.bz2
|
||||
/icecat-128.14.0-langpacks.tar.gz
|
||||
/icecat-128.14.0-rh1.tar.bz2
|
||||
/icecat-140.3.0-langpacks.tar.gz
|
||||
/icecat-140.3.0-rh1.tar.bz2
|
||||
/icecat-140.4.0-langpacks.tar.gz
|
||||
/icecat-140.4.0-rh1.tar.bz2
|
||||
/icecat-140.5.0-langpacks.tar.gz
|
||||
/icecat-140.5.0-rh1.tar.bz2
|
||||
/icecat-140.6.0-langpacks.tar.gz
|
||||
/icecat-140.6.0-rh1.tar.bz2
|
||||
/icecat-140.7.0-langpacks.tar.gz
|
||||
/icecat-140.7.0-rh1.tar.bz2
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 firefox-60.0/mfbt/LinuxSignal.h
|
||||
--- firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 2018-04-27 08:55:38.848241768 +0200
|
||||
+++ firefox-60.0/mfbt/LinuxSignal.h 2018-04-27 09:06:47.946769859 +0200
|
||||
@@ -22,7 +22,7 @@
|
||||
void* aContext) {
|
||||
asm volatile("nop; nop; nop; nop" : : : "memory");
|
||||
|
||||
- asm volatile("b %0" : : "X"(H) : "memory");
|
||||
+ asm volatile("bx %0" : : "r"(H), "l"(aSignal), "l"(aInfo), "l"(aContext) : "memory");
|
||||
}
|
||||
|
||||
# define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)
|
||||
41
README.md
Normal file
41
README.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
[GNU IceCat](https://www.gnu.org/software/gnuzilla/) is the GNU version of the Firefox ESR browser.
|
||||
Extensions included to this version of IceCat:
|
||||
|
||||
* LibreJS
|
||||
|
||||
GNU LibreJS aims to address the JavaScript problem described in the article
|
||||
"[The JavaScript Trap](https://www.gnu.org/philosophy/javascript-trap.html)" of Richard Stallman.
|
||||
|
||||
|
||||
* JShelter
|
||||
|
||||
Mitigates potential threats from JavaScript, including fingerprinting,
|
||||
tracking, and data collection. Slightly modifies the results of API calls,
|
||||
differently on different domains, so that the cross-site fingerprint is not
|
||||
stable. Applies security counter-measures that are likely not to break web pages.
|
||||
Allows fine-grained control over the restrictions and counter-measures applied
|
||||
to each domain.
|
||||
|
||||
|
||||
* A set of companion extensions for LibreJS by Nathan Nichols
|
||||
are pre-installed, and provide workarounds to use some services at USPS,
|
||||
RSF.org, SumOfUs.org, pay.gov, McDonalds, goteo.org and Google Docs
|
||||
without using nonfree JavaScript.
|
||||
|
||||
|
||||
* A series of configuration changes and tweaks were applied to ensure that
|
||||
IceCat does not initiate network connections that the user has not explicitly
|
||||
requested. This implies not downloading feeds, updates, blacklists or any
|
||||
other similar data needed during startup.
|
||||
|
||||
|
||||
Origin of the name
|
||||
|
||||
The name “IceCat” was coined to show our relationship to the Mozilla Firefox browser. Ice isn't Fire and a Cat isn't a Fox, so it is clearly a different package (we don't want Mozilla blamed for our mistakes, nor cause confusion with their trademarks), but is equally clearly intimately related (of course nearly all of the work comes from the Mozilla foundation effort, so we want to give credit).
|
||||
|
||||
The gNewSense BurningDog browser and the Debian IceWeasel browser are similarly derived from Firefox, also with the intent of being free software. Technically, however, these projects are maintained entirely independently of IceCat. (Previously, this GNU browser project was also named IceWeasel, but that proved confusing.)
|
||||
About GNU and the GNU Philosophy
|
||||
|
||||
The [GNU Project](https://www.gnu.org/) was launched in 1984 to develop a complete Unix-like operating system which is [free software—free as in freedom, not price](https://www.gnu.org/philosophy/free-sw.html). Its principal sponsor is the [Free Software Foundation](https://www.fsf.org/).
|
||||
|
||||
The [free software philosophy](https://www.gnu.org/philosophy/philosophy.html) is the root and motivation of the guidelines and goals of the whole free software movement, a worldwide community.
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
diff -up firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old firefox-68.0/gfx/skia/skia/include/private/SkHalf.h
|
||||
--- firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old 2019-07-11 12:33:40.471936951 +0200
|
||||
+++ firefox-68.0/gfx/skia/skia/include/private/SkHalf.h 2019-07-11 12:33:50.527913736 +0200
|
||||
@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_
|
||||
|
||||
static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) {
|
||||
Sk4h hs = Sk4h::Load(&rgba);
|
||||
-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
|
||||
+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
|
||||
float32x4_t fs;
|
||||
asm ("fcvtl %[fs].4s, %[hs].4h \n" // vcvt_f32_f16(...)
|
||||
: [fs] "=w" (fs) // =w: write-only NEON register
|
||||
@@ -62,7 +62,7 @@ static inline Sk4f SkHalfToFloat_finite_
|
||||
}
|
||||
|
||||
static inline Sk4h SkFloatToHalf_finite_ftz(const Sk4f& fs) {
|
||||
-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
|
||||
+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
|
||||
float32x4_t vec = fs.fVec;
|
||||
asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec)
|
||||
: [vec] "+w" (vec)); // +w: read-write NEON register
|
||||
|
||||
diff -up firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h
|
||||
--- firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old 2019-07-11 12:39:08.694166900 +0200
|
||||
+++ firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2019-07-11 12:39:21.572136328 +0200
|
||||
@@ -830,7 +830,7 @@ SI F from_half(U16 h) {
|
||||
}
|
||||
|
||||
SI U16 to_half(F f) {
|
||||
-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
+#if 0 // defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
return vcvt_f16_f32(f);
|
||||
|
||||
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
|
||||
diff -up firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
|
||||
--- firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old 2019-07-11 12:38:45.285222428 +0200
|
||||
+++ firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2019-07-11 12:38:57.414193679 +0200
|
||||
@@ -163,7 +163,7 @@ SI F F_from_Half(U16 half) {
|
||||
__attribute__((no_sanitize("unsigned-integer-overflow")))
|
||||
#endif
|
||||
SI U16 Half_from_F(F f) {
|
||||
-#if defined(USING_NEON_F16C)
|
||||
+#if 0 // defined(USING_NEON_F16C)
|
||||
return (U16)vcvt_f16_f32(f);
|
||||
#elif defined(__AVX512F__)
|
||||
return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION );
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old firefox-66.0/media/libopus/silk/arm/arm_silk_map.c
|
||||
--- firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old 2019-03-12 21:07:35.356677522 +0100
|
||||
+++ firefox-66.0/media/libopus/silk/arm/arm_silk_map.c 2019-03-12 21:07:42.937693394 +0100
|
||||
@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
-#include "main_FIX.h"
|
||||
+#include "fixed/main_FIX.h"
|
||||
#include "NSQ.h"
|
||||
#include "SigProc_FIX.h"
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-65.0/toolkit/moz.configure.disable-elfhack firefox-65.0/toolkit/moz.configure
|
||||
--- firefox-65.0/toolkit/moz.configure.disable-elfhack 2019-01-28 14:16:48.530345132 +0100
|
||||
+++ firefox-65.0/toolkit/moz.configure 2019-01-28 14:18:03.231029682 +0100
|
||||
@@ -1036,7 +1036,7 @@ with only_when('--enable-compile-environ
|
||||
help='{Enable|Disable} elf hacks')
|
||||
|
||||
set_config('USE_ELF_HACK',
|
||||
- depends_if('--enable-elf-hack')(lambda _: True))
|
||||
+ depends_if('--enable-elf-hack')(lambda _: False))
|
||||
|
||||
|
||||
@depends(check_build_environment)
|
||||
19
firefox-nss-addon-hack.patch
Normal file
19
firefox-nss-addon-hack.patch
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
diff -up firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp
|
||||
--- firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack 2021-01-11 12:12:02.585514543 +0100
|
||||
+++ firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp 2021-01-11 12:47:50.345984582 +0100
|
||||
@@ -1619,6 +1619,15 @@ SECStatus InitializeNSS(const nsACString
|
||||
return srv;
|
||||
}
|
||||
|
||||
+ /* Sets the NSS_USE_ALG_IN_ANY_SIGNATURE bit.
|
||||
+ * does not change NSS_USE_ALG_IN_CERT_SIGNATURE,
|
||||
+ * so policy will still disable use of sha1 in
|
||||
+ * certificate related signature processing. */
|
||||
+ srv = NSS_SetAlgorithmPolicy(SEC_OID_SHA1, NSS_USE_ALG_IN_ANY_SIGNATURE, 0);
|
||||
+ if (srv != SECSuccess) {
|
||||
+ NS_WARNING("Unable to use SHA1 for Add-ons, expect broken/disabled Add-ons. See https://bugzilla.redhat.com/show_bug.cgi?id=1908018 for details.");
|
||||
+ }
|
||||
+
|
||||
if (nssDbConfig == NSSDBConfig::ReadWrite) {
|
||||
UniquePK11SlotInfo slot(PK11_GetInternalKeySlot());
|
||||
if (!slot) {
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
diff -up firefox-68.0/config/system-headers.mozbuild.firefox-pipewire firefox-68.0/config/system-headers.mozbuild
|
||||
--- firefox-68.0/config/system-headers.mozbuild.firefox-pipewire 2019-07-01 22:30:26.000000000 +0200
|
||||
+++ firefox-68.0/config/system-headers.mozbuild 2019-07-08 15:26:15.397161627 +0200
|
||||
@@ -314,6 +314,7 @@ system_headers = [
|
||||
'Gestalt.h',
|
||||
'getopt.h',
|
||||
'gio/gio.h',
|
||||
+ 'gio/gunixfdlist.h',
|
||||
'glibconfig.h',
|
||||
'glib.h',
|
||||
'glib-object.h',
|
||||
@@ -607,6 +608,7 @@ system_headers = [
|
||||
'Pgenerr.h',
|
||||
'PGenErr.h',
|
||||
'Ph.h',
|
||||
+ 'pipewire/pipewire.h',
|
||||
'pixman.h',
|
||||
'pk11func.h',
|
||||
'pk11pqg.h',
|
||||
diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
|
||||
--- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire 2019-07-01 22:30:33.000000000 +0200
|
||||
+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build 2019-07-08 15:26:15.397161627 +0200
|
||||
@@ -194,6 +194,28 @@ if CONFIG["OS_TARGET"] == "Linux":
|
||||
"/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc"
|
||||
]
|
||||
|
||||
+# PipeWire specific files
|
||||
+if CONFIG["OS_TARGET"] == "Linux":
|
||||
+
|
||||
+ DEFINES["WEBRTC_USE_PIPEWIRE"] = "1"
|
||||
+
|
||||
+ OS_LIBS += [
|
||||
+ "rt",
|
||||
+ "pipewire-0.2",
|
||||
+ "glib-2.0",
|
||||
+ "gio-2.0",
|
||||
+ "gobject-2.0"
|
||||
+ ]
|
||||
+
|
||||
+ CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||
+
|
||||
+ UNIFIED_SOURCES += [
|
||||
+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
|
||||
+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
|
||||
+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc"
|
||||
+ ]
|
||||
+
|
||||
+
|
||||
if CONFIG["OS_TARGET"] == "NetBSD":
|
||||
|
||||
DEFINES["USE_X11"] = "1"
|
||||
diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h
|
||||
--- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire 2019-07-08 16:42:13.936254926 +0200
|
||||
+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h 2019-07-08 16:42:17.509264974 +0200
|
||||
@@ -141,7 +141,7 @@ class DesktopCaptureOptions {
|
||||
bool disable_effects_ = true;
|
||||
bool detect_updated_region_ = false;
|
||||
#if defined(WEBRTC_USE_PIPEWIRE)
|
||||
- bool allow_pipewire_ = false;
|
||||
+ bool allow_pipewire_ = true;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
diff -up a/build/autoconf/icu.orig.m4 b/build/autoconf/icu.m4
|
||||
--- a/build/autoconf/icu.orig.m4 2016-12-09 09:11:01.227317790 +0100
|
||||
+++ b/build/autoconf/icu.m4 2016-12-09 09:18:40.608712247 +0100
|
||||
@@ -78,7 +78,7 @@
|
||||
# TODO: the l is actually endian-dependent
|
||||
# We could make this set as 'l' or 'b' for little or big, respectively,
|
||||
# but we'd need to check in a big-endian version of the file.
|
||||
- ICU_DATA_FILE="icudt${version}l.dat"
|
||||
+ ICU_DATA_FILE="icudt${version}b.dat"
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_ICU_VERSION)
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
index 636537f847862ef693dd6582e2783de4e3d403c5..383c380f04ceb6a111dbfe9a046e3454a56e31b4 100644
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
@@ -248,7 +248,16 @@ using mozilla::DebugOnly;
|
||||
#endif
|
||||
|
||||
#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
-# include <sys/user.h>
|
||||
+struct user_vfp {
|
||||
+ unsigned long long fpregs[32];
|
||||
+ unsigned long fpscr;
|
||||
+};
|
||||
+
|
||||
+struct user_vfp_exc {
|
||||
+ unsigned long fpexc;
|
||||
+ unsigned long fpinst;
|
||||
+ unsigned long fpinst2;
|
||||
+};
|
||||
#endif
|
||||
|
||||
#if defined(ANDROID)
|
||||
|
||||
45
icecat-GLIBCXX-fix-for-GCC-12.patch
Normal file
45
icecat-GLIBCXX-fix-for-GCC-12.patch
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
|
||||
Date: Fri, 4 Mar 2022 12:00:26 +0100
|
||||
Subject: [PATCH] GLIBCXX fix for GCC 12?
|
||||
|
||||
---
|
||||
build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp
|
||||
index 0180f6bcfa998..8d7a542ff11f0 100644
|
||||
--- a/build/unix/stdc++compat/stdc++compat.cpp
|
||||
+++ b/build/unix/stdc++compat/stdc++compat.cpp
|
||||
@@ -24,6 +24,7 @@
|
||||
GLIBCXX_3.4.27 is from gcc 10
|
||||
GLIBCXX_3.4.28 is from gcc 10
|
||||
GLIBCXX_3.4.29 is from gcc 11
|
||||
+ GLIBCXX_3.4.30 is from gcc 12
|
||||
|
||||
This file adds the necessary compatibility tricks to avoid symbols with
|
||||
version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with
|
||||
@@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); }
|
||||
} // namespace std
|
||||
#endif
|
||||
|
||||
+#if _GLIBCXX_RELEASE >= 12
|
||||
+namespace std {
|
||||
+
|
||||
+/* This avoids the GLIBCXX_3.4.30 symbol version. */
|
||||
+void __attribute__((weak))
|
||||
+__glibcxx_assert_fail(const char* __file, int __line, const char* __function,
|
||||
+ const char* __condition) {
|
||||
+ MOZ_CRASH();
|
||||
+}
|
||||
+
|
||||
+} // namespace std
|
||||
+#endif
|
||||
+
|
||||
/* While we generally don't build with exceptions, we have some host tools
|
||||
* that do use them. libstdc++ from GCC 5.0 added exception constructors with
|
||||
* char const* argument. Older versions only have a constructor with
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
|
||||
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
|
||||
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
|
||||
@@ -627,8 +627,30 @@
|
||||
throw new Error(`Extension is signed with an invalid id (${addon.id})`);
|
||||
}
|
||||
}
|
||||
- if (!addon.id && aLocation.isTemporary) {
|
||||
- addon.id = generateTemporaryInstallID(aPackage.file);
|
||||
+ if (!addon.id) {
|
||||
+ if (aInstallLocation.name == KEY_APP_TEMPORARY) {
|
||||
+ addon.id = generateTemporaryInstallID(aZipReader.file);
|
||||
+ } else {
|
||||
+ try {
|
||||
+ let sigInput = aZipReader.getInputStream("META-INF/cose.sig");
|
||||
+ let sigBinary = Cc['@mozilla.org/binaryinputstream;1']
|
||||
+ .createInstance(Ci.nsIBinaryInputStream);
|
||||
+ sigBinary.setInputStream(sigInput);
|
||||
+ var sig = ''
|
||||
+ var sigCount;
|
||||
+ while ((sigCount = sigBinary.available()) > 0) {
|
||||
+ sig += sigBinary.readBytes(sigCount);
|
||||
+ }
|
||||
+ let sigMatch = sig.match(/\{\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\}/g)
|
||||
+ if (sigMatch && sigMatch.length == 1) {
|
||||
+ addon.id = sigMatch[0]
|
||||
+ } else {
|
||||
+ logger.warn("Failed to find addon id");
|
||||
+ }
|
||||
+ } catch (e) {
|
||||
+ logger.warn("Failed to process META-INF/cose.sig");
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
--- browser/installer/package-manifest.orig.in 2017-03-24 21:09:39.027022000 +0100
|
||||
+++ browser/installer/package-manifest.in 2017-03-24 23:07:21.881504771 +0100
|
||||
@@ -74,9 +74,9 @@
|
||||
#endif
|
||||
#ifndef MOZ_SYSTEM_NSPR
|
||||
#ifndef MOZ_FOLD_LIBS
|
||||
-@BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
|
||||
-@BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
|
||||
-@BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
|
||||
+#@BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
|
||||
+#@BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
|
||||
+#@BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
|
||||
#endif
|
||||
#endif
|
||||
#ifdef XP_MACOSX
|
||||
@@ -610,11 +610,11 @@
|
||||
@RESPATH@/chrome/recording.manifest
|
||||
@RESPATH@/chrome/recording/*
|
||||
#ifdef MOZ_GTK
|
||||
-@RESPATH@/browser/chrome/icons/default/default16.png
|
||||
-@RESPATH@/browser/chrome/icons/default/default32.png
|
||||
-@RESPATH@/browser/chrome/icons/default/default48.png
|
||||
-@RESPATH@/browser/chrome/icons/default/default64.png
|
||||
-@RESPATH@/browser/chrome/icons/default/default128.png
|
||||
+#@RESPATH@/browser/chrome/icons/default/default16.png
|
||||
+#@RESPATH@/browser/chrome/icons/default/default32.png
|
||||
+#@RESPATH@/browser/chrome/icons/default/default48.png
|
||||
+@RESPATH@/browser/chrome/icons/default/default64.png
|
||||
+@RESPATH@/browser/chrome/icons/default/default128.png
|
||||
#endif
|
||||
@RESPATH@/browser/features/*
|
||||
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
--- browser/locales/jar.orig.mn 2017-03-19 19:59:09.000000000 +0100
|
||||
+++ browser/locales/jar.mn 2017-03-22 19:49:57.602190867 +0100
|
||||
@@ -14,7 +14,7 @@
|
||||
@AB_CD@.jar:
|
||||
% locale browser @AB_CD@ %locale/browser/
|
||||
# bookmarks.html is produced by LOCALIZED_GENERATED_FILES.
|
||||
- locale/browser/bookmarks.html (bookmarks.html)
|
||||
+ locale/browser/bookmarks.html (generic/profile/bookmarks.html.in)
|
||||
|
||||
locale/browser/accounts.properties (%chrome/browser/accounts.properties)
|
||||
locale/browser/app-extension-fields.properties (%chrome/browser/app-extension-fields.properties)
|
||||
14
icecat-gcc-always-inline.patch
Normal file
14
icecat-gcc-always-inline.patch
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
diff -up firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline firefox-114.0.2/gfx/wr/swgl/src/gl.cc
|
||||
--- firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline 2023-06-22 11:08:53.294593327 +0200
|
||||
+++ firefox-114.0.2/gfx/wr/swgl/src/gl.cc 2023-06-22 11:12:43.663486734 +0200
|
||||
@@ -58,9 +58,7 @@ WINBASEAPI BOOL WINAPI QueryPerformanceF
|
||||
}
|
||||
|
||||
#else
|
||||
-// GCC is slower when dealing with always_inline, especially in debug builds.
|
||||
-// When using Clang, use always_inline more aggressively.
|
||||
-# if defined(__clang__) || defined(NDEBUG)
|
||||
+# if defined(__clang__) || defined (__GNUC__) || defined(NDEBUG)
|
||||
# define ALWAYS_INLINE __attribute__((always_inline)) inline
|
||||
# else
|
||||
# define ALWAYS_INLINE inline
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
VERSION=68.9.0
|
||||
VERSION=140.7.0
|
||||
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
|
||||
|
||||
for u in $URL; do
|
||||
|
|
@ -17,6 +17,7 @@ done
|
|||
# mv "${FILE}" "${newfile}" ;
|
||||
#done
|
||||
#popd
|
||||
rm -f icecat-*-langpacks.tar.gz
|
||||
tar -zcvf icecat-${VERSION}-langpacks.tar.gz langpacks
|
||||
rm -rf langpacks
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -1,20 +0,0 @@
|
|||
--- old-configure.orig.in 2019-03-02 21:49:16.000000000 +0100
|
||||
+++ old-configure.in 2019-03-04 12:14:23.842685662 +0100
|
||||
@@ -1715,7 +1715,7 @@
|
||||
MOZ_SYSTEM_LIBEVENT=
|
||||
elif test -z "$MOZ_SYSTEM_LIBEVENT"; then
|
||||
CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS"
|
||||
- LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS"
|
||||
+ LDFLAGS="-L${LIBDIR} $LDFLAGS"
|
||||
MOZ_CHECK_HEADER(event.h,
|
||||
[if test ! -f "${LIBEVENT_DIR}/include/event.h"; then
|
||||
AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include])
|
||||
@@ -1724,7 +1724,7 @@
|
||||
AC_CHECK_LIB(event, event_init,
|
||||
[MOZ_SYSTEM_LIBEVENT=1
|
||||
MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include"
|
||||
- MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
|
||||
+ MOZ_LIBEVENT_LIBS="-L${LIBDIR} -levent"],
|
||||
[MOZ_SYSTEM_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=])
|
||||
fi
|
||||
CFLAGS=$_SAVE_CFLAGS
|
||||
|
|
@ -2,17 +2,15 @@
|
|||
|
||||
export BUILD_OFFICIAL=1
|
||||
export MOZILLA_OFFICIAL=1
|
||||
export MOZ_TELEMETRY_REPORTING=1
|
||||
export MOZ_TELEMETRY_REPORTING=
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
|
||||
ac_add_options --without-wasm-sandboxed-libraries
|
||||
|
||||
ac_add_options --prefix="$PREFIX"
|
||||
ac_add_options --libdir="$LIBDIR"
|
||||
ac_add_options --enable-necko-wifi
|
||||
ac_add_options --enable-startup-notification
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --enable-chrome-format=omni
|
||||
ac_add_options --enable-release
|
||||
# Workaround for mozbz#1341234
|
||||
ac_add_options BINDGEN_CFLAGS="$(pkg-config nspr pixman-1 --cflags)"
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=GNU IceCat on Wayland
|
||||
Comment=Browse the World Wide Web
|
||||
GenericName=Web Browser
|
||||
Keywords=Internet;WWW;Browser;Web;Explorer;
|
||||
Exec=icecat-wayland --name icecat-wayland %u
|
||||
Icon=icecat
|
||||
Terminal=false
|
||||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Name[en_US]=GNU IceCat on Wayland
|
||||
Actions=new-window;new-private-window;
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=Open a New Window
|
||||
Exec=icecat-wayland --name icecat-wayland --new-window %u
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Name=Open a New Private Window
|
||||
Exec=icecat-wayland --private-window --name icecat-wayland %u
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Run GNU IceCat under Wayland
|
||||
#
|
||||
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
exec /__PREFIX__/bin/icecat "$@"
|
||||
|
|
@ -1,338 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=GNU IceCat on X11
|
||||
Comment=Browse the World Wide Web
|
||||
Comment[ar]=تصفح الشبكة العنكبوتية العالمية
|
||||
Comment[ast]=Restola pela Rede
|
||||
Comment[bn]=ইন্টারনেট ব্রাউজ করুন
|
||||
Comment[ca]=Navegueu per la web
|
||||
Comment[cs]=Prohlížení stránek World Wide Webu
|
||||
Comment[da]=Surf på internettet
|
||||
Comment[de]=Im Internet surfen
|
||||
Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
|
||||
Comment[es]=Navegue por la web
|
||||
Comment[et]=Lehitse veebi
|
||||
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
||||
Comment[fi]=Selaa Internetin WWW-sivuja
|
||||
Comment[fr]=Naviguer sur le Web
|
||||
Comment[gl]=Navegar pola rede
|
||||
Comment[he]=גלישה ברחבי האינטרנט
|
||||
Comment[hr]=Pretražite web
|
||||
Comment[hu]=A világháló böngészése
|
||||
Comment[it]=Esplora il web
|
||||
Comment[ja]=ウェブを閲覧します
|
||||
Comment[ko]=웹을 돌아 다닙니다
|
||||
Comment[ku]=Li torê bigere
|
||||
Comment[lt]=Naršykite internete
|
||||
Comment[nb]=Surf på nettet
|
||||
Comment[nl]=Verken het internet
|
||||
Comment[nn]=Surf på nettet
|
||||
Comment[no]=Surf på nettet
|
||||
Comment[pl]=Przeglądanie stron WWW
|
||||
Comment[pt]=Navegue na Internet
|
||||
Comment[pt_BR]=Navegue na Internet
|
||||
Comment[ro]=Navigați pe Internet
|
||||
Comment[ru]=Доступ в Интернет
|
||||
Comment[sk]=Prehliadanie internetu
|
||||
Comment[sl]=Brskajte po spletu
|
||||
Comment[sv]=Surfa på webben
|
||||
Comment[tr]=İnternet'te Gezinin
|
||||
Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
|
||||
Comment[uk]=Перегляд сторінок Інтернету
|
||||
Comment[vi]=Để duyệt các trang web
|
||||
Comment[zh_CN]=浏览互联网
|
||||
Comment[zh_TW]=瀏覽網際網路
|
||||
GenericName=Web Browser
|
||||
GenericName[ar]=متصفح ويب
|
||||
GenericName[ast]=Restolador Web
|
||||
GenericName[bn]=ওয়েব ব্রাউজার
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[cs]=Webový prohlížeč
|
||||
GenericName[da]=Webbrowser
|
||||
GenericName[el]=Περιηγητής διαδικτύου
|
||||
GenericName[es]=Navegador web
|
||||
GenericName[et]=Veebibrauser
|
||||
GenericName[fa]=مرورگر اینترنتی
|
||||
GenericName[fi]=WWW-selain
|
||||
GenericName[fr]=Navigateur Web
|
||||
GenericName[gl]=Navegador Web
|
||||
GenericName[he]=דפדפן אינטרנט
|
||||
GenericName[hr]=Web preglednik
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[it]=Browser web
|
||||
GenericName[ja]=ウェブ・ブラウザ
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[ku]=Geroka torê
|
||||
GenericName[lt]=Interneto naršyklė
|
||||
GenericName[nb]=Nettleser
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[nn]=Nettlesar
|
||||
GenericName[no]=Nettleser
|
||||
GenericName[pl]=Przeglądarka WWW
|
||||
GenericName[pt]=Navegador Web
|
||||
GenericName[pt_BR]=Navegador Web
|
||||
GenericName[ro]=Navigator Internet
|
||||
GenericName[ru]=Веб-браузер
|
||||
GenericName[sk]=Internetový prehliadač
|
||||
GenericName[sl]=Spletni brskalnik
|
||||
GenericName[sv]=Webbläsare
|
||||
GenericName[tr]=Web Tarayıcı
|
||||
GenericName[ug]=توركۆرگۈ
|
||||
GenericName[uk]=Веб-браузер
|
||||
GenericName[vi]=Trình duyệt Web
|
||||
GenericName[zh_CN]=网络浏览器
|
||||
GenericName[zh_TW]=網路瀏覽器
|
||||
Keywords=Internet;WWW;Browser;Web;Explorer;
|
||||
Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب;
|
||||
Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador;
|
||||
Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer;
|
||||
Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer;
|
||||
Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet;
|
||||
Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen;
|
||||
Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;IceCat;Φιρεφοχ;Ιντερνετ;
|
||||
Keywords[es]=Explorador;Internet;WWW;
|
||||
Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa;
|
||||
Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur;
|
||||
Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
|
||||
Keywords[hr]=Internet;WWW;preglednik;Web;
|
||||
Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer;
|
||||
Keywords[it]=Internet;WWW;Browser;Web;Navigatore;
|
||||
Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk;
|
||||
Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ;
|
||||
Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside;
|
||||
Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online;
|
||||
Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador;
|
||||
Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador;
|
||||
Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис;
|
||||
Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer;
|
||||
Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet;
|
||||
Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara;
|
||||
Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд;
|
||||
Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web;
|
||||
Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;IceCat;ff;互联网;网站;
|
||||
Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐;
|
||||
Exec=icecat-x11 --name icecat-x11 %u
|
||||
Icon=icecat
|
||||
Terminal=false
|
||||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Name[en_US]=GNU IceCat on X11
|
||||
Actions=new-window;new-private-window;
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=Open a New Window
|
||||
Name[ach]=Dirica manyen
|
||||
Name[af]=Nuwe venster
|
||||
Name[an]=Nueva finestra
|
||||
Name[ar]=نافذة جديدة
|
||||
Name[as]=নতুন উইন্ডো
|
||||
Name[ast]=Ventana nueva
|
||||
Name[az]=Yeni Pəncərə
|
||||
Name[be]=Новае акно
|
||||
Name[bg]=Нов прозорец
|
||||
Name[bn-BD]=নতুন উইন্ডো (N)
|
||||
Name[bn-IN]=নতুন উইন্ডো
|
||||
Name[br]=Prenestr nevez
|
||||
Name[brx]=गोदान उइन्ड'(N)
|
||||
Name[bs]=Novi prozor
|
||||
Name[ca]=Finestra nova
|
||||
Name[cak]=K'ak'a' tzuwäch
|
||||
Name[cs]=Nové okno
|
||||
Name[cy]=Ffenestr Newydd
|
||||
Name[da]=Nyt vindue
|
||||
Name[de]=­Neues Fenster
|
||||
Name[dsb]=Nowe wokno
|
||||
Name[el]=Νέο παράθυρο
|
||||
Name[en-GB]=New Window
|
||||
Name[en-US]=New Window
|
||||
Name[en-ZA]=New Window
|
||||
Name[eo]=Nova fenestro
|
||||
Name[es-AR]=Nueva ventana
|
||||
Name[es-CL]=Nueva ventana
|
||||
Name[es-ES]=Nueva ventana
|
||||
Name[es-MX]=Nueva ventana
|
||||
Name[et]=Uus aken
|
||||
Name[eu]=Leiho berria
|
||||
Name[fa]=پنجره جدید
|
||||
Name[ff]=Henorde Hesere
|
||||
Name[fi]=Uusi ikkuna
|
||||
Name[fr]=­Nouvelle fenêtre
|
||||
Name[fy-NL]=Nij finster
|
||||
Name[ga-IE]=Fuinneog Nua
|
||||
Name[gd]=Uinneag ùr
|
||||
Name[gl]=Nova xanela
|
||||
Name[gn]=Ovetã pyahu
|
||||
Name[gu-IN]=નવી વિન્ડો
|
||||
Name[he]=חלון חדש
|
||||
Name[hi-IN]=नया विंडो
|
||||
Name[hr]=Novi prozor
|
||||
Name[hsb]=Nowe wokno
|
||||
Name[hu]=Új ablak
|
||||
Name[hy-AM]=Նոր Պատուհան
|
||||
Name[id]=Jendela Baru
|
||||
Name[is]=Nýr gluggi
|
||||
Name[it]=Nuova finestra­
|
||||
Name[ja]=新しいウィンドウ
|
||||
Name[ja-JP-mac]=新規ウインドウ
|
||||
Name[ka]=ახალი ფანჯარა
|
||||
Name[kk]=Жаңа терезе
|
||||
Name[km]=បង្អួចថ្មី
|
||||
Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
||||
Name[ko]=새 창
|
||||
Name[kok]=नवें जनेल
|
||||
Name[ks]=نئئ وِنڈو
|
||||
Name[lij]=Neuvo barcon
|
||||
Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
||||
Name[lt]=Naujas langas
|
||||
Name[ltg]=Jauns lūgs
|
||||
Name[lv]=Jauns logs
|
||||
Name[mai]=नव विंडो
|
||||
Name[mk]=Нов прозорец
|
||||
Name[ml]=പുതിയ ജാലകം
|
||||
Name[mr]=नवीन पटल
|
||||
Name[ms]=Tetingkap Baru
|
||||
Name[my]=ဝင်းဒိုးအသစ်
|
||||
Name[nb-NO]=Nytt vindu
|
||||
Name[ne-NP]=नयाँ सञ्झ्याल
|
||||
Name[nl]=Nieuw venster
|
||||
Name[nn-NO]=Nytt vindauge
|
||||
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||
Name[pa-IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno
|
||||
Name[pt-BR]=Nova janela
|
||||
Name[pt-PT]=Nova janela
|
||||
Name[rm]=Nova fanestra
|
||||
Name[ro]=Fereastră nouă
|
||||
Name[ru]=Новое окно
|
||||
Name[sat]=नावा विंडो (N)
|
||||
Name[si]=නව කවුළුවක්
|
||||
Name[sk]=Nové okno
|
||||
Name[sl]=Novo okno
|
||||
Name[son]=Zanfun taaga
|
||||
Name[sq]=Dritare e Re
|
||||
Name[sr]=Нови прозор
|
||||
Name[sv-SE]=Nytt fönster
|
||||
Name[ta]=புதிய சாளரம்
|
||||
Name[te]=కొత్త విండో
|
||||
Name[th]=หน้าต่างใหม่
|
||||
Name[tr]=Yeni pencere
|
||||
Name[tsz]=Eraatarakua jimpani
|
||||
Name[uk]=Нове вікно
|
||||
Name[ur]=نیا دریچہ
|
||||
Name[uz]=Yangi oyna
|
||||
Name[vi]=Cửa sổ mới
|
||||
Name[wo]=Palanteer bu bees
|
||||
Name[xh]=Ifestile entsha
|
||||
Name[zh-CN]=新建窗口
|
||||
Name[zh-TW]=開新視窗
|
||||
Exec=icecat --new-window %u
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Name=Open a New Private Window
|
||||
Name[ach]=Dirica manyen me mung
|
||||
Name[af]=Nuwe privaatvenster
|
||||
Name[an]=Nueva finestra privada
|
||||
Name[ar]=نافذة خاصة جديدة
|
||||
Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[ast]=Ventana privada nueva
|
||||
Name[az]=Yeni Məxfi Pəncərə
|
||||
Name[be]=Новае акно адасаблення
|
||||
Name[bg]=Нов прозорец за поверително сърфиране
|
||||
Name[bn-BD]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[bn-IN]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[br]=Prenestr merdeiñ prevez nevez
|
||||
Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||
Name[bs]=Novi privatni prozor
|
||||
Name[ca]=Finestra privada nova
|
||||
Name[cak]=K'ak'a' ichinan tzuwäch
|
||||
Name[cs]=Nové anonymní okno
|
||||
Name[cy]=Ffenestr Breifat Newydd
|
||||
Name[da]=Nyt privat vindue
|
||||
Name[de]=Neues privates Fenster
|
||||
Name[dsb]=Nowe priwatne wokno
|
||||
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||
Name[en-GB]=New Private Window
|
||||
Name[en-US]=New Private Window
|
||||
Name[en-ZA]=New Private Window
|
||||
Name[eo]=Nova privata fenestro
|
||||
Name[es-AR]=Nueva ventana privada
|
||||
Name[es-CL]=Nueva ventana privada
|
||||
Name[es-ES]=Nueva ventana privada
|
||||
Name[es-MX]=Nueva ventana privada
|
||||
Name[et]=Uus privaatne aken
|
||||
Name[eu]=Leiho pribatu berria
|
||||
Name[fa]=پنجره ناشناس جدید
|
||||
Name[ff]=Henorde Suturo Hesere
|
||||
Name[fi]=Uusi yksityinen ikkuna
|
||||
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||
Name[fy-NL]=Nij priveefinster
|
||||
Name[ga-IE]=Fuinneog Nua Phríobháideach
|
||||
Name[gd]=Uinneag phrìobhaideach ùr
|
||||
Name[gl]=Nova xanela privada
|
||||
Name[gn]=Ovetã ñemi pyahu
|
||||
Name[gu-IN]=નવી ખાનગી વિન્ડો
|
||||
Name[he]=חלון פרטי חדש
|
||||
Name[hi-IN]=नयी निजी विंडो
|
||||
Name[hr]=Novi privatni prozor
|
||||
Name[hsb]=Nowe priwatne wokno
|
||||
Name[hu]=Új privát ablak
|
||||
Name[hy-AM]=Սկսել Գաղտնի դիտարկում
|
||||
Name[id]=Jendela Mode Pribadi Baru
|
||||
Name[is]=Nýr huliðsgluggi
|
||||
Name[it]=Nuova finestra anonima
|
||||
Name[ja]=新しいプライベートウィンドウ
|
||||
Name[ja-JP-mac]=新規プライベートウインドウ
|
||||
Name[ka]=ახალი პირადი ფანჯარა
|
||||
Name[kk]=Жаңа жекелік терезе
|
||||
Name[km]=បង្អួចឯកជនថ្មី
|
||||
Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
||||
Name[ko]=새 사생활 보호 모드
|
||||
Name[kok]=नवो खाजगी विंडो
|
||||
Name[ks]=نْو پرایوٹ وینڈو&
|
||||
Name[lij]=Neuvo barcon privou
|
||||
Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
||||
Name[lt]=Naujas privataus naršymo langas
|
||||
Name[ltg]=Jauns privatais lūgs
|
||||
Name[lv]=Jauns privātais logs
|
||||
Name[mai]=नया निज विंडो (W)
|
||||
Name[mk]=Нов приватен прозорец
|
||||
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||
Name[mr]=नवीन वैयक्तिक पटल
|
||||
Name[ms]=Tetingkap Persendirian Baharu
|
||||
Name[my]=New Private Window
|
||||
Name[nb-NO]=Nytt privat vindu
|
||||
Name[ne-NP]=नयाँ निजी सञ्झ्याल
|
||||
Name[nl]=Nieuw privévenster
|
||||
Name[nn-NO]=Nytt privat vindauge
|
||||
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||
Name[pa-IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno prywatne
|
||||
Name[pt-BR]=Nova janela privativa
|
||||
Name[pt-PT]=Nova janela privada
|
||||
Name[rm]=Nova fanestra privata
|
||||
Name[ro]=Fereastră privată nouă
|
||||
Name[ru]=Новое приватное окно
|
||||
Name[sat]=नावा निजेराक् विंडो (W )
|
||||
Name[si]=නව පුද්ගලික කවුළුව (W)
|
||||
Name[sk]=Nové okno v režime Súkromné prehliadanie
|
||||
Name[sl]=Novo zasebno okno
|
||||
Name[son]=Sutura zanfun taaga
|
||||
Name[sq]=Dritare e Re Private
|
||||
Name[sr]=Нови приватан прозор
|
||||
Name[sv-SE]=Nytt privat fönster
|
||||
Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||
Name[te]=కొత్త ఆంతరంగిక విండో
|
||||
Name[th]=หน้าต่างส่วนตัวใหม่
|
||||
Name[tr]=Yeni gizli pencere
|
||||
Name[tsz]=Juchiiti eraatarakua jimpani
|
||||
Name[uk]=Приватне вікно
|
||||
Name[ur]=نیا نجی دریچہ
|
||||
Name[uz]=Yangi maxfiy oyna
|
||||
Name[vi]=Cửa sổ riêng tư mới
|
||||
Name[wo]=Panlanteeru biir bu bees
|
||||
Name[xh]=Ifestile yangasese entsha
|
||||
Name[zh-CN]=新建隐私浏览窗口
|
||||
Name[zh-TW]=新增隱私視窗
|
||||
Exec=icecat --private-window %u
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Run GNU IceCat on X11 backend
|
||||
#
|
||||
|
||||
export MOZ_DISABLE_WAYLAND=1
|
||||
exec /__PREFIX__/bin/icecat "$@"
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
</categories>
|
||||
<description>
|
||||
<p>
|
||||
GNUZilla Icecat is a fully-free fork of Mozilla Firefox ESR browser.
|
||||
GNU IceCat is the GNU version of the Firefox ESR browser.
|
||||
</p>
|
||||
<p>
|
||||
Its main advantage is an ethical one: it is entirely free software:
|
||||
|
|
@ -33,14 +33,6 @@
|
|||
HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure
|
||||
</li>
|
||||
<li>
|
||||
Onion Browser Button
|
||||
Easily browse the internet using TOR proxy with just one click
|
||||
</li>
|
||||
<li>
|
||||
ViewTube
|
||||
Watch videos from video sharing websites with extra options
|
||||
</li>
|
||||
<li>
|
||||
A set of companion extensions for LibreJS by Nathan Nichols (https://addons.mozilla.org/en-US/firefox/user/NateN1222/)
|
||||
are pre-installed, and provide workarounds to use some services at USPS, RSF.org, SumOfUs.org, pay.gov, McDonald's, goteo.org
|
||||
and Google Docs without using nonfree JavaScript.
|
||||
|
|
@ -55,16 +47,16 @@
|
|||
<url type="homepage">http://www.gnu.org/software/gnuzilla/</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat681.png</image>
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1021.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat682.png</image>
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1022.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat683.png</image>
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1023.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat684.png</image>
|
||||
<image>https://sagitter.fedorapeople.org/icecat/icecat-screenshots/icecat1024.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<updatecontact>sagitter_at_fedoraproject.org</updatecontact>
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="addon">
|
||||
<id>mozilla-requestpolicy</id>
|
||||
<extends>icecat.desktop</extends>
|
||||
<name>mozilla-requestpolicy</name>
|
||||
<summary>Extension that gives you control over cross-site requests</summary>
|
||||
<url type="homepage">https://requestpolicycontinued.github.io/</url>
|
||||
<url type="bugtracker">https://github.com/requestpolicycontinued/requestpolicy/issues</url>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-3.0+ and LGPL-3.0+</project_license>
|
||||
</component>
|
||||
57
icecat.sh.in
57
icecat.sh.in
|
|
@ -39,12 +39,12 @@ cmdname=`basename $0`
|
|||
MOZ_ARCH=$(uname -m)
|
||||
case $MOZ_ARCH in
|
||||
x86_64 | s390x | sparc64)
|
||||
MOZ_LIB_DIR="/usr/lib64"
|
||||
SECONDARY_LIB_DIR="/usr/lib"
|
||||
MOZ_LIB_DIR="/__PREFIX__/lib64"
|
||||
SECONDARY_LIB_DIR="/__PREFIX__/lib"
|
||||
;;
|
||||
* )
|
||||
MOZ_LIB_DIR="/usr/lib"
|
||||
SECONDARY_LIB_DIR="/usr/lib64"
|
||||
MOZ_LIB_DIR="/__PREFIX__/lib"
|
||||
SECONDARY_LIB_DIR="/__PREFIX__/lib64"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
@ -64,22 +64,35 @@ MOZ_DIST_BIN="$MOZ_LIB_DIR/icecat"
|
|||
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
|
||||
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
|
||||
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
|
||||
MOZ_LAUNCHER="$MOZ_DIST_BIN/run-icecat.sh"
|
||||
MOZ_LAUNCHER="$MOZ_DIST_BIN/icecat"
|
||||
GETENFORCE_FILE="/usr/sbin/getenforce"
|
||||
|
||||
##
|
||||
## Enable X11 backend by default?
|
||||
## Enable Wayland backend?
|
||||
##
|
||||
if __DEFAULT_WAYLAND__ && ! [ $MOZ_DISABLE_WAYLAND ]; then
|
||||
if ! [ $MOZ_DISABLE_WAYLAND ] && [ "$WAYLAND_DISPLAY" ]; then
|
||||
if [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
fi
|
||||
## Enable Wayland on KDE/Sway
|
||||
##
|
||||
if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
fi
|
||||
fi
|
||||
|
||||
##
|
||||
## Use D-Bus remote exclusively when there's Wayland display.
|
||||
##
|
||||
if [ "$WAYLAND_DISPLAY" ]; then
|
||||
export MOZ_DBUS_REMOTE=1
|
||||
fi
|
||||
|
||||
##
|
||||
## Set MOZ_GRE_CONF
|
||||
##
|
||||
MOZ_GRE_CONF=/etc/gre.d/gre.conf
|
||||
if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then
|
||||
if [ "$MOZ_LIB_DIR" == "/__PREFIX__/lib64" ]; then
|
||||
MOZ_GRE_CONF=/etc/gre.d/gre64.conf
|
||||
fi
|
||||
export MOZ_GRE_CONF
|
||||
|
|
@ -168,11 +181,19 @@ MOZILLA_DOWN=0
|
|||
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
|
||||
if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then
|
||||
# Is icecat running?
|
||||
/usr/bin/pidof icecat > /dev/null 2>&1
|
||||
/__PREFIX__/pidof icecat > /dev/null 2>&1
|
||||
MOZILLA_DOWN=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
# When IceCat is not running, restore SELinux labels for profile files
|
||||
# (rhbz#1731371)
|
||||
if [ $MOZILLA_DOWN -ne 0 ]; then
|
||||
if [ -x $GETENFORCE_FILE ] && [ `getenforce` != "Disabled" ]; then
|
||||
(restorecon -vr ~/.mozilla/icecat/* &)
|
||||
fi
|
||||
fi
|
||||
|
||||
# Modify language pack configuration only when icecat is not running
|
||||
# and language packs are not disabled
|
||||
if [ $MOZILLA_DOWN -ne 0 ]; then
|
||||
|
|
@ -192,8 +213,8 @@ if [ $MOZILLA_DOWN -ne 0 ]; then
|
|||
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
|
||||
|
||||
# Try with a local variant first, then without a local variant
|
||||
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"`
|
||||
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"`
|
||||
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"`
|
||||
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"`
|
||||
|
||||
function create_langpack_link() {
|
||||
local language=$*
|
||||
|
|
@ -248,13 +269,11 @@ do
|
|||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Run the browser
|
||||
debugging=0
|
||||
if [ $debugging = 1 ]
|
||||
then
|
||||
echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
|
||||
fi
|
||||
|
||||
## Allow downgrade because during distro upgrade the build time can be
|
||||
## older in newer version than the previous one.
|
||||
##
|
||||
export MOZ_ALLOW_DOWNGRADE=1
|
||||
|
||||
|
||||
exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
|
||||
exec $MOZ_PROGRAM "$@"
|
||||
|
|
|
|||
1466
icecat.spec
1466
icecat.spec
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,6 @@
|
|||
diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp
|
||||
--- firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200
|
||||
+++ firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200
|
||||
@@ -1092,7 +1092,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
||||
--- a/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200
|
||||
+++ b/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200
|
||||
@@ -1055,7 +1055,7 @@
|
||||
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
|
||||
MutableHandleValue srcp) const;
|
||||
|
||||
|
|
@ -10,7 +9,7 @@ diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68
|
|||
|
||||
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
|
||||
|
||||
@@ -1139,7 +1139,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
||||
@@ -1102,7 +1102,7 @@
|
||||
|
||||
~CallMethodHelper();
|
||||
|
||||
|
|
@ -19,25 +18,3 @@ diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68
|
|||
|
||||
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
|
||||
void trace(JSTracer* aTrc);
|
||||
@@ -1157,6 +1157,10 @@ bool XPCWrappedNative::CallMethod(XPCCal
|
||||
return helper.get().Call();
|
||||
}
|
||||
|
||||
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
+// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
+__attribute__ ((noinline,noclone))
|
||||
+#endif
|
||||
bool CallMethodHelper::Call() {
|
||||
mCallContext.SetRetVal(JS::UndefinedValue());
|
||||
|
||||
@@ -1315,6 +1319,10 @@ bool CallMethodHelper::GetOutParamSource
|
||||
return true;
|
||||
}
|
||||
|
||||
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
+// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
+__attribute__ ((noinline,noclone))
|
||||
+#endif
|
||||
bool CallMethodHelper::GatherAndConvertResults() {
|
||||
// now we iterate through the native params to gather and convert results
|
||||
uint8_t paramCount = mMethodInfo->GetParamCount();
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
|
||||
--- a/dom/plugins/base/nsPluginHost.cpp
|
||||
+++ b/dom/plugins/base/nsPluginHost.cpp
|
||||
@@ -105,6 +105,10 @@
|
||||
# include "windows.h"
|
||||
# include "winbase.h"
|
||||
#endif
|
||||
+#if (MOZ_WIDGET_GTK)
|
||||
+# include <gdk/gdk.h>
|
||||
+# include <gdk/gdkx.h>
|
||||
+#endif
|
||||
|
||||
#include "npapi.h"
|
||||
|
||||
@@ -358,9 +362,15 @@
|
||||
mOverrideInternalTypes =
|
||||
Preferences::GetBool("plugin.override_internal_types", false);
|
||||
|
||||
- mPluginsDisabled = Preferences::GetBool("plugin.disable", false);
|
||||
-
|
||||
- Preferences::AddStrongObserver(this, "plugin.disable");
|
||||
+ bool waylandBackend = false;
|
||||
+#if MOZ_WIDGET_GTK
|
||||
+ waylandBackend = !GDK_IS_X11_DISPLAY(gdk_display_get_default());
|
||||
+#endif
|
||||
+ mPluginsDisabled =
|
||||
+ Preferences::GetBool("plugin.disable", false) || waylandBackend;
|
||||
+ if (!waylandBackend) {
|
||||
+ Preferences::AddStrongObserver(this, "plugin.disable");
|
||||
+ }
|
||||
|
||||
nsCOMPtr<nsIObserverService> obsService =
|
||||
mozilla::services::GetObserverService();
|
||||
|
||||
|
|
@ -1,141 +0,0 @@
|
|||
diff -up firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.cpp
|
||||
--- firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 2019-09-02 15:16:15.031528276 +0200
|
||||
+++ firefox-69.0/widget/gtk/nsWindow.cpp 2019-09-02 15:16:15.037528254 +0200
|
||||
@@ -818,7 +818,6 @@ void nsWindow::SetParent(nsIWidget* aNew
|
||||
if (mParent) {
|
||||
mParent->RemoveChild(this);
|
||||
}
|
||||
-
|
||||
mParent = aNewParent;
|
||||
|
||||
GtkWidget* oldContainer = GetMozContainerWidget();
|
||||
@@ -830,88 +829,73 @@ void nsWindow::SetParent(nsIWidget* aNew
|
||||
return;
|
||||
}
|
||||
|
||||
+ nsWindow* newParent = static_cast<nsWindow*>(aNewParent);
|
||||
+ GdkWindow* newParentWindow = nullptr;
|
||||
+ GtkWidget* newContainer = nullptr;
|
||||
if (aNewParent) {
|
||||
aNewParent->AddChild(this);
|
||||
- ReparentNativeWidget(aNewParent);
|
||||
+ newParentWindow = newParent->mGdkWindow;
|
||||
+ newContainer = newParent->GetMozContainerWidget();
|
||||
} else {
|
||||
// aNewParent is nullptr, but reparent to a hidden window to avoid
|
||||
// destroying the GdkWindow and its descendants.
|
||||
// An invisible container widget is needed to hold descendant
|
||||
// GtkWidgets.
|
||||
- GtkWidget* newContainer = EnsureInvisibleContainer();
|
||||
- GdkWindow* newParentWindow = gtk_widget_get_window(newContainer);
|
||||
- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow,
|
||||
- oldContainer);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); }
|
||||
-
|
||||
-void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) {
|
||||
- MOZ_ASSERT(aNewParent, "null widget");
|
||||
- NS_ASSERTION(!mIsDestroyed, "");
|
||||
- NS_ASSERTION(!static_cast<nsWindow*>(aNewParent)->mIsDestroyed, "");
|
||||
-
|
||||
- GtkWidget* oldContainer = GetMozContainerWidget();
|
||||
- if (!oldContainer) {
|
||||
- // The GdkWindows have been destroyed so there is nothing else to
|
||||
- // reparent.
|
||||
- MOZ_ASSERT(gdk_window_is_destroyed(mGdkWindow),
|
||||
- "live GdkWindow with no widget");
|
||||
- return;
|
||||
+ newContainer = EnsureInvisibleContainer();
|
||||
+ newParentWindow = gtk_widget_get_window(newContainer);
|
||||
}
|
||||
- MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow),
|
||||
- "destroyed GdkWindow with widget");
|
||||
|
||||
- auto* newParent = static_cast<nsWindow*>(aNewParent);
|
||||
- GdkWindow* newParentWindow = newParent->mGdkWindow;
|
||||
- GtkWidget* newContainer = newParent->GetMozContainerWidget();
|
||||
- GtkWindow* shell = GTK_WINDOW(mShell);
|
||||
-
|
||||
- if (shell && gtk_window_get_transient_for(shell)) {
|
||||
- GtkWindow* topLevelParent =
|
||||
- GTK_WINDOW(gtk_widget_get_toplevel(newContainer));
|
||||
- gtk_window_set_transient_for(shell, topLevelParent);
|
||||
- }
|
||||
-
|
||||
- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow,
|
||||
- oldContainer);
|
||||
-}
|
||||
-
|
||||
-void nsWindow::ReparentNativeWidgetInternal(nsIWidget* aNewParent,
|
||||
- GtkWidget* aNewContainer,
|
||||
- GdkWindow* aNewParentWindow,
|
||||
- GtkWidget* aOldContainer) {
|
||||
- if (!aNewContainer) {
|
||||
+ if (!newContainer) {
|
||||
// The new parent GdkWindow has been destroyed.
|
||||
- MOZ_ASSERT(!aNewParentWindow || gdk_window_is_destroyed(aNewParentWindow),
|
||||
+ MOZ_ASSERT(!newParentWindow || gdk_window_is_destroyed(newParentWindow),
|
||||
"live GdkWindow with no widget");
|
||||
Destroy();
|
||||
} else {
|
||||
- if (aNewContainer != aOldContainer) {
|
||||
- MOZ_ASSERT(!gdk_window_is_destroyed(aNewParentWindow),
|
||||
+ if (newContainer != oldContainer) {
|
||||
+ MOZ_ASSERT(!gdk_window_is_destroyed(newParentWindow),
|
||||
"destroyed GdkWindow with widget");
|
||||
- SetWidgetForHierarchy(mGdkWindow, aOldContainer, aNewContainer);
|
||||
+ SetWidgetForHierarchy(mGdkWindow, oldContainer, newContainer);
|
||||
|
||||
- if (aOldContainer == gInvisibleContainer) {
|
||||
+ if (oldContainer == gInvisibleContainer) {
|
||||
CheckDestroyInvisibleContainer();
|
||||
}
|
||||
}
|
||||
|
||||
- if (!mIsTopLevel) {
|
||||
- gdk_window_reparent(mGdkWindow, aNewParentWindow,
|
||||
- DevicePixelsToGdkCoordRoundDown(mBounds.x),
|
||||
- DevicePixelsToGdkCoordRoundDown(mBounds.y));
|
||||
- }
|
||||
+ gdk_window_reparent(mGdkWindow, newParentWindow,
|
||||
+ DevicePixelsToGdkCoordRoundDown(mBounds.x),
|
||||
+ DevicePixelsToGdkCoordRoundDown(mBounds.y));
|
||||
+ mToplevelParentWindow = GTK_WINDOW(gtk_widget_get_toplevel(newContainer));
|
||||
}
|
||||
|
||||
- auto* newParent = static_cast<nsWindow*>(aNewParent);
|
||||
bool parentHasMappedToplevel = newParent && newParent->mHasMappedToplevel;
|
||||
if (mHasMappedToplevel != parentHasMappedToplevel) {
|
||||
SetHasMappedToplevel(parentHasMappedToplevel);
|
||||
}
|
||||
}
|
||||
|
||||
+bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); }
|
||||
+
|
||||
+void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) {
|
||||
+ MOZ_ASSERT(aNewParent, "null widget");
|
||||
+ MOZ_ASSERT(!mIsDestroyed, "");
|
||||
+ MOZ_ASSERT(!static_cast<nsWindow*>(aNewParent)->mIsDestroyed, "");
|
||||
+ MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow),
|
||||
+ "destroyed GdkWindow with widget");
|
||||
+
|
||||
+ MOZ_ASSERT(
|
||||
+ !mParent,
|
||||
+ "nsWindow::ReparentNativeWidget() works on toplevel windows only.");
|
||||
+
|
||||
+ auto* newParent = static_cast<nsWindow*>(aNewParent);
|
||||
+ GtkWindow* newParentWidget = GTK_WINDOW(newParent->GetGtkWidget());
|
||||
+ GtkWindow* shell = GTK_WINDOW(mShell);
|
||||
+
|
||||
+ if (shell && gtk_window_get_transient_for(shell)) {
|
||||
+ gtk_window_set_transient_for(shell, newParentWidget);
|
||||
+ mToplevelParentWindow = newParentWidget;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void nsWindow::SetModal(bool aModal) {
|
||||
LOG(("nsWindow::SetModal [%p] %d\n", (void*)this, aModal));
|
||||
if (mIsDestroyed) return;
|
||||
diff -up firefox-69.0/widget/gtk/nsWindow.h.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.h
|
||||
|
|
@ -1,184 +0,0 @@
|
|||
|
||||
# HG changeset patch
|
||||
# User Emilio Cobos Álvarez <emilio@crisal.io>
|
||||
# Date 1574168632 0
|
||||
# Node ID 82e4062e839a57c0dbcb08df9965883c162eb8d1
|
||||
# Parent ff37a98047d63550c77052e7dfecbda14b188e0d
|
||||
Bug 1564873 - Fix straight-forward uses of mem::uninitialized in webrender. r=nical
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D53359
|
||||
|
||||
diff --git a/gfx/wr/webrender/src/platform/unix/font.rs b/gfx/wr/webrender/src/platform/unix/font.rs
|
||||
--- a/gfx/wr/webrender/src/platform/unix/font.rs
|
||||
+++ b/gfx/wr/webrender/src/platform/unix/font.rs
|
||||
@@ -530,26 +530,26 @@ impl FontContext {
|
||||
// Get the bounding box for a glyph, accounting for sub-pixel positioning.
|
||||
fn get_bounding_box(
|
||||
&self,
|
||||
slot: FT_GlyphSlot,
|
||||
font: &FontInstance,
|
||||
glyph: &GlyphKey,
|
||||
scale: f32,
|
||||
) -> FT_BBox {
|
||||
- let mut cbox: FT_BBox = unsafe { mem::uninitialized() };
|
||||
+ // Get the estimated bounding box from FT (control points).
|
||||
+ let mut cbox = FT_BBox { xMin: 0, yMin: 0, xMax: 0, yMax: 0 };
|
||||
|
||||
- // Get the estimated bounding box from FT (control points).
|
||||
unsafe {
|
||||
FT_Outline_Get_CBox(&(*slot).outline, &mut cbox);
|
||||
+ }
|
||||
|
||||
- // For spaces and other non-printable characters, early out.
|
||||
- if (*slot).outline.n_contours == 0 {
|
||||
- return cbox;
|
||||
- }
|
||||
+ // For spaces and other non-printable characters, early out.
|
||||
+ if unsafe { (*slot).outline.n_contours } == 0 {
|
||||
+ return cbox;
|
||||
}
|
||||
|
||||
self.pad_bounding_box(font, &mut cbox);
|
||||
|
||||
// Offset the bounding box by subpixel positioning.
|
||||
// Convert to 26.6 fixed point format for FT.
|
||||
let (dx, dy) = font.get_subpx_offset(glyph);
|
||||
let (dx, dy) = (
|
||||
@@ -713,17 +713,17 @@ impl FontContext {
|
||||
(dx / scale as f64 * 64.0 + 0.5) as FT_Pos,
|
||||
-(dy / scale as f64 * 64.0 + 0.5) as FT_Pos,
|
||||
);
|
||||
|
||||
// Move the outline curves to be at the origin, taking
|
||||
// into account the subpixel positioning.
|
||||
unsafe {
|
||||
let outline = &(*slot).outline;
|
||||
- let mut cbox: FT_BBox = mem::uninitialized();
|
||||
+ let mut cbox = FT_BBox { xMin: 0, yMin: 0, xMax: 0, yMax: 0 };
|
||||
FT_Outline_Get_CBox(outline, &mut cbox);
|
||||
self.pad_bounding_box(font, &mut cbox);
|
||||
FT_Outline_Translate(
|
||||
outline,
|
||||
dx - ((cbox.xMin + dx) & !63),
|
||||
dy - ((cbox.yMin + dy) & !63),
|
||||
);
|
||||
}
|
||||
diff --git a/gfx/wr/webrender/src/prim_store/gradient.rs b/gfx/wr/webrender/src/prim_store/gradient.rs
|
||||
--- a/gfx/wr/webrender/src/prim_store/gradient.rs
|
||||
+++ b/gfx/wr/webrender/src/prim_store/gradient.rs
|
||||
@@ -18,7 +18,7 @@
|
||||
use crate::prim_store::{PrimKeyCommonData, PrimTemplateCommonData, PrimitiveStore};
|
||||
use crate::prim_store::{NinePatchDescriptor, PointKey, SizeKey, InternablePrimitive};
|
||||
use crate::render_task::RenderTaskCacheEntryHandle;
|
||||
-use std::{hash, ops::{Deref, DerefMut}, mem};
|
||||
+use std::{hash, ops::{Deref, DerefMut}};
|
||||
use crate::util::pack_as_float;
|
||||
|
||||
/// The maximum number of stops a gradient may have to use the fast path.
|
||||
@@ -575,22 +575,32 @@ pub const GRADIENT_DATA_TABLE_BEGIN: usi
|
||||
// The exclusive bound of the gradient data table
|
||||
pub const GRADIENT_DATA_TABLE_END: usize = GRADIENT_DATA_LAST_STOP;
|
||||
// The number of entries in the gradient data table.
|
||||
pub const GRADIENT_DATA_TABLE_SIZE: usize = 128;
|
||||
|
||||
// The number of entries in a gradient data: GRADIENT_DATA_TABLE_SIZE + first stop entry + last stop entry
|
||||
pub const GRADIENT_DATA_SIZE: usize = GRADIENT_DATA_TABLE_SIZE + 2;
|
||||
|
||||
-#[derive(Debug)]
|
||||
+/// An entry in a gradient data table representing a segment of the gradient
|
||||
+/// color space.
|
||||
+#[derive(Debug, Copy, Clone)]
|
||||
#[repr(C)]
|
||||
-// An entry in a gradient data table representing a segment of the gradient color space.
|
||||
-pub struct GradientDataEntry {
|
||||
- pub start_color: PremultipliedColorF,
|
||||
- pub end_color: PremultipliedColorF,
|
||||
+struct GradientDataEntry {
|
||||
+ start_color: PremultipliedColorF,
|
||||
+ end_color: PremultipliedColorF,
|
||||
+}
|
||||
+
|
||||
+impl GradientDataEntry {
|
||||
+ fn white() -> Self {
|
||||
+ Self {
|
||||
+ start_color: PremultipliedColorF::WHITE,
|
||||
+ end_color: PremultipliedColorF::WHITE,
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
// TODO(gw): Tidy this up to be a free function / module?
|
||||
struct GradientGpuBlockBuilder {}
|
||||
|
||||
impl GradientGpuBlockBuilder {
|
||||
/// Generate a color ramp filling the indices in [start_idx, end_idx) and interpolating
|
||||
/// from start_color to end_color.
|
||||
@@ -657,17 +667,17 @@ impl GradientGpuBlockBuilder {
|
||||
// within the segment of the gradient space represented by that entry. To lookup a gradient result,
|
||||
// first the entry index is calculated to determine which two colors to interpolate between, then
|
||||
// the offset within that entry bucket is used to interpolate between the two colors in that entry.
|
||||
// This layout preserves hard stops, as the end color for a given entry can differ from the start
|
||||
// color for the following entry, despite them being adjacent. Colors are stored within in BGRA8
|
||||
// format for texture upload. This table requires the gradient color stops to be normalized to the
|
||||
// range [0, 1]. The first and last entries hold the first and last color stop colors respectively,
|
||||
// while the entries in between hold the interpolated color stop values for the range [0, 1].
|
||||
- let mut entries: [GradientDataEntry; GRADIENT_DATA_SIZE] = unsafe { mem::uninitialized() };
|
||||
+ let mut entries = [GradientDataEntry::white(); GRADIENT_DATA_SIZE];
|
||||
|
||||
if reverse_stops {
|
||||
// Fill in the first entry (for reversed stops) with the first color stop
|
||||
GradientGpuBlockBuilder::fill_colors(
|
||||
GRADIENT_DATA_LAST_STOP,
|
||||
GRADIENT_DATA_LAST_STOP + 1,
|
||||
&cur_color,
|
||||
&cur_color,
|
||||
@@ -692,23 +702,16 @@ impl GradientGpuBlockBuilder {
|
||||
);
|
||||
cur_idx = next_idx;
|
||||
}
|
||||
|
||||
cur_color = next_color;
|
||||
}
|
||||
if cur_idx != GRADIENT_DATA_TABLE_BEGIN {
|
||||
error!("Gradient stops abruptly at {}, auto-completing to white", cur_idx);
|
||||
- GradientGpuBlockBuilder::fill_colors(
|
||||
- GRADIENT_DATA_TABLE_BEGIN,
|
||||
- cur_idx,
|
||||
- &PremultipliedColorF::WHITE,
|
||||
- &cur_color,
|
||||
- &mut entries,
|
||||
- );
|
||||
}
|
||||
|
||||
// Fill in the last entry (for reversed stops) with the last color stop
|
||||
GradientGpuBlockBuilder::fill_colors(
|
||||
GRADIENT_DATA_FIRST_STOP,
|
||||
GRADIENT_DATA_FIRST_STOP + 1,
|
||||
&cur_color,
|
||||
&cur_color,
|
||||
@@ -742,23 +745,16 @@ impl GradientGpuBlockBuilder {
|
||||
);
|
||||
cur_idx = next_idx;
|
||||
}
|
||||
|
||||
cur_color = next_color;
|
||||
}
|
||||
if cur_idx != GRADIENT_DATA_TABLE_END {
|
||||
error!("Gradient stops abruptly at {}, auto-completing to white", cur_idx);
|
||||
- GradientGpuBlockBuilder::fill_colors(
|
||||
- cur_idx,
|
||||
- GRADIENT_DATA_TABLE_END,
|
||||
- &PremultipliedColorF::WHITE,
|
||||
- &cur_color,
|
||||
- &mut entries,
|
||||
- );
|
||||
}
|
||||
|
||||
// Fill in the last entry with the last color stop
|
||||
GradientGpuBlockBuilder::fill_colors(
|
||||
GRADIENT_DATA_LAST_STOP,
|
||||
GRADIENT_DATA_LAST_STOP + 1,
|
||||
&cur_color,
|
||||
&cur_color,
|
||||
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -3504,12 +3504,6 @@
|
||||
mBounds = aRect;
|
||||
ConstrainSize(&mBounds.width, &mBounds.height);
|
||||
|
||||
- // eWindowType_child is not supported on Wayland. Just switch to toplevel
|
||||
- // as a workaround.
|
||||
- if (!mIsX11Display && mWindowType == eWindowType_child) {
|
||||
- mWindowType = eWindowType_toplevel;
|
||||
- }
|
||||
-
|
||||
// figure out our parent window
|
||||
GtkWidget* parentMozContainer = nullptr;
|
||||
GtkContainer* parentGtkContainer = nullptr;
|
||||
@@ -3543,6 +3537,18 @@
|
||||
topLevelParent = GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer));
|
||||
}
|
||||
|
||||
+ if (!mIsX11Display) {
|
||||
+ if (mWindowType == eWindowType_child) {
|
||||
+ // eWindowType_child is not supported on Wayland. Just switch to toplevel
|
||||
+ // as a workaround.
|
||||
+ mWindowType = eWindowType_toplevel;
|
||||
+ } else if (mWindowType == eWindowType_popup && !topLevelParent) {
|
||||
+ // Workaround for Wayland where the popup windows always need to have
|
||||
+ // parent window. For example webrtc ui is a popup window without parent.
|
||||
+ mWindowType = eWindowType_toplevel;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// ok, create our windows
|
||||
switch (mWindowType) {
|
||||
case eWindowType_dialog:
|
||||
|
||||
|
|
@ -1,205 +0,0 @@
|
|||
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
|
||||
--- a/widget/gtk/nsWindow.h
|
||||
+++ b/widget/gtk/nsWindow.h
|
||||
@@ -487,6 +487,7 @@
|
||||
GtkWidget* mShell;
|
||||
MozContainer* mContainer;
|
||||
GdkWindow* mGdkWindow;
|
||||
+ GtkWindow* mToplevelParentWindow;
|
||||
bool mWindowShouldStartDragging = false;
|
||||
PlatformCompositorWidgetDelegate* mCompositorWidgetDelegate;
|
||||
|
||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -401,6 +401,7 @@
|
||||
mContainer = nullptr;
|
||||
mGdkWindow = nullptr;
|
||||
mShell = nullptr;
|
||||
+ mToplevelParentWindow = nullptr;
|
||||
mCompositorWidgetDelegate = nullptr;
|
||||
mHasMappedToplevel = false;
|
||||
mIsFullyObscured = false;
|
||||
@@ -1144,6 +1145,8 @@
|
||||
nsWindow* window =
|
||||
static_cast<nsWindow*>(gVisibleWaylandPopupWindows->data);
|
||||
if (window->mPopupType != ePopupTypeTooltip) break;
|
||||
+ LOG(("nsWindow::HideWaylandTooltips [%p] hidding tooltip [%p].\n",
|
||||
+ (void*)this, window));
|
||||
window->HideWaylandWindow();
|
||||
gVisibleWaylandPopupWindows = g_list_delete_link(
|
||||
gVisibleWaylandPopupWindows, gVisibleWaylandPopupWindows);
|
||||
@@ -1172,9 +1175,12 @@
|
||||
// before we open another one on that level. It means that every open
|
||||
// popup needs to have an unique parent.
|
||||
GtkWidget* nsWindow::ConfigureWaylandPopupWindows() {
|
||||
+ LOG(("nsWindow::ConfigureWaylandPopupWindows [%p]\n", (void*)this));
|
||||
+
|
||||
// Check if we're already configured.
|
||||
if (gVisibleWaylandPopupWindows &&
|
||||
g_list_find(gVisibleWaylandPopupWindows, this)) {
|
||||
+ LOG(("...[%p] is already configured.\n", (void*)this));
|
||||
return GTK_WIDGET(gtk_window_get_transient_for(GTK_WINDOW(mShell)));
|
||||
}
|
||||
|
||||
@@ -1182,9 +1188,15 @@
|
||||
// as it's short lived temporary window.
|
||||
HideWaylandTooltips();
|
||||
|
||||
- GtkWindow* parentWidget = nullptr;
|
||||
+ GtkWindow* parentWidget = mToplevelParentWindow;
|
||||
if (gVisibleWaylandPopupWindows) {
|
||||
+ LOG(("... there's visible active popup [%p]\n",
|
||||
+ gVisibleWaylandPopupWindows->data));
|
||||
+
|
||||
if (mPopupType == ePopupTypeTooltip) {
|
||||
+ LOG(("...[%p] is tooltip, parent [%p]\n", (void*)this,
|
||||
+ gVisibleWaylandPopupWindows->data));
|
||||
+
|
||||
// Attach tooltip window to the latest popup window
|
||||
// to have both visible.
|
||||
nsWindow* window =
|
||||
@@ -1200,12 +1212,19 @@
|
||||
// nsWindow::Create()) or we're toplevel popup without parent.
|
||||
// In both cases just use parent which was passed to nsWindow::Create().
|
||||
if (!menuPopupFrame) {
|
||||
- return GTK_WIDGET(gtk_window_get_transient_for(GTK_WINDOW(mShell)));
|
||||
+ LOG(("...[%p] menuPopupFrame = null, using given parent widget [%p]\n",
|
||||
+ (void*)this, parentWidget));
|
||||
+ return GTK_WIDGET(parentWidget);
|
||||
}
|
||||
|
||||
nsWindow* parentWindow =
|
||||
static_cast<nsWindow*>(menuPopupFrame->GetParentMenuWidget());
|
||||
+ LOG(("...[%p] GetParentMenuWidget() = %p\n", (void*)this, parentWindow));
|
||||
+
|
||||
if (!parentWindow) {
|
||||
+ LOG(("...[%p] using active/visible popups as a parent [%p]\n",
|
||||
+ (void*)this, gVisibleWaylandPopupWindows->data));
|
||||
+
|
||||
// We're toplevel popup menu attached to another menu. Just use our
|
||||
// latest popup as a parent.
|
||||
parentWindow =
|
||||
@@ -1234,10 +1253,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ MOZ_ASSERT(parentWidget, "Missing parent widget for wayland popup!");
|
||||
if (parentWidget) {
|
||||
+ LOG(("...[%p] set parent widget [%p]\n", (void*)this, parentWidget));
|
||||
gtk_window_set_transient_for(GTK_WINDOW(mShell), parentWidget);
|
||||
- } else {
|
||||
- parentWidget = gtk_window_get_transient_for(GTK_WINDOW(mShell));
|
||||
}
|
||||
gVisibleWaylandPopupWindows =
|
||||
g_list_prepend(gVisibleWaylandPopupWindows, this);
|
||||
@@ -1248,9 +1267,11 @@
|
||||
static void NativeMoveResizeWaylandPopupCallback(
|
||||
GdkWindow* window, const GdkRectangle* flipped_rect,
|
||||
const GdkRectangle* final_rect, gboolean flipped_x, gboolean flipped_y,
|
||||
- void* unused) {
|
||||
- LOG(("%s flipped %d %d\n", __FUNCTION__, flipped_rect->x, flipped_rect->y));
|
||||
- LOG(("%s final %d %d\n", __FUNCTION__, final_rect->x, final_rect->y));
|
||||
+ void* aWindow) {
|
||||
+ LOG(("%s [%p] flipped %d %d\n", __FUNCTION__, aWindow, flipped_rect->x,
|
||||
+ flipped_rect->y));
|
||||
+ LOG(("%s [%p] final %d %d\n", __FUNCTION__, aWindow, final_rect->x,
|
||||
+ final_rect->y));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1264,6 +1285,8 @@
|
||||
// Compositor may be confused by windows with width/height = 0
|
||||
// and positioning such windows leads to Bug 1555866.
|
||||
if (!AreBoundsSane()) {
|
||||
+ LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] Bounds are not sane\n",
|
||||
+ (void*)this));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1277,6 +1300,8 @@
|
||||
// - gdk_window_move_to_rect() is not available
|
||||
// - the widget doesn't have a valid GdkWindow
|
||||
if (!sGdkWindowMoveToRect || !gdkWindow) {
|
||||
+ LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] use gtk_window_move()\n",
|
||||
+ (void*)this));
|
||||
gtk_window_move(GTK_WINDOW(mShell), aPosition->x, aPosition->y);
|
||||
return;
|
||||
}
|
||||
@@ -1302,8 +1327,12 @@
|
||||
}
|
||||
LOG((" request result %d %d\n", rect.x, rect.y));
|
||||
#ifdef DEBUG
|
||||
- g_signal_connect(gdkWindow, "moved-to-rect",
|
||||
- G_CALLBACK(NativeMoveResizeWaylandPopupCallback), this);
|
||||
+ if (!g_signal_handler_find(
|
||||
+ gdkWindow, G_SIGNAL_MATCH_FUNC, 0, 0, nullptr,
|
||||
+ FuncToGpointer(NativeMoveResizeWaylandPopupCallback), this)) {
|
||||
+ g_signal_connect(gdkWindow, "moved-to-rect",
|
||||
+ G_CALLBACK(NativeMoveResizeWaylandPopupCallback), this);
|
||||
+ }
|
||||
#endif
|
||||
|
||||
GdkGravity rectAnchor = GDK_GRAVITY_NORTH_WEST;
|
||||
@@ -3508,7 +3537,6 @@
|
||||
GtkWidget* parentMozContainer = nullptr;
|
||||
GtkContainer* parentGtkContainer = nullptr;
|
||||
GdkWindow* parentGdkWindow = nullptr;
|
||||
- GtkWindow* topLevelParent = nullptr;
|
||||
nsWindow* parentnsWindow = nullptr;
|
||||
GtkWidget* eventWidget = nullptr;
|
||||
bool drawToContainer = false;
|
||||
@@ -3534,7 +3562,8 @@
|
||||
|
||||
// get the toplevel window just in case someone needs to use it
|
||||
// for setting transients or whatever.
|
||||
- topLevelParent = GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer));
|
||||
+ mToplevelParentWindow =
|
||||
+ GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer));
|
||||
}
|
||||
|
||||
if (!mIsX11Display) {
|
||||
@@ -3542,7 +3571,7 @@
|
||||
// eWindowType_child is not supported on Wayland. Just switch to toplevel
|
||||
// as a workaround.
|
||||
mWindowType = eWindowType_toplevel;
|
||||
- } else if (mWindowType == eWindowType_popup && !topLevelParent) {
|
||||
+ } else if (mWindowType == eWindowType_popup && !mToplevelParentWindow) {
|
||||
// Workaround for Wayland where the popup windows always need to have
|
||||
// parent window. For example webrtc ui is a popup window without parent.
|
||||
mWindowType = eWindowType_toplevel;
|
||||
@@ -3677,7 +3706,7 @@
|
||||
gdk_get_program_class());
|
||||
gtk_window_set_type_hint(GTK_WINDOW(mShell),
|
||||
GDK_WINDOW_TYPE_HINT_DIALOG);
|
||||
- gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent);
|
||||
+ gtk_window_set_transient_for(GTK_WINDOW(mShell), mToplevelParentWindow);
|
||||
} else if (mWindowType == eWindowType_popup) {
|
||||
gtk_window_set_wmclass(GTK_WINDOW(mShell), "Popup",
|
||||
gdk_get_program_class());
|
||||
@@ -3730,10 +3759,11 @@
|
||||
}
|
||||
gtk_window_set_type_hint(GTK_WINDOW(mShell), gtkTypeHint);
|
||||
|
||||
- if (topLevelParent) {
|
||||
+ if (mToplevelParentWindow) {
|
||||
LOG(("nsWindow::Create [%p] Set popup parent %p\n", (void*)this,
|
||||
- topLevelParent));
|
||||
- gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent);
|
||||
+ mToplevelParentWindow));
|
||||
+ gtk_window_set_transient_for(GTK_WINDOW(mShell),
|
||||
+ mToplevelParentWindow);
|
||||
}
|
||||
|
||||
// We need realized mShell at NativeMove().
|
||||
@@ -4011,7 +4041,8 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
- LOG(("nsWindow [%p]\n", (void*)this));
|
||||
+ LOG(("nsWindow [%p] %s\n", (void*)this,
|
||||
+ mWindowType == eWindowType_toplevel ? "Toplevel" : "Popup"));
|
||||
if (mShell) {
|
||||
LOG(("\tmShell %p mContainer %p mGdkWindow %p 0x%lx\n", mShell, mContainer,
|
||||
mGdkWindow, mIsX11Display ? gdk_x11_window_get_xid(mGdkWindow) : 0));
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -1208,6 +1208,7 @@
|
||||
if (frame) {
|
||||
menuPopupFrame = do_QueryFrame(frame);
|
||||
}
|
||||
+
|
||||
// The popup is not fully created yet (we're called from
|
||||
// nsWindow::Create()) or we're toplevel popup without parent.
|
||||
// In both cases just use parent which was passed to nsWindow::Create().
|
||||
@@ -1217,10 +1218,22 @@
|
||||
return GTK_WIDGET(parentWidget);
|
||||
}
|
||||
|
||||
+ LOG(("...[%p] is %s\n", (void*)this,
|
||||
+ menuPopupFrame->IsContextMenu() ? "context menu" : "popup"));
|
||||
+
|
||||
nsWindow* parentWindow =
|
||||
static_cast<nsWindow*>(menuPopupFrame->GetParentMenuWidget());
|
||||
LOG(("...[%p] GetParentMenuWidget() = %p\n", (void*)this, parentWindow));
|
||||
|
||||
+ // If the popup is a regular menu but GetParentMenuWidget() returns
|
||||
+ // nullptr which means it's connected non-menu parent
|
||||
+ // (bookmark toolbar for instance).
|
||||
+ // In this case use a parent given at nsWindow::Create().
|
||||
+ if (!parentWindow && !menuPopupFrame->IsContextMenu()) {
|
||||
+ parentWindow =
|
||||
+ get_window_for_gtk_widget(GTK_WIDGET(mToplevelParentWindow));
|
||||
+ }
|
||||
+
|
||||
if (!parentWindow) {
|
||||
LOG(("...[%p] using active/visible popups as a parent [%p]\n",
|
||||
(void*)this, gVisibleWaylandPopupWindows->data));
|
||||
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -3238,16 +3238,18 @@ void nsWindow::OnWindowStateEvent(GtkWid
|
||||
// We don't care about anything but changes in the maximized/icon/fullscreen
|
||||
// states
|
||||
if ((aEvent->changed_mask &
|
||||
(GDK_WINDOW_STATE_ICONIFIED | GDK_WINDOW_STATE_MAXIMIZED |
|
||||
GDK_WINDOW_STATE_FULLSCREEN)) == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
+ nsSizeMode lastSizeState = mSizeState;
|
||||
+
|
||||
if (aEvent->new_window_state & GDK_WINDOW_STATE_ICONIFIED) {
|
||||
LOG(("\tIconified\n"));
|
||||
mSizeState = nsSizeMode_Minimized;
|
||||
#ifdef ACCESSIBILITY
|
||||
DispatchMinimizeEventAccessible();
|
||||
#endif // ACCESSIBILITY
|
||||
} else if (aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) {
|
||||
LOG(("\tFullscreen\n"));
|
||||
@@ -3261,16 +3263,28 @@ void nsWindow::OnWindowStateEvent(GtkWid
|
||||
} else {
|
||||
LOG(("\tNormal\n"));
|
||||
mSizeState = nsSizeMode_Normal;
|
||||
#ifdef ACCESSIBILITY
|
||||
DispatchRestoreEventAccessible();
|
||||
#endif // ACCESSIBILITY
|
||||
}
|
||||
|
||||
+ // Fullscreen video playback may generate bogus alpha values which blends
|
||||
+ // with desktop background in fullscreen video playback (Bug 1568569).
|
||||
+ // As a workaround enable to draw mShell background in fullscreen mode
|
||||
+ // if we draw to mContainer.
|
||||
+ if (gtk_widget_get_has_window(GTK_WIDGET(mContainer))) {
|
||||
+ if (mSizeState == nsSizeMode_Fullscreen) {
|
||||
+ gtk_widget_set_app_paintable(mShell, FALSE);
|
||||
+ } else if (lastSizeState == nsSizeMode_Fullscreen) {
|
||||
+ gtk_widget_set_app_paintable(mShell, TRUE);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (mWidgetListener) {
|
||||
mWidgetListener->SizeModeChanged(mSizeState);
|
||||
if (aEvent->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) {
|
||||
mWidgetListener->FullscreenChanged(aEvent->new_window_state &
|
||||
GDK_WINDOW_STATE_FULLSCREEN);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3787,16 +3801,21 @@ nsresult nsWindow::Create(nsIWidget* aPa
|
||||
eventWidget = (drawToContainer) ? container : mShell;
|
||||
|
||||
// Prevent GtkWindow from painting a background to avoid flickering.
|
||||
gtk_widget_set_app_paintable(eventWidget, TRUE);
|
||||
|
||||
gtk_widget_add_events(eventWidget, kEvents);
|
||||
if (drawToContainer) {
|
||||
gtk_widget_add_events(mShell, GDK_PROPERTY_CHANGE_MASK);
|
||||
+ // Don't paint mShell background when we draw to mContainer.
|
||||
+ // Otherwise we see mShell backround to shine through
|
||||
+ // mContainer (Bug 1507608).
|
||||
+ // But it may also lead to various bugs where mContainer has unintended
|
||||
+ // transparent parts which blend with underlying desktop (Bug 1516224).
|
||||
gtk_widget_set_app_paintable(mShell, TRUE);
|
||||
}
|
||||
if (mTransparencyBitmapForTitlebar) {
|
||||
moz_container_force_default_visual(mContainer);
|
||||
}
|
||||
|
||||
// If we draw to mContainer window then configure it now because
|
||||
// gtk_container_add() realizes the child widget.
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -6577,11 +6577,22 @@
|
||||
}
|
||||
|
||||
gint nsWindow::GdkScaleFactor() {
|
||||
+ // For popup windows with parent window we need to get scale factor of the
|
||||
+ // parent window. Otherwise the scale factor of the popup is not updated
|
||||
+ // during it's hidden.
|
||||
+ GdkWindow* scaledGdkWindow = mGdkWindow;
|
||||
+ if (mToplevelParentWindow) {
|
||||
+ scaledGdkWindow = gtk_widget_get_window(GTK_WIDGET(mToplevelParentWindow));
|
||||
+ // Fallback for windows which parent has been unrealized.
|
||||
+ if (!scaledGdkWindow) {
|
||||
+ scaledGdkWindow = mGdkWindow;
|
||||
+ }
|
||||
+ }
|
||||
// Available as of GTK 3.10+
|
||||
static auto sGdkWindowGetScaleFactorPtr =
|
||||
(gint(*)(GdkWindow*))dlsym(RTLD_DEFAULT, "gdk_window_get_scale_factor");
|
||||
- if (sGdkWindowGetScaleFactorPtr && mGdkWindow)
|
||||
- return (*sGdkWindowGetScaleFactorPtr)(mGdkWindow);
|
||||
+ if (sGdkWindowGetScaleFactorPtr && scaledGdkWindow)
|
||||
+ return (*sGdkWindowGetScaleFactorPtr)(scaledGdkWindow);
|
||||
return ScreenHelperGTK::GetGTKMonitorScaleFactor();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
diff -up firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h
|
||||
--- firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm 2017-03-03 13:53:52.480754536 +0100
|
||||
+++ firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h 2017-03-03 13:56:01.476018102 +0100
|
||||
@@ -203,6 +203,10 @@
|
||||
#define SK_ARM_HAS_CRC32
|
||||
#endif
|
||||
|
||||
+#if defined(__aarch64__)
|
||||
+ #undef SK_ARM_HAS_NEON
|
||||
+#endif
|
||||
+
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(SKIA_IMPLEMENTATION)
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
diff -up a/extensions/auth/nsAuthSambaNTLM.cpp.old b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
--- a/extensions/auth/nsAuthSambaNTLM.cpp.old 2014-11-25 12:23:22.000000000 +0100
|
||||
+++ b/extensions/auth/nsAuthSambaNTLM.cpp 2014-12-23 15:26:36.606674625 +0100
|
||||
@@ -161,7 +161,7 @@
|
||||
const char* username = PR_GetEnv("USER");
|
||||
if (!username) return NS_ERROR_FAILURE;
|
||||
|
||||
- const char* const args[] = {"ntlm_auth",
|
||||
+ const char* const args[] = {"/usr/bin/ntlm_auth",
|
||||
"--helper-protocol",
|
||||
"ntlmssp-client-1",
|
||||
"--use-cached-creds",
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
diff -up firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 firefox-55.0/js/src/old-configure.in
|
||||
--- firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 2017-07-31 18:20:48.000000000 +0200
|
||||
+++ firefox-55.0/js/src/old-configure.in 2017-08-02 14:31:32.190243669 +0200
|
||||
@@ -541,7 +541,7 @@ case "$host" in
|
||||
|
||||
*-linux*|*-kfreebsd*-gnu|*-gnu*)
|
||||
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
|
||||
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
|
||||
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}"
|
||||
;;
|
||||
|
||||
*)
|
||||
@@ -617,8 +617,8 @@ case "$target" in
|
||||
|
||||
*-*linux*)
|
||||
if test "$GNU_CC" -o "$GNU_CXX"; then
|
||||
- MOZ_PGO_OPTIMIZE_FLAGS="-O3"
|
||||
- MOZ_OPTIMIZE_FLAGS="-O3"
|
||||
+ MOZ_PGO_OPTIMIZE_FLAGS="-O1"
|
||||
+ MOZ_OPTIMIZE_FLAGS="-O1"
|
||||
if test -z "$CLANG_CC"; then
|
||||
MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS"
|
||||
fi
|
||||
|
|
@ -1,12 +1,11 @@
|
|||
diff -up firefox-65.0/layout/base/PresShell.h.1354671 firefox-65.0/layout/base/PresShell.h
|
||||
--- firefox-65.0/layout/base/PresShell.h.1354671 2019-01-29 11:50:08.516649643 +0100
|
||||
+++ firefox-65.0/layout/base/PresShell.h 2019-01-29 11:51:48.930258629 +0100
|
||||
@@ -205,7 +205,7 @@ class nsIPresShell : public nsStubDocume
|
||||
--- firefox-78.0/layout/base/PresShell.orig.h 2020-06-26 20:10:50.168878803 +0200
|
||||
+++ firefox-78.0/layout/base/PresShell.h 2020-06-26 23:13:24.174571951 +0200
|
||||
@@ -257,7 +257,7 @@
|
||||
* to the same aSize value. AllocateFrame is infallible and will abort
|
||||
* on out-of-memory.
|
||||
*/
|
||||
- void* AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
|
||||
+ void* __attribute__((optimize("no-lifetime-dse"))) AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
|
||||
void* result = mFrameArena.AllocateByFrameID(aID, aSize);
|
||||
RecordAlloc(result);
|
||||
return result;
|
||||
#define FRAME_ID(classname, ...) \
|
||||
static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \
|
||||
size_t(eArenaObjectID_##classname), \
|
||||
|
|
|
|||
60
run-wayland-compositor
Executable file
60
run-wayland-compositor
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/bash
|
||||
# Run wayland compositor and set WAYLAND_DISPLAY env variable
|
||||
|
||||
set -x
|
||||
|
||||
echo export DESKTOP_SESSION=gnome > $HOME/.xsessionrc
|
||||
echo export XDG_CURRENT_DESKTOP=GNOME > $HOME/.xsessionrc
|
||||
echo export XDG_SESSION_TYPE=wayland >> $HOME/.xsessionrc
|
||||
|
||||
# Turn off the screen saver and screen locking
|
||||
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
|
||||
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
||||
gsettings set org.gnome.desktop.screensaver lock-delay 3600
|
||||
|
||||
# Disable the screen saver
|
||||
# This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to
|
||||
# store secrets. Firefox uses libsecret to store a key that protects sensitive information like
|
||||
# credit card numbers.
|
||||
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
|
||||
# if not found, launch a new one
|
||||
eval `dbus-launch --sh-syntax`
|
||||
fi
|
||||
|
||||
if [ -z "$XDG_RUNTIME_DIR" ]; then
|
||||
export XDG_RUNTIME_DIR=$HOME
|
||||
fi
|
||||
|
||||
export WAYLAND_DISPLAY=icecat-pgo-wayland-0
|
||||
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
|
||||
rm -f $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY
|
||||
rm -f $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY.lock
|
||||
fi
|
||||
|
||||
echo "Launch mutter for $WAYLAND_DISPLAY"
|
||||
mutter --headless --virtual-monitor 1920x1080 --wayland-display=$WAYLAND_DISPLAY --no-x11 & MUTTER_PID=$!
|
||||
export MUTTER_PID
|
||||
echo "Mutter PID $MUTTER_PID"
|
||||
|
||||
echo "Waiting for mutter to start..."
|
||||
sleep 5
|
||||
retry_count=0
|
||||
max_retries=5
|
||||
until [ $retry_count -gt $max_retries ]; do
|
||||
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
|
||||
retry_count=$(($max_retries + 1))
|
||||
else
|
||||
retry_count=$(($retry_count + 1))
|
||||
echo "Waiting for Mutter, retry: $retry_count"
|
||||
sleep 2
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
|
||||
echo "Mutter failed to start!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Mutter is running, $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY is here."
|
||||
|
||||
|
||||
6
sources
6
sources
|
|
@ -1,5 +1,5 @@
|
|||
SHA512 (cbindgen-vendor.tar.xz) = 562433358bcce81852e5e013068a0961be61785917094b3c0c93df34bc4a060eea6e89d86951f76e9e3d9644a56cf756f7278c8fa85b8a4a8b8c8b58c16a8b7c
|
||||
SHA512 (icecat-68.9.0-langpacks.tar.gz) = d3f1acf7505193e587338ffdf3d542dad9b04289d3a87de16e5a36a77624d5ad9d4a3366166fdf2e58066b0bf3bb86adbd66f241f3080a5a395960da806a2f94
|
||||
SHA512 (icecat-68.9.0-rh2.tar.bz2) = 080e9765850ece232f1888a2c59f8a65ffeeeea7aeeb9b4fdc6dd6c88bdc3dda2fd0b5585b61c5cbb57d860b85ede59f3c2c6d75be80cb58aaf0b0d501603af5
|
||||
SHA512 (cbindgen-vendor.tar.xz) = 647dcadf3507bd05262613d03ff18a8c876bcbb4e83ce59f911128ae020ac16695298987c6c14f8b7a7aee5bb096740c6885c0a854d8b26431fc9a8ff864c369
|
||||
SHA512 (icecat-140.7.0-langpacks.tar.gz) = a4618e3272b48be4307c79222bdd55f321aefb6d6ba08beb10178d0b95530bc4130cf86901d0906e714bd75106ad8513957fe3ad335431c8faf5b2d9767e17de
|
||||
SHA512 (icecat-140.7.0-rh1.tar.bz2) = 7a19f7928322bea905828e6a4e981395687f1b649e37518a8000bcfcb29446b424ee592f708d0c7c93ebeb901820752785f883a937e9361e9f172a0a9bacb603
|
||||
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
|
||||
SHA512 (icecat.png) = a3cec16cb15a27c3c91b53e2c534e78b07911011ff1331e450c0baf8e13b76da7cea2a90e5d75191fa88cfbfd40a0a7f3e553e92b64d0043dadd5ad5edfdf81c
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue