Compare commits
1038 Commits
0.1.6-Rele
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
4f366ed86c | ||
|
00e60074c3 | ||
|
3eedc7b7dc | ||
|
bebcec2139 | ||
|
5181a55071 | ||
|
a8e192fa9b | ||
|
0f3141ee12 | ||
|
e9ce4668fe | ||
|
acce01bfeb | ||
|
d159769997 | ||
|
56401048d1 | ||
|
54c625cd26 | ||
|
7bb3f00b45 | ||
|
b8c6115603 | ||
|
dacc578e12 | ||
|
825fa42141 | ||
|
40a8012ab0 | ||
|
ec95cbe11b | ||
|
36b54f3ab5 | ||
|
87790c9731 | ||
|
200f6b31f3 | ||
|
1d8bf95926 | ||
|
c6cf48c489 | ||
|
9a3745b366 | ||
|
a18e3ba37d | ||
|
645d0ac550 | ||
|
809c1270c5 | ||
|
a99a0615d0 | ||
|
bc13a5e2a2 | ||
|
8176ac83dc | ||
|
4a2079bf47 | ||
|
7229133c8d | ||
|
8bdedfcb3d | ||
|
ae40caed09 | ||
|
053ae6725e | ||
|
2a6c564ed8 | ||
|
8a84dd09f3 | ||
|
df039b0f3c | ||
|
fc5cce23ea | ||
|
e9f5f710e6 | ||
|
5df98e0cf5 | ||
|
6ea89b6318 | ||
|
02dfa8bd1b | ||
|
8dcfac442f | ||
|
27d8d61da6 | ||
|
fb1311a842 | ||
|
114b109340 | ||
|
4ce2f98b10 | ||
|
2c5b00a55d | ||
|
d6916b013e | ||
|
3b92824d0f | ||
|
d3558f0bd7 | ||
|
d55921ba92 | ||
|
1ca13299ec | ||
|
53ce86a21f | ||
|
269574ae17 | ||
|
3b08fdaf9b | ||
|
e0e6926a74 | ||
|
2ac1ec277d | ||
|
8e463a6164 | ||
|
2cefed00a7 | ||
|
7cd4b2e9fa | ||
|
8d3f489d11 | ||
|
34bc1730a1 | ||
|
f900c25900 | ||
|
6b172a0a4c | ||
|
46eb608f4e | ||
|
b46341de90 | ||
|
91b7dcbb11 | ||
|
582a962d8d | ||
|
d9c14d7eed | ||
|
4bd0c0c96c | ||
|
cfb09075eb | ||
|
4443d0a117 | ||
|
bb71b10c58 | ||
|
4d4cda678c | ||
|
6c6012edf4 | ||
|
05f8f936e9 | ||
|
1a199a5049 | ||
|
e5cba569ba | ||
|
fd09e3d5cf | ||
|
6aab7f68ea | ||
|
a92373f412 | ||
|
b4cb52df15 | ||
|
d100932236 | ||
|
bfa355b58d | ||
|
dc593daba8 | ||
|
029933964f | ||
|
ffd659c7bb | ||
|
f788cd4263 | ||
|
1bd87e6953 | ||
|
fb231a070b | ||
|
740b360485 | ||
|
3621fef625 | ||
|
3d603b84d4 | ||
|
d4fc7027eb | ||
|
4c364a9a72 | ||
|
863140c1ca | ||
|
640bd36b86 | ||
|
734e76180f | ||
|
78183f9efc | ||
|
f043acf41c | ||
|
892e4d2c34 | ||
|
d97864436d | ||
|
7f154c6cc6 | ||
|
6f5cfc1080 | ||
|
cca81c4006 | ||
|
2f6ca07bba | ||
|
8e4a881288 | ||
|
709093fa4d | ||
|
b9d5eb3d27 | ||
|
e8ee1f8e9c | ||
|
4ac02003de | ||
|
cf0243d487 | ||
|
34f9dfa4fd | ||
|
bce494e744 | ||
|
87646a152a | ||
|
de14490574 | ||
|
13203a905d | ||
|
277bef1227 | ||
|
015350c385 | ||
|
cdfe72fada | ||
|
57bf81ec3a | ||
|
43ea01c178 | ||
|
3722263a6f | ||
|
020a9c5b9a | ||
|
698fc02e66 | ||
|
7ae6e14d0d | ||
|
539ddf5e46 | ||
|
70a941f5aa | ||
|
51e76bafce | ||
|
8dddff85cc | ||
|
0d581403c1 | ||
|
0930928df3 | ||
|
a7d02efd09 | ||
|
aa3f9d878d | ||
|
211d6710f6 | ||
|
42b19a4ba5 | ||
|
16bef43945 | ||
|
b614b84b5f | ||
|
bde9d3c012 | ||
|
32af464c05 | ||
|
1e1f343f28 | ||
|
7cd4ecec44 | ||
|
4f5b9b5f78 | ||
|
be55cbf983 | ||
|
872e633025 | ||
|
ee87773ce2 | ||
|
28dd7f6819 | ||
|
a5558b4144 | ||
|
8e5986817e | ||
|
e48710eee9 | ||
|
1b04da40c2 | ||
|
afd426da58 | ||
|
0d160143c1 | ||
|
b94de2b641 | ||
|
945c2716c9 | ||
|
1f1d7052a1 | ||
|
e2c5dfc06e | ||
|
b4a744660b | ||
|
fcbc622cef | ||
|
f4d09e43ac | ||
|
ae526e4710 | ||
|
822218a00c | ||
|
4e6f76ab75 | ||
|
543365cd64 | ||
|
1125d6f1a8 | ||
|
7178b409c3 | ||
|
b7e1b50166 | ||
|
184b6bb47c | ||
|
586bc97d38 | ||
|
8f13588e61 | ||
|
8c852e96c9 | ||
|
23f2bf8b23 | ||
|
83394afc90 | ||
|
0f61318c27 | ||
|
716e6aa6a9 | ||
|
701eb979ed | ||
|
d5417cf807 | ||
|
c16068ca85 | ||
|
ef69e1dcb5 | ||
|
902d31b643 | ||
|
0a290b3521 | ||
|
e65ac94dda | ||
|
71c9baec0a | ||
|
ff98b9b9af | ||
|
3eea8fe7c4 | ||
|
3ab6366994 | ||
|
cd852a0c8b | ||
|
864c2454e1 | ||
|
8d7637e65b | ||
|
393020630c | ||
|
9779d14276 | ||
|
5ab00a5584 | ||
|
6a31bb3791 | ||
|
beb3a969f3 | ||
|
5964146e22 | ||
|
679265a82f | ||
|
d761411339 | ||
|
1b3709bce5 | ||
|
00e94f9ae4 | ||
|
c6bb9766f9 | ||
|
b9c9516b14 | ||
|
cb7a98d751 | ||
|
21a950565f | ||
|
d8b5ba0744 | ||
|
ce1925d95f | ||
|
2c1756ff07 | ||
|
c6e4027a7f | ||
|
5ac5c8cc66 | ||
|
46bf7e04f4 | ||
|
10b2ef8e70 | ||
|
ac2e074fdd | ||
|
d9adcb4c3d | ||
|
5b1c4bf6cc | ||
|
8cf58ebe3b | ||
|
2e91f85d8f | ||
|
2c141277e8 | ||
|
3e3dbf2698 | ||
|
0225f94890 | ||
|
253d3f68b1 | ||
|
da5a9f4509 | ||
|
a79c4ec8c5 | ||
|
7c2a4edde0 | ||
|
51b740632a | ||
|
9a7dd3c189 | ||
|
4fa91ef3ae | ||
|
64adb49b81 | ||
|
49f3c166a2 | ||
|
308d7c4005 | ||
|
87fa607d28 | ||
|
aae0fa2f8b | ||
|
d834b7a14b | ||
|
e2d18a143d | ||
|
8ee413a951 | ||
|
1fb7f7991b | ||
|
7cfc43194a | ||
|
e7cef53bac | ||
|
a9c89ff20c | ||
|
d9d2038f0c | ||
|
f2b55fe7a2 | ||
|
dd6fbc6c1f | ||
|
736aeb371d | ||
|
ec128796e3 | ||
|
692b4616e2 | ||
|
895f1a6f66 | ||
|
73e5f5737b | ||
|
d449e5f0c3 | ||
|
9614786406 | ||
|
0f1aa1cc32 | ||
|
13b061c395 | ||
|
00f69b73ab | ||
|
1cfdcdb120 | ||
|
73694ab129 | ||
|
59d78c8e68 | ||
|
84e40b5eb4 | ||
|
ada2845213 | ||
|
9e92e4baf2 | ||
|
f65d73f125 | ||
|
f03eb4a67a | ||
|
f674ee3328 | ||
|
f358951022 | ||
|
6fbb9339a1 | ||
|
64b60c834a | ||
|
350c7b65d4 | ||
|
3d881d3c7d | ||
|
8bfaf63a99 | ||
|
cc8ca147b0 | ||
|
01b63b356c | ||
|
b48ad91dfe | ||
|
282fcb12de | ||
|
6c22788096 | ||
|
9353f71455 | ||
|
1556ee45c2 | ||
|
f3f6df229f | ||
|
e2efb727b9 | ||
|
29e61ada25 | ||
|
d547917b43 | ||
|
363940014d | ||
|
16f88a5daa | ||
|
5de24ad430 | ||
|
38e56aff31 | ||
|
b0becc0af0 | ||
|
417b234a26 | ||
|
3334fa64c1 | ||
|
accdb3cec1 | ||
|
e50e9deca4 | ||
|
4337ccbf33 | ||
|
ade99bbb8a | ||
|
e1e313cb96 | ||
|
16fb042335 | ||
|
4020ba1ebd | ||
|
6312914ba3 | ||
|
9628497277 | ||
|
db3cb3be44 | ||
|
0e8938ba6e | ||
|
d09340e84f | ||
|
b361733c73 | ||
|
85c88ad3d8 | ||
|
ccabfc2a6f | ||
|
cc3127b0a4 | ||
|
4601dd25af | ||
|
8506757c62 | ||
|
e3182b562b | ||
|
abdb95b815 | ||
|
10413a89c3 | ||
|
372ee755f7 | ||
|
3dc39e11a5 | ||
|
627ee6d21e | ||
|
09286644d8 | ||
|
26e0d21b23 | ||
|
993e72d6c8 | ||
|
ce27426ad4 | ||
|
0d0e3e30ec | ||
|
717e1d3e3a | ||
|
a9ed208505 | ||
|
ddcaf5a2a9 | ||
|
6fb7622fec | ||
|
af1dfe755c | ||
|
0d331d91a6 | ||
|
15c537cd1f | ||
|
3ab687f45b | ||
|
3668f48247 | ||
|
14a4d1cdc2 | ||
|
32f9ea7447 | ||
|
8e414becf0 | ||
|
bf757a5431 | ||
|
762367a87b | ||
|
a181780020 | ||
|
b7ba5c2050 | ||
|
5020e0b070 | ||
|
c62ddcc33f | ||
|
59ad6fc7d6 | ||
|
1aff68d802 | ||
|
635cdf8061 | ||
|
16fc49eee3 | ||
|
afd9aea767 | ||
|
17349dcb05 | ||
|
aef6bd3d59 | ||
|
b5e6d049ce | ||
|
83a8234b24 | ||
|
d4ce6c4b4b | ||
|
cded4d369a | ||
|
d930de1883 | ||
|
a555f3cd64 | ||
|
d42a4d2372 | ||
|
cc776b48de | ||
|
1430b89d55 | ||
|
320dc02941 | ||
|
5d6c2d9a47 | ||
|
73657852d3 | ||
|
ee254b3b93 | ||
|
f010c7c8fa | ||
|
aa7a4e1d06 | ||
|
64d4aa3f73 | ||
|
506f062c07 | ||
|
f3d1ca80f5 | ||
|
069165e8d6 | ||
|
5a355284f3 | ||
|
14b4bd8ac6 | ||
|
acc171041d | ||
|
a95fae3de8 | ||
|
d666d68812 | ||
|
d7d0555036 | ||
|
61c0a185b5 | ||
|
209937c9bc | ||
|
74f2ad7328 | ||
|
adbab50952 | ||
|
43b2fa8b51 | ||
|
4d7b9b981c | ||
|
3861b29848 | ||
|
7574ee1126 | ||
|
6fb0f946af | ||
|
ca6d421153 | ||
|
3452c9b58c | ||
|
a269f1701f | ||
|
2d86005df2 | ||
|
85320924fa | ||
|
bd6b85784f | ||
|
40be0ad6f5 | ||
|
e698a6372b | ||
|
6083eb051f | ||
|
7037804b6f | ||
|
7cd89dec99 | ||
|
9ccaabd46a | ||
|
6d0ed9e15d | ||
|
3d55de69be | ||
|
ea15fabad9 | ||
|
03524fd789 | ||
|
895c7a36d7 | ||
|
1737344480 | ||
|
27ddc8a683 | ||
|
e510f78f87 | ||
|
7eb88dab38 | ||
|
c3d4a1901c | ||
|
ef1c45efab | ||
|
4071ebda6f | ||
|
d687bc9756 | ||
|
27999484c2 | ||
|
579b778062 | ||
|
46ba7c666b | ||
|
34f8050fb7 | ||
|
1e8553dd01 | ||
|
621106ffbf | ||
|
97e08d874a | ||
|
308592e785 | ||
|
b7d888dee1 | ||
|
036c7cdbd0 | ||
|
ec3b7a9a26 | ||
|
ba0bc7459a | ||
|
bcadf8faf2 | ||
|
224cf4d645 | ||
|
09fba790e1 | ||
|
b4dbd71d11 | ||
|
be2f4d8904 | ||
|
fb0ff7ac02 | ||
|
c8c311a82f | ||
|
b6e5384945 | ||
|
f72f8f67ae | ||
|
67fa723a32 | ||
|
ac9f1282fd | ||
|
5785c3c2a0 | ||
|
2da680bfcb | ||
|
92ff2ff5d4 | ||
|
32fab79e09 | ||
|
e0dda5ec0f | ||
|
335310b330 | ||
|
15f9b9964e | ||
|
79a9034051 | ||
|
95bb415f86 | ||
|
4dc3418769 | ||
|
cb39d59c8f | ||
|
9fd454eb03 | ||
|
587bd5bca8 | ||
|
82ba61095a | ||
|
103397e35d | ||
|
a89bf0aba8 | ||
|
2222ba65c8 | ||
|
983423dafa | ||
|
88537c7516 | ||
|
c1e92dcceb | ||
|
e441a3f668 | ||
|
2c291322cf | ||
|
89124235c0 | ||
|
97c50e8761 | ||
|
9891c1d9b8 | ||
|
4e276edb22 | ||
|
b27cf7087b | ||
|
6ffd537a58 | ||
|
783743b777 | ||
|
c870fb6720 | ||
|
ed5a1b03cd | ||
|
bfc6ca06da | ||
|
8b7c841225 | ||
|
54e3f8d3f4 | ||
|
6301b744d2 | ||
|
c2a817478e | ||
|
51445b36e0 | ||
|
cd8c7bd71c | ||
|
403885f426 | ||
|
33b30e158f | ||
|
650f325702 | ||
|
31bc324019 | ||
|
8e628f9d13 | ||
|
56b830c5a9 | ||
|
23509ea827 | ||
|
4b680a741a | ||
|
9778443764 | ||
|
505fb6409e | ||
|
b7a8a51a56 | ||
|
59f8e38722 | ||
|
eb8906ea3b | ||
|
bab7d1496f | ||
|
d89bfe4cb0 | ||
|
7f048b80d7 | ||
|
12137402de | ||
|
9f3da67cf2 | ||
|
b7a6f81ef0 | ||
|
f8f35890a1 | ||
|
ef4e238b94 | ||
|
13ff8bda9b | ||
|
f66abb30eb | ||
|
cb54b9b53b | ||
|
ca12cdc933 | ||
|
dd17a783e1 | ||
|
786295d920 | ||
|
137c1688ba | ||
|
a9edf45aa8 | ||
|
91c3c34412 | ||
|
816c7eddef | ||
|
574efa23e7 | ||
|
11b8ddfcc8 | ||
|
f565b8c32e | ||
|
5f74f13de3 | ||
|
351d15b588 | ||
|
5ad1ad9319 | ||
|
6c0f4e8cb1 | ||
|
914b76c0e8 | ||
|
e56df7160f | ||
|
479ee74903 | ||
|
45bb6094d0 | ||
|
ba0f25badc | ||
|
7bf1b2e595 | ||
|
4e11487d81 | ||
|
1fedc4f432 | ||
|
6028479649 | ||
|
60559af7ea | ||
|
91b814ce7e | ||
|
ee02c8b999 | ||
|
ea30fb3370 | ||
|
e47f726abb | ||
|
53cdf8347e | ||
|
3133abf4f7 | ||
|
1bb5013a39 | ||
|
eb83002917 | ||
|
a268ccd6da | ||
|
cf638333fd | ||
|
f38e55b538 | ||
|
1dc9b50242 | ||
|
a97737e129 | ||
|
2990c36ea9 | ||
|
b4b6fcdd13 | ||
|
7a838b2e79 | ||
|
43e2f59cba | ||
|
e256d042da | ||
|
8b219a20b4 | ||
|
b7e1e0afc0 | ||
|
b6ff85837e | ||
|
bf512c0986 | ||
|
947d9e0c59 | ||
|
9dcb1f8903 | ||
|
6976d80ee7 | ||
|
045379c349 | ||
|
8b9197a68a | ||
|
5932ac2292 | ||
|
3aed30d3fd | ||
|
7fb86a4da3 | ||
|
0283da372c | ||
|
770a79bb6f | ||
|
b9c2da7e20 | ||
|
16b4bbcab3 | ||
|
dae401acf8 | ||
|
2a7bb7ff0e | ||
|
5aee6531c9 | ||
|
da4341e242 | ||
|
fdf7b0fb69 | ||
|
5d77a6a1be | ||
|
ce3699a03c | ||
|
9ae73d6a3e | ||
|
23279bad58 | ||
|
eff86ce4ed | ||
|
f5699a1bf3 | ||
|
fa3111a3ea | ||
|
3a7c15157c | ||
|
d4d0d80721 | ||
|
f3a6031f5a | ||
|
a4d9be9bd5 | ||
|
8d347a376a | ||
|
0f07cde869 | ||
|
ab344294d7 | ||
|
4bac2aa0f5 | ||
|
de4d185c0e | ||
|
d52f107f00 | ||
|
18bbab50a5 | ||
|
5ca27505eb | ||
|
2f4fca10ab | ||
|
95605ef746 | ||
|
ccc36a2154 | ||
|
ecc55ad13f | ||
|
70b8d50c56 | ||
|
5513bcbb61 | ||
|
2271477376 | ||
|
e3861e67b4 | ||
|
feff447409 | ||
|
a1202f9a6e | ||
|
41746eebdd | ||
|
855e951fe4 | ||
|
19510ec13f | ||
|
2e8ffcdfa7 | ||
|
f8de9b9539 | ||
|
55af2c3dc4 | ||
|
e4c2196131 | ||
|
db79c0129b | ||
|
ee7f9b4dae | ||
|
57ef8a4166 | ||
|
9d5e8b71ed | ||
|
caa8db93c7 | ||
|
d63e74edf9 | ||
|
e67c168d47 | ||
|
e097395f2e | ||
|
456c21cb04 | ||
|
b0e1e69ec9 | ||
|
cd670b8db7 | ||
|
81b90f41fb | ||
|
2bf7203d90 | ||
|
e4e9622b0d | ||
|
0a39be7cc8 | ||
|
f73a4ee619 | ||
|
040acb311f | ||
|
be337fcd43 | ||
|
28d6cf0d63 | ||
|
fe1f1ec79a | ||
|
c798e2b412 | ||
|
19a9035bed | ||
|
c16aea3d6e | ||
|
f05717836d | ||
|
5e5011f208 | ||
|
1a066de2fd | ||
|
0133af70f5 | ||
|
1eacfe7dc5 | ||
|
4c2fea8a90 | ||
|
c2ca07e339 | ||
|
e147c119ef | ||
|
255c8e6bbf | ||
|
9af7378139 | ||
|
fa92c15dab | ||
|
2138467fd3 | ||
|
ca6e5d83e1 | ||
|
eed3e670ce | ||
|
b36bc34f5c | ||
|
639ecb7cf4 | ||
|
6477572f79 | ||
|
d3d137beed | ||
|
bda97dbc38 | ||
|
aa8b202545 | ||
|
e0729480fb | ||
|
360c4628ce | ||
|
aa91a32b68 | ||
|
fb31545604 | ||
|
f8dc7ff05b | ||
|
a01ccf458f | ||
|
b2b66b8960 | ||
|
6a6a123c3b | ||
|
df1d59cf52 | ||
|
1d5953e8c7 | ||
|
350fdd3278 | ||
|
c83b1f8a3b | ||
|
f00c3b674e | ||
|
9d7c801c2b | ||
|
f0f13f17a3 | ||
|
260746f944 | ||
|
6ca0239c53 | ||
|
bde8ac3e8e | ||
|
d020c55e11 | ||
|
84bd36197b | ||
|
40677bd2c6 | ||
|
9a7d3d4230 | ||
|
83efac5e49 | ||
|
fd7c4fabbd | ||
|
4c7b83aca6 | ||
|
103c69d4b8 | ||
|
da14aaff51 | ||
|
5ced858173 | ||
|
391deae6f1 | ||
|
0d1738d328 | ||
|
4a043b2c78 | ||
|
f873bd84e5 | ||
|
f8287293a2 | ||
|
bfb959c290 | ||
|
c0563cd7d5 | ||
|
b9cd07910b | ||
|
9d231c7b02 | ||
|
1cb5f6efa9 | ||
|
454873b6df | ||
|
43b43d858e | ||
|
c25e95f845 | ||
|
15feed6445 | ||
|
fe013c9058 | ||
|
212cce2ed3 | ||
|
0d5c9beeb3 | ||
|
cedd2137e2 | ||
|
34019f2515 | ||
|
635912c8b9 | ||
|
dfc613db04 | ||
|
9418496c13 | ||
|
bf868eb6ae | ||
|
d71f427598 | ||
|
2ade097dd9 | ||
|
d7b773a951 | ||
|
c2c916dd92 | ||
|
05a3429dbe | ||
|
4a6c5192f8 | ||
|
9b18631768 | ||
|
7f1fe0ed1c | ||
|
b91d2f17b1 | ||
|
9a26baf5c1 | ||
|
942d74ce54 | ||
|
ab114f419c | ||
|
fb25077f12 | ||
|
c037038da6 | ||
|
7bfd300f6a | ||
|
92da6fc809 | ||
|
495e461cee | ||
|
7cbc00f3b9 | ||
|
8389165b70 | ||
|
eb1a441625 | ||
|
698ead8097 | ||
|
9ba9c48422 | ||
|
0ce446cf52 | ||
|
5077c86859 | ||
|
6c2dbbebf0 | ||
|
9753681651 | ||
|
1f5f5bccc4 | ||
|
bb4f43ec6d | ||
|
32175f2045 | ||
|
b6a80c0b69 | ||
|
95c826ad8d | ||
|
2756b0b165 | ||
|
a2847d9f6a | ||
|
388736d169 | ||
|
63eedcbdb4 | ||
|
47a9519ceb | ||
|
8ca23e37e1 | ||
|
95f8faed6f | ||
|
14ada6a7b0 | ||
|
8db0774d7c | ||
|
a65855a587 | ||
|
26529a3653 | ||
|
9711c67c3f | ||
|
6dc08534a6 | ||
|
88b5e7668f | ||
|
96118e5690 | ||
|
6d1c051323 | ||
|
b776c256a6 | ||
|
07c5585f5a | ||
|
720a9bc9a5 | ||
|
22fda1eac7 | ||
|
b4a8507140 | ||
|
d580c35898 | ||
|
8472e877a4 | ||
|
9f38703e84 | ||
|
4d71d6bc02 | ||
|
f7a0990a29 | ||
|
df5109bbf6 | ||
|
c13a6f88b3 | ||
|
a41eba1dff | ||
|
dd1173841b | ||
|
21992121b9 | ||
|
0f44820e3d | ||
|
1abc681e3f | ||
|
e9fbb7259e | ||
|
4f18dc3ab6 | ||
|
c5882a30aa | ||
|
4ce327c68f | ||
|
0f0f526fd5 | ||
|
032bc2e424 | ||
|
e079e1c0a3 | ||
|
940e80b380 | ||
|
3bcbbd9827 | ||
|
23583c9a1c | ||
|
e9d0fa5318 | ||
|
d27473f383 | ||
|
15c9197d02 | ||
|
52e44e0eb2 | ||
|
f02246128e | ||
|
9d0cd04fc3 | ||
|
43de1ba191 | ||
|
4084c8e1b6 | ||
|
a7e472f298 | ||
|
6f8f9a7e9c | ||
|
10d9c022e0 | ||
|
2b92481004 | ||
|
77e079e5cc | ||
|
ab19ebd2c6 | ||
|
66336d1b65 | ||
|
575df224ae | ||
|
9f2f77dbc1 | ||
|
2162fdbf7d | ||
|
6c363c076b | ||
|
a85ea32a74 | ||
|
e9fe20d966 | ||
|
d5c12062dc | ||
|
657d929ffa | ||
|
ad4d5b3e8e | ||
|
63e558308b | ||
|
c51126483c | ||
|
19a7a32e0f | ||
|
4348c71b55 | ||
|
30a3f9ea83 | ||
|
596a7ca33b | ||
|
18ceb998e0 | ||
|
04d3777e6f | ||
|
41a8112920 | ||
|
3d05b48089 | ||
|
96b5291459 | ||
|
140349b401 | ||
|
1c64c5e06e | ||
|
01574a62f0 | ||
|
52724d6527 | ||
|
c7cf6732f9 | ||
|
c01b8283c1 | ||
|
22fd0e8be1 | ||
|
de5ac1f6d4 | ||
|
97ab13e7b4 | ||
|
3bbbfc4a15 | ||
|
a5f3e78292 | ||
|
3fcc5774c2 | ||
|
67438d15ff | ||
|
bd48d1f39a | ||
|
3e214ed967 | ||
|
871199cbc3 | ||
|
096db123d7 | ||
|
e128cba84a | ||
|
d787b84b13 | ||
|
74863d3c98 | ||
|
9e27dedb4b | ||
|
94d62f5302 | ||
|
ce7dc1b422 | ||
|
ba8f35a9a8 | ||
|
01780da9f5 | ||
|
78a0ccc243 | ||
|
64ded9a342 | ||
|
5f5d36de23 | ||
|
2bc0315c5b | ||
|
970de1c093 | ||
|
9f242004c9 | ||
|
094915a128 | ||
|
e4728cbb26 | ||
|
dd3620cd08 | ||
|
d35ffe0b70 | ||
|
790578e7cd | ||
|
d531abb2de | ||
|
41d9b7073f | ||
|
b3bb10d334 | ||
|
a465303fff | ||
|
f75189f374 | ||
|
e539a893b4 | ||
|
3cb1974b18 | ||
|
ec1c5ae7d8 | ||
|
e8536f3104 | ||
|
f2307ca13a | ||
|
2193313980 | ||
|
18df3f97fe | ||
|
ae0763cfe6 | ||
|
03bf34d092 | ||
|
0204d92fb4 | ||
|
e686b14106 | ||
|
68fb7730b9 | ||
|
c5872ef5a1 | ||
|
db3b8fdd69 | ||
|
f28d635e64 | ||
|
932ec56079 | ||
|
4108d1a0e8 | ||
|
eb62521adc | ||
|
42ee6e483e | ||
|
4dd802adbc | ||
|
93878e66b8 | ||
|
b35b460b91 | ||
|
dcb878392e | ||
|
01c1145e28 | ||
|
289cea0fc0 | ||
|
8ac4763b71 | ||
|
ef38abe545 | ||
|
cde71f8a62 | ||
|
f569a48b01 | ||
|
1689686935 | ||
|
991690091a | ||
|
6ede6ebded | ||
|
f24044ddb5 | ||
|
782880a573 | ||
|
17508d9ffa | ||
|
5251aaf4df | ||
|
f1a9708e41 | ||
|
98f061d82b | ||
|
101a8605b5 | ||
|
eb0f936cb0 | ||
|
07b052520a | ||
|
00252d3e93 | ||
|
6b0d4f076c | ||
|
26c5968b64 | ||
|
2b1a32e078 | ||
|
a4a92fc2f9 | ||
|
e5e38e148e | ||
|
07330cbdcf | ||
|
d5ac2aba4c | ||
|
8fc5ee45c2 | ||
|
1a73fc90e4 | ||
|
26176b50f8 | ||
|
581af1db4f | ||
|
e0e226d3f0 | ||
|
4e239ba17e | ||
|
7d0c9681df | ||
|
d8f6fb1ac9 | ||
|
bdbdf1d04a | ||
|
fba0c01130 | ||
|
73e4848ffd | ||
|
6f9e2ad686 | ||
|
b12dc3ad68 | ||
|
48dc965f7c | ||
|
f853071d19 | ||
|
48464e49b8 | ||
|
1733be23f2 | ||
|
9da251b14d | ||
|
4cb91462f7 | ||
|
2cdf364334 | ||
|
921c7dbd5f | ||
|
26457b2a7f | ||
|
74a6b16090 | ||
|
9715eb09d2 | ||
|
65ad3a5814 | ||
|
cde3b90492 | ||
|
45d5576eaf | ||
|
b7acfbb2f9 | ||
|
72a2904b0a | ||
|
c8b451cf2f | ||
|
3c47eaf97f | ||
|
bec157391d | ||
|
6c47397d46 | ||
|
2a3abbcec7 | ||
|
5575c50a03 | ||
|
0d7e8bdd8b | ||
|
b39851b289 | ||
|
736d6b0fb2 | ||
|
788152d06c | ||
|
900563c956 | ||
|
47729f81bb | ||
|
7337ac093a | ||
|
0234a6d8cf | ||
|
fdf71f304f | ||
|
1eddf48d20 | ||
|
3cefcfe702 | ||
|
8cec88f5f7 | ||
|
18a2e32044 | ||
|
97c9f1c94b | ||
|
5576b54883 | ||
|
b6dd2ff011 | ||
|
584f178ff7 | ||
|
820f187d35 | ||
|
f70380aa67 | ||
|
0f35d762e2 | ||
|
158a53564d | ||
|
c53961e1d4 | ||
|
067ec6954c | ||
|
5cec9781c2 | ||
|
cba5680406 | ||
|
4ea073132d | ||
|
6c3b27e7e4 | ||
|
59f5fc39e1 | ||
|
4d75ad4ca1 | ||
|
993ac2a2b3 | ||
|
01e19bbf6a | ||
|
a6e1b05045 | ||
|
a9c7d97708 | ||
|
231e33ffb7 | ||
|
c5bb80bbb8 | ||
|
6fdf13bd10 | ||
|
41fcb6ed11 | ||
|
47725364e8 | ||
|
e55d0078d5 | ||
|
f85303065c | ||
|
a8611230b1 | ||
|
3b14e56537 | ||
|
b968e3e7a0 | ||
|
66536113e8 | ||
|
cd16614a7f | ||
|
ece87af743 | ||
|
ad40bf9be1 | ||
|
6636e1d68b | ||
|
eb6494eca5 | ||
|
ab42c76a44 | ||
|
602d5a6bfd | ||
|
c0c16b6546 | ||
|
9c7e842f4b | ||
|
ec1ae73cda | ||
|
b563a9d3ca | ||
|
f93f2958b7 | ||
|
fe05bc335c | ||
|
960f3c4f36 | ||
|
6d7a9fc22a | ||
|
6748771402 | ||
|
b5684fd895 | ||
|
bfaffc98df | ||
|
48c04ee33f | ||
|
389adefef9 | ||
|
efb9e49ba3 | ||
|
0eeaf84826 | ||
|
7b7583afe0 | ||
|
af6fcd8026 | ||
|
c3c6c7a2e9 | ||
|
d8a5cf2283 | ||
|
7ef342560e | ||
|
fc07961c6b | ||
|
bda00e5741 | ||
|
749b088fe9 | ||
|
82bb25d0f2 | ||
|
b2823cbd8d | ||
|
e4c65d415e | ||
|
d122f90655 | ||
|
410e92d1b0 | ||
|
e931fa997c | ||
|
26dcc31f5b | ||
|
dc98a92e8f | ||
|
a2fa00fb98 | ||
|
b6d08459a5 | ||
|
fcedf34b9f | ||
|
827fd3124c | ||
|
4eea090baa | ||
|
1b2c4cb487 | ||
|
447ff54222 | ||
|
699698f529 | ||
|
7a0cad6966 | ||
|
37fd9f7a36 | ||
|
b8ba76300e | ||
|
8240bf6007 | ||
|
4465ff8435 | ||
|
535a72ab62 | ||
|
75b1017022 | ||
|
6ce7b81124 | ||
|
951277e922 | ||
|
35c6a82480 | ||
|
b68e1bc8a4 | ||
|
424b88f04f | ||
|
39ffe4d3b2 | ||
|
d2f5a0cca1 | ||
|
24d67113d6 | ||
|
36fe354acc | ||
|
1193243d50 | ||
|
712fdb698c | ||
|
6c806583f0 | ||
|
0f575a7aed | ||
|
9255fb5813 | ||
|
72ebf99297 | ||
|
8e77487bd9 | ||
|
087c3066bc | ||
|
5fe5ec1d64 | ||
|
0640008459 | ||
|
0904d8e2a6 | ||
|
6c46d28593 | ||
|
c10b382c93 | ||
|
97e0c6b9cd | ||
|
195d780bf8 | ||
|
98a15ef9f2 | ||
|
4ed4bb759b | ||
|
637f2dd465 | ||
|
513e96f6c5 | ||
|
f6e09a9b1a | ||
|
01ea10fe79 | ||
|
cc0f1f03ec |
6
.codebeatsettings
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"JAVASCRIPT": {
|
||||
"LOC": [80, 90, 100, 120],
|
||||
"BLOCK_NESTING": [4, 5, 6, 7]
|
||||
}
|
||||
}
|
BIN
.documentation/Settings.png
Normal file
After Width: | Height: | Size: 17 KiB |
45
.documentation/addon description/de/description.txt
Normal file
|
@ -0,0 +1,45 @@
|
|||
Dieses Add-on ermöglicht es Nutzern, Webseiten davon abzuhalten, sie über Javascript APIs zu identifizieren. Nutzer können auswählen, ob die APIs komplett auf bestimmten oder allen Seiten blockiert werden (dies wird die Funktionalität einiger Seiten beeinträchtigen) oder bei den identifikationsfreundlichen Auslese-Funktionen falsche Werte vorzutäuschen.
|
||||
|
||||
Bei Problemen konsultieren Sie bitte zuerst <a href="https://canvasblocker.kkapsner.de/faq/">FAQ</a>. Falls Sie Fehler finden oder Verbesserungsvorschläge haben, teilen Sie mir das bitte auf https://github.com/kkapsner/CanvasBlocker/issues mit.
|
||||
|
||||
<b>WICHTIG</b>: Sie sollten nur ein Addon/eine Einstellung aktiv haben, die eine API beschützt. Ansonsten können Sie massive Performanceprobleme bekommen. (Z.B. EclipsedMoon für Palemoon hat 'canvas.poison', was bekanntermaßen Probleme verursacht: https://github.com/kkapsner/CanvasBlocker/issues/253#issuecomment-459499290)
|
||||
privacy.resistFingerprinting kann aber problemlos aktiviert werden und der Fingerprinting-Schutz muss nicht deaktiviert werden.
|
||||
|
||||
Beschützte "Fingerprinting"-APIs:
|
||||
<ul>
|
||||
<li>canvas 2d</li>
|
||||
<li>webGL</li>
|
||||
<li>audio</li>
|
||||
<li>history</li>
|
||||
<li>window (standardmäßig deaktiviert)</li>
|
||||
<li>DOMRect</li>
|
||||
<li>TextMetrics</li>
|
||||
<li>navigator (standardmäßig deaktiviert)</li>
|
||||
<li>screen</li>
|
||||
</ul>
|
||||
|
||||
Nähere Informationen zum Fingerprinting können Sie finden auf:
|
||||
<ul>
|
||||
<li><canvas>: http://www.browserleaks.com/canvas</li>
|
||||
<li>audio:
|
||||
<ul>
|
||||
<li>https://audiofingerprint.openwpm.com/ (sehr schlecht geschrieben = langsam)</li>
|
||||
<li>https://webtransparency.cs.princeton.edu/webcensus/#audio-fp</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>DOMRect:
|
||||
<ul>
|
||||
<li>http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html</li>
|
||||
<li>https://browserleaks.com/rects</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
Die verschiedenen Blockiermodi sind:
|
||||
<ul>
|
||||
<li>Auslese-API vortäuschen: Standardeinstellung und mein Favorit! Alle Webseiten, die nicht auf der Whitelist oder Blacklist gelistet sind, können die beschützten APIs zur Darstellung verwenden. Werte, die über die APIs zurückgegeben werden, werde so verändert, dass kein konsistenter Fingerprinting erstellt werden kann.</li>
|
||||
<li>um Erlaubnis fragen: Wenn eine Seite weder auf der Whitelist noch auf der Blacklist gelistet ist, wird der Nutzer gefragt, ob die Webseite die beschützten APIs verwenden darf, wenn sie benutzt wird.</li>
|
||||
<li>alles blockieren: Ignoriert alle Listen und blockiert die beschützten APIs auf allen Webseiten.</li>
|
||||
<li>nur Einträge der Whitelist erlauben: Nur Seiten, die in der Whitelist gelistet sind, dürfen die beschützten APIs verwenden.</li>
|
||||
<li>nur Einträge der Blacklist blockieren: Blockiere die beschützten APIs nur auf den Seiten der Blacklist.</li>
|
||||
<li>alles erlauben: Ignoriere alle Listen und erlaube die beschützten APIs auf allen Webseiten.</li>
|
||||
</ul>
|
46
.documentation/addon description/en/description.txt
Normal file
|
@ -0,0 +1,46 @@
|
|||
This add-on allows users to prevent websites from using some Javascript APIs to fingerprint them. Users can choose to block the APIs entirely on some or all websites (which may break some websites) or fake its fingerprinting-friendly readout API.
|
||||
|
||||
If you encounter any problems please check the <a href="https://canvasblocker.kkapsner.de/faq/">FAQ</a> first. Please report issues and feature requests at https://github.com/kkapsner/CanvasBlocker/issues
|
||||
|
||||
<b>IMPORTANT</b>: you should only have ONE addon/setting set that protects an API. Otherwise you could face massive performance issues. (E.g. EclipsedMoon for Palemoon has 'canvas.poison' which is known to cause issues: https://github.com/kkapsner/CanvasBlocker/issues/253#issuecomment-459499290)
|
||||
But setting privacy.resistFingerprinting to true and/or using the new fingerprinting protection introduced with Firefox 67 is fine.
|
||||
|
||||
Protected "fingerprinting" APIs:
|
||||
<ul>
|
||||
<li>canvas 2d</li>
|
||||
<li>webGL</li>
|
||||
<li>audio</li>
|
||||
<li>history</li>
|
||||
<li>window (disabled by default)</li>
|
||||
<li>DOMRect</li>
|
||||
<li>TextMetrics</li>
|
||||
<li>navigator (disabled by default)</li>
|
||||
<li>screen</li>
|
||||
</ul>
|
||||
|
||||
More information on fingerprinting can be found at:
|
||||
<ul>
|
||||
<li> <canvas>: http://www.browserleaks.com/canvas</li>
|
||||
<li> audio:
|
||||
<ul>
|
||||
<li>https://audiofingerprint.openwpm.com/ (very poorly written = slow)</li>
|
||||
<li>https://webtransparency.cs.princeton.edu/webcensus/#audio-fp</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li> DOMRect:
|
||||
<ul>
|
||||
<li>http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html</li>
|
||||
<li>https://browserleaks.com/rects</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
The different block modes are:
|
||||
<ul>
|
||||
<li> fake: Canvas Blocker's default setting, and my favorite! All websites not on the white list or black list can use the protected APIs. But values obtained by the APIs are altered so that a consistent fingerprinting is not possible</li>
|
||||
<li> ask for permission: If a website is not listed on the white list or black list, the user will be asked if the website should be allowed to use the protected APIs each time they are called.</li>
|
||||
<li> block everything: Ignore all lists and block the protected APIs on all websites.</li>
|
||||
<li> allow only white list: Only websites in the white list are allowed to use the protected APIs.</li>
|
||||
<li> block only black list: Block the protected APIs only for websites on the black list.</li>
|
||||
<li> allow everything: Ignore all lists and allow the protected APIs on all websites.</li>
|
||||
</ul>
|
43
.documentation/addon description/es/description.txt
Normal file
|
@ -0,0 +1,43 @@
|
|||
Este complemento permite a los usuarios impedir que los sitios web usen algunas API de JavaScript para crear huellas digitales para ellos. Los usuarios pueden elegir entre bloquear las API por completo en algunos sitios web o en todos (lo que puede romper algunos) o falsear su API de lectura para crear huellas digitales.
|
||||
|
||||
<b>IMPORTANTE</b>: solo debe tener UN complemento/configuración activo para proteger una API. De lo contrario, puede sufrir enormes problemas de rendimiento (p. ej. EclipsedMoon para Palemoon tiene «canvas.poison», del que se sabe que causa problemas: https://github.com/kkapsner/CanvasBlocker/issues/253#issuecomment-459499290). Aunque poner privacy.resistFingerprinting a «true» no importa.
|
||||
|
||||
Puede encontrar más información sobre huellas digitales en:
|
||||
<ul>
|
||||
<li> <canvas>: http://www.browserleaks.com/canvas</li>
|
||||
<li> audio:
|
||||
<ul>
|
||||
<li>https://audiofingerprint.openwpm.com/ (muy mal escrita = lenta)</li>
|
||||
<li>https://webtransparency.cs.princeton.edu/webcensus/#audio-fp</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li> DOMRect:
|
||||
<ul>
|
||||
<li>http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html</li>
|
||||
<li>https://browserleaks.com/rects</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
Los distintos modos de bloqueo son:
|
||||
<ul>
|
||||
<li> falsear: configuración por defecto de CanvasBlocker, ¡y mi favorita! Todos los sitios web que no estén en la lista blanca o en la negra pueden usar las API protegidas. Pero los valores obtenidos por las API son alterados para que no sea posible una huella digital consistente.</li>
|
||||
<li> pedir permiso: si un sitio web no está en la lista blanca o en la negra, se pregunta al usuario si dicha web puede usar las API protegidas cada vez que son llamadas.</li>
|
||||
<li> bloquear todo: ignora todas las listas y bloquea las API protegidas en todos los sitios web.</li>
|
||||
<li> permitir solo lo de la lista blanca: solo se permite usar las API protegidas a los sitios web de la lista blanca.</li>
|
||||
<li> bloquear solo lo de la lista negra: bloquea las API protegidas solo en los sitios web de la lista negra.</li>
|
||||
<li> permitir todo: ignora todas las listas y permite usar las API protegidas en todos los sitios web.</li>
|
||||
</ul>
|
||||
|
||||
Las API para «huellas digitales» protegidas son:
|
||||
<ul>
|
||||
<li>canvas 2d</li>
|
||||
<li>webGL</li>
|
||||
<li>audio</li>
|
||||
<li>history</li>
|
||||
<li>window (deshabilitada por defecto)</li>
|
||||
<li>DOMRect</li>
|
||||
<li>navigator (deshabilitada por defecto)</li>
|
||||
</ul>
|
||||
|
||||
Puede informar sobre problemas y solicitar funciones en https://github.com/kkapsner/CanvasBlocker/issues
|
27
.documentation/addon description/ru/description.txt
Normal file
|
@ -0,0 +1,27 @@
|
|||
Это дополнение позволяет пользователям запретить веб-сайтам использовать API Javascript canvas для считывания цифровых отпечатков. Пользователи могут заблокировать API canvas полностью на некоторых или на всех веб-сайтах (возможно некоторые сайты перестанут корректно работать) или просто заблокировать или подделать его API для считывания цифровых отпечатков. Более подробную информацию о считывание цифровых отпечатков можно найти по адресу http://www.browserleaks.com/canvas.
|
||||
|
||||
Эсть разные режимы блокирования:
|
||||
<ul>
|
||||
<li>блокировать readout(считывание) API: Все сайты, не включенные в белый или черный список, могут использовать API canvas для отображения чего-либо на странице, но API readout(считывания) не может возвращать значения на сайт. Это может сломать сайты, такие как Google Maps.</li>
|
||||
<li>подделывать readout(считывание) API: Настройка по умолчанию, и моя любимая! Все сайты, не включенные в белый или черный список, могут использовать API canvas для отображения чего-либо на странице, но API считывания вынужден возвращать новое случайное значение при каждом вызове.</li>
|
||||
<li>подделывать для input(ввод): При отображении текста рисованные пиксели слегка изменяются. Это делает обнаружение дополнения более сложным, но менее безопасным. На WebGL-холсте поведение идентично подделывать "readout(считывания) API"..</li>
|
||||
<li>попросить разрешения для readout(считывание) API: Все сайты, не включенные в белый или черный список, могут использовать API canvas для отображения чего-либо на странице, но при каждом вызове сайта у пользователя будет запрашиваться разрешение на использование API считывания(readout).</li>
|
||||
<li>блокировать все: Игнорировать все списки и блокировать API canvas на всех сайтах.</li>
|
||||
<li>разрешить только белый список: API canvas могут использовать только сайты из белого списка.</li>
|
||||
<li>попросить разрешения: Если сайт не указан в белом или черном списке, пользователю будет предложено разрешить ему использовать API canvas при каждом вызове.</li>
|
||||
<li>блокировать только черный список: Блокирует API canvas только для сайтов из черного списка.</li>
|
||||
<li>разрешить все: Игнорировать все списки и разрешить canvas API на всех сайтах.</li>
|
||||
</ul>
|
||||
|
||||
Защищенные API от "снятия цифровых отпечатков":
|
||||
<ul>
|
||||
<li>canvas 2d</li>
|
||||
<li>webGL</li>
|
||||
<li>audio</li>
|
||||
<li>history</li>
|
||||
<li>window (disabled by default)</li>
|
||||
<li>DOMRect</li>
|
||||
<li>navigator (disabled by default)</li>
|
||||
</ul>
|
||||
|
||||
Сообщите о проблемах и пожеланиях на странице https://github.com/kkapsner/CanvasBlocker/issues.
|
12
.documentation/default.css
Normal file
|
@ -0,0 +1,12 @@
|
|||
body {
|
||||
margin: 30px auto;
|
||||
max-width: 680px;
|
||||
font-size: 13pt;
|
||||
line-height: 1.4em;
|
||||
color: #444444;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3{
|
||||
line-height: 1.2em;
|
||||
}
|
9
.documentation/faq/funding.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
How is CanvasBlocker funded?
|
||||
-------
|
||||
There is no steady monetary funding of CanvasBlocker. Donations are accepted and help to cover some expenses. But since these are not that high it is not sure if a steady funding with any obligations will be accepted.
|
||||
|
||||
There is also no plan to monetize CanvasBlocker in any way.
|
||||
|
||||
All the development work is done by kkapsner in their spare time and no salary or compensation is paid for it.
|
||||
|
||||
So it's all done voluntarily for fun and free.
|
5
.documentation/faq/howToSupport.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
How can I support CanvasBlocker?
|
||||
------
|
||||
The best way to support CanvasBlocker is to give feedback. If something is not working like it should or something could be improved please open an [issue](https://github.com/kkapsner/CanvasBlocker/issues/new). Reviews at [addons.mozilla.org](https://addons.mozilla.org/firefox/addon/canvasblocker/reviews/) can also help to increase the user base but it is a very bad platform to communicate issues and improvements.
|
||||
|
||||
If you want to contribute with your own spare time you can help to improve the [translations](https://github.com/kkapsner/CanvasBlocker/issues/420). Code contributions can also be done in form of pull requests but will be reviewed very thoroughly.
|
22
.documentation/faq/index.php
Normal file
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
CanvasBlocker FAQs
|
||||
</title>
|
||||
<link rel="stylesheet" href="../default.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<header><h1>CanvasBlocker FAQs</h1></header>
|
||||
<?php
|
||||
include_once("../../kamiKatze/autoload.php");
|
||||
$parser = new MarkdownParser();
|
||||
foreach (new DirectoryIterator("./") as $file){
|
||||
if (!$file->isDot() && !$file->isDir() && $file->getExtension() === "md"){
|
||||
$markdown = $parser->parse(file_get_contents($file->getPathname()));
|
||||
echo preg_replace("/<h2/", "<h2 id=\"" . str_replace(".md", "", $file->getFilename()) . "\"", $markdown->view("html"), 1);
|
||||
}
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
9
.documentation/faq/missingSetting.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
I do not find setting X.
|
||||
------
|
||||
Some settings are not always visible. There are three reasons why settings might be hidden:
|
||||
|
||||
* Some require other settings to be a certain value to be displayed because they are not useful without the other setting. E.g. the whole "Asking" section is only displayed when the block mode is set to "ask for permission".
|
||||
* Other settings are hidden behind the "expert mode" because they need a certain level of understanding of CanvasBlocker to be used correctly.
|
||||
* Finally you can hide settings. To show these settings you have to enable "display hidden settings".
|
||||
|
||||
So if you search for a setting and do not find it you should first enable the "expert mode" and "display hidden settings". If you then still do not find it it's not relevant for your current setup of CanvasBlocker.
|
3
.documentation/faq/paypal.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
PayPal transactions started with "Buy now" button not working!
|
||||
-----
|
||||
It's a known fact that the window API protection hinders the completion of all transaction processes initiated via PayPal's "Buy now" button. You have to whitelist paypal.com for that API for it to work properly.
|
9
.documentation/faq/permissions.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
Why does CanvasBlocker need permission X?
|
||||
------
|
||||
Here is the list of permission that CanvasBlocker needs and the reason why it's needed:
|
||||
|
||||
* <all_urls> and tabs: CanvasBlocker needs to be able to interact with all possible urls and tabs as fingerprinting attempts could be done everywhere.
|
||||
* storage: to store the settings the storage.local API is used.
|
||||
* webRequest and webRequestBlocking: to insert the CSR headers in a request in order to protect the data-URLs. Once [this bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1475831) has been fixed I can completely remove the data-URI protection (see [here](https://github.com/kkapsner/CanvasBlocker/issues/208) for further information).
|
||||
* contextualIdentities and cookies: for support of browser containers. I would like to make this optional for only the people that use containers but I cannot (see [here](https://github.com/kkapsner/CanvasBlocker/issues/381) for further information).
|
||||
* privacy: this permission is needed to read if the user has privacy.resistFingerprinting enabled. A notice about a slightly changed behaviour of CanvasBlocker is displayed in the settings page in that case.
|
5
.documentation/faq/reCAPTCHA.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
reCAPTCHA is not working!
|
||||
-----
|
||||
It's a known fact that the window API protection breaks reCAPTCHAs. They use the window.name API to store information about the captcha. The protection is designed to mitigate exactly such techniques of passing information from one domain to another. But in this case the information is shared with an embedded HTML page (an <iframe> tag). As the information gets lost when the top level page navigates somewhere the tracking potential is quite limited in such a scenario.
|
||||
|
||||
So in conclusion you can enable "Allow window.name in frames" to make reCAPTCHA work and still don't have to worry too much about tracking with window.name.
|
5
.documentation/faq/removeUrlSetting.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
How do I remove URL specific settings?
|
||||
------
|
||||
If one URL specific setting is set for a URL it shows up at every setting that can have URL specific values. So if you click on the little "x" to reset the value the line for the URL may not disappear. But the input field will appear a little bit gray to indicate that the "normal" value is still used for this URL.
|
||||
|
||||
To get rid of this URL line you have to remove all specific settings for this URL. The easiest way to get to know which settings are still set you can go to General > Settings > Export settings > Inspect. There the entry "urlSettings" stores the url specific values.
|
10
.documentation/faq/uniqueFingerprint.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
Page X claims my fingerprint is unique.
|
||||
------
|
||||
Having a unique fingerprint is fine as long as it changes. With the default settings of CanvasBlocker the fingerprint should change all the time. But also with other settings (e.g. the stealth preset) that do not change the fingerprint all the time the fingerprint should be unique per domain and therefore prevent tracking. To test this you can check the different fingerprints on [canvasblocker.kkapsner.de](https://canvasblocker.kkapsner.de/test/) and [canvasblocker2.kkapsner.de](https://canvasblocker2.kkapsner.de/test/).
|
||||
|
||||
My fingerprint does not change when I reload page X.
|
||||
------
|
||||
Some pages do not recalculate the fingerprint upon reload. Make sure you force the recomputation.
|
||||
But also some CanvasBlocker settings make it to not change the fingerprint upon reload (e.g. the stealth preset).
|
||||
|
||||
If you have privacy.resistFingerprinting enabled the fingerprints also may stay the same. But in this case you are not trackable as the fingerprint does not leak any information about your system. See [here](https://github.com/kkapsner/CanvasBlocker/issues/158) and [here](https://github.com/ghacksuserjs/ghacks-user.js/issues/767) for further information.
|
BIN
.documentation/pageAction.png
Normal file
After Width: | Height: | Size: 13 KiB |
1
.eslintignore
Normal file
|
@ -0,0 +1 @@
|
|||
!/.tools
|
93
.eslintrc.json
Normal file
|
@ -0,0 +1,93 @@
|
|||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"commonjs": true,
|
||||
"es6": true,
|
||||
"webextensions": true
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 8,
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
},
|
||||
"sourceType": "script"
|
||||
},
|
||||
"plugins": [
|
||||
"promise",
|
||||
"eslint-comments",
|
||||
"html"
|
||||
],
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:promise/recommended",
|
||||
"plugin:eslint-comments/recommended"
|
||||
],
|
||||
"globals": {
|
||||
"exportFunction": false
|
||||
},
|
||||
"rules": {
|
||||
"brace-style": ["error", "stroustrup", {"allowSingleLine": true}],
|
||||
"comma-spacing": ["error", { "before": false, "after": true }],
|
||||
"complexity": ["warn", 20],
|
||||
"consistent-return": "error",
|
||||
"constructor-super": "warn",
|
||||
"eqeqeq": "error",
|
||||
"eslint-comments/no-use": ["error", {"allow": ["eslint-disable-next-line", "globals"]}],
|
||||
"indent": ["error", "tab", {"SwitchCase": 1}],
|
||||
"max-depth": ["warn", 4],
|
||||
"max-len": ["warn", {"code": 120, "tabWidth": 4}],
|
||||
"max-lines-per-function": ["warn", {"max": 80,"skipBlankLines": true, "skipComments": true}],
|
||||
"max-lines": ["warn", {"max": 500, "skipBlankLines": true, "skipComments": true}],
|
||||
"max-params": ["warn", 4],
|
||||
"no-console": "error",
|
||||
"no-const-assign": "error",
|
||||
"no-inner-declarations": "warn",
|
||||
"no-mixed-spaces-and-tabs": ["error", "smart-tabs"],
|
||||
"no-prototype-builtins": "off",
|
||||
"no-this-before-super": "warn",
|
||||
"no-trailing-spaces": ["error", {"skipBlankLines": true}],
|
||||
"no-undef": "error",
|
||||
"no-unreachable": "warn",
|
||||
"no-unused-vars": "off",
|
||||
"no-use-before-define": ["error", {"functions": false}],
|
||||
"no-useless-rename": "warn",
|
||||
"no-useless-return": "warn",
|
||||
"no-var": "error",
|
||||
"quotes": ["error", "double"],
|
||||
"require-atomic-updates": "off",
|
||||
"semi": ["error", "always"],
|
||||
"space-in-parens": ["error", "never"],
|
||||
"strict": ["error", "function"],
|
||||
"valid-typeof": "warn"
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["detectionTest.js", "modifiedCanvasAPI.js", "options.js", "settingsDisplay.js"],
|
||||
"rules": {
|
||||
"max-lines": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["test/*"],
|
||||
"rules": {
|
||||
"no-console": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [".tools/*.js"],
|
||||
"env": {
|
||||
"node": true
|
||||
},
|
||||
"rules": {
|
||||
"no-console": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["*.html", "*.php"],
|
||||
"rules": {
|
||||
"no-useless-escape": "off",
|
||||
"no-undef": "off"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
43
.github/ISSUE_TEMPLATE.md
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
<!--- Provide a general summary of the issue in the title above. -->
|
||||
|
||||
## Description
|
||||
<!--- Provide a more detailed introduction to the issue itself. -->
|
||||
<!--- Why you consider it to be a bug or a useful change/improvement? -->
|
||||
|
||||
## Expected Behaviour
|
||||
<!--- If you're describing a bug, tell us what should happen. -->
|
||||
<!--- If you're suggesting a change/improvement, tell us how it should work. -->
|
||||
|
||||
## Current Behaviour
|
||||
<!--- If describing a bug, tell us what happens instead of the expected behavior. -->
|
||||
<!--- If suggesting a change/improvement, explain the difference from current behavior. -->
|
||||
|
||||
## Possible Solution
|
||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
||||
<!--- or ideas how to implement the addition or change. -->
|
||||
|
||||
## Steps to Reproduce (for bugs)
|
||||
<!--- Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. -->
|
||||
1. create a fresh Firefox profile
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
|
||||
## Context
|
||||
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
||||
<!--- Did you reproduce the problem with a fresh Firefox profile? -->
|
||||
<!--- Providing context helps us come up with a solution that is most useful in the real world. -->
|
||||
|
||||
## Your Environment
|
||||
<!--- Include as many relevant details about the environment you experienced the bug in. -->
|
||||
* CanvasBlocker Version used:
|
||||
* Firefox version incl. 32- or 64-bit:
|
||||
* Operating System and version (desktop or mobile):
|
||||
* Installed addons:
|
||||
|
||||
## Your Settings
|
||||
~~~ json
|
||||
<!--- Copy your CanvasBlocker settings here. -->
|
||||
<!-- They can be retrieved by checking the expert mode and going to export settings. -->
|
||||
<!--- You may consider deleting personal data - especially the "persistentRndStorage". -->
|
||||
~~~
|
5
.gitignore
vendored
|
@ -1 +1,4 @@
|
|||
*.svg
|
||||
printed.png
|
||||
web-ext-artifacts/
|
||||
versions/*.xpi
|
||||
node_modules/
|
10
.jpmignore
|
@ -1,10 +0,0 @@
|
|||
*.svg
|
||||
*.png
|
||||
*.xpi
|
||||
*.zip
|
||||
.*
|
||||
*.txt
|
||||
*.md
|
||||
test/
|
||||
addon description/
|
||||
doc/
|
125
.tools/build.js
Normal file
|
@ -0,0 +1,125 @@
|
|||
const child_process = require("child_process");
|
||||
const path = require("path");
|
||||
const yargs = require("yargs");
|
||||
const args = yargs
|
||||
.options("type", {
|
||||
alias: "t",
|
||||
describe: "Type of the build",
|
||||
choices: ["alpha", "rc", "release"],
|
||||
default: "alpha",
|
||||
})
|
||||
.help()
|
||||
.alias("help", "h")
|
||||
.argv;
|
||||
|
||||
const fs = require("fs");
|
||||
|
||||
const versionsPath = path.join(__dirname, "..", "versions");
|
||||
|
||||
function getXPIFileName(id, version){
|
||||
"use strict";
|
||||
return `${id}-${version}.xpi`;
|
||||
}
|
||||
|
||||
async function addAlphaVersionToUpdatesJSON(version){
|
||||
"use strict";
|
||||
const updatesPath = path.join(versionsPath, "updates.json");
|
||||
const data = JSON.parse(await fs.promises.readFile(updatesPath));
|
||||
const versions = data.addons["CanvasBlocker-Beta@kkapsner.de"].updates;
|
||||
if (versions.some(function(entry){
|
||||
return entry.version === version;
|
||||
})){
|
||||
return;
|
||||
}
|
||||
versions.push({
|
||||
version,
|
||||
update_link: `https://canvasblocker.kkapsner.de/versions/${getXPIFileName("canvasblocker_beta", version)}`
|
||||
});
|
||||
await fs.promises.writeFile(updatesPath, JSON.stringify(data, undefined, "\t"));
|
||||
}
|
||||
|
||||
async function getAlphaVersion(manifest){
|
||||
"use strict";
|
||||
function f(n){
|
||||
if (n < 10) return "0" + n.toString(10);
|
||||
return n.toString(10);
|
||||
}
|
||||
const now = new Date();
|
||||
const date = `${now.getFullYear()}${f(now.getMonth() + 1)}${f(now.getDate())}`;
|
||||
const versionParts = manifest.version.split(".");
|
||||
while (versionParts.length > 2){
|
||||
versionParts.pop();
|
||||
}
|
||||
const baseVersion = `${versionParts.join(".")}.${date}`;
|
||||
if (!fs.existsSync(path.join(versionsPath, getXPIFileName("canvasblocker_beta", baseVersion)))){
|
||||
return baseVersion;
|
||||
}
|
||||
|
||||
let dayTry = 1;
|
||||
while (fs.existsSync(path.join(versionsPath, getXPIFileName("canvasblocker_beta", `${baseVersion}.${dayTry}`)))){
|
||||
dayTry += 1;
|
||||
}
|
||||
|
||||
return `${baseVersion}.${dayTry}`;
|
||||
}
|
||||
function getRCVersion(manifest){
|
||||
"use strict";
|
||||
throw "not implemented";
|
||||
}
|
||||
function getReleaseVersion(manifest){
|
||||
"use strict";
|
||||
return manifest.version.replace(/^([\d.]+).*$/, "$1");
|
||||
}
|
||||
|
||||
async function run(){
|
||||
"use strict";
|
||||
const manifestPath = path.join(__dirname, "../manifest.json");
|
||||
|
||||
const oldManifest = await fs.promises.readFile(manifestPath);
|
||||
const manifest = require(manifestPath);
|
||||
if (args.type === "alpha" || args.type === "rc"){
|
||||
manifest.name = "CanvasBlocker-Beta";
|
||||
["gecko", "gecko_android"].forEach(function(browserType){
|
||||
if (!manifest.browser_specific_settings[browserType]) return;
|
||||
manifest.browser_specific_settings[browserType].id = "CanvasBlocker-Beta@kkapsner.de";
|
||||
});
|
||||
}
|
||||
else {
|
||||
manifest.name = "CanvasBlocker";
|
||||
["gecko", "gecko_android"].forEach(function(browserType){
|
||||
if (!manifest.browser_specific_settings[browserType]) return;
|
||||
manifest.browser_specific_settings[browserType].id = "CanvasBlocker@kkapsner.de";
|
||||
delete manifest.browser_specific_settings[browserType].update_url;
|
||||
});
|
||||
}
|
||||
if (args.type === "alpha"){
|
||||
manifest.version = await getAlphaVersion(manifest);
|
||||
addAlphaVersionToUpdatesJSON(manifest.version);
|
||||
}
|
||||
else if (args.type === "rc"){
|
||||
manifest.version = getRCVersion(manifest);
|
||||
}
|
||||
else {
|
||||
manifest.version = getReleaseVersion(manifest);
|
||||
}
|
||||
|
||||
await fs.promises.writeFile(manifestPath, JSON.stringify(manifest, null, "\t"));
|
||||
|
||||
const childArgs = [
|
||||
"build",
|
||||
"--overwrite-dest",
|
||||
"--ignore-files",
|
||||
"test",
|
||||
"--ignore-files",
|
||||
"versions",
|
||||
"--ignore-files",
|
||||
"crowdin.yml",
|
||||
"--ignore-files",
|
||||
"package*"
|
||||
];
|
||||
const child = child_process.spawn("web-ext", childArgs, {stdio: "inherit"});
|
||||
child.on("close", function(){
|
||||
fs.promises.writeFile(manifestPath, oldManifest);
|
||||
});
|
||||
}
|
||||
run();
|
164
.tools/buildChromeVendors.js
Normal file
|
@ -0,0 +1,164 @@
|
|||
const data = require("./chromeVendors.json");
|
||||
|
||||
function addString(string, currentTree){
|
||||
"use strict";
|
||||
if (string.length <= 1){
|
||||
const nextTree = currentTree[string] || {};
|
||||
currentTree[string] = nextTree;
|
||||
}
|
||||
else {
|
||||
const firstChar = string.substring(0, 1);
|
||||
const nextTree = currentTree[firstChar] || {};
|
||||
currentTree[firstChar] = nextTree;
|
||||
const nextString = string.substring(1);
|
||||
addString(nextString, nextTree);
|
||||
}
|
||||
}
|
||||
|
||||
function output(tree){
|
||||
"use strict";
|
||||
const keys = Object.keys(tree);
|
||||
switch (keys.length){
|
||||
case 0:
|
||||
return "";
|
||||
case 1:
|
||||
return keys[0] + output(tree[keys[0]]);
|
||||
default:
|
||||
return "<" + keys.map(key => key + output(tree[key])).join("|") + ">";
|
||||
}
|
||||
}
|
||||
|
||||
// every string ends with a ) and does not contain <, >, $ or |
|
||||
data.forEach(function(string){
|
||||
"use strict";
|
||||
if (
|
||||
!string.endsWith(")") ||
|
||||
string.match(/[<>|$]/)
|
||||
){
|
||||
throw string;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
const tree1 = {};
|
||||
const tree2 = {};
|
||||
const tree3 = {};
|
||||
data.every(function(string){
|
||||
"use strict";
|
||||
string = string.substring(0, string.length - 1);
|
||||
const parts = string.split(" Direct", 2);
|
||||
const parts2 = parts[0].split(" (Microsoft Corporation", 2);
|
||||
addString(parts2[0], tree1);
|
||||
if (parts2.length > 1){
|
||||
addString(" (Microsoft Corporation" + parts2[1], tree2);
|
||||
}
|
||||
else {
|
||||
addString("", tree2);
|
||||
}
|
||||
|
||||
if (parts.length > 1){
|
||||
addString(" Direct" + parts[1], tree3);
|
||||
}
|
||||
else {
|
||||
addString("", tree3);
|
||||
}
|
||||
return true;
|
||||
});
|
||||
// const compressed = output(tree1) + output(tree2) + output(tree3) + ")";
|
||||
const compressed = output(tree1) + output(tree2) +
|
||||
"< Direct3D<11 vs_<4_<0 ps_4_0|1 ps_4_1>|5_0 ps_5_0>|9<Ex|> vs_<0_0 ps_<2_0|3_0>|2_0 ps_2_0|3_0 ps_3_0>>|>" + ")";
|
||||
console.log("compressed length", compressed.length);
|
||||
// console.log(compressed);
|
||||
|
||||
function countWords(string){
|
||||
"use strict";
|
||||
const words = {};
|
||||
string.split(/[^0-9a-z]+/i).filter(word => word.length > 2).forEach(function(word){
|
||||
const wordStats = words[word] || {count: 0};
|
||||
words[word] = wordStats;
|
||||
wordStats.count += 1;
|
||||
});
|
||||
return words;
|
||||
}
|
||||
|
||||
function wordCompressor(string){
|
||||
"use strict";
|
||||
const words = countWords(string);
|
||||
const duplicatedWord = Object.keys(words)
|
||||
.map(function(word){
|
||||
return {
|
||||
word,
|
||||
count: words[word].count
|
||||
};
|
||||
})
|
||||
.filter(word => word.count > 1)
|
||||
.sort((a, b) => b.word.length*b.count - a.word.length*a.count);
|
||||
let compressed = string;
|
||||
let index = 0;
|
||||
const usedWords = [];
|
||||
for (let i = 0; i < duplicatedWord.length; i += 1){
|
||||
const replacement = "$" + index.toString(36);
|
||||
const word = duplicatedWord[i].word;
|
||||
if (
|
||||
replacement.length < word.length &&
|
||||
(word.length - replacement.length) * duplicatedWord[i].count > word.length + 1
|
||||
){
|
||||
compressed = compressed.replace(new RegExp("\\b" + word + "\\b", "g"), replacement);
|
||||
index += 1;
|
||||
usedWords.push(word);
|
||||
}
|
||||
}
|
||||
return {compressed, usedWords};
|
||||
}
|
||||
const {compressed: compressed2, usedWords} = wordCompressor(compressed);
|
||||
console.log("compressed 2 length", compressed2.length);
|
||||
console.log(compressed2);
|
||||
console.log(usedWords.join("|"));
|
||||
|
||||
function decompress(string, words){
|
||||
"use strict";
|
||||
return string.replace(/\$([0-9a-z]+)/gi, function(m, index){
|
||||
return words[parseInt(index, 36)];
|
||||
});
|
||||
}
|
||||
const decompressed2 = decompress(compressed2, usedWords);
|
||||
console.log("test: ", compressed === decompressed2);
|
||||
for (let start = 0; start < compressed.length; start += 100){
|
||||
|
||||
if (compressed.substring(start, start + 100) !== decompressed2.substring(start, start + 100)){
|
||||
console.log(start);
|
||||
console.log(compressed.substring(start, start + 100));
|
||||
console.log(decompressed2.substring(start, start + 100));
|
||||
}
|
||||
}
|
||||
|
||||
function pickOne(string){
|
||||
"use strict";
|
||||
const options = [];
|
||||
let cumulate = "";
|
||||
let index = 0;
|
||||
for (const l = string.length; index < l; index += 1){
|
||||
const char = string.charAt(index);
|
||||
if (char === "|"){
|
||||
options.push(cumulate);
|
||||
cumulate = "";
|
||||
}
|
||||
else if (char === "<"){
|
||||
const subPick = pickOne(string.substring(index + 1));
|
||||
cumulate += subPick.value;
|
||||
index += 1 + subPick.endIndex;
|
||||
}
|
||||
else if (char === ">"){
|
||||
break;
|
||||
}
|
||||
else {
|
||||
cumulate += char;
|
||||
}
|
||||
}
|
||||
options.push(cumulate);
|
||||
return {value: options[Math.floor(Math.random() * options.length)], endIndex: index};
|
||||
}
|
||||
|
||||
console.log(pickOne(compressed).value);
|
||||
|
17
.tools/checkMissingTranslation.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
const en = require("../_locales/en/messages.json");
|
||||
const enKeys = Object.keys(en);
|
||||
|
||||
const language = process.argv[2];
|
||||
|
||||
const la = require("../_locales/" + language + "/messages.json");
|
||||
const laKeys = Object.keys(la);
|
||||
|
||||
enKeys.forEach(function(key){
|
||||
"use strict";
|
||||
|
||||
if (en[key].message){
|
||||
if (!la[key] || !la[key].message){
|
||||
console.log(key, "missing");
|
||||
}
|
||||
}
|
||||
});
|
693
.tools/chromeVendors.json
Normal file
|
@ -0,0 +1,693 @@
|
|||
[
|
||||
"ANGLE (AMD (ATI) FirePro M8900 (FireGL) Mobility Pro Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD 760G (Microsoft Corporation WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD 760G Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD 760G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD FirePro 2270 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD FirePro W5000 (FireGL V) Graphics Adapter Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD M880G with ATI Mobility Radeon HD 4200 )",
|
||||
"ANGLE (AMD M880G with ATI Mobility Radeon HD 4200 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD M880G with ATI Mobility Radeon HD 4250 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 5450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 5500 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 5570 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 5670 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 5700 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 5800 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6250 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6250M )",
|
||||
"ANGLE (AMD Radeon HD 6290 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6290 Graphics (Microsoft Corporation- WDDM v1.20) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6290 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6300 series Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6310 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6310 Graphics )",
|
||||
"ANGLE (AMD Radeon HD 6310 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6310M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6320 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6320 Graphic Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6320 Graphics )",
|
||||
"ANGLE (AMD Radeon HD 6320 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6320 Graphics)",
|
||||
"ANGLE (AMD Radeon HD 6320 series Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6320M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6350 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6370D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6370M)",
|
||||
"ANGLE (AMD Radeon HD 6400M Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6410D Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6410D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6450 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6450A Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6470M )",
|
||||
"ANGLE (AMD Radeon HD 6470M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6470M)",
|
||||
"ANGLE (AMD Radeon HD 6480G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6500 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6500M/5600/5700 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6510 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6520G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6530D Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6550A Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6570 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6570 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6570)",
|
||||
"ANGLE (AMD Radeon HD 6620G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6630M)",
|
||||
"ANGLE (AMD Radeon HD 6650A Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6670 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6700 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6730M)",
|
||||
"ANGLE (AMD Radeon HD 6800 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6800 Series)",
|
||||
"ANGLE (AMD Radeon HD 6900 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 6900M Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7000 series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7290 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7300 Series Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7300 Series)",
|
||||
"ANGLE (AMD Radeon HD 7310 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7310 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7310M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7340 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7340 Graphics (Microsoft Corporation - WDDM v1.20) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7340 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7340G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7340M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7400M Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7420G Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7420G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7450 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7470M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7480D Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7480D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7500 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7500/7600 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7500G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7500M/7600M Series (Microsoft Corporation - WDDM v1.3) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7520G + 7670M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7520G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7540D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7550M/7650M Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7550M/7650M Graphics)",
|
||||
"ANGLE (AMD Radeon HD 7560D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7570 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7570 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7570M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7580D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7600G + 6400M Dual Graphics)",
|
||||
"ANGLE (AMD Radeon HD 7600M Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7610M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7610M)",
|
||||
"ANGLE (AMD Radeon HD 7640G + 7600M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7640G + 7670M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7640G + 8750M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7640G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7650M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7660D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7660D)",
|
||||
"ANGLE (AMD Radeon HD 7660G + 7600M Dual Graphics)",
|
||||
"ANGLE (AMD Radeon HD 7660G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7670M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7700 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7700 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7800 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 7800 Series)",
|
||||
"ANGLE (AMD Radeon HD 7900 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8210 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8240 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8250 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8330 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8350 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8400 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8450G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8470 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8470D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8510G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8550G + 8570M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8550G + HD 8600/8700M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8550G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8570D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8610G + 8500M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8610G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8650G + 8670M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8650G + 8750M Dual Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD 8670D Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD6370D Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD6410D Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD7700 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon HD7770 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon R7 200 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon R9 200 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon(TM) HD 6380G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon(TM) HD 6480G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon(TM) HD 6520G )",
|
||||
"ANGLE (AMD Radeon(TM) HD 6520G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon(TM) HD 6620G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (AMD Radeon(TM) HD 7450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS EAH4350 series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS EAH5450 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS EAH5670 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS EAH5770 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS EAH6450 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS EAH6670 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS EAH6970 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS HD7770 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ASUS R9 270 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI FirePro 2450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI FirePro V3700 (FireGL) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI FirePro V3800 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI FirePro V4800 (FireGL) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon 9600/9700 Series)",
|
||||
"ANGLE (ATI Mobility Radeon HD 2400 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 2400 XT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 2600 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 3400 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 3430 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 3450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 3470 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 3650 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4200 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4200 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4250 )",
|
||||
"ANGLE (ATI Mobility Radeon HD 4250 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4250 Graphics Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4250 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4300 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4300/4500 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4330 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4330)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4500 Series (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4500 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4500/5100 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4530 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4570 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4570)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4650 (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 4650 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5000 Series (Microsoft Corporation - WDDM v1.20) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5000 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5145 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5400 Series )",
|
||||
"ANGLE (ATI Mobility Radeon HD 5400 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5430)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 545v Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5470 )",
|
||||
"ANGLE (ATI Mobility Radeon HD 5470 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5470 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5470)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5650 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon HD 5650)",
|
||||
"ANGLE (ATI Mobility Radeon HD 6370)",
|
||||
"ANGLE (ATI Mobility Radeon HD 6550 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon X1300 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon X1600 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Mobility Radeon X1600)",
|
||||
"ANGLE (ATI Radeon 2100 (Microsoft Corporation - WDDM) Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon 2100 Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon 2100)",
|
||||
"ANGLE (ATI Radeon 3000 Graphics (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon 3000 Graphics Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon 3000 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon 3000 Graphics)",
|
||||
"ANGLE (ATI Radeon 3100 Graphics (Microsoft Corporation WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon 3100 Graphics)",
|
||||
"ANGLE (ATI Radeon HD 2350 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 Pro )",
|
||||
"ANGLE (ATI Radeon HD 2400 Pro Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 PRO Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 Pro Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 PRO Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 XT (Microsoft Corporation WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 XT )",
|
||||
"ANGLE (ATI Radeon HD 2400 XT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 XT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2400 XT)",
|
||||
"ANGLE (ATI Radeon HD 2600 Pro )",
|
||||
"ANGLE (ATI Radeon HD 2600 PRO)",
|
||||
"ANGLE (ATI Radeon HD 2600 XT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 2600 XT)",
|
||||
"ANGLE (ATI Radeon HD 3200 Graphics (Microsoft Corporation WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3200 Graphics Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3200 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3300 Graphics Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3300 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3400 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3400 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3450 - Dell Optiplex Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3450 - Dell Optiplex Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3450 (Microsoft Corporation WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3470 - Dell Optiplex Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3600 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3600 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3650 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 3800 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4200 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4200 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4200)",
|
||||
"ANGLE (ATI Radeon HD 4250 )",
|
||||
"ANGLE (ATI Radeon HD 4250 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4250 Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4250)",
|
||||
"ANGLE (ATI Radeon HD 4300 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4300/4500 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4350 (Microsoft Corporation WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4350 )",
|
||||
"ANGLE (ATI Radeon HD 4350 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4350 Series)",
|
||||
"ANGLE (ATI Radeon HD 4350)",
|
||||
"ANGLE (ATI Radeon HD 4550 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4600 Series (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4600 Series )",
|
||||
"ANGLE (ATI Radeon HD 4600 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4600 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4600 Serisi (Microsoft Corporation- WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4650 (Microsoft Corporation WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4650 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4670)",
|
||||
"ANGLE (ATI Radeon HD 4770 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4800 Series (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4800 Series (Microsoft Corporation WDDM 1.1) )",
|
||||
"ANGLE (ATI Radeon HD 4800 Series Direct3D11 vs_4_1 ps_4_1)",
|
||||
"ANGLE (ATI Radeon HD 4800 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4800 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 4800 Series)",
|
||||
"ANGLE (ATI Radeon HD 4870 X2 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5400 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5450 (Microsoft Corporation - WDDM v1.20) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5450 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5450)",
|
||||
"ANGLE (ATI Radeon HD 5570 (Microsoft Corporation - WDDM v1.20) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5570 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5600 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5670 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5700 Series (Microsoft Corporation - WDDM v1.20) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5700 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5700 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 5800 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 6230 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD 6350 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon HD4670 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (ATI Radeon X1050 Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X1050 Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X1200 Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X1200 Series (Microsoft Corporation - WDDM) Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X1200 Series Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X1200 Series Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X1200 Series)",
|
||||
"ANGLE (ATI Radeon X1250 Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X1270 Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X300/X550/X1050 Series Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X300/X550/X1050 Series Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon X300/X550/X1050 Series)",
|
||||
"ANGLE (ATI Radeon Xpress 1100 Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon Xpress 1150 Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon Xpress 1150 Series Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon Xpress 1150 Series Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon Xpress 1200 Series Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon Xpress 1250 Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (ATI Radeon Xpress 200 Series Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) 4 Series Internal Chipset Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) 4 Series Internal Chipset Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) 82915G/GV/910GL Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) 82945G Express Chipset Family (Microsoft Corporation - WDDM 1.0) Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) 82945G Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) 82945G Express Chipset Family Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) 82945G Express Chipset Family)",
|
||||
"ANGLE (Intel(R) 946GZ Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) 946GZ Express Chipset Family Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) B43 Express Chipset Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) G33/G31 Express Chipset Family (Microsoft Corporation - WDDM 1.0) Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) G33/G31 Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) G33/G31 Express Chipset Family Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) G33/G31 Express Chipset Family)",
|
||||
"ANGLE (Intel(R) G41 Express Chipset (Microsoft Corporation - WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) G41 Express Chipset (Microsoft Corporation - WDDM 1.1))",
|
||||
"ANGLE (Intel(R) G41 Express Chipset Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) G41 Express Chipset Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) G41 Express Chipset)",
|
||||
"ANGLE (Intel(R) G45/G43 Express Chipset (Microsoft Corporation - WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) G45/G43 Express Chipset Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) G965 Express Chipset Family Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) Graphics Media Accelerator 3150 (Microsoft Corporation - WDDM 1.0) Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Graphics Media Accelerator 3150 Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Graphics Media Accelerator 3150 Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Graphics Media Accelerator 3150)",
|
||||
"ANGLE (Intel(R) Graphics Media Accelerator 3600 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) Graphics Media Accelerator HD )",
|
||||
"ANGLE (Intel(R) Graphics Media Accelerator HD Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics 3000 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics 3000)",
|
||||
"ANGLE (Intel(R) HD Graphics 4000 (Microsoft Corporation - WDDM 1.2) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics 4000 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics 4000)",
|
||||
"ANGLE (Intel(R) HD Graphics 4400 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics 4600 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics Family Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics Family Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) HD Graphics Family)",
|
||||
"ANGLE (Intel(R) HD Graphics)",
|
||||
"ANGLE (Intel(R) Q33 Express Chipset Family (Microsoft Corporation - WDDM 1.0) Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q33 Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q33 Express Chipset Family Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q35 Express Chipset Family (Microsoft Corporation - WDDM 1.0) Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q35 Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q35 Express Chipset Family Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q45/Q43 Express Chipset (Microsoft Corporation - WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) Q45/Q43 Express Chipset (Microsoft Corporation - WDDM 1.1))",
|
||||
"ANGLE (Intel(R) Q45/Q43 Express Chipset Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) Q45/Q43 Express Chipset Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Intel(R) Q45/Q43 Express Chipset)",
|
||||
"ANGLE (Intel(R) Q965/Q963 Express Chipset Family (Microsoft Corporation - WDDM 1.0) Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q965/Q963 Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q965/Q963 Express Chipset Family Direct3D9Ex vs_0_0 ps_2_0)",
|
||||
"ANGLE (Intel(R) Q965/Q963 Express Chipset Family)",
|
||||
"ANGLE (Microsoft Basic Render Driver Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) - famiglia Express Chipset 45 (Microsoft Corporation - WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 4 Series Express Chipset Family (Microsoft Corporation - WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 4 Series Express Chipset Family Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 4 Series Express Chipset Family Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 4 Series Express Chipset Family)",
|
||||
"ANGLE (Mobile Intel(R) 45 Express Chipset Family (Microsoft Corporation - WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 915GM/GMS,910GML Express Chipset Family Direct3D9 vs_0_0 ps_2_0)",
|
||||
"ANGLE (Mobile Intel(R) 915GM/GMS,910GML Express Chipset Family)",
|
||||
"ANGLE (Mobile Intel(R) 945 Express Chipset Family)",
|
||||
"ANGLE (Mobile Intel(R) 945GM Express Chipset Family)",
|
||||
"ANGLE (Mobile Intel(R) 965 Express Chipset Family (Microsoft Corporation - WDDM 1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 965 Express Chipset Family Direct3D9 vs_0_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 965 Express Chipset Family Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 965 Express Chipset Family Direct3D9Ex vs_0_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 965 Express Chipset Family Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) 965 Express Chipset Family)",
|
||||
"ANGLE (Mobile Intel(R) HD Graphics Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Mobile Intel(R) HD Graphics)",
|
||||
"ANGLE (NVIDIA GeForce 210 )",
|
||||
"ANGLE (NVIDIA GeForce 210 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 210 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 210)",
|
||||
"ANGLE (NVIDIA GeForce 310 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 310M (Microsoft Corporation - WDDM v1.2) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 310M )",
|
||||
"ANGLE (NVIDIA GeForce 310M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 310M)",
|
||||
"ANGLE (NVIDIA GeForce 315 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 315M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 405 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 405)",
|
||||
"ANGLE (NVIDIA GeForce 405M)",
|
||||
"ANGLE (NVIDIA GeForce 410M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 605 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6100 nForce 405 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6100 nForce 405 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6100)",
|
||||
"ANGLE (NVIDIA GeForce 610M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6150 LE (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6150 LE Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6150SE nForce 430 (Microsoft Corporation - WDDM v1.2) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6150SE nForce 430 (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6150SE nForce 430 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6150SE nForce 430 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6150SE nForce 430)",
|
||||
"ANGLE (NVIDIA GeForce 6200 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6200 TurboCache(TM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6500 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6600 (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6600 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 6600 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7000M / nForce 610M Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7000M / nForce 610M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7025 / NVIDIA nForce 630a (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7025 / NVIDIA nForce 630a )",
|
||||
"ANGLE (NVIDIA GeForce 7025 / NVIDIA nForce 630a Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7025 / NVIDIA nForce 630a Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7025 / NVIDIA nForce 630a)",
|
||||
"ANGLE (NVIDIA GeForce 7050 / NVIDIA nForce 620i Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7050 PV / NVIDIA nForce 630a Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7100 / NVIDIA nForce 630i Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7100 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7150M / nForce 630M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 GS Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 GT (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 LE (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 LE Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 SE/7200 GS (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 SE/7200 GS Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7300 SE/7200 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 7900 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8200 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8200M G Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8200M G)",
|
||||
"ANGLE (NVIDIA GeForce 8300 GS )",
|
||||
"ANGLE (NVIDIA GeForce 8300 GS Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8300 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8400 GS (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8400 GS Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8400 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8400 GS)",
|
||||
"ANGLE (NVIDIA GeForce 8400GS Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8400GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8400M GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8400M GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8500 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8500 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GT (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GT )",
|
||||
"ANGLE (NVIDIA GeForce 8600 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GT)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GTS (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GTS Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600 GTS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600GS (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600M GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8600M GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8800 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8800 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8800 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8800 GTS 512 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 8800 GTS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9100 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9200 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9200M GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9300 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9300 GE (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9300 GE Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9300 GE Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9300M GS (Microsoft Corporation - WDDM v1.1))",
|
||||
"ANGLE (NVIDIA GeForce 9300M GS )",
|
||||
"ANGLE (NVIDIA GeForce 9300M GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9400 GT (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9400 GT )",
|
||||
"ANGLE (NVIDIA GeForce 9400 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9400 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9400 GT)",
|
||||
"ANGLE (NVIDIA GeForce 9400M )",
|
||||
"ANGLE (NVIDIA GeForce 9500 GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9500 GS)",
|
||||
"ANGLE (NVIDIA GeForce 9500 GT (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9500 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9500 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9500 GT)",
|
||||
"ANGLE (NVIDIA GeForce 9500M GS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9600 GSO 512 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9600 GT (Microsoft Corporation - WDDM v1.1))",
|
||||
"ANGLE (NVIDIA GeForce 9600 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9600 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9600 GT)",
|
||||
"ANGLE (NVIDIA GeForce 9600M GS)",
|
||||
"ANGLE (NVIDIA GeForce 9600M GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9600M GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9650M GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9700M GTS Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9800 GT (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9800 GT (Microsoft Corporation - WDDM v1.1))",
|
||||
"ANGLE (NVIDIA GeForce 9800 GT )",
|
||||
"ANGLE (NVIDIA GeForce 9800 GT Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9800 GT Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce 9800 GTX/9800 GTX+ Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce FX 5200 Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (NVIDIA GeForce G 103M )",
|
||||
"ANGLE (NVIDIA GeForce G 105M )",
|
||||
"ANGLE (NVIDIA GeForce G 105M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce G100 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce G100)",
|
||||
"ANGLE (NVIDIA GeForce G102M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce G105M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce G210 )",
|
||||
"ANGLE (NVIDIA GeForce G210 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce G210)",
|
||||
"ANGLE (NVIDIA GeForce G210M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce Go 7300 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 120M)",
|
||||
"ANGLE (NVIDIA GeForce GT 220 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 220 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 220)",
|
||||
"ANGLE (NVIDIA GeForce GT 230 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 230M )",
|
||||
"ANGLE (NVIDIA GeForce GT 230M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 240 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 240 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 240)",
|
||||
"ANGLE (NVIDIA GeForce GT 240M )",
|
||||
"ANGLE (NVIDIA GeForce GT 240M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 320 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 320M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 330 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 330M )",
|
||||
"ANGLE (NVIDIA GeForce GT 330M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 335M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 420 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 420M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 425M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 430 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 430 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 430)",
|
||||
"ANGLE (NVIDIA GeForce GT 440 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 440 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 440)",
|
||||
"ANGLE (NVIDIA GeForce GT 520 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 520 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 520)",
|
||||
"ANGLE (NVIDIA GeForce GT 520M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 520M)",
|
||||
"ANGLE (NVIDIA GeForce GT 525M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 530 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 545 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 555M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 610 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 610)",
|
||||
"ANGLE (NVIDIA GeForce GT 620 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 620)",
|
||||
"ANGLE (NVIDIA GeForce GT 625 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 630 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 630 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 630M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 635 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 640 )",
|
||||
"ANGLE (NVIDIA GeForce GT 640 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 640)",
|
||||
"ANGLE (NVIDIA GeForce GT 640M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 650M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 740M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GT 755M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 240 Direct3D11 vs_4_0 ps_4_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 250 (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 250 (Microsoft Corporation - WDDM v1.1))",
|
||||
"ANGLE (NVIDIA GeForce GTS 250 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 250 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 250)",
|
||||
"ANGLE (NVIDIA GeForce GTS 350M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 450 )",
|
||||
"ANGLE (NVIDIA GeForce GTS 450 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 450 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTS 450)",
|
||||
"ANGLE (NVIDIA GeForce GTX 260 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 275 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 285 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 295 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 460 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 460 SE Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 460)",
|
||||
"ANGLE (NVIDIA GeForce GTX 460M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 480 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 550 Ti Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 550 Ti)",
|
||||
"ANGLE (NVIDIA GeForce GTX 560 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 560 Ti )",
|
||||
"ANGLE (NVIDIA GeForce GTX 560 Ti Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 560M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 570 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 580 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 580M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 650 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 650 Ti BOOST Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 650 Ti Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 650)",
|
||||
"ANGLE (NVIDIA GeForce GTX 660 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 660 Ti Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 660M )",
|
||||
"ANGLE (NVIDIA GeForce GTX 660M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 670 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 670)",
|
||||
"ANGLE (NVIDIA GeForce GTX 675M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 680 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 690 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 760 (192-bit) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 760 Direct3D11 vs_5_0 ps_5_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 760 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 770 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA GeForce GTX 780 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA ION Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA MCP67M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA nForce 750a SLI Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA NVS 300 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA NVS 3100M )",
|
||||
"ANGLE (NVIDIA NVS 3100M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA NVS 4200M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA NVS 5100M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA NVS 5200M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA NVS 5400M )",
|
||||
"ANGLE (NVIDIA Quadro 1000M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro 2000M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro 600 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 1500M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 1700 (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 1700 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 1800 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 2500M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 2700M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 3700 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 570 (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 570 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 580 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 770M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro FX 880M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro K3000M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro K600 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro NVS 110M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro NVS 135M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro NVS 140M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro NVS 140M)",
|
||||
"ANGLE (NVIDIA Quadro NVS 160M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro NVS 160M)",
|
||||
"ANGLE (NVIDIA Quadro NVS 285 Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro NVS 290 (Microsoft Corporation - WDDM v1.1) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (NVIDIA Quadro NVS 290 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon (TM) HD 6470M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon (TM) HD 6490M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon HD 6470M Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1300/X1550 Series (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1300/X1550 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1300/X1550 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1550 64-bit (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1550 Series (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1650 SE Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1650 Series (Microsoft Corporation - WDDM) Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1650 Series )",
|
||||
"ANGLE (Radeon X1650 Series Direct3D9 vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1650 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X1950 Series Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Radeon X300/X550/X1050 Series (Microsoft Corporation - WDDM) Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (Radeon X300/X550/X1050 Series Direct3D9 vs_2_0 ps_2_0)",
|
||||
"ANGLE (Radeon X800 GTO (Microsoft Corporation - WDDM) Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (RDPDD Chained DD Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (Royal BNA Driver Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (RS880 Direct3D9Ex vs_3_0 ps_3_0)",
|
||||
"ANGLE (SiS Mirage 3 Graphics Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (SiS Mirage 3 Graphics)",
|
||||
"ANGLE (VIA Chrome9 HC IGP Family WDDM Direct3D9Ex vs_2_0 ps_2_0)",
|
||||
"ANGLE (WinFast GT 640(NVIDIA) Direct3D9Ex vs_3_0 ps_3_0)"
|
||||
]
|
174
.tools/findUnusedMessages.js
Normal file
|
@ -0,0 +1,174 @@
|
|||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const util = require("util");
|
||||
|
||||
|
||||
|
||||
function getMessagesInContent(content){
|
||||
"use strict";
|
||||
|
||||
const foundMessages = [];
|
||||
[
|
||||
/\b(?:_|browser.i18n.getMessage|extension.getTranslation|notify|extension)\(["']([^"']+)["']\s*(?:\)|,)/g,
|
||||
/\b(?:messageId|name|getTranslation)\s*:\s*["']([^"']+)["']/g,
|
||||
].forEach(function(re){
|
||||
let match;
|
||||
while ((match = re.exec(content)) !== null){
|
||||
foundMessages.push(match[1].toLowerCase());
|
||||
}
|
||||
});
|
||||
return foundMessages;
|
||||
}
|
||||
|
||||
async function getMessagesInFile(path){
|
||||
"use strict";
|
||||
|
||||
const exists = await util.promisify(fs.exists)(path);
|
||||
if (exists){
|
||||
const content = await util.promisify(fs.readFile)(path, {encoding: "UTF-8"});
|
||||
return getMessagesInContent(content);
|
||||
}
|
||||
else {
|
||||
console.log("file does not exist:", path);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
async function getMessagesInFolder(folder){
|
||||
"use strict";
|
||||
|
||||
const files = await util.promisify(fs.readdir)(folder, {encoding: "UTF-8"});
|
||||
|
||||
const messages = await Promise.all(
|
||||
files.filter(function(file){
|
||||
return !file.startsWith(".");
|
||||
}).map(function(file){
|
||||
return path.join(folder, file);
|
||||
}).map(async function(path){
|
||||
const stat = await util.promisify(fs.stat)(path);
|
||||
if (stat.isDirectory()){
|
||||
return getMessagesInFolder(path);
|
||||
}
|
||||
else {
|
||||
if (path.endsWith(".js")){
|
||||
return getMessagesInFile(path);
|
||||
}
|
||||
else {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
const flat = [];
|
||||
messages.forEach(function(messages){
|
||||
messages.forEach(function(message){
|
||||
flat.push(message);
|
||||
});
|
||||
});
|
||||
return flat;
|
||||
}
|
||||
|
||||
|
||||
async function getSettingMessages(){
|
||||
"use strict";
|
||||
|
||||
const settingStrings = require("../lib/settingStrings");
|
||||
const settingDefinitions = require("../lib/settingDefinitions");
|
||||
function getDefinition(name){
|
||||
return settingDefinitions.filter(function(settingDefinition){
|
||||
return settingDefinition.name === name;
|
||||
})[0];
|
||||
}
|
||||
const settingsDisplay = require("../options/settingsDisplay");
|
||||
|
||||
const foundMessages = [];
|
||||
settingsDisplay.forEach(function(groupDefinition){
|
||||
if (groupDefinition.name){
|
||||
foundMessages.push("group_" + groupDefinition.name.toLowerCase());
|
||||
}
|
||||
groupDefinition.sections.forEach(function(sectionDefinition){
|
||||
if (sectionDefinition.name){
|
||||
foundMessages.push("section_" + sectionDefinition.name.toLowerCase());
|
||||
}
|
||||
sectionDefinition.settings.forEach(function(display){
|
||||
let settingDefinition = getDefinition(display.name);
|
||||
if (!settingDefinition){
|
||||
settingDefinition = display;
|
||||
display.action = true;
|
||||
}
|
||||
if (settingDefinition){
|
||||
if (display.inputs){
|
||||
settingDefinition.inputs = display.inputs.map(function(input){
|
||||
return getDefinition(input);
|
||||
});
|
||||
}
|
||||
else if (display.actions){
|
||||
settingDefinition.actions = display.actions.map(function(action){
|
||||
return {name: action};
|
||||
});
|
||||
}
|
||||
settingStrings.getMessages(settingDefinition).forEach(function(message){
|
||||
foundMessages.push(message.toLowerCase());
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
const presets = require("../options/presets.json");
|
||||
Object.keys(presets).forEach(function(preset){
|
||||
foundMessages.push("preset_" + preset + "_title");
|
||||
foundMessages.push("preset_" + preset + "_description");
|
||||
});
|
||||
return foundMessages.map(function(message){return message.toLowerCase();});
|
||||
}
|
||||
|
||||
async function getKnownMessages(){
|
||||
"use strict";
|
||||
|
||||
return [
|
||||
"addon_title",
|
||||
"addon_description",
|
||||
"urlSettings_title",
|
||||
"installnotice",
|
||||
"presets_installnotice",
|
||||
"updatenotice",
|
||||
"disableNotifications",
|
||||
"showoptions",
|
||||
"displayHiddenSettings_title",
|
||||
"displayHiddenSettings_description",
|
||||
"browseraction_settings",
|
||||
"browseraction_test",
|
||||
"browseraction_review",
|
||||
"browseraction_reportIssue",
|
||||
].map(function(message){
|
||||
return message.toLowerCase();
|
||||
});
|
||||
}
|
||||
|
||||
async function main(){
|
||||
"use strict";
|
||||
const en = require("../_locales/en/messages.json");
|
||||
const declaredMessages = Object.keys(en)
|
||||
// .filter(function(key){return en[key].message;})
|
||||
.map(function(key){
|
||||
return key.toLowerCase();
|
||||
});
|
||||
const [settingMessages, fileMessages, knownMessages] = await Promise.all([
|
||||
getSettingMessages(),
|
||||
getMessagesInFolder(path.join(__dirname, "..")),
|
||||
getKnownMessages()]
|
||||
);
|
||||
|
||||
declaredMessages.forEach(function(message){
|
||||
|
||||
if (
|
||||
fileMessages.indexOf(message) === -1 &&
|
||||
settingMessages.indexOf(message) === -1 &&
|
||||
knownMessages.indexOf(message) === -1
|
||||
){
|
||||
console.log(`usage of ${message} not found`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
main();
|
92
.tools/translate.js
Normal file
|
@ -0,0 +1,92 @@
|
|||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const util = require("util");
|
||||
const en = require("../_locales/en/messages.json");
|
||||
const enKeys = Object.keys(en);
|
||||
|
||||
const language = process.argv[2];
|
||||
|
||||
|
||||
function getTranslationPath(language){
|
||||
"use strict";
|
||||
|
||||
return path.join(__dirname, "../_locales/" + language + "/messages.json");
|
||||
}
|
||||
async function loadTranslation(language){
|
||||
"use strict";
|
||||
|
||||
const path = getTranslationPath(language);
|
||||
const exists = await util.promisify(fs.exists)(path);
|
||||
if (exists){
|
||||
console.log("language exists -> load data");
|
||||
const data = await util.promisify(fs.readFile)(path, {encoding: "UTF-8"});
|
||||
return JSON.parse(data);
|
||||
}
|
||||
else {
|
||||
console.log("language does not exist -> create it");
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
async function saveTranslation(language, data){
|
||||
"use strict";
|
||||
|
||||
const path = getTranslationPath(language);
|
||||
return await util.promisify(fs.writeFile)(path, JSON.stringify(data, null, "\t"));
|
||||
}
|
||||
|
||||
async function getInput(prompt){
|
||||
"use strict";
|
||||
|
||||
return new Promise(function(resolve){
|
||||
process.stdout.write(prompt);
|
||||
process.stdin.setEncoding("utf8");
|
||||
process.stdin.resume();
|
||||
process.stdin.on("data", function onData(data){
|
||||
process.stdin.removeListener("data", onData);
|
||||
process.stdin.pause();
|
||||
resolve(data.replace(/[\n\r]+$/, ""));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function askForTranslation(key){
|
||||
"use strict";
|
||||
|
||||
const enData = en[key];
|
||||
console.log("English translation for", key, ":", enData.message);
|
||||
if (enData.description){
|
||||
console.log("\nDescription:", enData.description);
|
||||
}
|
||||
return getInput("Please enter translation: ");
|
||||
}
|
||||
|
||||
async function translate(language){
|
||||
"use strict";
|
||||
|
||||
const originalData = await loadTranslation(language);
|
||||
const data = {};
|
||||
for (let i = 0; i < enKeys.length; i += 1){
|
||||
const key = enKeys[i];
|
||||
const oldData = originalData[key];
|
||||
const enData = en[key];
|
||||
if (oldData && oldData.message && oldData.message.trim()){
|
||||
data[key] = oldData;
|
||||
}
|
||||
else {
|
||||
data[key] = {
|
||||
message: enData.message.trim() === ""? "": await askForTranslation(key),
|
||||
description: (oldData && oldData.description) || enData.description
|
||||
};
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
(async function(){
|
||||
"use strict";
|
||||
|
||||
const data = await translate(language);
|
||||
|
||||
saveTranslation(language, data);
|
||||
}());
|
84
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
"cSpell.words": [
|
||||
"arial",
|
||||
"Benachrichtigungsdetails",
|
||||
"benachrichtigungsicon",
|
||||
"Blockiermodi",
|
||||
"Blockiermodus",
|
||||
"canvasblocker",
|
||||
"Captcha",
|
||||
"checkmark",
|
||||
"collapser",
|
||||
"Coord",
|
||||
"darkgreen",
|
||||
"dont",
|
||||
"fakeable",
|
||||
"Fenix",
|
||||
"fragmenter",
|
||||
"Funktionalitätstest",
|
||||
"Funktionalitätstests",
|
||||
"graytext",
|
||||
"Hyrp",
|
||||
"iframe",
|
||||
"ignorelist",
|
||||
"Ignorierliste",
|
||||
"KHTML",
|
||||
"Krasnaya",
|
||||
"lightgray",
|
||||
"Maleficient",
|
||||
"mediump",
|
||||
"micrococo",
|
||||
"monero",
|
||||
"monospace",
|
||||
"Nachfrageverweigerungsmodus",
|
||||
"nocanvas",
|
||||
"Oakenpants",
|
||||
"onedrive",
|
||||
"onloaded",
|
||||
"oscpu",
|
||||
"Palemoon",
|
||||
"paypal",
|
||||
"PDFs",
|
||||
"Ploshchad",
|
||||
"prefs",
|
||||
"promisify",
|
||||
"recaptcha",
|
||||
"Rect",
|
||||
"Rects",
|
||||
"ruleset",
|
||||
"spodermenpls",
|
||||
"Spoofer",
|
||||
"statechange",
|
||||
"Strg",
|
||||
"SVGAPI",
|
||||
"Thorin",
|
||||
"Tiie",
|
||||
"unticking",
|
||||
"Vortäuschaktion",
|
||||
"Vortäuschgröße",
|
||||
"Vortäuschrate",
|
||||
"Waterfox",
|
||||
"webgl",
|
||||
"whitelisted",
|
||||
"writeln",
|
||||
"wyciwyg",
|
||||
"yfdyh"
|
||||
],
|
||||
"cSpell.language": "en,de,en-GB",
|
||||
"cSpell.ignorePaths": [
|
||||
"**/package-lock.json",
|
||||
"**/node_modules/**",
|
||||
"**/vscode-extension/**",
|
||||
"**/.git/objects/**",
|
||||
".vscode",
|
||||
".eslintrc.json",
|
||||
".tools/chromeVendors.json"
|
||||
],
|
||||
"eslint.validate": [
|
||||
"javascript",
|
||||
"php",
|
||||
"html"
|
||||
],
|
||||
"eslint.lintTask.enable": true,
|
||||
"cSpell.enabled": true
|
||||
}
|
241
.vscode/tasks.json
vendored
Normal file
|
@ -0,0 +1,241 @@
|
|||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "eslint",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "eslint"
|
||||
},
|
||||
"linux": {
|
||||
"command": "eslint"
|
||||
},
|
||||
"osx": {
|
||||
"command": "eslint"
|
||||
},
|
||||
"args": [
|
||||
"./",
|
||||
"--ext",
|
||||
".js,.html,.php"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "silent",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": "$eslint-stylish"
|
||||
},
|
||||
{
|
||||
"label": "run",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"linux": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"osx": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"args": [
|
||||
"run",
|
||||
"-f",
|
||||
"nightly",
|
||||
"--url",
|
||||
"http://canvasblocker.localhost/test/"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "run current",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"linux": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"osx": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"args": [
|
||||
"run",
|
||||
"--url",
|
||||
"http://canvasblocker.localhost/test/"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "run esr",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"linux": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"osx": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"args": [
|
||||
"run",
|
||||
"-f",
|
||||
"firefox-esr",
|
||||
"--url",
|
||||
"http://canvasblocker.localhost/test/"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "run beta",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"linux": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"osx": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"args": [
|
||||
"run",
|
||||
"-f",
|
||||
"firefox-beta",
|
||||
"--url",
|
||||
"http://canvasblocker.localhost/test/"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "build",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"linux": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"osx": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"args": [
|
||||
"build",
|
||||
"--overwrite-dest",
|
||||
"--ignore-files",
|
||||
"test",
|
||||
"--ignore-files",
|
||||
"versions",
|
||||
"--ignore-files",
|
||||
"crowdin.yml",
|
||||
"--ignore-files",
|
||||
"package*"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "build alpha",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "node"
|
||||
},
|
||||
"linux": {
|
||||
"command": "node"
|
||||
},
|
||||
"osx": {
|
||||
"command": "node"
|
||||
},
|
||||
"args": [
|
||||
".tools/build.js",
|
||||
"--type",
|
||||
"alpha"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "web-ext lint",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"linux": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"osx": {
|
||||
"command": "web-ext"
|
||||
},
|
||||
"args": [
|
||||
"lint",
|
||||
"--ignore-files",
|
||||
"test"
|
||||
],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "open git UI",
|
||||
"type": "shell",
|
||||
"windows": {
|
||||
"command": "git-cola"
|
||||
},
|
||||
"linux": {
|
||||
"command": "git-cola"
|
||||
},
|
||||
"osx": {
|
||||
"command": "git-cola"
|
||||
},
|
||||
"args": [],
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
BIN
AllowIcon.png
Before Width: | Height: | Size: 7.7 KiB |
BIN
AskIcon.png
Before Width: | Height: | Size: 7.6 KiB |
65
README.md
|
@ -0,0 +1,65 @@
|
|||
CanvasBlocker [![codebeat badge](https://codebeat.co/badges/0edd6c9f-250a-4f1e-9c64-0958741522af)](https://codebeat.co/projects/github-com-kkapsner-canvasblocker-master)
|
||||
=====
|
||||
|
||||
This add-on allows users to prevent websites from using some Javascript APIs to fingerprint them. Users can choose to block the APIs entirely on some or all websites (which may break some websites) or just block or fake its fingerprinting-friendly readout API.
|
||||
|
||||
**IMPORTANT**: you should only have ONE addon/setting set that protects an API. Otherwise you could face massive performance issues. (E.g. EclipsedMoon for Palemoon has 'canvas.poison' which is known to cause issues: https://github.com/kkapsner/CanvasBlocker/issues/253#issuecomment-459499290)
|
||||
But setting privacy.resistFingerprinting to true and/or using the new fingerprinting protection introduced with Firefox 67 is fine.
|
||||
|
||||
-----
|
||||
|
||||
Protected "fingerprinting" APIs:
|
||||
* canvas 2d
|
||||
* webGL
|
||||
* audio
|
||||
* history
|
||||
* window (disabled by default)
|
||||
* DOMRect
|
||||
* SVG
|
||||
* TextMetrics
|
||||
* navigator (disabled by default)
|
||||
* screen
|
||||
|
||||
More information on fingerprinting can be found at:
|
||||
* <canvas>: https://www.browserleaks.com/canvas
|
||||
* audio:
|
||||
* https://audiofingerprint.openwpm.com/ (very poorly written = slow)
|
||||
* https://webtransparency.cs.princeton.edu/webcensus/#audio-fp
|
||||
* DOMRect:
|
||||
* http://jcarlosnorte.com/security/2016/03/06/advanced-tor-browser-fingerprinting.html
|
||||
* https://browserleaks.com/rects
|
||||
* https://github.com/ghacksuserjs/ghacks-user.js/wiki/Appendix-A---Test-Sites
|
||||
|
||||
-----
|
||||
|
||||
Beta versions can be found at https://canvasblocker.kkapsner.de/versions/.
|
||||
|
||||
-----
|
||||
|
||||
The different block modes are:
|
||||
* fake: Canvas Blocker's default setting, and my favorite! All websites not on the white list or black list can use the protected APIs. But values obtained by the APIs are altered so that a consistent fingerprinting is not possible
|
||||
* ask for permission: If a website is not listed on the white list or black list, the user will be asked if the website should be allowed to use the protected APIs each time they are called.
|
||||
* block everything: Ignore all lists and block the protected APIs on all websites.
|
||||
* allow only white list: Only websites in the white list are allowed to use the protected APIs.
|
||||
* block only black list: Block the protected APIs only for websites on the black list.
|
||||
* allow everything: Ignore all lists and allow the protected APIs on all websites.
|
||||
|
||||
-----
|
||||
|
||||
You can contribute to CanvasBlocker by translating it and/or improving the translations. For further instructions go to https://github.com/kkapsner/CanvasBlocker/issues/420.
|
||||
|
||||
Special thanks to:
|
||||
* spodermenpls for finding all the typos
|
||||
* Thorin-Oakenpants for the icon idea
|
||||
* anthologist and unbranched for the Italian translation
|
||||
* Maleficient for the French translation
|
||||
* yfdyh000 and KrasnayaPloshchad for the Chinese translation
|
||||
* micrococo for the Spanish translation
|
||||
* STim99 for the Russian translation
|
||||
|
||||
-----
|
||||
|
||||
If you want to support this addon you can donate to the following addresses:
|
||||
* bitcoin: 159Y9BLcfHyrp6wj6f3syEuk92xkRVTiie
|
||||
* bitcoin cash:qrchnszkdwv9knhg9wjucrqy43rpl4klkq7jhkc8dz
|
||||
* monero: 482QYZaagALWtPmwbptwBaexDYmcVsJrhJp2VVjTgjYA3Kk1YyMdSg9Wz2qz1Gh31E843PFVCDWS4hR4Bjf6ipWuB9iz2cs
|
BIN
Settings.png
Before Width: | Height: | Size: 252 KiB |
1670
_locales/cs/messages.json
Normal file
1670
_locales/de/messages.json
Normal file
1739
_locales/en/messages.json
Normal file
1670
_locales/es/messages.json
Normal file
1670
_locales/fr/messages.json
Normal file
1670
_locales/hi/messages.json
Normal file
1670
_locales/it/messages.json
Normal file
1670
_locales/ja/messages.json
Normal file
1670
_locales/ko/messages.json
Normal file
1670
_locales/lt/messages.json
Normal file
1670
_locales/nb/messages.json
Normal file
1670
_locales/pl/messages.json
Normal file
1670
_locales/pt/messages.json
Normal file
1670
_locales/pt_BR/messages.json
Normal file
1670
_locales/ru/messages.json
Normal file
1670
_locales/zh_CN/messages.json
Normal file
1670
_locales/zh_TW/messages.json
Normal file
|
@ -1,22 +0,0 @@
|
|||
Dieses Add-on ermöglicht es Nutzer, Webseiten davon abzuhalten, sie über die Javascript <canvas>-API zu identifizieren. Nutzer können auswählen, ob die <canvas>-API komplett auf bestimmten oder allen Seiten blockiert wird (dies wird die Funktionalität einiger Seiten beeinträchtigen) oder nur die identifikationsfreundliche Auslese-API zu blockieren oder dort falsche Werte vorzutäuschen. Nähere Informationenen zum <canvas>-fingerprinting können Sie auf http://www.browserleaks.com/canvas finden.
|
||||
|
||||
Die verschiedenen Blockiermoden sind:
|
||||
<ul>
|
||||
<li>ask for readout API permission: All websites not on the white list or black list can use the <canvas>-API to display something on the page, but the user will be asked if the website should be allowed to use the readout API each time it is called.</li>
|
||||
<li>Auslese-API blockieren: Alle Webseiten, die nicht auf der Whitelist oder Blacklist gelistet sind, können die <canvas>-API zur Darstellung verwendet werden, aber die Auslese-API darf nicht verwendet werden.</li>
|
||||
<li>Auslese-API vortäuschen: Standardeinstellung und mein Favorit! Alle Webseiten, die nicht auf der Whitelist oder Blacklist gelistet sind, können die <canvas>-API zur Darstellung verwendet werden, aber die Auslese-API gibt zufällige Werte zurück, so dass das Fingerprinting immer einen anderen Wert liefert.</li>
|
||||
<li>bei Auslese-API um Erlaubnis fragen: Alle Webseiten, die nicht auf der Whitelist oder Blacklist gelistet sind, können die <canvas>-API zur Darstellung verwendet werden, aber der Nutzer wird jedesmal um Erlaubnis gefragt, wenn die Webseite die Readout-API verwenden möchte.</li>
|
||||
<li>alles blockieren: Ignoriert alle Listen und blockiert die <canvas>-API auf allen Webseiten.</li>
|
||||
<li>nur Einträge der Whitelist erlauben: Nur Seiten, die in der Whitelist gelistet sind, dürfen die <canvas>-API verwenden.</li>
|
||||
<li>um Erlaubnis fragen: Wenn eine Seite weder auf der Whitelist noch auf der Blacklist gelistet ist, wird der Benutzer gefragt, ob die Webseite die <canvas>-API verwenden darf, wenn sie benutzt wird.</li>
|
||||
<li>nur Einträge der Blacklist blockieren: Blockiere die <canvas>-API nur auf den Seiten der Blacklist.</li>
|
||||
<li>alles erlauben: Ignoriere alle Listen und erlaube die <canvas>-API auf allen Webseiten.</li>
|
||||
</ul>
|
||||
|
||||
Die native PDF-Anzeige von Firefox benutzt die <canvas>-API, um den Inhalt der PDFs anzuzeigen. Um trotzdem die Funktionalität der PDF-Anzeige zu gewährleisten, wird standardmäßig einem Dokument, das den MIME-content type von "*/pdf" hat, der Zugang zur API gewährt. Dies kann aber gesondert deaktiviert werden, ohne die Einstellung des Blockiermodus zu beinflussen.
|
||||
|
||||
Derzeit ist als Standard nur meine Domain (kkapsner.de) auf der Whitelist.
|
||||
|
||||
Falls Sie Fehler finden oder Verbesserungvorschläge haben, teilen Sie mir das bitte auf https://github.com/kkapsner/CanvasBlocker/issues mit.
|
||||
|
||||
Eine hochgradig experimentelle Version für Android ist verfügbar unter https://github.com/kkapsner/CanvasBlocker/tree/android
|
|
@ -1,21 +0,0 @@
|
|||
This add-on allows users to prevent websites from using the Javascript <canvas> API to fingerprint them. Users can choose to block the <canvas> API entirely on some or all websites (which may break some websites) or just block or fake its fingerprinting-friendly readout API. More information on <canvas> fingerprinting can be found at http://www.browserleaks.com/canvas.
|
||||
|
||||
The different block modes are:
|
||||
<ul>
|
||||
<li>block readout API: All websites not on the white list or black list can use the <canvas> API to display something on the page, but the readout API is not allowed to return values to the website.</li>
|
||||
<li>fake readout API: Canvas Blocker's default setting, and my favorite! All websites not on the white list or black list can use the <canvas> API to display something on the page, but the readout API is forced to return a new random value each time it is called.</li>
|
||||
<li>ask for readout API permission: All websites not on the white list or black list can use the <canvas> API to display something on the page, but the user will be asked if the website should be allowed to use the readout API each time it is called.</li>
|
||||
<li>block everything: Ignore all lists and block the <canvas> API on all websites.</li>
|
||||
<li>allow only white list: Only websites in the white list are allowed to use the <canvas> API.</li>
|
||||
<li>ask for permission: If a website is not listed on the white list or black list, the user will be asked if the website should be allowed to use the <canvas> API each time it is called.</li>
|
||||
<li>block only black list: Block the <canvas> API only for websites on the black list.</li>
|
||||
<li>allow everything: Ignore all lists and allow the <canvas> API on all websites.</li>
|
||||
</ul>
|
||||
|
||||
Firefox's native PDF reader uses the <canvas> API to display PDF content, so blocking it for MIME-content type of "*/pdf" will prevent the PDF reader from working. Therefore, the <canvas> API is enabled for PDFs by default, but it can be disabled without affecting the block mode setting.
|
||||
|
||||
At present, only my domain (kkapsner.de) is whitelisted by default.
|
||||
|
||||
Please report issues and feature requests at https://github.com/kkapsner/CanvasBlocker/issues
|
||||
|
||||
A highly experimental version for Android is available at https://github.com/kkapsner/CanvasBlocker/tree/android
|
71
browserAction/browserAction.css
Normal file
|
@ -0,0 +1,71 @@
|
|||
body {
|
||||
padding: 0.5em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.action .icon {
|
||||
vertical-align: text-bottom;
|
||||
height: 19px;
|
||||
width: 19px;
|
||||
margin-right: 0.25em;
|
||||
background-color: currentColor;
|
||||
mask-size: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.action.search {
|
||||
padding-left: calc(0.5em + 19px + 0.25em);
|
||||
}
|
||||
|
||||
#headerActions {
|
||||
display: grid;
|
||||
grid-template-columns: 0.5fr 50px 0.5fr;
|
||||
grid-template-rows: auto;
|
||||
}
|
||||
|
||||
#addonStatus {
|
||||
grid-row: 1 / 2;
|
||||
grid-column: 2 / 3;
|
||||
border: none;
|
||||
display: block;
|
||||
margin: 5px auto;
|
||||
width: 40px;
|
||||
min-width: 0;
|
||||
height: 40px;
|
||||
background: none;
|
||||
background-position: 50%;
|
||||
background-size: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#addonStatus.unknown {
|
||||
background-image: radial-gradient(black, rgba(0, 0, 0, 0), transparent);;
|
||||
}
|
||||
#addonStatus.off {
|
||||
background-image: url(../icons/browserAction-CBoff.svg);
|
||||
}
|
||||
#addonStatus.on {
|
||||
background-image: url(../icons/browserAction-CBon.svg);
|
||||
}
|
||||
|
||||
#reload {
|
||||
grid-row: 1 / 2;
|
||||
grid-column: 3 / 4;
|
||||
cursor: pointer;
|
||||
height: 19px;
|
||||
width: 19px;
|
||||
align-self: center;
|
||||
justify-self: left;
|
||||
margin-left: 1em;
|
||||
background-color: currentColor;
|
||||
mask-size: 100%;
|
||||
mask-image: url(../icons/browserAction-reload.svg);
|
||||
}
|
||||
|
||||
#reload.hidden {
|
||||
display: none;
|
||||
}
|
26
browserAction/browserAction.html
Normal file
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CanvasBlocker browser action</title>
|
||||
<link href="browserAction.css" rel="stylesheet" type="text/css">
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
<body>
|
||||
<div id="headerActions">
|
||||
<button id="addonStatus" class="undefined"></button>
|
||||
<div id="reload" class="hidden"></div>
|
||||
</div>
|
||||
<div id="actions" class="stackedInputs"></div>
|
||||
<div id="version" class="versionDisplay"></div>
|
||||
<script src="../lib/require.js"></script>
|
||||
<script src="../lib/logging.js"></script>
|
||||
<script src="../lib/extension.js"></script>
|
||||
<script src="../lib/settingDefinitions.js"></script>
|
||||
<script src="../lib/settingContainers.js"></script>
|
||||
<script src="../lib/settings.js"></script>
|
||||
<script src="../lib/lists.js"></script>
|
||||
<script src="../lib/theme.js"></script>
|
||||
<script src="browserAction.js"></script>
|
||||
</body>
|
||||
</html>
|
171
browserAction/browserAction.js
Normal file
|
@ -0,0 +1,171 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
const extension = require("../lib/extension");
|
||||
const logging = require("../lib/logging");
|
||||
const settings = require("../lib/settings");
|
||||
const settingContainers = require("../lib/settingContainers");
|
||||
const lists = require("../lib/lists");
|
||||
require("../lib/theme").init();
|
||||
logging.message("Opened browser action");
|
||||
|
||||
|
||||
browser.tabs.query({active: true, currentWindow: true}).then(async function([currentTab]){
|
||||
function isWhitelisted(url){
|
||||
if (!(url instanceof URL)){
|
||||
url = new URL(url);
|
||||
}
|
||||
return lists.get("white").match(url) ||
|
||||
settings.get("blockMode", url).startsWith("allow");
|
||||
}
|
||||
|
||||
const currentURL = new URL(currentTab.url);
|
||||
const reloadButton = document.getElementById("reload");
|
||||
reloadButton.addEventListener("click", async function(){
|
||||
await browser.tabs.reload(currentTab.id, {bypassCache: true});
|
||||
window.close();
|
||||
});
|
||||
const addonStatus = document.getElementById("addonStatus");
|
||||
addonStatus.addEventListener("click", async function(){
|
||||
reloadButton.classList.toggle("hidden");
|
||||
if (isWhitelisted(currentURL)){
|
||||
settingContainers.resetUrlValue("blockMode", currentURL);
|
||||
if (settings.get("blockMode").startsWith("allow")){
|
||||
settings.set("blockMode", "fake", currentURL.host);
|
||||
}
|
||||
if (settings.get("blockDataURLs")){
|
||||
settingContainers.resetUrlValue("blockDataURLs", currentURL);
|
||||
}
|
||||
const entries = lists.get("white").filter(e => e.match(currentURL)).map(e => e.value);
|
||||
await Promise.all([
|
||||
lists.removeFrom("white", entries),
|
||||
lists.removeFrom("sessionWhite", entries)
|
||||
]);
|
||||
}
|
||||
else {
|
||||
settings.set("blockMode", "allowEverything", currentURL.hostname);
|
||||
if (settings.get("blockDataURLs")){
|
||||
settings.set("blockDataURLs", false, currentURL.hostname);
|
||||
}
|
||||
}
|
||||
update();
|
||||
});
|
||||
function update(){
|
||||
if (isWhitelisted(currentURL)){
|
||||
addonStatus.className = "off";
|
||||
addonStatus.title = extension.getTranslation("browserAction_status_off");
|
||||
}
|
||||
else {
|
||||
addonStatus.className = "on";
|
||||
addonStatus.title = extension.getTranslation("browserAction_status_on");
|
||||
}
|
||||
}
|
||||
return settings.onloaded(update);
|
||||
}).catch(function(){});
|
||||
|
||||
const actionDefinitions = [
|
||||
{
|
||||
label: "settings",
|
||||
icon: extension.getURL("icons/pageAction-showOptions.svg"),
|
||||
action: function(){
|
||||
if (browser.runtime && browser.runtime.openOptionsPage){
|
||||
browser.runtime.openOptionsPage();
|
||||
}
|
||||
else {
|
||||
browser.tabs.create({url: extension.getURL("options/options.html")});
|
||||
}
|
||||
window.close();
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "faq",
|
||||
icon: extension.getURL("icons/browserAction-faq.svg"),
|
||||
action: function(){
|
||||
browser.tabs.create({url: "https://canvasblocker.kkapsner.de/faq/"});
|
||||
window.close();
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "test",
|
||||
advanced: true,
|
||||
icon: extension.getURL("icons/browserAction-test.svg"),
|
||||
action: function(){
|
||||
browser.tabs.create({url: "https://canvasblocker.kkapsner.de/test"});
|
||||
window.close();
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "review",
|
||||
icon: extension.getURL("icons/browserAction-review.svg"),
|
||||
action: function(){
|
||||
browser.tabs.create({url: "https://addons.mozilla.org/firefox/addon/canvasblocker/reviews/"});
|
||||
window.close();
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "reportIssue",
|
||||
icon: extension.getURL("icons/browserAction-reportIssue.svg"),
|
||||
action: function(){
|
||||
browser.tabs.create({url: "https://github.com/kkapsner/CanvasBlocker/issues"});
|
||||
window.close();
|
||||
}
|
||||
},
|
||||
];
|
||||
settings.onloaded(async function(){
|
||||
const actions = document.getElementById("actions");
|
||||
actionDefinitions.forEach(function(action){
|
||||
logging.verbose("Action", action);
|
||||
if (action.advanced && !settings.displayAdvancedSettings){
|
||||
logging.verbose("Hiding advanced action");
|
||||
return;
|
||||
}
|
||||
const actionButton = document.createElement("button");
|
||||
actionButton.className = "action";
|
||||
|
||||
const icon = document.createElement("span");
|
||||
icon.className = "icon";
|
||||
function setIcon(url){
|
||||
icon.style.maskImage = "url(" + url + ")";
|
||||
}
|
||||
setIcon(action.icon);
|
||||
|
||||
actionButton.appendChild(icon);
|
||||
|
||||
const textNode = document.createTextNode("");
|
||||
function setLabel(label){
|
||||
textNode.nodeValue = extension.getTranslation("browserAction_" + label) || label;
|
||||
}
|
||||
setLabel(action.label);
|
||||
|
||||
actionButton.appendChild(textNode);
|
||||
actionButton.addEventListener("click", function(){
|
||||
action.action.call(this, {setIcon, setLabel});
|
||||
});
|
||||
actions.appendChild(actionButton);
|
||||
});
|
||||
|
||||
const search = document.createElement("input");
|
||||
search.placeholder = extension.getTranslation("search");
|
||||
search.className = "search action";
|
||||
actions.appendChild(search);
|
||||
search.focus();
|
||||
|
||||
search.addEventListener("keypress", function(event){
|
||||
if ([10, 13].indexOf(event.keyCode) !== -1){
|
||||
browser.tabs.create({url: extension.getURL(
|
||||
"options/options.html" +
|
||||
"?search=" +
|
||||
encodeURIComponent(this.value)
|
||||
)});
|
||||
window.close();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
window.addEventListener("load", async function(){
|
||||
extension.displayVersion("version", 250);
|
||||
});
|
||||
}());
|
8
crowdin.yml
Normal file
|
@ -0,0 +1,8 @@
|
|||
files:
|
||||
- source: /_locales/en/*.json
|
||||
translation: /_locales/%two_letters_code%/%original_file_name%
|
||||
languages_mapping:
|
||||
two_letters_code:
|
||||
zh-CN: zh_CN
|
||||
pt-BR: pt_BR
|
||||
zh-TW: zh_TW
|
322
data/inject.js
|
@ -1,322 +0,0 @@
|
|||
/* global self, window, CanvasRenderingContext2D, WebGLRenderingContext, console, unsafeWindow, exportFunction, cloneInto, checkURL, getDomainRegExpList */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
var settings = {
|
||||
showCallingFile: false,
|
||||
showCompleteCallingStack: false
|
||||
};
|
||||
var blockMode = {
|
||||
getContext: {
|
||||
name: "getContext",
|
||||
status: "block",
|
||||
askText: {
|
||||
visible: "askForVisiblePermission",
|
||||
invisible: "askForInvisiblePermission",
|
||||
nocanvas: "askForPermission"
|
||||
},
|
||||
askStatus: {
|
||||
askOnce: false,
|
||||
alreadyAsked: {},
|
||||
answer: {}
|
||||
}
|
||||
},
|
||||
readAPI: {
|
||||
name: "readAPI",
|
||||
status: "allow",
|
||||
askText: {
|
||||
visible: "askForVisibleReadoutPermission",
|
||||
invisible: "askForInvisibleReadoutPermission",
|
||||
nocanvas: "askForReadoutPermission"
|
||||
},
|
||||
askStatus: {
|
||||
askOnce: false,
|
||||
alreadyAsked: {},
|
||||
answer: {}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var undef;
|
||||
var randomImage = (function(){
|
||||
var length = Math.floor(20 + Math.random() * 100);
|
||||
var bytes = "";
|
||||
for (var i = 0; i < length; i += 1){
|
||||
bytes += String.fromCharCode(Math.floor(Math.random() * 256));
|
||||
}
|
||||
return bytes;
|
||||
}());
|
||||
|
||||
|
||||
// Stack parsing
|
||||
function parseStackEntry(entry){
|
||||
var m = /@(.*):(\d*):(\d*)$/.exec(entry) || ["", entry, "--", "--"];
|
||||
return {
|
||||
url: m[1],
|
||||
line: m[2],
|
||||
column: m[3],
|
||||
raw: entry
|
||||
};
|
||||
}
|
||||
|
||||
// parse calling stack
|
||||
function errorToCallingStackMsg(error){
|
||||
var msg = "";
|
||||
var callers = error.stack.trim().split("\n");
|
||||
//console.log(callers);
|
||||
var findme = callers.shift(); // Remove us from the stack
|
||||
findme = findme.replace(/(:[0-9]+){1,2}$/, ""); // rm line & column
|
||||
// Eliminate squashed stack. stack may contain 2+ stacks, but why...
|
||||
var inDoubleStack = false;
|
||||
callers = callers.filter(function(caller){
|
||||
var doubleStackStart = caller.search(findme) !== -1;
|
||||
inDoubleStack = inDoubleStack || doubleStackStart;
|
||||
return !inDoubleStack;
|
||||
});
|
||||
msg += "\n\n" + _("sourceOutput") + ": ";
|
||||
if (settings.showCompleteCallingStack){
|
||||
msg += callers.reduce(function(stack, c){
|
||||
return stack + "\n\t" + _("stackEntryOutput", parseStackEntry(c));
|
||||
}, "");
|
||||
}
|
||||
else{
|
||||
msg += _("stackEntryOutput", parseStackEntry(callers[0]));
|
||||
}
|
||||
|
||||
return msg;
|
||||
}
|
||||
|
||||
// Check canvas appearance
|
||||
function canvasAppearance(context){
|
||||
var oldBorder = false;
|
||||
var canvas = false;
|
||||
var inDOM = null;
|
||||
if (context){
|
||||
if (context.nodeName === "CANVAS"){
|
||||
canvas = context;
|
||||
}
|
||||
else if (
|
||||
context instanceof CanvasRenderingContext2D ||
|
||||
context instanceof WebGLRenderingContext
|
||||
){
|
||||
canvas = context.canvas;
|
||||
}
|
||||
}
|
||||
if (canvas){
|
||||
oldBorder = canvas.style.border;
|
||||
canvas.style.border = "2px solid red";
|
||||
inDOM = canvas.ownerDocument.contains(canvas);
|
||||
}
|
||||
return {
|
||||
canvas: canvas,
|
||||
askCategory: canvas? (inDOM? "visible": "invisible"): "nocanvas",
|
||||
get text(){
|
||||
var text = canvas? (this.visible? "visible": "invisible"): "nocanvas";
|
||||
Object.defineProperty(this, "text", {value: text});
|
||||
return text;
|
||||
},
|
||||
inDom: inDOM,
|
||||
get visible(){
|
||||
var visible = inDOM;
|
||||
if (inDOM){
|
||||
canvas.scrollIntoView();
|
||||
var rect = canvas.getBoundingClientRect();
|
||||
var foundEl = document.elementFromPoint(rect.left + rect.width / 2, rect.top + rect.height / 2);
|
||||
visible = (foundEl === canvas);
|
||||
}
|
||||
Object.defineProperty(this, "visible", {value: visible});
|
||||
return visible;
|
||||
},
|
||||
reset: function(){
|
||||
if (canvas){
|
||||
canvas.style.border = oldBorder;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// changed functions and their fakes
|
||||
var changedFunctions = {
|
||||
getContext: {
|
||||
mode: blockMode.getContext,
|
||||
object: unsafeWindow.HTMLCanvasElement
|
||||
},
|
||||
toDataURL: {
|
||||
mode: blockMode.readAPI,
|
||||
object: unsafeWindow.HTMLCanvasElement,
|
||||
fake: function(){
|
||||
var type = arguments[0] || "image/png";
|
||||
return "data:" + type + ";base64," + btoa(randomImage);
|
||||
}
|
||||
},
|
||||
toBlob: {
|
||||
mode: blockMode.readAPI,
|
||||
object: unsafeWindow.HTMLCanvasElement,
|
||||
fake: function(callback){
|
||||
var type = arguments[0] || "image/png";
|
||||
var blob = new window.Blob(randomImage, {type: type});
|
||||
callback(blob);
|
||||
},
|
||||
exportOptions: {allowCallbacks: true}
|
||||
},
|
||||
mozGetAsFile: {
|
||||
mode: blockMode.readAPI,
|
||||
object: unsafeWindow.HTMLCanvasElement
|
||||
},
|
||||
getImageData: {
|
||||
mode: blockMode.readAPI,
|
||||
object: unsafeWindow.CanvasRenderingContext2D,
|
||||
fake: function(sx, sy, sw, sh){
|
||||
var l = sw * sh * 4;
|
||||
var data = new Uint8ClampedArray(l);
|
||||
for (var i = 0; i < l; i += 1){
|
||||
data[i] = Math.floor(
|
||||
Math.random() * 256
|
||||
);
|
||||
}
|
||||
var imageData = new window.ImageData(sw, sh);
|
||||
imageData.data.set(cloneInto(data, unsafeWindow));
|
||||
return imageData;
|
||||
}
|
||||
},
|
||||
readPixels: {
|
||||
mode: blockMode.readAPI,
|
||||
object: unsafeWindow.WebGLRenderingContext,
|
||||
fake: function(x, y, width, height, format, type, pixels){
|
||||
// fake not working due to XRay copy restrictions...
|
||||
// for (var i = 0; i < pixels.length; i += 1){
|
||||
// pixels[i] = Math.floor(
|
||||
// Math.random() * 256
|
||||
// );
|
||||
// }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// do the replacements
|
||||
Object.keys(changedFunctions).forEach(function(name){
|
||||
var changedFunction = changedFunctions[name];
|
||||
var original = changedFunction.object.prototype[name];
|
||||
var fake = changedFunction.fake?
|
||||
exportFunction(
|
||||
changedFunction.fake,
|
||||
unsafeWindow,
|
||||
changedFunction.exportOptions
|
||||
):
|
||||
undef;
|
||||
Object.defineProperty(
|
||||
changedFunction.object.prototype,
|
||||
name,
|
||||
{
|
||||
enumerable: true,
|
||||
configureable: false,
|
||||
get: exportFunction(function(){
|
||||
var status = changedFunction.mode.status;
|
||||
var callingStackMsg = errorToCallingStackMsg(new Error());
|
||||
if (status === "ask"){
|
||||
var askStatus = changedFunction.mode.askStatus;
|
||||
var appearance = canvasAppearance(this);
|
||||
if (askStatus.askOnce && askStatus.alreadyAsked[appearance.askCategory]){
|
||||
// already asked
|
||||
status = askStatus.answer[appearance.askCategory];
|
||||
}
|
||||
else {
|
||||
// asking
|
||||
var msg = _(changedFunction.mode.askText[appearance.text]);
|
||||
if (settings.showCallingFile){
|
||||
msg += callingStackMsg;
|
||||
}
|
||||
status = window.confirm(msg) ? "allow": "block";
|
||||
askStatus.alreadyAsked[appearance.text] = true;
|
||||
askStatus.answer[appearance.text] = status;
|
||||
appearance.reset();
|
||||
}
|
||||
}
|
||||
self.port.emit("accessed " + changedFunction.mode.name, status, callingStackMsg);
|
||||
switch (status){
|
||||
case "allow":
|
||||
return original;
|
||||
case "fake":
|
||||
return fake;
|
||||
//case "block":
|
||||
default:
|
||||
return undef;
|
||||
}
|
||||
}, unsafeWindow)
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
// Translation
|
||||
var _ = function(name, replace){
|
||||
var str = self.options.translations[name] || name;
|
||||
if (replace){
|
||||
// replace generic content in the transation by given parameter
|
||||
Object.keys(replace).forEach(function(name){
|
||||
str = str.replace(new RegExp("{" + name + "}", "g"), replace[name]);
|
||||
});
|
||||
}
|
||||
return str;
|
||||
};
|
||||
|
||||
// Communication with main.js
|
||||
|
||||
function setStatus(mode, askOnce){
|
||||
switch (mode){
|
||||
case "block":
|
||||
blockMode.getContext.status = "block";
|
||||
blockMode.readAPI.status = "block";
|
||||
break;
|
||||
case "ask":
|
||||
blockMode.getContext.status = "ask";
|
||||
blockMode.getContext.askStatus.askOnce = askOnce;
|
||||
blockMode.readAPI.status = "allow";
|
||||
break;
|
||||
case "blockReadout":
|
||||
blockMode.getContext.status = "allow";
|
||||
blockMode.readAPI.status = "block";
|
||||
break;
|
||||
case "fakeReadout":
|
||||
blockMode.getContext.status = "allow";
|
||||
blockMode.readAPI.status = "fake";
|
||||
break;
|
||||
case "askReadout":
|
||||
blockMode.getContext.status = "allow";
|
||||
blockMode.readAPI.status = "ask";
|
||||
blockMode.readAPI.askStatus.askOnce = askOnce;
|
||||
break;
|
||||
case "unblock":
|
||||
blockMode.getContext.status = "allow";
|
||||
blockMode.readAPI.status = "allow";
|
||||
break;
|
||||
case "detach":
|
||||
blockMode.getContext.status = "allow";
|
||||
blockMode.readAPI.status = "allow";
|
||||
break;
|
||||
}
|
||||
}
|
||||
["block", "ask", "blockReadout", "fakeReadout", "askReadout", "unblock", "detach"].forEach(function(mode){
|
||||
self.port.on(mode, function(askOnce){
|
||||
setStatus(mode, askOnce);
|
||||
});
|
||||
});
|
||||
|
||||
// initial status setting
|
||||
setStatus(
|
||||
checkURL(
|
||||
location,
|
||||
self.options.blockMode,
|
||||
getDomainRegExpList(self.options.whiteList),
|
||||
getDomainRegExpList(self.options.blackList)
|
||||
),
|
||||
self.options.askOnce
|
||||
);
|
||||
|
||||
// settings passthrough
|
||||
self.port.on("set", function(name, value){
|
||||
settings[name] = value;
|
||||
});
|
||||
}());
|
|
@ -1,16 +0,0 @@
|
|||
setting[pref-name="showNotifications"] {
|
||||
border-bottom: 0px transparent none;
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
setting[pref-name="ignoreList"]{
|
||||
border-top: 0px transparent none;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
setting[pref-name="showCallingFile"]{
|
||||
border-bottom: 0px transparent none;
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
setting[pref-name="showCompleteCallingStack"]{
|
||||
border-top: 0px transparent none;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
71
icons/.suggestions/Fingerprint.svg
Normal file
After Width: | Height: | Size: 9.6 KiB |
77
icons/.suggestions/acceptableIcon.svg
Normal file
After Width: | Height: | Size: 13 KiB |
71
icons/.suggestions/betterIcon.svg
Normal file
After Width: | Height: | Size: 11 KiB |
128
icons/.suggestions/gradientIcon.svg
Normal file
After Width: | Height: | Size: 15 KiB |
52
icons/.suggestions/notGoodIcon.svg
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
version="1.1"
|
||||
width="96"
|
||||
height="96"
|
||||
id="svg2">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0,-956.36218)"
|
||||
id="layer1">
|
||||
<path
|
||||
d="m 47.25,8.375 c -21.815247,0 -39.5,17.684752 -39.5,39.5 0,21.815248 17.684753,39.5 39.5,39.5 21.815247,0 39.5,-17.684752 39.5,-39.5 0,-21.815248 -17.684753,-39.5 -39.5,-39.5 z m 0,10 c 16.2924,0 29.5,13.207599 29.5,29.5 0,16.292401 -13.2076,29.5 -29.5,29.5 -16.2924,0 -29.5,-13.207599 -29.5,-29.5 0,-16.292401 13.2076,-29.5 29.5,-29.5 z"
|
||||
transform="translate(0,956.36218)"
|
||||
id="path2987"
|
||||
style="fill:#fa1111;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
<path
|
||||
d="m 44.464287,38.32143 c -0.528244,1.28032 -1.986463,-0.0804 -2.127976,-0.877976 -0.383493,-2.161389 2.018697,-3.533412 3.883928,-3.377976 3.336463,0.278038 5.191474,3.831534 4.627976,6.889881 -0.826956,4.488248 -5.66381,6.88442 -9.895834,5.877976 C 35.31176,45.491904 32.361009,39.331022 33.824406,33.931549 35.665942,27.136862 43.168023,23.62615 49.732145,25.553573 57.682175,27.88794 61.755631,36.740041 59.36012,44.467264 56.537093,53.57353 46.329844,58.211385 37.440476,55.34524 27.177349,52.036162 21.974023,40.470516 25.312501,30.419643 29.105892,18.999203 42.032123,13.229668 53.24405,17.041668 65.822137,21.318157 72.158413,35.606519 67.872025,47.97917 63.113322,61.715157 47.461695,68.618568 33.928571,63.857145"
|
||||
transform="translate(1.742814,962.60726)"
|
||||
id="path2985"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<rect
|
||||
width="69"
|
||||
height="9"
|
||||
rx="4.723"
|
||||
ry="4.723"
|
||||
x="738.05121"
|
||||
y="638.83063"
|
||||
transform="matrix(0.67533082,0.73751494,-0.73751494,0.67533082,0,0)"
|
||||
id="rect3795"
|
||||
style="fill:#fa1111;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
59
icons/.suggestions/notGoodPrinted.svg
Normal file
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
viewBox="0 0 38 38"
|
||||
width="38"
|
||||
height="38"
|
||||
id="svg2"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-printed.svg">
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="852"
|
||||
inkscape:window-height="555"
|
||||
id="namedview3829"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4583333"
|
||||
inkscape:cx="47.999999"
|
||||
inkscape:cy="47.999999"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2"
|
||||
showborder="true" />
|
||||
<defs
|
||||
id="defs4" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="path2985"
|
||||
d="m 17.561156,17.285201 c -0.394679,0.957248 -1.484191,-0.06011 -1.589923,-0.65643 -0.286528,-1.615991 1.508275,-2.641803 2.901887,-2.525589 2.492848,0.207879 3.878825,2.864697 3.457805,5.151311 -0.617862,3.355698 -4.231731,5.147228 -7.393699,4.394746 C 10.72282,22.646301 8.518158,18.040036 9.61154,14.003048 10.987448,8.9229111 16.592649,6.2980809 21.497051,7.7391441 c 5.939887,1.7453204 8.98338,8.3637109 7.193568,14.1410709 -2.109233,6.80842 -9.735607,10.275974 -16.377323,8.133063 C 4.6451732,27.539202 0.7574939,18.891994 3.2518469,11.377326 6.0860892,2.8386827 15.743958,-1.4749865 24.12098,1.3751058 33.518733,4.5724794 38.252899,15.255362 35.050312,24.505938 31.494834,34.775831 19.800678,39.937257 9.689367,36.377316" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
110
icons/.suggestions/pageAction-printed-recognizable.svg
Normal file
After Width: | Height: | Size: 14 KiB |
110
icons/browserAction-CBoff.svg
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1"
|
||||
id="svg2" inkscape:version="0.92.2 2405546, 2018-03-11" sodipodi:docname="browserAction-whitelisted.svg" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="96px" height="96px"
|
||||
viewBox="0 0 96 96" enable-background="new 0 0 96 96" xml:space="preserve">
|
||||
<sodipodi:namedview id="namedview9" inkscape:pageshadow="2" inkscape:window-width="1600" inkscape:window-height="841" inkscape:current-layer="svg2" inkscape:window-x="0" inkscape:window-y="0" inkscape:pageopacity="0" gridtolerance="10" inkscape:cx="-19.539638" objecttolerance="10" inkscape:zoom="3.4766083" borderopacity="1" showgrid="false" bordercolor="#666666" guidetolerance="10" pagecolor="#ffffff" inkscape:cy="53.605992" inkscape:window-maximized="1">
|
||||
</sodipodi:namedview>
|
||||
<path id="rect3826" fill="#F5F5F5" d="M23.808,2h48.385C84.236,2,94,11.764,94,23.808v48.385C94,84.236,84.236,94,72.191,94H23.808
|
||||
C11.764,94,2,84.236,2,72.191V23.808C2,11.764,11.764,2,23.808,2z"/>
|
||||
<path id="path4138" inkscape:connector-curvature="0" fill="#5C5C5C" d="M30.141,82.826c0.456,0.027,1.107-0.164,1.411-0.412
|
||||
c0.139-0.113,0.567-0.551,0.953-0.971c1.881-2.055,3.544-2.898,4.942-2.512c1.059,0.295,2.344,2.311,3.471,5.438
|
||||
c0.671,1.862,1.018,2.272,2.078,2.461c0.646,0.106,1.577-0.211,1.949-0.677c0.786-0.982,0.744-1.581-0.297-4.195
|
||||
c-1.14-2.859-2.118-4.486-3.483-5.796c-0.557-0.533-0.688-0.608-1.792-1.093c-1.115-0.48-1.25-0.521-2.083-0.574
|
||||
c-1.22-0.079-1.971,0.035-3.196,0.482c-1.626,0.603-3.177,1.717-4.734,3.402c-0.836,0.906-1.096,1.307-1.206,1.854
|
||||
C27.903,81.493,28.871,82.75,30.141,82.826z M22.995,76.758c0.63-0.013,2.712-0.607,4.185-1.197c2.96-1.186,5.259-2.843,6.942-5.006
|
||||
c1.732-2.223,2.766-5.514,2.534-8.063c-0.14-1.537-1.171-2.426-2.56-2.204c-1.155,0.185-1.846,1.142-1.794,2.487
|
||||
c0.05,1.305-0.112,2.123-0.675,3.406c-0.385,0.877-0.617,1.291-0.996,1.769c-0.619,0.78-1.767,1.784-2.752,2.403
|
||||
c-0.96,0.604-3.115,1.506-4.52,1.896c-1.711,0.474-2.105,0.747-2.419,1.679C20.476,75.309,21.548,76.785,22.995,76.758
|
||||
L22.995,76.758z M51.635,88.271c0.777,0.125,1.611-0.181,2.063-0.742c0.357-0.449,0.572-1.219,0.482-1.725
|
||||
c-0.047-0.264-0.535-1.229-1.246-2.457C47.646,74.152,43.52,64.589,41.913,57.8c-0.611-2.579-0.907-5.196-0.801-7.098
|
||||
c0.148-2.679,0.969-4.377,2.944-6.095c1.762-1.532,3.848-1.911,5.826-1.057c1.743,0.751,3.076,2.407,3.571,4.432
|
||||
c0.115,0.471,0.252,1.868,0.331,3.375c0.401,7.607,1.776,12.148,5.877,19.398c1.379,2.438,4.983,8.372,5.26,8.658
|
||||
c0.401,0.418,1.349,0.727,1.919,0.621c1.196-0.217,2.012-1.457,1.729-2.645c-0.047-0.197-0.654-1.31-1.354-2.465
|
||||
c-4.361-7.22-5.924-10.104-7.027-13.035c-1.252-3.308-1.752-5.979-2.022-10.822c-0.16-2.871-0.322-3.906-0.828-5.317
|
||||
c-1.099-3.067-3.728-5.678-6.591-6.551c-2.245-0.684-4.219-0.622-6.348,0.198c-2.368,0.913-4.308,2.545-5.829,4.908
|
||||
c-0.639,0.992-1.221,2.44-1.507,3.751c-0.764,3.5-0.163,8.708,1.692,14.667c1.689,5.424,4.678,12.258,8.348,19.088
|
||||
c1.315,2.444,2.89,5.198,3.224,5.629C50.621,87.842,51.201,88.205,51.635,88.271L51.635,88.271z M16.767,68.199
|
||||
c1.446,0.063,3.005-0.068,4.184-0.352c3.642-0.882,7.026-3.611,9.745-7.875c1.634-2.563,2.318-4.521,3.509-10.057
|
||||
c1.172-5.442,2.109-7.967,3.715-10.011c1.779-2.264,4.521-3.784,7.851-4.353c2.52-0.429,4.891-0.146,7.23,0.864
|
||||
c2.353,1.015,4.129,2.524,5.588,4.745c1.854,2.821,2.699,5.881,2.933,10.604c0.065,1.353,0.201,2.918,0.307,3.479
|
||||
c0.688,3.884,2.863,8.895,5.92,13.621c0.916,1.419,1.207,1.744,1.771,1.988c1.646,0.711,3.463-0.881,2.918-2.563
|
||||
c-0.076-0.231-0.453-0.908-0.842-1.498c-2.794-4.276-4.837-8.867-5.479-12.313c-0.08-0.438-0.163-1.318-0.185-1.963
|
||||
c-0.133-4.199-0.59-6.895-1.646-9.699c-1.692-4.485-4.479-7.75-8.464-9.903c-3.773-2.044-8.651-2.458-13.146-1.115
|
||||
c-5.404,1.616-9.096,5.196-11.024,10.692c-0.607,1.731-1.005,3.23-1.692,6.383c-0.791,3.628-1.068,4.646-1.708,6.272
|
||||
c-0.496,1.265-0.673,1.619-1.226,2.455c-1.98,2.989-3.854,4.75-5.994,5.623c-1.19,0.48-2.282,0.647-4.036,0.611
|
||||
c-1.452-0.027-1.799,0.037-2.299,0.449c-0.739,0.607-1,1.592-0.647,2.441C14.468,67.754,15.168,68.129,16.767,68.199z M59.887,85.92
|
||||
c0.512-0.016,0.977-0.203,1.449-0.588c0.332-0.27,0.672-1.158,0.635-1.663c-0.039-0.546-0.158-0.802-1.128-2.423
|
||||
c-4.798-8.023-8.554-16.719-10.219-23.664c-0.656-2.736-0.978-4.822-1.11-7.225c-0.078-1.395-0.127-1.67-0.354-2.042
|
||||
c-0.219-0.346-0.375-0.48-0.848-0.716c-0.381-0.191-0.708-0.283-0.942-0.294c-1.189-0.013-2.147,0.904-2.231,2.132
|
||||
c-0.043,0.636,0.108,2.902,0.277,4.158c1.131,8.401,5.262,19.021,11.536,29.646c0.567,0.964,1.172,1.891,1.34,2.059
|
||||
C58.714,85.734,59.246,85.938,59.887,85.92L59.887,85.92z M14.583,61.125c0.586-0.031,2.742-0.874,4.285-1.674
|
||||
c1.912-0.99,3.742-2.354,4.875-3.629c0.981-1.105,1.427-1.824,2.097-3.387c0.732-1.707,0.892-2.229,2.144-7.027
|
||||
c1.272-4.877,1.599-5.944,2.381-7.763c0.754-1.753,1.157-2.384,2.252-3.528c0.693-0.725,2.023-1.881,2.895-2.519
|
||||
c2.495-1.823,5.927-3.274,8.839-3.737c6.736-1.071,14.553,1.754,18.793,6.792c1.271,1.517,2.273,3.206,3.144,5.3
|
||||
c1,2.419,1.549,4.663,2.187,8.936c0.336,2.241,0.695,3.818,1.256,5.479c0.899,2.672,2.705,5.885,3.646,6.496
|
||||
c0.739,0.479,1.938,0.368,2.604-0.236c0.18-0.161,0.406-0.493,0.521-0.754c0.354-0.813,0.248-1.536-0.35-2.337
|
||||
c-0.592-0.796-1.432-2.38-1.93-3.637c-0.8-2.012-1.113-3.368-1.652-7.07c-0.938-6.443-2.918-11.259-6.196-15.068
|
||||
c-2.198-2.553-4.604-4.357-7.858-5.901c-5.721-2.709-11.805-3.296-17.592-1.696c-4.545,1.257-9.443,4.404-12.359,7.941
|
||||
c-0.997,1.21-1.276,1.7-2.223,3.907c-1.008,2.352-1.2,2.962-2.501,7.973c-1.507,5.809-2,7.213-2.963,8.454
|
||||
c-1.16,1.496-3.207,2.865-6.102,4.084c-1.705,0.722-2.043,0.949-2.319,1.588C11.812,59.604,12.948,61.215,14.583,61.125
|
||||
L14.583,61.125z M16.24,52.795c0.483,0.055,1.019-0.072,1.441-0.348c0.606-0.393,0.871-0.975,1.224-2.689
|
||||
c1.364-6.627,3.764-12.456,6.843-16.617c0.599-0.81,0.96-1.228,1.792-2.076c1.003-1.021,1.213-1.806,0.752-2.811
|
||||
c-0.614-1.339-2.258-1.645-3.459-0.643c-0.925,0.771-2.451,2.626-3.626,4.407c-2.578,3.906-4.743,9.102-6.082,14.591
|
||||
c-0.455,1.863-0.815,3.732-0.801,4.146C14.359,51.752,15.23,52.678,16.24,52.795L16.24,52.795z M77.986,50.193
|
||||
c0.961,0.14,1.797-0.314,2.26-1.229c0.326-0.641,0.309-1-0.189-3.746c-0.914-5.066-2.465-10.016-4.086-13.047
|
||||
c-2.645-4.948-6.426-8.803-11.617-11.844c-1.438-0.847-4.939-2.44-6.442-2.938c-6.185-2.042-12.656-2.134-19.49-0.278
|
||||
c-2.937,0.798-7.896,2.919-9.62,4.115c-0.965,0.67-1.278,1.718-0.809,2.71c0.53,1.121,1.613,1.56,2.716,1.102
|
||||
c0.315-0.131,1.1-0.529,1.743-0.884c1.418-0.784,5.004-2.234,6.736-2.724c7.333-2.072,14.103-1.64,20.314,1.298
|
||||
c5.229,2.475,8.858,5.515,11.537,9.662c2.168,3.365,3.647,7.662,4.71,13.635c0.521,2.965,0.521,2.974,0.88,3.377
|
||||
C77.049,49.893,77.426,50.111,77.986,50.193L77.986,50.193z M81.521,35.5c1.049-0.005,1.99-0.758,2.176-1.744
|
||||
c0.117-0.623-0.105-1.528-0.82-3.338c-2.076-5.25-5.73-10.019-10.551-13.767c-4.316-3.356-9.973-5.997-15.771-7.365
|
||||
C52.813,8.404,48.351,8.09,44.511,8.44c-1.835,0.167-4.559,0.642-6.361,1.109c-1.521,0.395-2.014,0.709-2.351,1.499
|
||||
c-0.576,1.351,0.384,2.922,1.839,3.013c0.196,0.012,1.036-0.144,1.867-0.347c3.635-0.888,6.941-1.216,10.265-1.017
|
||||
c7.313,0.437,15.016,3.396,20.502,7.883c4.207,3.437,7.521,8.089,8.979,12.609c0.271,0.842,0.504,1.368,0.694,1.58
|
||||
C80.284,35.141,81.063,35.502,81.521,35.5L81.521,35.5z"/>
|
||||
<linearGradient id="rect3826-9_1_" gradientUnits="userSpaceOnUse" x1="-2884.5107" y1="2237.3203" x2="-2884.0027" y2="2328.032" gradientTransform="matrix(-1.0612 0 0 1 -3035.2104 -2234.4375)">
|
||||
<stop offset="0" style="stop-color:#808080;stop-opacity:0"/>
|
||||
<stop offset="0.6455" style="stop-color:#808080;stop-opacity:0.498"/>
|
||||
<stop offset="0.8787" style="stop-color:#808080"/>
|
||||
<stop offset="1" style="stop-color:#808080"/>
|
||||
</linearGradient>
|
||||
<path id="rect3826-9" inkscape:connector-curvature="0" opacity="0.6" fill="url(#rect3826-9_1_)" enable-background="new " d="
|
||||
M48,3v90H26.146C13.326,93,3,83.27,3,71.188V24.813C3,12.731,13.326,3,26.146,3H48z"/>
|
||||
<path id="rect3826-4" inkscape:connector-curvature="0" opacity="0.6" fill="#808080" enable-background="new " d="M71.188,3
|
||||
C83.27,3,93,12.731,93,24.813v46.375C93,83.27,83.27,93,71.188,93H48V3H71.188z"/>
|
||||
<path id="rect3826-0" fill="none" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d="M23.808,2
|
||||
h48.385C84.236,2,94,11.764,94,23.808v48.385C94,84.236,84.236,94,72.191,94H23.808C11.764,94,2,84.236,2,72.191V23.808
|
||||
C2,11.764,11.764,2,23.808,2z"/>
|
||||
<g id="Loeschen">
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M82.62,69.56c0,4.221-1.64,8.19-4.63,11.181c-2.98,2.979-6.95,4.63-11.181,4.63
|
||||
c-4.22,0-8.189-1.65-11.18-4.63C52.64,77.75,51,73.78,51,69.56c0-4.229,1.64-8.199,4.63-11.18c2.98-2.99,6.96-4.64,11.18-4.64
|
||||
c4.23,0,8.19,1.649,11.181,4.64c1.49,1.49,2.649,3.23,3.439,5.12C82.21,65.4,82.62,67.44,82.62,69.56z M76,64.61l-4.24-4.25
|
||||
l-4.95,4.949L61.86,60.37l-4.24,4.24l4.95,4.949l-4.95,4.95l4.24,4.24l4.949-4.95l4.95,4.95L76,74.51l-4.95-4.95L76,64.61z"/>
|
||||
<polygon fill="#FF0000" points="71.76,60.36 76,64.61 71.05,69.56 76,74.51 71.76,78.75 66.81,73.8 61.86,78.75 57.62,74.51
|
||||
62.57,69.56 57.62,64.61 61.86,60.37 66.81,65.31 "/>
|
||||
<path fill="#FF0000" d="M82.62,69.56c0-2.119-0.41-4.159-1.19-6.06c-0.79-1.89-1.949-3.63-3.439-5.12
|
||||
c-2.99-2.99-6.95-4.64-11.181-4.64c-4.22,0-8.199,1.649-11.18,4.64C52.64,61.36,51,65.33,51,69.56c0,4.221,1.64,8.19,4.63,11.181
|
||||
c2.99,2.979,6.96,4.63,11.18,4.63c4.23,0,8.2-1.65,11.181-4.63C80.98,77.75,82.62,73.78,82.62,69.56z M80.06,56.31
|
||||
c7.32,7.311,7.32,19.181,0,26.5C76.4,86.47,71.61,88.3,66.81,88.3c-4.79,0-9.59-1.83-13.25-5.49
|
||||
c-7.319-7.319-7.319-19.189,0-26.5c3.66-3.659,8.46-5.489,13.25-5.489C71.61,50.82,76.4,52.65,80.06,56.31z"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="none" stroke="#000000" stroke-width="0.5" stroke-linejoin="round" stroke-miterlimit="10" points="71.76,60.36
|
||||
66.81,65.31 61.86,60.37 57.62,64.61 62.57,69.56 57.62,74.51 61.86,78.75 66.81,73.8 71.76,78.75 76,74.51 71.05,69.56
|
||||
76,64.61 "/>
|
||||
<path fill="none" stroke="#000000" stroke-width="0.5" stroke-linejoin="round" stroke-miterlimit="10" d="M80.06,56.31
|
||||
C76.4,52.65,71.61,50.82,66.81,50.82c-4.79,0-9.59,1.83-13.25,5.489c-7.319,7.311-7.319,19.181,0,26.5
|
||||
c3.66,3.66,8.46,5.49,13.25,5.49c4.801,0,9.591-1.83,13.25-5.49C87.38,75.49,87.38,63.62,80.06,56.31z"/>
|
||||
<path fill="none" stroke="#000000" stroke-width="0.5" stroke-linejoin="round" stroke-miterlimit="10" d="M77.99,80.74
|
||||
c-2.98,2.979-6.95,4.63-11.181,4.63c-4.22,0-8.189-1.65-11.18-4.63C52.64,77.75,51,73.78,51,69.56c0-4.229,1.64-8.199,4.63-11.18
|
||||
c2.98-2.99,6.96-4.64,11.18-4.64c4.23,0,8.19,1.649,11.181,4.64c1.49,1.49,2.649,3.23,3.439,5.12c0.78,1.9,1.19,3.94,1.19,6.06
|
||||
C82.62,73.78,80.98,77.75,77.99,80.74z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 11 KiB |
105
icons/browserAction-CBon.svg
Normal file
|
@ -0,0 +1,105 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 15.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1"
|
||||
id="svg2" inkscape:version="0.92.2 2405546, 2018-03-11" sodipodi:docname="browserAction-notPrinted.svg" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="96px" height="96px"
|
||||
viewBox="0 0 96 96" enable-background="new 0 0 96 96" xml:space="preserve">
|
||||
<sodipodi:namedview id="namedview9" inkscape:pageshadow="2" inkscape:window-width="1600" inkscape:window-height="841" inkscape:current-layer="svg2" inkscape:window-x="0" inkscape:window-y="0" inkscape:pageopacity="0" gridtolerance="10" inkscape:cx="-39.24275" objecttolerance="10" inkscape:zoom="3.4766083" borderopacity="1" showgrid="false" bordercolor="#666666" guidetolerance="10" pagecolor="#ffffff" inkscape:cy="53.605992" inkscape:window-maximized="1">
|
||||
</sodipodi:namedview>
|
||||
<path id="rect3826" fill="#F5F5F5" d="M23.808,2h48.385C84.236,2,94,11.764,94,23.808v48.385C94,84.236,84.236,94,72.191,94H23.808
|
||||
C11.764,94,2,84.236,2,72.191V23.808C2,11.764,11.764,2,23.808,2z"/>
|
||||
<path id="path4138" inkscape:connector-curvature="0" fill="#5C5C5C" d="M30.141,82.826c0.456,0.027,1.107-0.164,1.411-0.412
|
||||
c0.139-0.113,0.567-0.551,0.953-0.971c1.881-2.055,3.544-2.898,4.942-2.512c1.059,0.295,2.344,2.311,3.471,5.439
|
||||
c0.671,1.863,1.018,2.273,2.078,2.461c0.646,0.107,1.577-0.211,1.949-0.676c0.786-0.983,0.744-1.582-0.297-4.196
|
||||
c-1.14-2.86-2.118-4.487-3.483-5.796c-0.557-0.533-0.688-0.609-1.792-1.092c-1.115-0.481-1.25-0.521-2.083-0.575
|
||||
c-1.22-0.079-1.971,0.035-3.196,0.483c-1.626,0.602-3.177,1.717-4.734,3.402c-0.836,0.906-1.096,1.307-1.206,1.854
|
||||
C27.903,81.493,28.871,82.75,30.141,82.826z M22.995,76.758c0.63-0.013,2.712-0.607,4.185-1.197c2.96-1.186,5.259-2.843,6.942-5.006
|
||||
c1.732-2.223,2.766-5.514,2.534-8.063c-0.14-1.537-1.171-2.426-2.56-2.204c-1.155,0.185-1.846,1.142-1.794,2.487
|
||||
c0.05,1.305-0.112,2.123-0.675,3.406c-0.385,0.877-0.617,1.291-0.996,1.769c-0.619,0.78-1.767,1.784-2.752,2.403
|
||||
c-0.96,0.604-3.115,1.506-4.52,1.896c-1.711,0.474-2.105,0.747-2.419,1.679C20.476,75.309,21.548,76.785,22.995,76.758
|
||||
L22.995,76.758z M51.635,88.271c0.777,0.125,1.611-0.18,2.063-0.742c0.357-0.449,0.572-1.219,0.482-1.725
|
||||
c-0.047-0.263-0.535-1.228-1.246-2.457C47.646,74.152,43.52,64.589,41.913,57.8c-0.611-2.579-0.907-5.196-0.801-7.098
|
||||
c0.148-2.679,0.969-4.377,2.944-6.095c1.762-1.532,3.848-1.911,5.826-1.057c1.743,0.751,3.076,2.407,3.571,4.432
|
||||
c0.115,0.471,0.252,1.868,0.331,3.375c0.401,7.608,1.776,12.149,5.877,19.399c1.379,2.438,4.983,8.372,5.26,8.658
|
||||
c0.401,0.418,1.349,0.726,1.919,0.621c1.196-0.216,2.012-1.457,1.729-2.644c-0.047-0.197-0.655-1.31-1.354-2.465
|
||||
c-4.362-7.22-5.924-10.104-7.028-13.035c-1.252-3.308-1.752-5.979-2.022-10.822c-0.16-2.872-0.322-3.907-0.828-5.318
|
||||
c-1.099-3.067-3.728-5.678-6.591-6.551c-2.245-0.684-4.219-0.622-6.348,0.198c-2.368,0.913-4.308,2.545-5.829,4.908
|
||||
c-0.639,0.992-1.221,2.44-1.507,3.751c-0.764,3.5-0.163,8.708,1.692,14.667c1.689,5.424,4.678,12.258,8.348,19.088
|
||||
c1.315,2.445,2.89,5.199,3.224,5.629C50.621,87.842,51.201,88.205,51.635,88.271L51.635,88.271z M16.767,68.199
|
||||
c1.446,0.063,3.005-0.068,4.184-0.352c3.642-0.881,7.026-3.611,9.745-7.875c1.634-2.563,2.318-4.521,3.509-10.056
|
||||
c1.172-5.442,2.109-7.967,3.715-10.011c1.779-2.264,4.521-3.784,7.851-4.352c2.52-0.429,4.891-0.146,7.23,0.864
|
||||
c2.353,1.015,4.129,2.524,5.588,4.745c1.854,2.821,2.699,5.881,2.933,10.603c0.065,1.353,0.201,2.918,0.306,3.479
|
||||
c0.688,3.884,2.864,8.895,5.92,13.621c0.916,1.419,1.207,1.744,1.771,1.988c1.646,0.711,3.463-0.881,2.918-2.563
|
||||
c-0.076-0.231-0.453-0.908-0.842-1.498c-2.793-4.276-4.836-8.867-5.479-12.313c-0.08-0.438-0.163-1.319-0.184-1.963
|
||||
c-0.133-4.199-0.59-6.895-1.646-9.699c-1.692-4.485-4.479-7.75-8.463-9.903c-3.774-2.044-8.652-2.458-13.146-1.115
|
||||
c-5.404,1.616-9.096,5.196-11.024,10.692c-0.607,1.731-1.005,3.23-1.692,6.383c-0.791,3.628-1.068,4.646-1.708,6.272
|
||||
c-0.496,1.265-0.673,1.619-1.226,2.455c-1.98,2.99-3.854,4.75-5.994,5.623c-1.19,0.481-2.282,0.648-4.036,0.612
|
||||
c-1.452-0.028-1.799,0.037-2.299,0.449c-0.739,0.608-1,1.592-0.647,2.442C14.468,67.754,15.168,68.129,16.767,68.199z M59.887,85.92
|
||||
c0.512-0.016,0.977-0.203,1.449-0.588c0.332-0.27,0.672-1.158,0.635-1.663c-0.039-0.546-0.158-0.802-1.128-2.423
|
||||
c-4.798-8.023-8.554-16.719-10.219-23.664c-0.656-2.736-0.978-4.822-1.11-7.225c-0.078-1.394-0.127-1.67-0.354-2.042
|
||||
c-0.219-0.346-0.375-0.48-0.848-0.716c-0.381-0.191-0.708-0.283-0.942-0.294c-1.189-0.013-2.147,0.904-2.231,2.133
|
||||
c-0.043,0.635,0.108,2.902,0.277,4.158c1.131,8.401,5.262,19.02,11.536,29.646c0.567,0.964,1.172,1.891,1.34,2.059
|
||||
C58.714,85.734,59.246,85.938,59.887,85.92L59.887,85.92z M14.583,61.125c0.586-0.031,2.742-0.874,4.285-1.674
|
||||
c1.912-0.99,3.742-2.354,4.875-3.629c0.981-1.105,1.427-1.824,2.097-3.387c0.732-1.707,0.892-2.229,2.144-7.027
|
||||
c1.272-4.877,1.599-5.944,2.381-7.763c0.754-1.753,1.157-2.384,2.252-3.528c0.693-0.725,2.023-1.881,2.895-2.519
|
||||
c2.495-1.823,5.927-3.274,8.839-3.737c6.736-1.071,14.553,1.754,18.793,6.792c1.272,1.517,2.274,3.206,3.144,5.3
|
||||
c1,2.419,1.549,4.663,2.187,8.936c0.336,2.241,0.695,3.818,1.256,5.479c0.899,2.672,2.705,5.885,3.646,6.496
|
||||
c0.739,0.479,1.938,0.368,2.604-0.236c0.179-0.161,0.406-0.493,0.521-0.754c0.354-0.813,0.248-1.536-0.35-2.337
|
||||
c-0.592-0.796-1.432-2.38-1.93-3.637c-0.799-2.012-1.113-3.368-1.652-7.07c-0.938-6.443-2.918-11.259-6.196-15.068
|
||||
c-2.198-2.553-4.604-4.357-7.858-5.901c-5.721-2.709-11.805-3.296-17.592-1.696c-4.545,1.257-9.443,4.404-12.359,7.941
|
||||
c-0.997,1.21-1.276,1.7-2.223,3.907c-1.008,2.352-1.2,2.962-2.501,7.973c-1.507,5.809-2,7.213-2.963,8.454
|
||||
c-1.16,1.496-3.207,2.865-6.102,4.084c-1.705,0.721-2.043,0.949-2.319,1.588C11.812,59.604,12.948,61.215,14.583,61.125
|
||||
L14.583,61.125z M16.24,52.795c0.483,0.055,1.019-0.072,1.441-0.348c0.606-0.393,0.871-0.975,1.224-2.689
|
||||
c1.364-6.627,3.764-12.456,6.843-16.617c0.599-0.81,0.96-1.228,1.792-2.076c1.003-1.021,1.213-1.806,0.752-2.811
|
||||
c-0.614-1.339-2.258-1.645-3.459-0.643c-0.925,0.771-2.451,2.626-3.626,4.407c-2.578,3.906-4.743,9.102-6.082,14.591
|
||||
c-0.455,1.863-0.815,3.732-0.801,4.146C14.359,51.752,15.23,52.678,16.24,52.795L16.24,52.795z M77.986,50.193
|
||||
c0.961,0.14,1.797-0.314,2.26-1.229c0.326-0.641,0.309-1-0.189-3.746c-0.914-5.066-2.465-10.016-4.086-13.047
|
||||
c-2.645-4.948-6.426-8.803-11.617-11.844c-1.439-0.847-4.94-2.44-6.443-2.938c-6.184-2.042-12.656-2.134-19.49-0.278
|
||||
c-2.937,0.798-7.896,2.919-9.62,4.115c-0.965,0.67-1.278,1.718-0.809,2.71c0.53,1.121,1.613,1.56,2.716,1.102
|
||||
c0.315-0.131,1.1-0.529,1.743-0.884c1.418-0.784,5.004-2.234,6.736-2.724c7.333-2.072,14.103-1.64,20.314,1.298
|
||||
c5.23,2.475,8.859,5.515,11.537,9.662c2.168,3.365,3.648,7.662,4.71,13.635c0.521,2.965,0.522,2.974,0.88,3.377
|
||||
C77.049,49.893,77.426,50.111,77.986,50.193L77.986,50.193z M81.521,35.5c1.049-0.005,1.99-0.758,2.176-1.744
|
||||
c0.117-0.623-0.105-1.528-0.82-3.338c-2.076-5.25-5.73-10.019-10.551-13.767c-4.316-3.356-9.973-5.997-15.771-7.365
|
||||
C52.813,8.404,48.351,8.09,44.511,8.44c-1.835,0.167-4.559,0.642-6.361,1.109c-1.521,0.395-2.014,0.709-2.351,1.499
|
||||
c-0.576,1.351,0.384,2.922,1.839,3.013c0.196,0.012,1.036-0.144,1.867-0.347c3.635-0.888,6.941-1.216,10.265-1.017
|
||||
c7.313,0.437,15.015,3.396,20.502,7.883c4.207,3.437,7.521,8.089,8.979,12.609c0.271,0.842,0.504,1.368,0.694,1.58
|
||||
C80.284,35.141,81.063,35.502,81.521,35.5L81.521,35.5z"/>
|
||||
<linearGradient id="rect3826-9_1_" gradientUnits="userSpaceOnUse" x1="-2392.2759" y1="-1420.481" x2="-2391.7678" y2="-1511.1927" gradientTransform="matrix(-1.0612 0 0 -1 -2512.8511 -1417.5977)">
|
||||
<stop offset="0" style="stop-color:#0050BF;stop-opacity:0"/>
|
||||
<stop offset="0.6455" style="stop-color:#0050BF;stop-opacity:0.498"/>
|
||||
<stop offset="0.8787" style="stop-color:#0050BF"/>
|
||||
<stop offset="1" style="stop-color:#0050BF"/>
|
||||
</linearGradient>
|
||||
<path id="rect3826-9" inkscape:connector-curvature="0" opacity="0.5" fill="url(#rect3826-9_1_)" enable-background="new " d="
|
||||
M48,3v90H26.146C13.326,93,3,83.27,3,71.188V24.813C3,12.731,13.326,3,26.146,3H48z"/>
|
||||
<path id="rect3826-4" inkscape:connector-curvature="0" opacity="0.5" fill="#004FBD" enable-background="new " d="M71.188,3
|
||||
C83.27,3,93,12.731,93,24.813v46.375C93,83.27,83.27,93,71.188,93H48V3H71.188z"/>
|
||||
<path id="rect3826-0" fill="none" stroke="#000000" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d="M23.808,2
|
||||
h48.385C84.236,2,94,11.764,94,23.808v48.385C94,84.236,84.236,94,72.191,94H23.808C11.764,94,2,84.236,2,72.191V23.808
|
||||
C2,11.764,11.764,2,23.808,2z"/>
|
||||
<g id="Haekchen">
|
||||
<g id="XMLID_1_">
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M78.01,58.39c6.16,6.17,6.16,16.19,0,22.36c-2.99,2.98-6.96,4.62-11.18,4.62s-8.19-1.64-11.17-4.62
|
||||
c-6.16-6.17-6.16-16.19,0-22.36c2.979-2.979,6.95-4.62,11.17-4.62S75.02,55.41,78.01,58.39z M77.78,65l-3.11-3.16l-10.4,8.63
|
||||
l-3.859-4.2l-4.271,4.28l8.04,8.04L77.78,65z"/>
|
||||
<polygon fill="#58E617" points="74.67,61.84 77.78,65 64.18,78.59 56.14,70.55 60.41,66.27 64.27,70.47 "/>
|
||||
<path fill="#58E617" d="M78.01,80.75c6.16-6.17,6.16-16.19,0-22.36c-2.99-2.979-6.96-4.62-11.18-4.62s-8.19,1.641-11.17,4.62
|
||||
c-6.16,6.17-6.16,16.19,0,22.36c2.979,2.98,6.95,4.62,11.17,4.62S75.02,83.73,78.01,80.75z M80.08,56.33
|
||||
c7.31,7.31,7.31,19.17,0,26.479c-3.66,3.66-8.46,5.49-13.25,5.49s-9.58-1.83-13.24-5.49c-7.32-7.31-7.32-19.17,0-26.479
|
||||
c3.66-3.66,8.45-5.49,13.24-5.49S76.42,52.67,80.08,56.33z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="none" stroke="#000000" stroke-width="0.5" stroke-linejoin="round" stroke-miterlimit="10" d="M80.08,56.33
|
||||
c-3.66-3.66-8.46-5.49-13.25-5.49s-9.58,1.83-13.24,5.49c-7.32,7.31-7.32,19.17,0,26.479c3.66,3.66,8.45,5.49,13.24,5.49
|
||||
s9.59-1.83,13.25-5.49C87.39,75.5,87.39,63.64,80.08,56.33z"/>
|
||||
<path fill="none" stroke="#000000" stroke-width="0.5" stroke-linejoin="round" stroke-miterlimit="10" d="M78.01,80.75
|
||||
c-2.99,2.98-6.96,4.62-11.18,4.62s-8.19-1.64-11.17-4.62c-6.16-6.17-6.16-16.19,0-22.36c2.979-2.979,6.95-4.62,11.17-4.62
|
||||
s8.189,1.641,11.18,4.62C84.17,64.56,84.17,74.58,78.01,80.75z"/>
|
||||
<polygon fill="none" stroke="#000000" stroke-width="0.5" stroke-linejoin="round" stroke-miterlimit="10" points="64.27,70.47
|
||||
60.41,66.27 56.14,70.55 64.18,78.59 77.78,65 74.67,61.84 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
100
icons/browserAction-faq.svg
Normal file
|
@ -0,0 +1,100 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="browserAction-faq.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.8685035"
|
||||
inkscape:cx="-5.5444943"
|
||||
inkscape:cy="22.071382"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
showguides="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3725" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#919191;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="M 19,0 C 8.5272756,0 0,8.5272748 0,19 0,29.472725 8.5272756,38 19,38 29.472724,38 38,29.472725 38,19 38,8.5272748 29.472724,0 19,0 Z m 0,3.5 c 8.581184,0 15.5,6.918815 15.5,15.5 0,8.581185 -6.918816,15.5 -15.5,15.5 C 10.418816,34.5 3.5,27.581185 3.5,19 3.5,10.418815 10.418816,3.5 19,3.5 Z"
|
||||
id="path819"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#bbbbbb;fill-opacity:1;stroke:none"
|
||||
x="10.982422"
|
||||
y="33.580078"
|
||||
id="text823"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan821"
|
||||
x="10.982422"
|
||||
y="68.970703"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:AkrutiMal2;-inkscape-font-specification:AkrutiMal2" /></text>
|
||||
<circle
|
||||
style="opacity:1;fill:#919191;fill-opacity:1;stroke:#bbbbbb;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path831"
|
||||
cx="19"
|
||||
cy="27.772472"
|
||||
r="3.9999993" />
|
||||
<path
|
||||
style="fill:none;stroke:#919191;stroke-width:6.30000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.290687,12.178281 c 0,0 2.914851,-4.0593089 6.314481,-4.0593088 3.382758,0 5.57748,1.9006158 5.750689,4.2848258 0.142504,1.961563 -3.177558,2.475312 -4.172068,4.172069 -0.770156,1.313982 -1.240343,2.139595 -1.240344,4.397584 l -1e-6,1.691379"
|
||||
id="path817"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="csaasc" />
|
||||
</svg>
|
After Width: | Height: | Size: 5.0 KiB |
117
icons/browserAction-notPrinted.svg
Normal file
After Width: | Height: | Size: 13 KiB |
117
icons/browserAction-printed.svg
Normal file
After Width: | Height: | Size: 13 KiB |
124
icons/browserAction-printedBlink.svg
Normal file
After Width: | Height: | Size: 13 KiB |
109
icons/browserAction-reload.svg
Normal file
|
@ -0,0 +1,109 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="browserAction-reload.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.8685035"
|
||||
inkscape:cx="0.62017228"
|
||||
inkscape:cy="22.044305"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
showguides="true"
|
||||
inkscape:pagecheckerboard="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3725" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
id="path819"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#919191;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="M 27.558376,2.036681 C 18.208263,-2.6806621 6.7540244,1.0915089 2.036681,10.441624 c -4.7173433,9.350114 -0.9451714,20.804352 8.404943,25.521695 9.350113,4.717343 20.804352,0.945172 25.521695,-8.404943 1.490789,-2.95485 2.131192,-6.119738 2.017806,-9.215679 l -3.48287,0.09573 c 0.09126,2.528509 -0.436066,5.11796 -1.659758,7.543405 -3.865316,7.661336 -13.158996,10.72198 -20.82033,6.856664 C 4.3568317,28.973181 1.2961865,19.679502 5.1615029,12.018167 9.0268193,4.3568308 18.320499,1.2961869 25.981833,5.1615029 27.491656,5.9232425 28.81983,6.8983886 29.954505,8.027729 L 32.30738,5.4367801 C 30.943863,4.0966388 29.353902,2.942564 27.558376,2.036681 Z" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#bbbbbb;fill-opacity:1;stroke:none"
|
||||
x="10.982422"
|
||||
y="33.580078"
|
||||
id="text823"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan821"
|
||||
x="10.982422"
|
||||
y="68.970703"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:AkrutiMal2;-inkscape-font-specification:AkrutiMal2" /></text>
|
||||
<g
|
||||
id="g180"
|
||||
transform="matrix(-0.67598944,-0.06825165,0.06825165,-0.67598944,43.19324,21.507957)"
|
||||
style="stroke-width:1.47183">
|
||||
<rect
|
||||
style="fill:#919191;fill-opacity:1;stroke:#919191;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect829"
|
||||
width="5.999999"
|
||||
height="16.195862"
|
||||
x="15.780028"
|
||||
y="-28.064632"
|
||||
transform="rotate(82.446816)" />
|
||||
<rect
|
||||
style="fill:#919191;fill-opacity:1;stroke:#919191;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect829-3"
|
||||
width="5.999999"
|
||||
height="16.195862"
|
||||
x="-18.228109"
|
||||
y="-31.699099"
|
||||
transform="rotate(173.76303)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
101
icons/browserAction-reportIssue.svg
Normal file
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="browserAction-reportIssue.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.8685035"
|
||||
inkscape:cx="23.096189"
|
||||
inkscape:cy="22.071382"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
showguides="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3725" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#919191;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="M 19,0 C 8.5272756,0 0,8.5272748 0,19 0,29.472725 8.5272756,38 19,38 29.472724,38 38,29.472725 38,19 38,8.5272748 29.472724,0 19,0 Z m 0,3.5 c 8.581184,0 15.5,6.918815 15.5,15.5 0,8.581185 -6.918816,15.5 -15.5,15.5 C 10.418816,34.5 3.5,27.581185 3.5,19 3.5,10.418815 10.418816,3.5 19,3.5 Z"
|
||||
id="path819"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#bbbbbb;fill-opacity:1;stroke:none"
|
||||
x="10.982422"
|
||||
y="33.580078"
|
||||
id="text823"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan821"
|
||||
x="10.982422"
|
||||
y="68.970703"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:AkrutiMal2;-inkscape-font-specification:AkrutiMal2" /></text>
|
||||
<rect
|
||||
style="opacity:1;fill:#919191;fill-opacity:1;stroke:#919191;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect829"
|
||||
width="5.999999"
|
||||
height="16.195862"
|
||||
x="16"
|
||||
y="6.4025636" />
|
||||
<circle
|
||||
style="opacity:1;fill:#919191;fill-opacity:1;stroke:#bbbbbb;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path831"
|
||||
cx="19"
|
||||
cy="27.772472"
|
||||
r="3.9999993" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.8 KiB |
76
icons/browserAction-review.svg
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 10.054166 10.054167"
|
||||
version="1.1"
|
||||
id="svg830"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
sodipodi:docname="browserAction-review.svg">
|
||||
<defs
|
||||
id="defs824" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.2"
|
||||
inkscape:cx="32.467265"
|
||||
inkscape:cy="15.819073"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata827">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-286.94581)">
|
||||
<path
|
||||
sodipodi:type="star"
|
||||
style="opacity:1;fill:none;fill-opacity:1;stroke:#919191;stroke-width:3.83938536;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1375"
|
||||
sodipodi:sides="5"
|
||||
sodipodi:cx="13.296659"
|
||||
sodipodi:cy="285.24011"
|
||||
sodipodi:r1="13.713037"
|
||||
sodipodi:r2="6.4780655"
|
||||
sodipodi:arg1="0.90975316"
|
||||
sodipodi:arg2="1.5470626"
|
||||
inkscape:flatsided="false"
|
||||
inkscape:rounded="0"
|
||||
inkscape:randomized="0"
|
||||
d="m 21.71565,296.06453 -8.265256,-4.34818 -7.8467547,4.87563 1.5812554,-9.20439 -7.06177323,-5.95606 9.24252543,-1.34044 3.4823381,-8.55667 4.13094,8.37594 9.213977,0.66775 -6.689465,6.51706 z"
|
||||
inkscape:transform-center-x="0.037474818"
|
||||
inkscape:transform-center-y="-0.33085789"
|
||||
transform="matrix(0.27028556,0,0,0.2811245,1.4881246,212.25546)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
104
icons/browserAction-test.svg
Normal file
|
@ -0,0 +1,104 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="browserAction-test.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.8685035"
|
||||
inkscape:cx="0.60084917"
|
||||
inkscape:cy="22.071382"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
showguides="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3725" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#919191;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="M 19,0 C 8.5272756,0 0,8.5272748 0,19 0,29.472725 8.5272756,38 19,38 29.472724,38 38,29.472725 38,19 38,8.5272748 29.472724,0 19,0 Z m 0,3.5 c 8.581184,0 15.5,6.918815 15.5,15.5 0,8.581185 -6.918816,15.5 -15.5,15.5 C 10.418816,34.5 3.5,27.581185 3.5,19 3.5,10.418815 10.418816,3.5 19,3.5 Z"
|
||||
id="path819"
|
||||
inkscape:connector-curvature="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#bbbbbb;fill-opacity:1;stroke:none"
|
||||
x="10.982422"
|
||||
y="33.580078"
|
||||
id="text823"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan821"
|
||||
x="10.982422"
|
||||
y="68.970703"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:AkrutiMal2;-inkscape-font-specification:AkrutiMal2" /></text>
|
||||
<rect
|
||||
style="opacity:1;fill:#919191;fill-opacity:1;stroke:#919191;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect829"
|
||||
width="5.999999"
|
||||
height="16.195862"
|
||||
x="-14.558913"
|
||||
y="17.192804"
|
||||
transform="rotate(-54.080164)" />
|
||||
<rect
|
||||
style="opacity:1;fill:#919191;fill-opacity:1;stroke:#919191;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect829-3"
|
||||
width="5.999999"
|
||||
height="16.195862"
|
||||
x="27.174421"
|
||||
y="-6.8408589"
|
||||
transform="rotate(34.549396)" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.9 KiB |
117
icons/browserAction-whitelisted.svg
Normal file
After Width: | Height: | Size: 13 KiB |
117
icons/icon.svg
Normal file
After Width: | Height: | Size: 13 KiB |
86
icons/pageAction-disableNotifications.svg
Normal file
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="pageAction-disableNotifications.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.4296296"
|
||||
inkscape:cx="9.7478643"
|
||||
inkscape:cy="25.52671"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="g3803"
|
||||
transform="translate(-0.33931853,0.58823573)" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#919191;fill-opacity:1;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 19.59375,0.34374996 c -0.696598,0.01253 -1.335268,0.06471 -1.90625,0.09375 -0.877797,0.04464 -2.116829,-0.01338 -3.59375,0.40625 C 12.325659,1.346112 10.54204,2.130182 8.968751,3.375 7.17143,4.797077 5.191965,6.634624 4.1875,9.28125 a 2.5072653,2.5072653 0 1 0 4.687501,1.78125 c 0.477266,-1.257532 1.710028,-2.612245 3.1875,-3.78125 0.912334,-0.721858 2.125453,-1.261092 3.406249,-1.625 0.481635,-0.136846 1.313099,-0.15998 2.46875,-0.21875 1.296425,-0.06593 2.397947,-0.144688 3.21875,-0.03125 1.228192,0.169741 2.327474,0.441749 3.15625,0.875 1.30194,0.680602 2.499489,1.622405 3.28125,2.65625 0.693878,0.917622 1.079214,1.801796 1.375,3.21875 a 2.50025,2.50025 0 1 0 4.875,-1 C 33.4393,9.218741 32.724764,7.443292 31.5625,5.90625 30.214851,4.124044 28.45185,2.798754 26.625,1.84375 25.005862,0.99732996 23.351768,0.67716396 21.84375,0.46874996 c -0.798875,-0.110408 -1.553402,-0.13753 -2.25,-0.125 z M 19.71875,8.53125 C 19.334943,8.51299 18.962688,8.52955 18.59375,8.5625 17.855873,8.62835 17.133155,8.758277 16.5,8.9375 c -1.450114,0.410469 -2.876295,1.105829 -4.124999,2.1875 -1.838716,1.592757 -2.601335,3.478278 -3.375,4.59375 C 8.197736,16.875457 7.837903,17.638135 7.656251,17.8125 7.171588,18.27772 6.50228,18.815058 5.9375,19.1875 5.372721,19.559942 4.799658,19.624068 5.28125,19.625 a 2.50025,2.50025 0 1 0 0,5 c 1.605704,0.0031 2.485204,-0.642619 3.406251,-1.25 0.921046,-0.607381 1.76274,-1.321058 2.4375,-1.96875 1.252498,-1.202255 1.638064,-2.366967 1.968749,-2.84375 1.149506,-1.65736 1.819354,-3.039581 2.53125,-3.65625 0.565797,-0.490113 1.390258,-0.912891 2.25,-1.15625 0.799063,-0.226185 1.562999,-0.284857 2.03125,-0.1875 0.120742,0.0251 0.601285,0.322179 1.375,0.84375 0.385037,0.259558 0.626249,0.450484 0.71875,0.5625 0.455709,0.551853 0.804852,1.165219 0.96875,1.6875 0.149537,0.476518 0.22108,1.208296 0.1875,2.09375 -0.03163,0.833984 -0.716662,2.279758 -0.78125,4.46875 C 22.33807,24.470663 22.215367,26.162724 23,28 c 0.466738,1.092902 1.116866,2.030174 1.8125,2.84375 0.695634,0.813576 1.011533,1.448356 2.5,2.03125 a 2.50025,2.50025 0 1 0 1.875,-4.625 C 29.772432,28.470285 29.046431,28.086635 28.625,27.59375 28.180096,27.073416 27.725511,26.37103 27.59375,26.0625 27.393825,25.59436 27.338007,24.628847 27.375,23.375 c 0.02421,-0.820592 0.667514,-2.262754 0.75,-4.4375 0.041,-1.081088 0.0647,-2.380096 -0.375,-3.78125 -0.412842,-1.315575 -1.104203,-2.441583 -1.875,-3.375 C 25.269593,11.048114 24.617559,10.603106 24.09375,10.25 23.443887,9.811919 22.46639,9.011881 20.90625,8.6875 20.497919,8.6026 20.102557,8.549506 19.71875,8.53125 z M 32.625,17.1875 a 2.50025,2.50025 0 0 0 -2.25,2.25 l -0.34375,2.96875 A 2.5020499,2.5020499 0 1 0 35,23 l 0.34375,-2.96875 A 2.50025,2.50025 0 0 0 32.875,17.1875 a 2.50025,2.50025 0 0 0 -0.25,0 z m -14.75,0.65625 a 2.50025,2.50025 0 0 0 -2.125,1.8125 c -0.811028,2.662046 -1.59496,4.07594 -3.031249,5.78125 -1.243662,1.476602 -3.103234,2.870772 -4.78125,3.6875 a 2.5017572,2.5017572 0 1 0 2.1875,4.5 c 2.310134,-1.124394 4.635309,-2.829006 6.437499,-4.96875 1.795982,-2.132374 3.020244,-4.41796 3.96875,-7.53125 a 2.50025,2.50025 0 0 0 -2.40625,-3.28125 2.50025,2.50025 0 0 0 -0.25,0 z m 2.0625,11.3125 c -0.32141,0.0042 -0.64688,0.04897 -0.90625,0.15625 -0.51874,0.214569 -0.815602,0.529196 -1,0.75 -0.737593,0.883214 -0.551195,1.078803 -0.625,1.40625 -0.04146,0.05463 -0.172995,0.234468 -0.40625,0.5 -0.339281,0.386229 -0.840677,0.833898 -1.375,1.625 A 2.50025,2.50025 0 0 0 19.1875,37 a 2.50025,2.50025 0 0 0 4,-2.84375 c 9.65e-4,0.01132 -0.007,-0.01003 -0.03125,-0.0625 -0.02588,-0.09446 -0.07587,-0.312877 -0.125,-0.5625 -0.07954,-0.404152 -0.163116,-0.904087 -0.25,-1.375 -0.04344,-0.235456 -0.09683,-0.476314 -0.15625,-0.71875 -0.05942,-0.242436 -0.06929,-0.426318 -0.375,-0.96875 -0.152854,-0.271216 -0.336284,-0.815938 -1.40625,-1.1875 -0.267491,-0.09289 -0.58484,-0.129214 -0.90625,-0.125 z"
|
||||
id="path3753-8" />
|
||||
<g
|
||||
id="g3803-8"
|
||||
transform="matrix(0.89199553,0,0,0.89199692,1.7556472,0.98781322)"
|
||||
style="fill:#ff0101;fill-opacity:0.6;stroke:#ff0000;stroke-width:3.36324286;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff0101;fill-opacity:0.6;fill-rule:nonzero;stroke:#ff0000;stroke-width:3.36324286;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="M 10.78125,5.125 C 9.6228558,5.031087 8.3153904,5.5344787 7.28125,6.5625 L 6.6875,7.15625 C 5.0328753,8.8010841 4.733916,11.163694 6.03125,12.46875 L 12.53125,19 6,25.46875 c -1.3050563,1.297334 -1.0510841,3.689125 0.59375,5.34375 l 0.59375,0.59375 c 1.6448341,1.654625 4.038694,1.922334 5.34375,0.625 l 6.53125,-6.46875 6.46875,6.5 c 1.297334,1.305056 3.657875,1.051084 5.3125,-0.59375 L 31.4375,30.875 c 1.654625,-1.644834 1.953584,-4.007444 0.65625,-5.3125 l -6.5,-6.53125 L 32.125,12.5625 C 33.430056,11.265166 33.144834,8.8733747 31.5,7.21875 L 30.90625,6.625 C 29.261416,4.9703753 26.898806,4.7026659 25.59375,6 l -6.5,6.46875 -6.5,-6.53125 C 12.10725,5.448104 11.476287,5.1813479 10.78125,5.125 z"
|
||||
transform="translate(0.33931853,-0.58823573)"
|
||||
id="rect2988" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.9 KiB |
71
icons/pageAction-displayCallingStack.svg
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="22"
|
||||
height="19"
|
||||
id="svg3798"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-displayCallingStack.svg">
|
||||
<defs
|
||||
id="defs3800" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.313708"
|
||||
inkscape:cx="9.8914915"
|
||||
inkscape:cy="12.036692"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata3803">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 4.90625 3.90625 C 4.532132 4.616128 4.34375 5.4298287 4.34375 6.28125 C 4.34375 6.4959002 4.3489496 6.6983985 4.375 6.90625 L 11.3125 6.90625 L 11.3125 3.90625 L 4.90625 3.90625 z M 4.8125 8.40625 C 5.5380675 9.967138 7.0142586 11.113996 8.8125 11.40625 L 10.625 11.40625 C 10.865212 11.36721 11.084183 11.318686 11.3125 11.25 L 11.3125 8.40625 L 4.8125 8.40625 z "
|
||||
transform="translate(0,1033.3622)"
|
||||
id="rect3955-1" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 1 5 L 1 7 L 4.46875 7 C 4.4426996 6.7921495 4.40625 6.589649 4.40625 6.375 C 4.40625 5.90116 4.5025603 5.4363512 4.625 5 L 1 5 z M 1 8 L 1 10 L 5.9375 10 C 5.3819309 9.4446571 4.9452692 8.7500694 4.6875 8 L 1 8 z M 1 11 L 1 13 L 11 13 L 11 11.4375 C 10.618102 11.520482 10.220298 11.5625 9.8125 11.5625 C 8.9439902 11.5625 8.132929 11.352839 7.40625 11 L 1 11 z "
|
||||
transform="translate(0,1033.3622)"
|
||||
id="rect3955" />
|
||||
<path
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#909090;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 14.012442,1035.5221 c -2.335232,-2.4003 -6.181514,-2.4678 -8.563982,-0.1499 -2.382415,2.3178 -2.409607,6.1539 -0.07438,8.5542 2.083652,2.1417 5.370014,2.4455 7.746402,0.8391 l 6.980535,7.1749 1.507034,-1.4662 -6.980536,-7.1749 c 1.672964,-2.3332 1.468573,-5.6355 -0.615078,-7.7772 z m -1.048412,1.02 c 1.790326,1.8402 1.762992,4.7471 -0.04629,6.5074 -1.809231,1.7602 -4.704915,1.6971 -6.495242,-0.1431 -1.790325,-1.8402 -1.763281,-4.7256 0.04595,-6.4858 1.809283,-1.7603 4.705256,-1.7186 6.495583,0.1215 z"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
73
icons/pageAction-displayFullURL.svg
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-displayFullURL.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="25.668069"
|
||||
inkscape:cy="31.957338"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:144px;font-style:normal;font-weight:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="-2.7251744"
|
||||
y="1012.9865"
|
||||
id="text3755"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3757"
|
||||
x="-2.7251744"
|
||||
y="1012.9865"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;font-family:Times New Roman;-inkscape-font-specification:Times New Roman">https:</tspan></text>
|
||||
<path
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#909090;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 10.962994,1035.9566 c -2.3352318,-2.4003 -6.1815138,-2.4678 -8.5639818,-0.1499 -2.38241496,2.3178 -2.40960696,6.1539 -0.07438,8.5542 2.083652,2.1417 5.370014,2.4455 7.7464018,0.8391 l 6.980535,7.1749 1.507034,-1.4662 -6.980536,-7.1749 c 1.672964,-2.3332 1.468573,-5.6355 -0.615078,-7.7772 z m -1.0484118,1.02 c 1.7903258,1.8402 1.7629918,4.7471 -0.04629,6.5074 -1.809231,1.7602 -4.704915,1.6971 -6.495242,-0.1431 -1.790325,-1.8402 -1.763281,-4.7256 0.04595,-6.4858 1.809283,-1.7603 4.705256,-1.7186 6.495583,0.1215 z"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
84
icons/pageAction-ignorelist.svg
Normal file
|
@ -0,0 +1,84 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="17"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-ignorelistDomain.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="49.848596"
|
||||
inkscape:cy="25.401849"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:144px;font-style:normal;font-weight:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="-2.5989053"
|
||||
y="1016.2492"
|
||||
id="text3755"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3757"
|
||||
x="-2.5989053"
|
||||
y="1016.2492"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;font-family:Times New Roman;-inkscape-font-specification:Times New Roman">www.</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#919191;fill-opacity:1;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 8.7680531,1033.5273 c -0.348299,0.01 -0.667634,0.033 -0.953125,0.047 -0.438898,0.022 -1.058414,-0.01 -1.796875,0.2031 -0.884045,0.2512 -1.775855,0.6432 -2.562499,1.2656 -0.898661,0.711 -1.888393,1.6298 -2.390626,2.9531 a 1.2536462,1.2536462 0 1 0 2.343751,0.8907 c 0.238633,-0.6288 0.855014,-1.3062 1.59375,-1.8907 0.456167,-0.3609 1.062726,-0.6305 1.703124,-0.8125 0.240818,-0.068 0.65655,-0.08 1.234375,-0.1093 0.648213,-0.033 1.198974,-0.072 1.6093747,-0.016 0.6140962,0.085 1.1637372,0.2209 1.5781252,0.4375 0.65097,0.3403 1.249745,0.8112 1.640625,1.3281 0.346939,0.4588 0.539607,0.9009 0.6875,1.6094 a 1.250125,1.250125 0 1 0 2.4375,-0.5 c -0.202225,-0.9688 -0.559493,-1.8565 -1.140625,-2.625 -0.673824,-0.8911 -1.555325,-1.5538 -2.46875,-2.0313 -0.809569,-0.4232 -1.636616,-0.5833 -2.3906252,-0.6875 -0.399437,-0.055 -0.7767007,-0.069 -1.1249997,-0.062 z m 0.0625,4.0937 c -0.191903,-0.01 -0.378031,0 -0.5625,0.015 -0.368938,0.033 -0.730297,0.098 -1.046875,0.1875 -0.725057,0.2052 -1.438147,0.5529 -2.062499,1.0938 -0.919358,0.7963 -1.300668,1.7391 -1.6875,2.2968 -0.401133,0.5784 -0.581049,0.9597 -0.671875,1.0469 -0.242332,0.2326 -0.576986,0.5013 -0.859376,0.6875 -0.282389,0.1862 -0.568921,0.2183 -0.328125,0.2188 a 1.250125,1.250125 0 1 0 0,2.5 c 0.802852,0 1.242602,-0.3214 1.703126,-0.625 0.460523,-0.3037 0.88137,-0.6606 1.21875,-0.9844 0.626249,-0.6011 0.819032,-1.1835 0.984374,-1.4219 0.574753,-0.8287 0.909677,-1.5198 1.265625,-1.8281 0.282899,-0.2451 0.695129,-0.4565 1.125,-0.5781 0.399532,-0.1131 0.7815,-0.1425 1.015625,-0.094 0.06037,0.013 0.3006427,0.1611 0.6874997,0.4219 0.192519,0.1298 0.313125,0.2252 0.359375,0.2812 0.2278552,0.276 0.4024262,0.5826 0.4843752,0.8438 0.07477,0.2382 0.11054,0.6041 0.09375,1.0469 -0.01581,0.417 -0.358331,1.1398 -0.390625,2.2343 -0.01846,0.626 -0.07982,1.472 0.3125,2.3907 0.233369,0.5464 0.558433,1.015 0.90625,1.4218 0.347817,0.4068 0.505767,0.7242 1.25,1.0157 a 1.250125,1.250125 0 1 0 0.9375,-2.3125 c 0.292466,0.1101 -0.07053,-0.082 -0.28125,-0.3282 -0.222452,-0.2601 -0.449744,-0.6113 -0.515625,-0.7656 -0.09996,-0.2341 -0.127871,-0.7168 -0.109375,-1.3437 0.01211,-0.4103 0.333757,-1.1314 0.375,-2.2188 0.0205,-0.5405 0.03235,-1.19 -0.1875,-1.8906 -0.206421,-0.6578 -0.552101,-1.2208 -0.9375,-1.6875 -0.302703,-0.3666 -0.62872,-0.5891 -0.890625,-0.7656 -0.324931,-0.2191 -0.81368,-0.6191 -1.5937502,-0.7813 -0.204165,-0.043 -0.4018457,-0.069 -0.5937497,-0.078 z m 6.4531249,4.3282 a 1.250125,1.250125 0 0 0 -1.125,1.125 l -0.171875,1.4843 a 1.2510265,1.2510265 0 1 0 2.484375,0.2969 l 0.171875,-1.4844 a 1.250125,1.250125 0 0 0 -1.234375,-1.4218 1.250125,1.250125 0 0 0 -0.125,0 z m -7.3749999,0.3281 a 1.250125,1.250125 0 0 0 -1.0625,0.9062 c -0.405514,1.3311 -0.79748,2.038 -1.515624,2.8907 -0.621831,0.7383 -1.551617,1.4353 -2.390625,1.8437 a 1.2508786,1.2508786 0 1 0 1.09375,2.25 c 1.155067,-0.5622 2.317654,-1.4145 3.218749,-2.4844 0.897991,-1.0662 1.510122,-2.2089 1.9843747,-3.7656 a 1.250125,1.250125 0 0 0 -1.2031247,-1.6406 1.250125,1.250125 0 0 0 -0.125,0 z m 1.03125,5.6562 c -0.160705,0 -0.32344,0.024 -0.453125,0.078 -0.25937,0.1072 -0.407801,0.2646 -0.5,0.375 -0.368796,0.4416 -0.275597,0.5394 -0.3125,0.7031 -0.02073,0.028 -0.0865,0.1172 -0.203125,0.25 -0.16964,0.1931 -0.420338,0.4169 -0.6875,0.8125 a 1.250125,1.250125 0 0 0 1.78125,1.7031 1.250125,1.250125 0 0 0 1.9999999,-1.4219 c 4.83e-4,0.01 -0.0035,0 -0.01563,-0.031 -0.01294,-0.047 -0.03793,-0.1564 -0.0625,-0.2812 -0.03977,-0.2021 -0.08156,-0.4521 -0.125,-0.6875 -0.02172,-0.1177 -0.04841,-0.2382 -0.07813,-0.3594 -0.02971,-0.1212 -0.03464,-0.2132 -0.1875,-0.4844 -0.07643,-0.1356 -0.1681422,-0.4079 -0.7031252,-0.5937 -0.133745,-0.046 -0.2924197,-0.065 -0.4531247,-0.062 z"
|
||||
id="path3753-8" />
|
||||
<g
|
||||
id="g3803-8"
|
||||
transform="matrix(0.44599777,0,0,0.44599846,-0.15099788,1034.1493)"
|
||||
style="fill:#ff0101;fill-opacity:0.6;stroke:#ff0000;stroke-width:3.36324286;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff0101;fill-opacity:0.6;fill-rule:nonzero;stroke:#ff0000;stroke-width:3.36324286;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="M 10.78125,5.125 C 9.6228558,5.031087 8.3153904,5.5344787 7.28125,6.5625 L 6.6875,7.15625 C 5.0328753,8.8010841 4.733916,11.163694 6.03125,12.46875 L 12.53125,19 6,25.46875 c -1.3050563,1.297334 -1.0510841,3.689125 0.59375,5.34375 l 0.59375,0.59375 c 1.6448341,1.654625 4.038694,1.922334 5.34375,0.625 l 6.53125,-6.46875 6.46875,6.5 c 1.297334,1.305056 3.657875,1.051084 5.3125,-0.59375 L 31.4375,30.875 c 1.654625,-1.644834 1.953584,-4.007444 0.65625,-5.3125 l -6.5,-6.53125 L 32.125,12.5625 C 33.430056,11.265166 33.144834,8.8733747 31.5,7.21875 L 30.90625,6.625 C 29.261416,4.9703753 26.898806,4.7026659 25.59375,6 l -6.5,6.46875 -6.5,-6.53125 C 12.10725,5.448104 11.476287,5.1813479 10.78125,5.125 z"
|
||||
transform="translate(0.33931853,-0.58823573)"
|
||||
id="rect2988" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.8 KiB |
84
icons/pageAction-ignorelistDomain.svg
Normal file
|
@ -0,0 +1,84 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="17"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-ignorelistDomain.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="49.848596"
|
||||
inkscape:cy="25.401849"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:144px;font-style:normal;font-weight:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||
x="-2.5989053"
|
||||
y="1016.2492"
|
||||
id="text3755"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3757"
|
||||
x="-2.5989053"
|
||||
y="1016.2492"
|
||||
style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;font-family:Times New Roman;-inkscape-font-specification:Times New Roman">www.</tspan></text>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#919191;fill-opacity:1;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
|
||||
d="m 8.7680531,1033.5273 c -0.348299,0.01 -0.667634,0.033 -0.953125,0.047 -0.438898,0.022 -1.058414,-0.01 -1.796875,0.2031 -0.884045,0.2512 -1.775855,0.6432 -2.562499,1.2656 -0.898661,0.711 -1.888393,1.6298 -2.390626,2.9531 a 1.2536462,1.2536462 0 1 0 2.343751,0.8907 c 0.238633,-0.6288 0.855014,-1.3062 1.59375,-1.8907 0.456167,-0.3609 1.062726,-0.6305 1.703124,-0.8125 0.240818,-0.068 0.65655,-0.08 1.234375,-0.1093 0.648213,-0.033 1.198974,-0.072 1.6093747,-0.016 0.6140962,0.085 1.1637372,0.2209 1.5781252,0.4375 0.65097,0.3403 1.249745,0.8112 1.640625,1.3281 0.346939,0.4588 0.539607,0.9009 0.6875,1.6094 a 1.250125,1.250125 0 1 0 2.4375,-0.5 c -0.202225,-0.9688 -0.559493,-1.8565 -1.140625,-2.625 -0.673824,-0.8911 -1.555325,-1.5538 -2.46875,-2.0313 -0.809569,-0.4232 -1.636616,-0.5833 -2.3906252,-0.6875 -0.399437,-0.055 -0.7767007,-0.069 -1.1249997,-0.062 z m 0.0625,4.0937 c -0.191903,-0.01 -0.378031,0 -0.5625,0.015 -0.368938,0.033 -0.730297,0.098 -1.046875,0.1875 -0.725057,0.2052 -1.438147,0.5529 -2.062499,1.0938 -0.919358,0.7963 -1.300668,1.7391 -1.6875,2.2968 -0.401133,0.5784 -0.581049,0.9597 -0.671875,1.0469 -0.242332,0.2326 -0.576986,0.5013 -0.859376,0.6875 -0.282389,0.1862 -0.568921,0.2183 -0.328125,0.2188 a 1.250125,1.250125 0 1 0 0,2.5 c 0.802852,0 1.242602,-0.3214 1.703126,-0.625 0.460523,-0.3037 0.88137,-0.6606 1.21875,-0.9844 0.626249,-0.6011 0.819032,-1.1835 0.984374,-1.4219 0.574753,-0.8287 0.909677,-1.5198 1.265625,-1.8281 0.282899,-0.2451 0.695129,-0.4565 1.125,-0.5781 0.399532,-0.1131 0.7815,-0.1425 1.015625,-0.094 0.06037,0.013 0.3006427,0.1611 0.6874997,0.4219 0.192519,0.1298 0.313125,0.2252 0.359375,0.2812 0.2278552,0.276 0.4024262,0.5826 0.4843752,0.8438 0.07477,0.2382 0.11054,0.6041 0.09375,1.0469 -0.01581,0.417 -0.358331,1.1398 -0.390625,2.2343 -0.01846,0.626 -0.07982,1.472 0.3125,2.3907 0.233369,0.5464 0.558433,1.015 0.90625,1.4218 0.347817,0.4068 0.505767,0.7242 1.25,1.0157 a 1.250125,1.250125 0 1 0 0.9375,-2.3125 c 0.292466,0.1101 -0.07053,-0.082 -0.28125,-0.3282 -0.222452,-0.2601 -0.449744,-0.6113 -0.515625,-0.7656 -0.09996,-0.2341 -0.127871,-0.7168 -0.109375,-1.3437 0.01211,-0.4103 0.333757,-1.1314 0.375,-2.2188 0.0205,-0.5405 0.03235,-1.19 -0.1875,-1.8906 -0.206421,-0.6578 -0.552101,-1.2208 -0.9375,-1.6875 -0.302703,-0.3666 -0.62872,-0.5891 -0.890625,-0.7656 -0.324931,-0.2191 -0.81368,-0.6191 -1.5937502,-0.7813 -0.204165,-0.043 -0.4018457,-0.069 -0.5937497,-0.078 z m 6.4531249,4.3282 a 1.250125,1.250125 0 0 0 -1.125,1.125 l -0.171875,1.4843 a 1.2510265,1.2510265 0 1 0 2.484375,0.2969 l 0.171875,-1.4844 a 1.250125,1.250125 0 0 0 -1.234375,-1.4218 1.250125,1.250125 0 0 0 -0.125,0 z m -7.3749999,0.3281 a 1.250125,1.250125 0 0 0 -1.0625,0.9062 c -0.405514,1.3311 -0.79748,2.038 -1.515624,2.8907 -0.621831,0.7383 -1.551617,1.4353 -2.390625,1.8437 a 1.2508786,1.2508786 0 1 0 1.09375,2.25 c 1.155067,-0.5622 2.317654,-1.4145 3.218749,-2.4844 0.897991,-1.0662 1.510122,-2.2089 1.9843747,-3.7656 a 1.250125,1.250125 0 0 0 -1.2031247,-1.6406 1.250125,1.250125 0 0 0 -0.125,0 z m 1.03125,5.6562 c -0.160705,0 -0.32344,0.024 -0.453125,0.078 -0.25937,0.1072 -0.407801,0.2646 -0.5,0.375 -0.368796,0.4416 -0.275597,0.5394 -0.3125,0.7031 -0.02073,0.028 -0.0865,0.1172 -0.203125,0.25 -0.16964,0.1931 -0.420338,0.4169 -0.6875,0.8125 a 1.250125,1.250125 0 0 0 1.78125,1.7031 1.250125,1.250125 0 0 0 1.9999999,-1.4219 c 4.83e-4,0.01 -0.0035,0 -0.01563,-0.031 -0.01294,-0.047 -0.03793,-0.1564 -0.0625,-0.2812 -0.03977,-0.2021 -0.08156,-0.4521 -0.125,-0.6875 -0.02172,-0.1177 -0.04841,-0.2382 -0.07813,-0.3594 -0.02971,-0.1212 -0.03464,-0.2132 -0.1875,-0.4844 -0.07643,-0.1356 -0.1681422,-0.4079 -0.7031252,-0.5937 -0.133745,-0.046 -0.2924197,-0.065 -0.4531247,-0.062 z"
|
||||
id="path3753-8" />
|
||||
<g
|
||||
id="g3803-8"
|
||||
transform="matrix(0.44599777,0,0,0.44599846,-0.15099788,1034.1493)"
|
||||
style="fill:#ff0101;fill-opacity:0.6;stroke:#ff0000;stroke-width:3.36324286;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ff0101;fill-opacity:0.6;fill-rule:nonzero;stroke:#ff0000;stroke-width:3.36324286;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="M 10.78125,5.125 C 9.6228558,5.031087 8.3153904,5.5344787 7.28125,6.5625 L 6.6875,7.15625 C 5.0328753,8.8010841 4.733916,11.163694 6.03125,12.46875 L 12.53125,19 6,25.46875 c -1.3050563,1.297334 -1.0510841,3.689125 0.59375,5.34375 l 0.59375,0.59375 c 1.6448341,1.654625 4.038694,1.922334 5.34375,0.625 l 6.53125,-6.46875 6.46875,6.5 c 1.297334,1.305056 3.657875,1.051084 5.3125,-0.59375 L 31.4375,30.875 c 1.654625,-1.644834 1.953584,-4.007444 0.65625,-5.3125 l -6.5,-6.53125 L 32.125,12.5625 C 33.430056,11.265166 33.144834,8.8733747 31.5,7.21875 L 30.90625,6.625 C 29.261416,4.9703753 26.898806,4.7026659 25.59375,6 l -6.5,6.46875 -6.5,-6.53125 C 12.10725,5.448104 11.476287,5.1813479 10.78125,5.125 z"
|
||||
transform="translate(0.33931853,-0.58823573)"
|
||||
id="rect2988" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.8 KiB |
78
icons/pageAction-inspectWhitelist.svg
Normal file
|
@ -0,0 +1,78 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
||||
sodipodi:docname="pageAction-inspectWhitelist.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="4.6442693"
|
||||
inkscape:cy="37.008101"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
|
||||
x="-4.8717484"
|
||||
y="1008.9256"
|
||||
id="text3755"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3757"
|
||||
x="-4.8717484"
|
||||
y="1008.9256"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:1.25;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';text-align:start;text-anchor:start">www.</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#00be00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4.1668789,1040.8717 c 2.65165,3.1567 3.661803,3.788 4.293148,8.5863 0.883884,-3.7881 2.3550471,-9.0615 7.0710681,-13.3846"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#909090;fill-opacity:1;stroke:none;stroke-width:3.00000048;marker:none;enable-background:accumulate"
|
||||
d="m 12.132528,1038.8104 c -1.951229,-2.0055 -5.1650311,-2.0621 -7.1557308,-0.1252 -1.9906536,1.9366 -2.0133742,5.1417 -0.062156,7.1474 1.7410193,1.7895 4.4869752,2.0432 6.4725938,0.7011 l 5.832664,5.995 1.259219,-1.225 -5.832666,-5.9951 c 1.397863,-1.9497 1.227084,-4.7088 -0.513935,-6.4985 z m -0.876012,0.8523 c 1.495926,1.5376 1.473088,3.9665 -0.03868,5.4376 -1.5117245,1.4706 -3.9312443,1.4177 -5.4271737,-0.1197 -1.495926,-1.5376 -1.473329,-3.9486 0.038391,-5.4192 1.5117684,-1.4709 3.9315303,-1.4359 5.4274577,0.1004 z"
|
||||
id="path2985-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
96
icons/pageAction-printed.svg
Normal file
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="pageAction-printed.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.4296296"
|
||||
inkscape:cx="23.956678"
|
||||
inkscape:cy="31.057044"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<path
|
||||
id="path3753"
|
||||
style="fill:none;stroke:#919191;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 6.5395498,10.17429 c 0.7408653,-1.9520786 2.3402,-3.5432761 3.9775962,-4.8388171 1.242812,-0.983338 2.744201,-1.660303 4.268645,-2.093438 0.979278,-0.27824 2.022824,-0.2462293 3.039548,-0.297934 1.219195,-0.062001 2.453007,-0.18146 3.662283,-0.014333 1.368105,0.1890774 2.759629,0.4995468 3.983586,1.1393823 1.564395,0.8178027 3.037124,1.9416322 4.101829,3.349658 0.928071,1.2273323 1.485164,2.5584127 1.835282,4.2356441"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="caaaaaac" />
|
||||
<path
|
||||
style="fill:none;stroke:#919191;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 28.226191,30.535847 c -0.705549,-0.276298 -2.334601,-2.105253 -2.9331,-3.506685 -0.492279,-1.152708 -0.452262,-2.484391 -0.415298,-3.737271 0.0444,-1.504792 0.705511,-2.947131 0.76257,-4.451496 0.03729,-0.983271 0.01802,-2.000111 -0.276597,-2.938947 -0.28837,-0.918928 -0.808138,-1.772901 -1.421391,-2.515536 -0.348954,-0.422576 -0.798177,-0.758586 -1.2526,-1.064918 -0.711789,-0.479826 -1.441775,-1.018308 -2.282216,-1.193051 -1.050788,-0.218477 -2.178824,-0.06167 -3.211511,0.230645 -1.154928,0.326914 -2.286754,0.87691 -3.194005,1.662802 -1.275306,1.104713 -1.992225,2.724079 -2.953811,4.110495 -0.566475,0.816745 -0.941198,1.789962 -1.658273,2.478272 -1.1594225,1.112912 -2.9893077,2.51719 -4.1134185,2.515015"
|
||||
id="path3761"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="caaaaaaaaaaac" />
|
||||
<path
|
||||
style="fill:none;stroke:#919191;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 18.150896,20.381584 c -0.879767,2.887668 -1.890819,4.740429 -3.506955,6.659271 -1.522926,1.808173 -3.627915,3.352908 -5.62199,4.323469"
|
||||
id="path3764"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cac" />
|
||||
<path
|
||||
style="fill:none;stroke:#919191;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 17.696557,34.987707 c 0.591743,-0.876117 1.883594,-1.823128 2.139697,-2.959374 0.360415,-1.599032 0.578087,2.114498 1.043851,3.123918"
|
||||
id="path3768"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="csc" />
|
||||
<path
|
||||
style="fill:none;stroke:#919191;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 32.860324,19.731113 32.504352,22.69683"
|
||||
id="path3774"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.8 KiB |
103
icons/pageAction-printedBlink.svg
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="pageAction-printedHighlight.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.4296296"
|
||||
inkscape:cx="0.29015771"
|
||||
inkscape:cy="31.057044"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<style>
|
||||
@keyframes blink {
|
||||
0% { stroke: #919191; }
|
||||
50% { stroke: #fc2626; }
|
||||
100% { stroke: #919191; }
|
||||
}
|
||||
</style>
|
||||
<path
|
||||
id="path3753"
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;animation: blink 1.5s cubic-bezier(.45,.05,.55,.95) infinite;"
|
||||
d="m 6.5395498,10.17429 c 0.7408653,-1.9520786 2.3402,-3.5432761 3.9775962,-4.8388171 1.242812,-0.983338 2.744201,-1.660303 4.268645,-2.093438 0.979278,-0.27824 2.022824,-0.2462293 3.039548,-0.297934 1.219195,-0.062001 2.453007,-0.18146 3.662283,-0.014333 1.368105,0.1890774 2.759629,0.4995468 3.983586,1.1393823 1.564395,0.8178027 3.037124,1.9416322 4.101829,3.349658 0.928071,1.2273323 1.485164,2.5584127 1.835282,4.2356441"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="caaaaaac" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;animation: blink 1.5s cubic-bezier(.45,.05,.55,.95) infinite;"
|
||||
d="m 28.226191,30.535847 c -0.705549,-0.276298 -2.334601,-2.105253 -2.9331,-3.506685 -0.492279,-1.152708 -0.452262,-2.484391 -0.415298,-3.737271 0.0444,-1.504792 0.705511,-2.947131 0.76257,-4.451496 0.03729,-0.983271 0.01802,-2.000111 -0.276597,-2.938947 -0.28837,-0.918928 -0.808138,-1.772901 -1.421391,-2.515536 -0.348954,-0.422576 -0.798177,-0.758586 -1.2526,-1.064918 -0.711789,-0.479826 -1.441775,-1.018308 -2.282216,-1.193051 -1.050788,-0.218477 -2.178824,-0.06167 -3.211511,0.230645 -1.154928,0.326914 -2.286754,0.87691 -3.194005,1.662802 -1.275306,1.104713 -1.992225,2.724079 -2.953811,4.110495 -0.566475,0.816745 -0.941198,1.789962 -1.658273,2.478272 -1.1594225,1.112912 -2.9893077,2.51719 -4.1134185,2.515015"
|
||||
id="path3761"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="caaaaaaaaaaac" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;animation: blink 1.5s cubic-bezier(.45,.05,.55,.95) infinite;"
|
||||
d="m 18.150896,20.381584 c -0.879767,2.887668 -1.890819,4.740429 -3.506955,6.659271 -1.522926,1.808173 -3.627915,3.352908 -5.62199,4.323469"
|
||||
id="path3764"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cac" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;animation: blink 1.5s cubic-bezier(.45,.05,.55,.95) infinite;"
|
||||
d="m 17.696557,34.987707 c 0.591743,-0.876117 1.883594,-1.823128 2.139697,-2.959374 0.360415,-1.599032 0.578087,2.114498 1.043851,3.123918"
|
||||
id="path3768"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="csc" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;animation: blink 1.5s cubic-bezier(.45,.05,.55,.95) infinite;"
|
||||
d="M 32.860324,19.731113 32.504352,22.69683"
|
||||
id="path3774"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
103
icons/pageAction-printedHighlight.svg
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
width="38"
|
||||
height="38"
|
||||
viewBox="0 0 38 38"
|
||||
sodipodi:docname="pageAction-printedHighlight.svg"
|
||||
inkscape:export-filename="Fingerprint.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
inkscape:zoom="8.4296296"
|
||||
inkscape:cx="0.29015771"
|
||||
inkscape:cy="31.057044"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<style>
|
||||
@keyframes blink {
|
||||
0% { stroke: #919191; }
|
||||
50% { stroke: #fc2626; }
|
||||
100% { stroke: #919191; }
|
||||
}
|
||||
</style>
|
||||
<path
|
||||
id="path3753"
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;"
|
||||
d="m 6.5395498,10.17429 c 0.7408653,-1.9520786 2.3402,-3.5432761 3.9775962,-4.8388171 1.242812,-0.983338 2.744201,-1.660303 4.268645,-2.093438 0.979278,-0.27824 2.022824,-0.2462293 3.039548,-0.297934 1.219195,-0.062001 2.453007,-0.18146 3.662283,-0.014333 1.368105,0.1890774 2.759629,0.4995468 3.983586,1.1393823 1.564395,0.8178027 3.037124,1.9416322 4.101829,3.349658 0.928071,1.2273323 1.485164,2.5584127 1.835282,4.2356441"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="caaaaaac" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;"
|
||||
d="m 28.226191,30.535847 c -0.705549,-0.276298 -2.334601,-2.105253 -2.9331,-3.506685 -0.492279,-1.152708 -0.452262,-2.484391 -0.415298,-3.737271 0.0444,-1.504792 0.705511,-2.947131 0.76257,-4.451496 0.03729,-0.983271 0.01802,-2.000111 -0.276597,-2.938947 -0.28837,-0.918928 -0.808138,-1.772901 -1.421391,-2.515536 -0.348954,-0.422576 -0.798177,-0.758586 -1.2526,-1.064918 -0.711789,-0.479826 -1.441775,-1.018308 -2.282216,-1.193051 -1.050788,-0.218477 -2.178824,-0.06167 -3.211511,0.230645 -1.154928,0.326914 -2.286754,0.87691 -3.194005,1.662802 -1.275306,1.104713 -1.992225,2.724079 -2.953811,4.110495 -0.566475,0.816745 -0.941198,1.789962 -1.658273,2.478272 -1.1594225,1.112912 -2.9893077,2.51719 -4.1134185,2.515015"
|
||||
id="path3761"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="caaaaaaaaaaac" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;"
|
||||
d="m 18.150896,20.381584 c -0.879767,2.887668 -1.890819,4.740429 -3.506955,6.659271 -1.522926,1.808173 -3.627915,3.352908 -5.62199,4.323469"
|
||||
id="path3764"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cac" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;"
|
||||
d="m 17.696557,34.987707 c 0.591743,-0.876117 1.883594,-1.823128 2.139697,-2.959374 0.360415,-1.599032 0.578087,2.114498 1.043851,3.123918"
|
||||
id="path3768"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="csc" />
|
||||
<path
|
||||
style="fill:none;stroke:#fc2626;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;"
|
||||
d="M 32.860324,19.731113 32.504352,22.69683"
|
||||
id="path3774"
|
||||
inkscape:connector-curvature="0" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.9 KiB |
77
icons/pageAction-showOptions.svg
Normal file
After Width: | Height: | Size: 9.8 KiB |
62
icons/pageAction-whitelist.svg
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-whitelistDomain.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="49.848596"
|
||||
inkscape:cy="42.058864"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#00be00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4.1668789,1040.8717 c 2.65165,3.1567 3.661803,3.788 4.293148,8.5863 0.883884,-3.7881 2.3550471,-9.0615 7.0710681,-13.3846"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
62
icons/pageAction-whitelistDomain.svg
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-whitelistDomain.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="49.848596"
|
||||
inkscape:cy="42.058864"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#00be00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4.1668789,1040.8717 c 2.65165,3.1567 3.661803,3.788 4.293148,8.5863 0.883884,-3.7881 2.3550471,-9.0615 7.0710681,-13.3846"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
83
icons/pageAction-whitelistDomainTemporarily.svg
Normal file
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
sodipodi:docname="pageAction-whitelistDomainTemporarily.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="34.759442"
|
||||
inkscape:cy="26.906576"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#00be00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4.1668789,1040.8717 c 2.65165,3.1567 3.661803,3.788 4.293148,8.5863 0.883884,-3.7881 2.3550471,-9.0615 7.0710681,-13.3846"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<g
|
||||
id="g1396"
|
||||
transform="matrix(1.25,0,0,1.25,-4.2499997,-262.84053)"
|
||||
style="fill:#ffffff;fill-opacity:1">
|
||||
<circle
|
||||
r="3.6056104"
|
||||
cy="1047.3622"
|
||||
cx="13"
|
||||
id="path1366"
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#bbbbbb;stroke-width:0.78877938;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1368"
|
||||
d="m 13.188069,1044.9014 v 2.5254"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1370"
|
||||
d="m 13.188069,1047.4268 2.466712,-1.2334"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
83
icons/pageAction-whitelistTemporarily.svg
Normal file
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
sodipodi:docname="pageAction-whitelistDomainTemporarily.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="34.759442"
|
||||
inkscape:cy="26.906576"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#00be00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4.1668789,1040.8717 c 2.65165,3.1567 3.661803,3.788 4.293148,8.5863 0.883884,-3.7881 2.3550471,-9.0615 7.0710681,-13.3846"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<g
|
||||
id="g1396"
|
||||
transform="matrix(1.25,0,0,1.25,-4.2499997,-262.84053)"
|
||||
style="fill:#ffffff;fill-opacity:1">
|
||||
<circle
|
||||
r="3.6056104"
|
||||
cy="1047.3622"
|
||||
cx="13"
|
||||
id="path1366"
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#bbbbbb;stroke-width:0.78877938;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1368"
|
||||
d="m 13.188069,1044.9014 v 2.5254"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path1370"
|
||||
d="m 13.188069,1047.4268 2.466712,-1.2334"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
62
icons/pageAction-whitelistURL.svg
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="pageAction-whitelistURL.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="49.848596"
|
||||
inkscape:cy="42.058864"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="848"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#00be00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4.167,1040.8719 c 2.65165,3.1567 3.661803,3.788 4.293148,8.5863 0.883884,-3.7881 2.355047,-9.0615 7.071068,-13.3846"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
79
icons/pageAction-whitelistURLTemporarily.svg
Normal file
|
@ -0,0 +1,79 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19"
|
||||
height="19"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.2 2405546, 2018-03-11"
|
||||
sodipodi:docname="pageAction-whitelistURLTemporarily.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="44.797833"
|
||||
inkscape:cy="16.80505"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="841"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-1033.3622)">
|
||||
<path
|
||||
style="fill:none;stroke:#00be00;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 4.167,1040.8719 c 2.65165,3.1567 3.661803,3.788 4.293148,8.5863 0.883884,-3.7881 2.355047,-9.0615 7.071068,-13.3846"
|
||||
id="path2985"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<ellipse
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#bbbbbb;stroke-width:0.98597425;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1366"
|
||||
cx="12"
|
||||
cy="1046.3623"
|
||||
rx="4.5070128"
|
||||
ry="4.5070133" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.62500006;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.235088,1043.2863 v 3.1567"
|
||||
id="path1368"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.62500006;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 12.235088,1046.443 3.08339,-1.5417"
|
||||
id="path1370"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
215
lib/askForPermission.js
Normal file
|
@ -0,0 +1,215 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
(function(){
|
||||
"use strict";
|
||||
let scope;
|
||||
if ((typeof exports) !== "undefined"){
|
||||
scope = exports;
|
||||
}
|
||||
else {
|
||||
scope = require.register("./askForPermission", {});
|
||||
}
|
||||
|
||||
const {parseErrorStack} = require("./callingStack");
|
||||
|
||||
// Check canvas appearance
|
||||
function canvasAppearance(window, api, context){
|
||||
let oldBorder = false;
|
||||
let canvas = false;
|
||||
let inDOM = null;
|
||||
if (api === "canvas" && context){
|
||||
let nodeName;
|
||||
try {
|
||||
nodeName = context.nodeName;
|
||||
}
|
||||
catch (error){
|
||||
nodeName = "";
|
||||
}
|
||||
if (nodeName === "CANVAS"){
|
||||
canvas = context;
|
||||
}
|
||||
else if (
|
||||
context instanceof window.CanvasRenderingContext2D ||
|
||||
context instanceof window.WebGLRenderingContext
|
||||
){
|
||||
canvas = context.canvas;
|
||||
}
|
||||
}
|
||||
if (canvas){
|
||||
oldBorder = canvas.style.border;
|
||||
canvas.style.border = "2px solid red";
|
||||
inDOM = canvas.ownerDocument.contains(canvas);
|
||||
}
|
||||
return {
|
||||
canvas: canvas,
|
||||
askCategory: canvas? (inDOM? "visible": "invisible"): (api === "canvas"? "nocanvas": api),
|
||||
get text(){
|
||||
const text = canvas? (this.visible? "visible": "invisible"): (api === "canvas"? "nocanvas": api);
|
||||
Object.defineProperty(this, "text", {value: text});
|
||||
return text;
|
||||
},
|
||||
inDom: inDOM,
|
||||
get visible(){
|
||||
let visible = inDOM;
|
||||
if (inDOM){
|
||||
canvas.scrollIntoView();
|
||||
const rect = canvas.getBoundingClientRect();
|
||||
const foundEl = window.document.elementFromPoint(
|
||||
rect.left + rect.width / 2,
|
||||
rect.top + rect.height / 2
|
||||
);
|
||||
visible = (foundEl === canvas);
|
||||
}
|
||||
Object.defineProperty(this, "visible", {value: visible});
|
||||
return visible;
|
||||
},
|
||||
reset: function(){
|
||||
if (canvas){
|
||||
canvas.style.border = oldBorder;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const modes = new WeakMap();
|
||||
function getAskMode(window, type, _){
|
||||
let mode = modes.get(window);
|
||||
if (mode){
|
||||
return mode[type];
|
||||
}
|
||||
else {
|
||||
mode = {
|
||||
context: {
|
||||
askText: {
|
||||
visible: _("askForVisiblePermission"),
|
||||
invisible: _("askForInvisiblePermission"),
|
||||
nocanvas: _("askForPermission"),
|
||||
audio: _("askForAudioPermission"),
|
||||
history: _("askForHistoryPermission"),
|
||||
window: _("askForWindowPermission"),
|
||||
domRect: _("askForDOMRectPermission"),
|
||||
svg: _("askForSVGPermission"),
|
||||
},
|
||||
askStatus: {
|
||||
alreadyAsked: {},
|
||||
answer: {}
|
||||
}
|
||||
},
|
||||
input: {
|
||||
askText: {
|
||||
visible: _("askForVisibleInputPermission"),
|
||||
invisible: _("askForInvisibleInputPermission"),
|
||||
nocanvas: _("askForInputPermission"),
|
||||
audio: _("askForAudioInputPermission"),
|
||||
history: _("askForHistoryInputPermission"),
|
||||
window: _("askForWindowInputPermission"),
|
||||
domRect: _("askForDOMRectInputPermission"),
|
||||
svg: _("askForSVGInputPermission"),
|
||||
},
|
||||
askStatus: {
|
||||
alreadyAsked: {},
|
||||
answer: {}
|
||||
}
|
||||
},
|
||||
readout: {
|
||||
askText: {
|
||||
visible: _("askForVisibleReadoutPermission"),
|
||||
invisible: _("askForInvisibleReadoutPermission"),
|
||||
nocanvas: _("askForReadoutPermission"),
|
||||
audio: _("askForAudioReadoutPermission"),
|
||||
history: _("askForHistoryReadoutPermission"),
|
||||
window: _("askForWindowReadoutPermission"),
|
||||
domRect: _("askForDOMRectReadoutPermission"),
|
||||
svg: _("askForSVGReadoutPermission"),
|
||||
},
|
||||
askStatus: {
|
||||
alreadyAsked: {},
|
||||
answer: {}
|
||||
}
|
||||
}
|
||||
};
|
||||
modes.set(window, mode);
|
||||
return mode[type];
|
||||
}
|
||||
}
|
||||
|
||||
scope.ask = function({window, type, api, canvas, errorStack}, {_, prefs}){
|
||||
let answer;
|
||||
const askMode = getAskMode(window, type, _);
|
||||
const askStatus = askMode.askStatus;
|
||||
const appearance = canvasAppearance(window, api, canvas);
|
||||
let category = appearance.askCategory;
|
||||
if (prefs("askOnlyOnce") !== "no" && askStatus.alreadyAsked[category]){
|
||||
// already asked
|
||||
appearance.reset();
|
||||
return askStatus.answer[category];
|
||||
}
|
||||
else {
|
||||
let imgContainer = null;
|
||||
if (type === "readout" && prefs("showCanvasWhileAsking") && canvas){
|
||||
try {
|
||||
let document = window.top.document;
|
||||
imgContainer = document.createElement("div");
|
||||
imgContainer.style.cssText = `
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.7);
|
||||
color: white;
|
||||
text-align: center;
|
||||
z-index: 100000000000000;
|
||||
padding: 1em;`;
|
||||
|
||||
let heading = document.createElement("h1");
|
||||
heading.textContent = "CanvasBlocker";
|
||||
imgContainer.appendChild(heading);
|
||||
|
||||
let text = document.createElement("div");
|
||||
text.style.margin = "0.5em auto";
|
||||
text.textContent = _("showCanvasWhileAsking_message");
|
||||
imgContainer.appendChild(text);
|
||||
|
||||
let img = document.createElement("img");
|
||||
img.style.backgroundColor = "white";
|
||||
img.style.border = "2px solid lightgray";
|
||||
img.src = HTMLCanvasElement.prototype.toDataURL.call(canvas);
|
||||
imgContainer.appendChild(img);
|
||||
document.body.appendChild(imgContainer);
|
||||
}
|
||||
catch (error){
|
||||
// unable to read the canvas
|
||||
}
|
||||
}
|
||||
// asking
|
||||
let msg = askMode.askText[appearance.text];
|
||||
|
||||
// visible vs invisible is only calculated here correctly
|
||||
category = appearance.text;
|
||||
if (prefs("showCallingFile")){
|
||||
msg += parseErrorStack(errorStack).toString(_);
|
||||
}
|
||||
answer = window.top.confirm(msg)? "allow": prefs("askDenyMode");
|
||||
if (imgContainer && imgContainer.parentNode){
|
||||
imgContainer.parentNode.removeChild(imgContainer);
|
||||
}
|
||||
|
||||
if (prefs("askOnlyOnce") === "combined"){
|
||||
["context", "readout", "input"].forEach(function(type){
|
||||
const askMode = getAskMode(window, type, _);
|
||||
const askStatus = askMode.askStatus;
|
||||
askStatus.alreadyAsked[category] = true;
|
||||
askStatus.answer[category] = answer;
|
||||
});
|
||||
}
|
||||
else {
|
||||
askStatus.alreadyAsked[category] = true;
|
||||
askStatus.answer[category] = answer;
|
||||
}
|
||||
appearance.reset();
|
||||
return answer;
|
||||
}
|
||||
};
|
||||
}());
|
100
lib/callingStack.js
Normal file
|
@ -0,0 +1,100 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
let scope;
|
||||
if ((typeof exports) !== "undefined"){
|
||||
scope = exports;
|
||||
}
|
||||
else {
|
||||
scope = require.register("./callingStack", {});
|
||||
}
|
||||
|
||||
const settings = require("./settings");
|
||||
const extension = require("./extension");
|
||||
|
||||
// Translation
|
||||
const _ = function(name, replace, translateAPI){
|
||||
if (!translateAPI){
|
||||
translateAPI = extension.getTranslation;
|
||||
}
|
||||
|
||||
let str = translateAPI(name) || name;
|
||||
if (replace){
|
||||
// replace generic content in the translation by given parameter
|
||||
Object.keys(replace).forEach(function(name){
|
||||
str = str.replace(new RegExp("{" + name + "}", "g"), replace[name]);
|
||||
});
|
||||
}
|
||||
return str;
|
||||
};
|
||||
|
||||
// Stack parsing
|
||||
function parseStackEntry(entry){
|
||||
const m = /@(.*):(\d*):(\d*)$/.exec(entry) || ["", entry, "--", "--"];
|
||||
return {
|
||||
url: m[1],
|
||||
line: parseInt(m[2], 10),
|
||||
column: parseInt(m[3], 10),
|
||||
raw: entry
|
||||
};
|
||||
}
|
||||
|
||||
function stackRuleMatch(stackEntry, stackRule){
|
||||
if (!stackEntry){
|
||||
return false;
|
||||
}
|
||||
if (stackEntry.url !== stackRule.url){
|
||||
return false;
|
||||
}
|
||||
if ((typeof stackRule.line) !== "undefined" && stackEntry.line !== stackRule.line){
|
||||
return false;
|
||||
}
|
||||
if ((typeof stackRule.column) !== "undefined" && stackEntry.column !== stackRule.column){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// parse calling stack
|
||||
const extensionID = extension.extensionID;
|
||||
function parseErrorStack(errorStack){
|
||||
const callers = errorStack.trim().split("\n").map(parseStackEntry).filter(function(caller){
|
||||
return !caller.url.startsWith(extensionID);
|
||||
});
|
||||
return {
|
||||
toString: function(translateAPI){
|
||||
let msg = "";
|
||||
msg += "\n\n" + _("sourceOutput", undefined, translateAPI) + ": ";
|
||||
if (settings.showCompleteCallingStack){
|
||||
msg += callers.reduce(function(stack, c){
|
||||
return stack + "\n\t" + _("stackEntryOutput", c, translateAPI);
|
||||
}, "");
|
||||
}
|
||||
else{
|
||||
msg += _("stackEntryOutput", callers[0], translateAPI);
|
||||
}
|
||||
|
||||
return msg;
|
||||
},
|
||||
match: function(stackRule){
|
||||
if (typeof stackRule.stackPosition !== "undefined"){
|
||||
let pos = stackRule.stackPosition;
|
||||
if (pos < 0){
|
||||
pos += callers.length;
|
||||
}
|
||||
return stackRuleMatch(callers[pos], stackRule);
|
||||
}
|
||||
else {
|
||||
return callers.some(function(stackEntry){
|
||||
return stackRuleMatch(stackEntry, stackRule);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
scope.parseErrorStack = parseErrorStack;
|
||||
}());
|
105
lib/check.js
Normal file
|
@ -0,0 +1,105 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
(function(){
|
||||
"use strict";
|
||||
|
||||
let scope;
|
||||
if ((typeof exports) !== "undefined"){
|
||||
scope = exports;
|
||||
}
|
||||
else {
|
||||
scope = require.register("./check", {});
|
||||
}
|
||||
|
||||
const settings = require("./settings");
|
||||
const lists = require("./lists");
|
||||
const {parseErrorStack} = require("./callingStack");
|
||||
const logging = require("./logging");
|
||||
|
||||
scope.check = function check({url, errorStack}){
|
||||
url = new URL(url || "about:blank");
|
||||
const match = checkBoth(errorStack, url, settings.get("blockMode", url)).match(
|
||||
/^(block|allow|fake|ask)(|Everything|Internal)$/
|
||||
);
|
||||
if (match){
|
||||
return {
|
||||
url: url,
|
||||
internal: match[2] === "Internal",
|
||||
mode: match[1]
|
||||
};
|
||||
}
|
||||
else {
|
||||
return {
|
||||
url: url,
|
||||
internal: false,
|
||||
mode: "block"
|
||||
};
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
function checkBoth(errorStack, url, blockMode){
|
||||
if (settings.enableStackList && errorStack && checkStack(errorStack)){
|
||||
return "allow";
|
||||
}
|
||||
else {
|
||||
return checkURL(url, blockMode);
|
||||
}
|
||||
}
|
||||
|
||||
function checkURL(url, blockMode){
|
||||
logging.message("check url %s for block mode %s", url, blockMode);
|
||||
switch (url.protocol){
|
||||
case "about:":
|
||||
if (url.pathname === "blank"){
|
||||
logging.message("use regular mode on about:blank");
|
||||
break;
|
||||
}
|
||||
logging.message("allow internal URLs");
|
||||
return "allowInternal";
|
||||
case "chrome:":
|
||||
logging.message("allow internal URLs");
|
||||
return "allowInternal";
|
||||
}
|
||||
|
||||
let mode = "block";
|
||||
switch (blockMode){
|
||||
case "blockEverything":
|
||||
mode = "block";
|
||||
break;
|
||||
case "block":
|
||||
case "ask":
|
||||
case "fake":
|
||||
case "allow":
|
||||
if (url && lists.get("white").match(url)){
|
||||
mode = "allow";
|
||||
}
|
||||
else if (url && lists.get("black").match(url)){
|
||||
mode = "block";
|
||||
}
|
||||
else {
|
||||
mode = blockMode;
|
||||
}
|
||||
break;
|
||||
case "allowEverything":
|
||||
mode = "allow";
|
||||
break;
|
||||
default:
|
||||
logging.warning("Unknown blocking mode (" + blockMode + "). Default to block everything.");
|
||||
}
|
||||
return mode;
|
||||
}
|
||||
|
||||
function checkStack(errorStack){
|
||||
if (settings.enableStackList){
|
||||
const stackList = lists.get("stack");
|
||||
if (stackList.length){
|
||||
const callingStack = parseErrorStack(errorStack);
|
||||
return stackList.match(callingStack);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
scope.checkStack = checkStack;
|
||||
}());
|