Compare commits
868
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
681c39a0ec | ||
|
|
55eb2832f5 | ||
|
|
003273327d | ||
|
|
650371311d | ||
|
|
1fccd9d8ee | ||
|
|
f2f6f7e8b0 | ||
|
|
e73929a782 | ||
|
|
c74754d238 | ||
|
|
cbe93351ee | ||
|
|
a558ac8ac9 | ||
|
|
a54f392aff | ||
|
|
752af49b6e | ||
|
|
9e45391482 | ||
|
|
766ad26871 | ||
|
|
747b7a9cc4 | ||
|
|
54db9d2005 | ||
|
|
d002463032 | ||
|
|
306690e137 | ||
|
|
0a744b1cfe | ||
|
|
21f5ffe826 | ||
|
|
844da4597f | ||
|
|
fb37ed0a37 | ||
|
|
7e01cff204 | ||
|
|
b2aab9283a | ||
|
|
94a484dd7e | ||
|
|
754ad61048 | ||
|
|
b3bf60f426 | ||
|
|
2828e5db82 | ||
|
|
fc5870128f | ||
|
|
6896f68985 | ||
|
|
68c11d035c | ||
|
|
55b2b54f43 | ||
|
|
4549256c2b | ||
|
|
09f456b280 | ||
|
|
a26cb28c97 | ||
|
|
e00e3008fe | ||
|
|
114cc12ee9 | ||
|
|
9b1ba68334 | ||
|
|
e43cde864f | ||
|
|
8a6f654e95 | ||
|
|
4c0556f928 | ||
|
|
7d7df95f28 | ||
|
|
d4feeb474e | ||
|
|
04c7949bc3 | ||
|
|
11c9f20ea8 | ||
|
|
0b2e4f1afa | ||
|
|
20a3f8c006 | ||
|
|
eb64fb02b6 | ||
|
|
877167cf26 | ||
|
|
27af68f279 | ||
|
|
f5c377092c | ||
|
|
954b1888d2 | ||
|
|
8b0c6d3857 | ||
|
|
758d79f4b4 | ||
|
|
633cc96bce | ||
|
|
c5a52404bd | ||
|
|
cd05a3a783 | ||
|
|
ae4be7c9eb | ||
|
|
66fa3acfbd | ||
|
|
6d04705a97 | ||
|
|
a5dc179c32 | ||
|
|
56138c585a | ||
|
|
2b3b701187 | ||
|
|
4e7e4c2cbe | ||
|
|
c1a1f487af | ||
|
|
304b177667 | ||
|
|
6014cdb2e6 | ||
|
|
d180f2aaf0 | ||
|
|
178989c5f5 | ||
|
|
8b960b23ac | ||
|
|
0a6fd85ac1 | ||
|
|
585c1ec4b2 | ||
|
|
0216b346f0 | ||
|
|
1a1d8ddc8c | ||
|
|
54c479af3a | ||
|
|
9ce0363260 | ||
|
|
e3d08de2d2 | ||
|
|
493d7334f8 | ||
|
|
d7df65954a | ||
|
|
9135a11e8c | ||
|
|
3b4a815657 | ||
|
|
ddbe089a62 | ||
|
|
e2403192f5 | ||
|
|
9472136272 | ||
|
|
f243b7b4af | ||
|
|
8c9b42d0b9 | ||
|
|
e7189e33f5 | ||
|
|
d66d343e1b | ||
|
|
3cf71e4513 | ||
|
|
cd68a2d8e7 | ||
|
|
acf95284e7 | ||
|
|
1d126c1d56 | ||
|
|
f90d03e857 | ||
|
|
49969faa91 | ||
|
|
2b020e9bbb | ||
|
|
e01e302f10 | ||
|
|
09bbda15b2 | ||
|
|
0b5cb08596 | ||
|
|
ba71cc45fe | ||
|
|
e0013ce522 | ||
|
|
cfc10b6a6e | ||
|
|
f141ce6db7 | ||
|
|
3833d85985 | ||
|
|
e16685fee9 | ||
|
|
11cf9b22e9 | ||
|
|
ec0f5a83bc | ||
|
|
f30a2606d4 | ||
|
|
810cdf0fc5 | ||
|
|
3ab2a0b7be | ||
|
|
8abaa8c760 | ||
|
|
e3accd0c01 | ||
|
|
8bfaf15e55 | ||
|
|
ab174e65d9 | ||
|
|
d1b17ef97e | ||
|
|
37bd28f3ef | ||
|
|
b873b2495a | ||
|
|
75b26b28bf | ||
|
|
b16ad4c672 | ||
|
|
718874cf11 | ||
|
|
8230982799 | ||
|
|
dadd11df42 | ||
|
|
c559e3e30f | ||
|
|
fe15bb43de | ||
|
|
1ef526f0f0 | ||
|
|
8058e08926 | ||
|
|
8361c83e41 | ||
|
|
8dea5c84fc | ||
|
|
c8f78b1ecf | ||
|
|
b702c9adca | ||
|
|
29de8de78c | ||
|
|
9fb0fef0d2 | ||
|
|
e7b772334d | ||
|
|
2b63f23cf3 | ||
|
|
0bdaa97892 | ||
|
|
e719d7b3be | ||
|
|
72e2a43c01 | ||
|
|
2ccac3373f | ||
|
|
532de8c09d | ||
|
|
89f23776a8 | ||
|
|
0b4dae0b3f | ||
|
|
9ec630afa1 | ||
|
|
4ee09e622b | ||
|
|
8fe7bfe065 | ||
|
|
a4cc727daf | ||
|
|
9c2269b000 | ||
|
|
e9cabcecc2 | ||
|
|
0763852cb7 | ||
|
|
00c726eaa1 | ||
|
|
8a5c700e4e | ||
|
|
cf58e417d4 | ||
|
|
842e3d91b4 | ||
|
|
931950a880 | ||
|
|
4028f58ce7 | ||
|
|
c394a5f871 | ||
|
|
a557bfae78 | ||
|
|
ba80720469 | ||
|
|
a66e6546c3 | ||
|
|
ded797b8bb | ||
|
|
4e2383201d | ||
|
|
6d7fac8440 | ||
|
|
f9e866b739 | ||
|
|
c05ad047ef | ||
|
|
53bd9f7e59 | ||
|
|
7ae62c2981 | ||
|
|
b7115f464e | ||
|
|
0f8df53ae7 | ||
|
|
4cc139ccb8 | ||
|
|
3983e0541e | ||
|
|
d31fa89c8a | ||
|
|
92e0c93288 | ||
|
|
f8086ef486 | ||
|
|
c55addfa64 | ||
|
|
054dde2728 | ||
|
|
4cfe5d84de | ||
|
|
bdd013826b | ||
|
|
fca67bb95d | ||
|
|
b519af5408 | ||
|
|
f138ec95d9 | ||
|
|
ae14556114 | ||
|
|
05bb04a651 | ||
|
|
f8b9aba821 | ||
|
|
8a95c03dcd | ||
|
|
9282781bdf | ||
|
|
8b779470cd | ||
|
|
da3451bb3d | ||
|
|
68011e6ec7 | ||
|
|
7d67148f52 | ||
|
|
287ca21a65 | ||
|
|
9ee567082c | ||
|
|
64875ed348 | ||
|
|
ead1b037b4 | ||
|
|
d594ed2896 | ||
|
|
b189d04718 | ||
|
|
f5fb45f146 | ||
|
|
08cfc34a05 | ||
|
|
2b8a229ce3 | ||
|
|
2054a1205e | ||
|
|
01b5b8fd8a | ||
|
|
64204fdb83 | ||
|
|
e5c2d9acc9 | ||
|
|
c8bdd9c32e | ||
|
|
9147cc1969 | ||
|
|
02429a5127 | ||
|
|
33406af039 | ||
|
|
31e756cf05 | ||
|
|
f8ad954f7d | ||
|
|
77bb1e886c | ||
|
|
25370b7f0c | ||
|
|
c73c73b797 | ||
|
|
63d482639c | ||
|
|
72ad33f3fd | ||
|
|
99ba894a9a | ||
|
|
facac9b21f | ||
|
|
8437051001 | ||
|
|
ca258a9c56 | ||
|
|
60c526db50 | ||
|
|
7494a278ae | ||
|
|
386266fab1 | ||
|
|
f2bc0785b9 | ||
|
|
ccb9e8c834 | ||
|
|
501db456d4 | ||
|
|
356c948bbd | ||
|
|
8096b6a9a1 | ||
|
|
924ffcac26 | ||
|
|
efea08ca6c | ||
|
|
dfe1ae6c3e | ||
|
|
84e449502f | ||
|
|
0b26d810bd | ||
|
|
374231de93 | ||
|
|
4461757e44 | ||
|
|
b3eee1b47e | ||
|
|
c71dd74969 | ||
|
|
314016db7f | ||
|
|
96e396f345 | ||
|
|
70a08bf916 | ||
|
|
4f82d4067a | ||
|
|
c17c14ce6a | ||
|
|
aedeefe898 | ||
|
|
da92d37033 | ||
|
|
9243e01613 | ||
|
|
12c1588b94 | ||
|
|
2e0e50636f | ||
|
|
58e05d90e1 | ||
|
|
5fccd1cabd | ||
|
|
c2d77decb2 | ||
|
|
cf22ff559b | ||
|
|
a22bf0142f | ||
|
|
ff362dd200 | ||
|
|
7bbe1c3f3d | ||
|
|
99e150cb43 | ||
|
|
e226e36a6c | ||
|
|
47354a0f29 | ||
|
|
62ca5cf04a | ||
|
|
1170e81edd | ||
|
|
63800e14ac | ||
|
|
aaf3409c46 | ||
|
|
6386363f89 | ||
|
|
2bbed348d4 | ||
|
|
7632870fd9 | ||
|
|
3589d4f072 | ||
|
|
bda9abd82c | ||
|
|
3e82feb264 | ||
|
|
8d0abc0389 | ||
|
|
4c2e77404f | ||
|
|
a0968fc6a8 | ||
|
|
912ac7e228 | ||
|
|
fb337a69b4 | ||
|
|
706493af4e | ||
|
|
8c19f94d29 | ||
|
|
3eaf8be961 | ||
|
|
588a484c53 | ||
|
|
536bc9be40 | ||
|
|
85e1c970e9 | ||
|
|
fd651c893a | ||
|
|
cf71cfa4dc | ||
|
|
9eb4d5e344 | ||
|
|
33f860b25e | ||
|
|
87bf3b1714 | ||
|
|
6d10eb1aff | ||
|
|
038971c8a1 | ||
|
|
a0a79a9aa3 | ||
|
|
8d517b88e5 | ||
|
|
0e01190d5f | ||
|
|
597fb9fbe3 | ||
|
|
ac05ab923a | ||
|
|
1d1955f1eb | ||
|
|
87adbf4322 | ||
|
|
92207c99ab | ||
|
|
263927c717 | ||
|
|
70974f59f3 | ||
|
|
d05099428f | ||
|
|
df84e6a4f5 | ||
|
|
55c7287553 | ||
|
|
be3bf22737 | ||
|
|
39f12daed6 | ||
|
|
540e704435 | ||
|
|
9a381d423f | ||
|
|
5ab84e6642 | ||
|
|
615be068c3 | ||
|
|
e341862cac | ||
|
|
5fa956dfe4 | ||
|
|
9929aa7775 | ||
|
|
f858398f2f | ||
|
|
df185f9fbe | ||
|
|
fc249d76a4 | ||
|
|
bd32d607ad | ||
|
|
c1852a54a5 | ||
|
|
0213b9481f | ||
|
|
297eabaa99 | ||
|
|
0d0cf693ac | ||
|
|
8e9e05da3d | ||
|
|
2569bca930 | ||
|
|
f5304801ac | ||
|
|
7e929b2bdc | ||
|
|
20f5317e27 | ||
|
|
7156604f1c | ||
|
|
be78355e83 | ||
|
|
93b77160ce | ||
|
|
9a94a94cff | ||
|
|
53808c6578 | ||
|
|
2e7c6320a8 | ||
|
|
a4178241ae | ||
|
|
5c4c912c9c | ||
|
|
d009c9bcf2 | ||
|
|
44a46fcdd1 | ||
|
|
6ac47e9531 | ||
|
|
df8d6a8db1 | ||
|
|
e7e96d079c | ||
|
|
edea3b6076 | ||
|
|
a952e2a3aa | ||
|
|
97238e0f43 | ||
|
|
0e6c1d1dc3 | ||
|
|
bf6bb142fc | ||
|
|
7a480d5571 | ||
|
|
de97da2446 | ||
|
|
309d1ca1f2 | ||
|
|
d164660412 | ||
|
|
16c1230184 | ||
|
|
1a36001469 | ||
|
|
7b9b08e207 | ||
|
|
a830c90016 | ||
|
|
9f8f40b322 | ||
|
|
fdb5aba59a | ||
|
|
bbd4001cb2 | ||
|
|
7c21a025e7 | ||
|
|
59fb23c666 | ||
|
|
f887139a97 | ||
|
|
45f3d2bf06 | ||
|
|
09b78833b5 | ||
|
|
03cf69df45 | ||
|
|
ca9f588f31 | ||
|
|
11d5826ae1 | ||
|
|
eb09a5738c | ||
|
|
fb84e0f322 | ||
|
|
b16ab3f383 | ||
|
|
987d105f55 | ||
|
|
54465cc4ac | ||
|
|
4e38ba8670 | ||
|
|
1b846d4b52 | ||
|
|
0433d6e7d1 | ||
|
|
2dba03fd2f | ||
|
|
e08833665d | ||
|
|
e7b059d943 | ||
|
|
5ddda9321c | ||
|
|
484a5de81d | ||
|
|
50217bd546 | ||
|
|
d75e9071f1 | ||
|
|
b1f27cb866 | ||
|
|
b0af6c9827 | ||
|
|
3c30002e00 | ||
|
|
17a7b835d5 | ||
|
|
08f0754406 | ||
|
|
dfe72009d3 | ||
|
|
91d45b1630 | ||
|
|
fa8c3a20c6 | ||
|
|
3203c21a80 | ||
|
|
3a17b713ef | ||
|
|
0f83951b6b | ||
|
|
45c75167b0 | ||
|
|
cf1b29fe47 | ||
|
|
fe4175e799 | ||
|
|
51c57b41a1 | ||
|
|
a5a34355e4 | ||
|
|
9fed5c8f39 | ||
|
|
d960419686 | ||
|
|
5e8e0689c4 | ||
|
|
43001bdfd7 | ||
|
|
f542c40ee6 | ||
|
|
3e670d8573 | ||
|
|
6fde853fa8 | ||
|
|
321121c827 | ||
|
|
537d477b30 | ||
|
|
a0bfb651b6 | ||
|
|
fef521cb6a | ||
|
|
99889f4cc6 | ||
|
|
5593323410 | ||
|
|
86f6015894 | ||
|
|
7838398b62 | ||
|
|
c352cb6a50 | ||
|
|
b2aba844ee | ||
|
|
940f4a53a5 | ||
|
|
9f7f0f1172 | ||
|
|
aea1fd640e | ||
|
|
2b97ab29b8 | ||
|
|
27c333c6b4 | ||
|
|
c043e5d535 | ||
|
|
858eff005a | ||
|
|
2af28f35d1 | ||
|
|
199a592d86 | ||
|
|
20a62a90e6 | ||
|
|
20cae79eb3 | ||
|
|
99831baf2e | ||
|
|
04e0440f61 | ||
|
|
abc1c7eb39 | ||
|
|
a1065a8a4b | ||
|
|
45549dde48 | ||
|
|
b86be392ff | ||
|
|
942640c901 | ||
|
|
fba0b46f53 | ||
|
|
ca4209a2da | ||
|
|
63b52f85a8 | ||
|
|
4a5f6b36cc | ||
|
|
b4e843aa3c | ||
|
|
3cf6d2b2d7 | ||
|
|
3968897fb4 | ||
|
|
17c5cad601 | ||
|
|
f4d1b4804a | ||
|
|
78074eb34f | ||
|
|
3430e8690a | ||
|
|
bbfe249fd0 | ||
|
|
09cc05a97f | ||
|
|
0a2b11d181 | ||
|
|
2f54cd30fc | ||
|
|
de16d19667 | ||
|
|
7e0d05ea58 | ||
|
|
94980111da | ||
|
|
7dfc8b77b9 | ||
|
|
e14c686ac0 | ||
|
|
77fbaff2fa | ||
|
|
5941771281 | ||
|
|
6a44ab2659 | ||
|
|
5e69b90422 | ||
|
|
6f1fcab2d8 | ||
|
|
eac3e64111 | ||
|
|
7f21e9c0cd | ||
|
|
9f4779f923 | ||
|
|
0679b939f3 | ||
|
|
a77308735f | ||
|
|
c4aadf04aa | ||
|
|
473fb65d33 | ||
|
|
e25430117a | ||
|
|
4e721d14cd | ||
|
|
a1a007a485 | ||
|
|
4e368f8199 | ||
|
|
59bf4204a8 | ||
|
|
05cb2b32f2 | ||
|
|
dc8aad9b9d | ||
|
|
19b9340707 | ||
|
|
e57cba2682 | ||
|
|
b6a49b6623 | ||
|
|
cb59151acd | ||
|
|
424ed1b165 | ||
|
|
d990d8ab2c | ||
|
|
8d5ec757ec | ||
|
|
e197496820 | ||
|
|
72721d1d03 | ||
|
|
70c8cf8db7 | ||
|
|
aafdd31444 | ||
|
|
05441d12b6 | ||
|
|
727c27a30d | ||
|
|
b311e8fa71 | ||
|
|
2818e8dedb | ||
|
|
e7a220aae2 | ||
|
|
6056525ced | ||
|
|
4ee42e38e0 | ||
|
|
c93787917d | ||
|
|
f3c542a6a5 | ||
|
|
e2853b8a8f | ||
|
|
e641a2c53a | ||
|
|
34533e06a7 | ||
|
|
3df7c50fcc | ||
|
|
8bb9649135 | ||
|
|
5fd5b2ac2f | ||
|
|
aae3a11734 | ||
|
|
114eb8bf48 | ||
|
|
fdedd57c60 | ||
|
|
1ea1ed1515 | ||
|
|
2bb0252ab4 | ||
|
|
4b487efb58 | ||
|
|
2d2a60cdae | ||
|
|
7d753c1a8f | ||
|
|
2b7f231ca7 | ||
|
|
2a57d73c3b | ||
|
|
caa2a53c40 | ||
|
|
3ee73ca14c | ||
|
|
893a886ea3 | ||
|
|
7197b308fb | ||
|
|
6085bfdcec | ||
|
|
f084549e82 | ||
|
|
1a3f098975 | ||
|
|
eb94521052 | ||
|
|
e3f1d0d106 | ||
|
|
f67a2b88d7 | ||
|
|
5ef44cf648 | ||
|
|
6822460d3b | ||
|
|
213f9ea384 | ||
|
|
75db97cb37 | ||
|
|
a413cf7288 | ||
|
|
173a526ec0 | ||
|
|
3114d48cee | ||
|
|
9384b08d87 | ||
|
|
df313c5b77 | ||
|
|
cf70142093 | ||
|
|
5b5e5233f5 | ||
|
|
faa5f0df26 | ||
|
|
393ee744a8 | ||
|
|
b2af10d6cf | ||
|
|
b2331d7622 | ||
|
|
122938a439 | ||
|
|
427e734662 | ||
|
|
dda392cd4e | ||
|
|
912aa47acf | ||
|
|
726d2c3093 | ||
|
|
ea1b2e81e4 | ||
|
|
77e607426f | ||
|
|
9472b0a603 | ||
|
|
b794d24326 | ||
|
|
9ecabc46eb | ||
|
|
c00faa3d19 | ||
|
|
4a4b951bfc | ||
|
|
566f1ff8e7 | ||
|
|
0a815a6f11 | ||
|
|
6698bbf107 | ||
|
|
0ae2ab78b9 | ||
|
|
a10b23932c | ||
|
|
a24511ca8e | ||
|
|
41bd3e2599 | ||
|
|
191ec5415b | ||
|
|
bdaacef069 | ||
|
|
e3da3bec40 | ||
|
|
56bcb6b5af | ||
|
|
e4c64e1a3d | ||
|
|
77734e5470 | ||
|
|
af300f36f1 | ||
|
|
338c6a4323 | ||
|
|
28d4e4a5fa | ||
|
|
11bdaa144d | ||
|
|
1147945576 | ||
|
|
25550ce903 | ||
|
|
75c9377766 | ||
|
|
ee15761a50 | ||
|
|
0d3ee51ad2 | ||
|
|
82b361dc44 | ||
|
|
caa1b329f1 | ||
|
|
4bb98e2b61 | ||
|
|
71429dc7ec | ||
|
|
ea3585702f | ||
|
|
07148526de | ||
|
|
ece34cca42 | ||
|
|
c9e08a8af9 | ||
|
|
302f17e514 | ||
|
|
959f6d2881 | ||
|
|
5e04b38b1d | ||
|
|
64d560f52b | ||
|
|
e59bc0fea2 | ||
|
|
5b69e05939 | ||
|
|
2d689a1bc3 | ||
|
|
8bd0f36bf1 | ||
|
|
b367c38241 | ||
|
|
f0b727eac2 | ||
|
|
a32b7f7c4e | ||
|
|
bd819cc436 | ||
|
|
8c25427afc | ||
|
|
69d5d1e702 | ||
|
|
9da00ab58e | ||
|
|
c0ea2166b9 | ||
|
|
686954ea84 | ||
|
|
879619491f | ||
|
|
8f7686bd7d | ||
|
|
f87d25ee40 | ||
|
|
5babf7dc56 | ||
|
|
756fb3e145 | ||
|
|
e749d23a34 | ||
|
|
a089281740 | ||
|
|
f56791f643 | ||
|
|
d9ef671b04 | ||
|
|
f13ea6af5b | ||
|
|
c7816fd9ee | ||
|
|
abf6ecee9f | ||
|
|
a8f45aba81 | ||
|
|
d2a0a16054 | ||
|
|
240ba54a42 | ||
|
|
5462c41574 | ||
|
|
38d185280e | ||
|
|
7c68c5a22c | ||
|
|
a1f1434202 | ||
|
|
565bf75145 | ||
|
|
90e68c3e3f | ||
|
|
4a70c6dd24 | ||
|
|
e510fcb00c | ||
|
|
ffa04def2f | ||
|
|
70a4d7e010 | ||
|
|
b392e6d2ea | ||
|
|
ba74a4174d | ||
|
|
519775b8d9 | ||
|
|
2fbd179478 | ||
|
|
c43c8f1762 | ||
|
|
ea44e60b7e | ||
|
|
6be9e50707 | ||
|
|
93f8e06bb8 | ||
|
|
1df7811e8e | ||
|
|
092c61f6e6 | ||
|
|
76e1c016a3 | ||
|
|
920519e7c5 | ||
|
|
505edf1ba4 | ||
|
|
017797de49 | ||
|
|
b736f53a13 | ||
|
|
4577efd50f | ||
|
|
eda34d02aa | ||
|
|
1275cfecf8 | ||
|
|
8d709fbc81 | ||
|
|
e3c30c6a4d | ||
|
|
9e2ba2237f | ||
|
|
2e5f399735 | ||
|
|
2f4fa17a5c | ||
|
|
88cfcc8a55 | ||
|
|
94852e675f | ||
|
|
de97f5dd8e | ||
|
|
b9b1757006 | ||
|
|
05b5c72bb4 | ||
|
|
d24b2d8a1d | ||
|
|
25b78dfa6e | ||
|
|
28b1200181 | ||
|
|
050973b503 | ||
|
|
141607b6de | ||
|
|
3bb7b8e11e | ||
|
|
daab331cf5 | ||
|
|
704ce7d91c | ||
|
|
f2fc563210 | ||
|
|
a973e506c1 | ||
|
|
4537850611 | ||
|
|
b9bb9f4cc6 | ||
|
|
d219b672a3 | ||
|
|
860efa70ee | ||
|
|
f6e7a511bc | ||
|
|
eb7399a0ab | ||
|
|
d739fdc17c | ||
|
|
2998d0f5e2 | ||
|
|
115952301b | ||
|
|
c5e46d92a2 | ||
|
|
e78a87b418 | ||
|
|
a53fe8f5c9 | ||
|
|
bba13e3d34 | ||
|
|
fbc836e285 | ||
|
|
9626500a0e | ||
|
|
c1ba23a015 | ||
|
|
d252c5b232 | ||
|
|
8114b67b64 | ||
|
|
c3039dadd9 | ||
|
|
8891f99913 | ||
|
|
3e9c160bbb | ||
|
|
28d03f81da | ||
|
|
f22bc3fd88 | ||
|
|
166fb9f289 | ||
|
|
26e53627d6 | ||
|
|
f0175fb7ab | ||
|
|
4240e91e32 | ||
|
|
71fd51a863 | ||
|
|
43ddb9b8c0 | ||
|
|
390894c822 | ||
|
|
e272829137 | ||
|
|
c8355b22c0 | ||
|
|
d7d79119ec | ||
|
|
3777f62a00 | ||
|
|
ba2c2e5301 | ||
|
|
11a8a39f6d | ||
|
|
17e72c824e | ||
|
|
b6c2d5f6ae | ||
|
|
6ee4e4436c | ||
|
|
13a6805652 | ||
|
|
aa60e7f714 | ||
|
|
0535b0bb38 | ||
|
|
caebf13372 | ||
|
|
66e6aac506 | ||
|
|
03f6e7acb3 | ||
|
|
60edea0203 | ||
|
|
b43b4f25a8 | ||
|
|
12ea568359 | ||
|
|
644e9db109 | ||
|
|
228d252ab1 | ||
|
|
46ecf68249 | ||
|
|
e59c00a5c5 | ||
|
|
eebeefbf29 | ||
|
|
abf6005858 | ||
|
|
9fafdd4546 | ||
|
|
d5d3cc71b8 | ||
|
|
b05346cf37 | ||
|
|
627f167bf4 | ||
|
|
b19e4e2cf0 | ||
|
|
f7e146b343 | ||
|
|
259e214960 | ||
|
|
ad35e2a11f | ||
|
|
32230477c6 | ||
|
|
fedcf7249a | ||
|
|
e10dfb62ff | ||
|
|
2772787463 | ||
|
|
fd6b1ad6f9 | ||
|
|
7a6e7ed0f5 | ||
|
|
1dbd9799db | ||
|
|
c88c161875 | ||
|
|
46ad1199de | ||
|
|
55d03738f9 | ||
|
|
011dac290a | ||
|
|
507827c207 | ||
|
|
dc7ceccf8b | ||
|
|
788c588bf6 | ||
|
|
6f93b00559 | ||
|
|
be18578af6 | ||
|
|
71119b4926 | ||
|
|
b884cfd05e | ||
|
|
a910f57af6 | ||
|
|
f1a0f0a56f | ||
|
|
8781f74555 | ||
|
|
7eb2c156ba | ||
|
|
f3f9b7b06e | ||
|
|
7b7ea5c59a | ||
|
|
cff4a7d0b6 | ||
|
|
6bb68deb2a | ||
|
|
896e23c20e | ||
|
|
cdcfbde10d | ||
|
|
b4dac5093a | ||
|
|
a06ce3f03b | ||
|
|
62d5359679 | ||
|
|
b7274fd666 | ||
|
|
eaac061607 | ||
|
|
6f96569b44 | ||
|
|
3458dde44f | ||
|
|
ee221138d4 | ||
|
|
bc0273b478 | ||
|
|
8896ca5c0a | ||
|
|
49e8a36e17 | ||
|
|
5f813f143b | ||
|
|
2e07719b30 | ||
|
|
c9fc6f4923 | ||
|
|
12640bf26e | ||
|
|
580ebc1056 | ||
|
|
ef9aeb6a08 | ||
|
|
4fd939e8c9 | ||
|
|
a80b5f2728 | ||
|
|
2e1e954eac | ||
|
|
c023a51e60 | ||
|
|
d8598c1ed3 | ||
|
|
0c36b27511 | ||
|
|
d77729916b | ||
|
|
4c697043da | ||
|
|
fd9d8c20d2 | ||
|
|
8826313be0 | ||
|
|
9ecbf33313 | ||
|
|
5d1eb0d3aa | ||
|
|
a930db1c9e | ||
|
|
f1e863a490 | ||
|
|
20e533f6b5 | ||
|
|
a1bc6f33ef | ||
|
|
40d8e355ce | ||
|
|
da8f20a3b0 | ||
|
|
38ec1c796d | ||
|
|
f297ef798e | ||
|
|
13a9ea6486 | ||
|
|
4f82d71df0 | ||
|
|
01b1e411bd | ||
|
|
ce1bd4f244 | ||
|
|
616475a0c1 | ||
|
|
a14048f0a2 | ||
|
|
39578317ee | ||
|
|
2e0f80af42 | ||
|
|
8f1c9fe4f0 | ||
|
|
66248cfbcc | ||
|
|
ee70e3a366 | ||
|
|
3d37f61816 | ||
|
|
039f3e49c7 | ||
|
|
2b01522cf3 | ||
|
|
e52c019ec8 | ||
|
|
c766897196 | ||
|
|
85edb1c711 | ||
|
|
bc9ad467f0 | ||
|
|
a24398e42d | ||
|
|
b55f0e7f0d | ||
|
|
47b8c58d47 | ||
|
|
b6c330e1ca | ||
|
|
51b6354f31 | ||
|
|
31c5e63eda | ||
|
|
d38f865699 | ||
|
|
5839763c82 | ||
|
|
83c4b04a70 | ||
|
|
140e3f5c03 | ||
|
|
aa752bce48 | ||
|
|
afb673f1b2 | ||
|
|
20b6d5e9c0 | ||
|
|
3cdef72da3 | ||
|
|
1a418cf476 | ||
|
|
e803a1be81 | ||
|
|
45f2fcd80d | ||
|
|
74fbc810ab | ||
|
|
b19cfd8e7b | ||
|
|
9dcf77e4c6 | ||
|
|
f28984b853 | ||
|
|
8a119434ac | ||
|
|
050cfdc4ca | ||
|
|
170b82c2e2 | ||
|
|
6f5c57ae74 | ||
|
|
4ccbe3620e | ||
|
|
d6d1c2dad1 | ||
|
|
c9b266dc20 | ||
|
|
827033c57c | ||
|
|
8723b9da93 | ||
|
|
b6ccccbc56 | ||
|
|
e14ebc03e3 | ||
|
|
5b829937bb | ||
|
|
433b047711 | ||
|
|
eddd0de2ae | ||
|
|
9920472970 | ||
|
|
73c6f6b3de | ||
|
|
8a15fd8d24 | ||
|
|
34125a031e | ||
|
|
631b690ac3 | ||
|
|
c87dbe6922 | ||
|
|
260e399a1f | ||
|
|
8fd370c9f3 | ||
|
|
30c683d986 | ||
|
|
1da0e8a095 | ||
|
|
c06b8691e3 | ||
|
|
2c0b407f04 | ||
|
|
2b6c1f971b | ||
|
|
a7e1d8dc3c | ||
|
|
3156899f74 | ||
|
|
33855e2472 | ||
|
|
598dc50dbb | ||
|
|
26163d8988 | ||
|
|
1201510514 | ||
|
|
4686be40b2 | ||
|
|
ae656528f7 | ||
|
|
3bc0a5c532 | ||
|
|
cf71bfa8aa | ||
|
|
4cda63fe3f | ||
|
|
814bfaddb9 | ||
|
|
31c0e9aa68 | ||
|
|
442e2e04ef | ||
|
|
0f99df52d5 | ||
|
|
3adc70dadd | ||
|
|
5b30f18421 | ||
|
|
e1cb581a99 | ||
|
|
06a13ffb09 | ||
|
|
3bcc6548c4 | ||
|
|
84ed7160b1 | ||
|
|
d49ca9fc0f | ||
|
|
97ff781ee8 | ||
|
|
0fca15e1f3 | ||
|
|
5c6320cc46 | ||
|
|
8a9d0dfdbf | ||
|
|
753df14c7c | ||
|
|
40388d5acf | ||
|
|
651b0dd97f | ||
|
|
bb9e155841 | ||
|
|
aaa70dac61 | ||
|
|
d394b70aa4 | ||
|
|
37ea3b7b87 | ||
|
|
15e4dcdedd | ||
|
|
2625cde90f |
No files matched your search
@@ -1 +0,0 @@
|
||||
config
|
||||
@@ -1,6 +0,0 @@
|
||||
[source.crates-io]
|
||||
registry = 'https://github.com/rust-lang/crates.io-index'
|
||||
replace-with = 'vendored-sources'
|
||||
|
||||
[source.vendored-sources]
|
||||
directory = '@top_srcdir@/third_party/rust'
|
||||
-16
@@ -299,13 +299,6 @@ MAKE_SYM_STORE_ARGS += --install-manifest=$(DEPTH)/_build_manifests/install/dist
|
||||
|
||||
SYM_STORE_SOURCE_DIRS := $(topsrcdir)
|
||||
|
||||
ifdef MOZ_CRASHREPORTER
|
||||
include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
|
||||
|
||||
SYMBOL_INDEX_NAME = \
|
||||
$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)-$(OS_TARGET)-$(BUILDID)-$(CPU_ARCH)-symbols.txt
|
||||
endif
|
||||
|
||||
.PHONY: generatesymbols
|
||||
generatesymbols:
|
||||
echo building symbol store
|
||||
@@ -337,18 +330,9 @@ symbolsarchive: generatesymbols
|
||||
cd $(DIST)/crashreporter-symbols && \
|
||||
zip -r5D '../$(PKG_PATH)$(SYMBOL_ARCHIVE_BASENAME).zip' . -i '*.sym' -i '*.txt'
|
||||
|
||||
ifdef MOZ_CRASHREPORTER
|
||||
buildsymbols: symbolsfullarchive symbolsarchive
|
||||
else
|
||||
buildsymbols:
|
||||
endif
|
||||
|
||||
uploadsymbols:
|
||||
ifdef MOZ_CRASHREPORTER
|
||||
ifdef SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE
|
||||
$(PYTHON) -u $(topsrcdir)/toolkit/crashreporter/tools/upload_symbols.py '$(DIST)/$(PKG_PATH)$(SYMBOL_FULL_ARCHIVE_BASENAME).zip'
|
||||
endif
|
||||
endif
|
||||
|
||||
.PHONY: update-packaging
|
||||
update-packaging:
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
# Unified XUL Platform (UXP)
|
||||
|
||||
This repository holds the code for a unified application platform for XUL-based
|
||||
applications. It is a hard fork from the Mozilla code repository (mozilla-central)
|
||||
with an ESR-52 fork point.
|
||||
|
||||
In addition to further development based on the Mozilla upstream code, and
|
||||
selective cherry-picking of directly-applicable patches, this repository has its
|
||||
own development and holds the base for a future platform to be used by XUL
|
||||
applications.
|
||||
|
||||
This repository will contain at least one application to demonstrate and make use
|
||||
of the platform: The Basilisk web browser, a close twin to Mozilla's Firefox.
|
||||
|
||||
### A note about trademarks and branding
|
||||
|
||||
Although this repository is licensed under Mozilla Public License v2.0, the
|
||||
trademarks and brands contained herein remain the property of their respective
|
||||
owners. For more details, please see the notifications in the respective directories.
|
||||
|
||||
### Foundation and maintainership
|
||||
|
||||
This repository has been founded and is maintained by Moonchild (M.C. Straver).
|
||||
If you fork this repository to perform your own work on it, please consider
|
||||
offering improvement patches upstream to its origin to mutually improve the
|
||||
platform and build a future for XUL.
|
||||
@@ -53,10 +53,6 @@
|
||||
#include "Logging.h"
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
#include "nsExceptionHandler.h"
|
||||
#endif
|
||||
|
||||
#include "nsImageFrame.h"
|
||||
#include "nsIObserverService.h"
|
||||
#include "nsLayoutUtils.h"
|
||||
@@ -1283,12 +1279,6 @@ nsAccessibilityService::Init()
|
||||
NS_ADDREF(gApplicationAccessible); // will release in Shutdown()
|
||||
gApplicationAccessible->Init();
|
||||
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
CrashReporter::
|
||||
AnnotateCrashReport(NS_LITERAL_CSTRING("Accessibility"),
|
||||
NS_LITERAL_CSTRING("Active"));
|
||||
#endif
|
||||
|
||||
#ifdef XP_WIN
|
||||
sPendingPlugins = new nsTArray<nsCOMPtr<nsIContent> >;
|
||||
sPluginTimers = new nsTArray<nsCOMPtr<nsITimer> >;
|
||||
|
||||
@@ -124,14 +124,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=753984
|
||||
"Peaches", {"string": "linkAbbr"}, "Plums", {"string": "linkAbbr"},
|
||||
{"string": "listAbbr"},
|
||||
{"string": "cellInfoAbbr", "args": [ 1, 1]}]]
|
||||
}, {
|
||||
accOrElmOrID: "date",
|
||||
expectedUtterance: [[{"string": "textInputType_date"},
|
||||
{"string": "entry"}, "2011-09-29"], ["2011-09-29",
|
||||
{"string": "textInputType_date"}, {"string": "entry"}]],
|
||||
expectedBraille: [[{"string": "textInputType_date"},
|
||||
{"string": "entryAbbr"}, "2011-09-29"], ["2011-09-29",
|
||||
{"string": "textInputType_date"}, {"string": "entryAbbr"}]]
|
||||
}, {
|
||||
accOrElmOrID: "email",
|
||||
expectedUtterance: [[{"string": "textInputType_email"},
|
||||
@@ -619,7 +611,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=753984
|
||||
<label for="password">Secret Password</label><input id="password" type="password"></input>
|
||||
<label for="radio_unselected">any old radio button</label><input id="radio_unselected" type="radio"></input>
|
||||
<label for="radio_selected">a unique radio button</label><input id="radio_selected" type="radio" checked></input>
|
||||
<input id="date" type="date" value="2011-09-29" />
|
||||
<input id="email" type="email" value="test@example.com" />
|
||||
<input id="search" type="search" value="This is a search" />
|
||||
<input id="tel" type="tel" value="555-5555" />
|
||||
|
||||
@@ -63,8 +63,6 @@ ia2Accessible::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_nRelations(long* aNRelations)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNRelations)
|
||||
return E_INVALIDARG;
|
||||
*aNRelations = 0;
|
||||
@@ -84,16 +82,12 @@ ia2Accessible::get_nRelations(long* aNRelations)
|
||||
(*aNRelations)++;
|
||||
}
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_relation(long aRelationIndex,
|
||||
IAccessibleRelation** aRelation)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRelation || aRelationIndex < 0)
|
||||
return E_INVALIDARG;
|
||||
*aRelation = nullptr;
|
||||
@@ -124,8 +118,6 @@ ia2Accessible::get_relation(long aRelationIndex,
|
||||
}
|
||||
|
||||
return E_INVALIDARG;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -133,8 +125,6 @@ ia2Accessible::get_relations(long aMaxRelations,
|
||||
IAccessibleRelation** aRelation,
|
||||
long *aNRelations)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRelation || !aNRelations || aMaxRelations <= 0)
|
||||
return E_INVALIDARG;
|
||||
*aNRelations = 0;
|
||||
@@ -160,15 +150,11 @@ ia2Accessible::get_relations(long aMaxRelations,
|
||||
}
|
||||
}
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::role(long* aRole)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRole)
|
||||
return E_INVALIDARG;
|
||||
*aRole = 0;
|
||||
@@ -204,15 +190,11 @@ ia2Accessible::role(long* aRole)
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::scrollTo(enum IA2ScrollType aScrollType)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
AccessibleWrap* acc = static_cast<AccessibleWrap*>(this);
|
||||
if (acc->IsDefunct())
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
@@ -222,16 +204,12 @@ ia2Accessible::scrollTo(enum IA2ScrollType aScrollType)
|
||||
aScrollType);
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::scrollToPoint(enum IA2CoordinateType aCoordType,
|
||||
long aX, long aY)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
AccessibleWrap* acc = static_cast<AccessibleWrap*>(this);
|
||||
if (acc->IsDefunct())
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
@@ -244,8 +222,6 @@ ia2Accessible::scrollToPoint(enum IA2CoordinateType aCoordType,
|
||||
acc->ScrollToPoint(geckoCoordType, aX, aY);
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -253,8 +229,6 @@ ia2Accessible::get_groupPosition(long* aGroupLevel,
|
||||
long* aSimilarItemsInGroup,
|
||||
long* aPositionInGroup)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aGroupLevel || !aSimilarItemsInGroup || !aPositionInGroup)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -279,15 +253,11 @@ ia2Accessible::get_groupPosition(long* aGroupLevel,
|
||||
*aPositionInGroup = groupPos.posInSet;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_states(AccessibleStates* aStates)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStates)
|
||||
return E_INVALIDARG;
|
||||
*aStates = 0;
|
||||
@@ -347,50 +317,36 @@ ia2Accessible::get_states(AccessibleStates* aStates)
|
||||
*aStates |= IA2_STATE_PINNED;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_extendedRole(BSTR* aExtendedRole)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aExtendedRole)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aExtendedRole = nullptr;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_localizedExtendedRole(BSTR* aLocalizedExtendedRole)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aLocalizedExtendedRole)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aLocalizedExtendedRole = nullptr;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_nExtendedStates(long* aNExtendedStates)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNExtendedStates)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aNExtendedStates = 0;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -398,16 +354,12 @@ ia2Accessible::get_extendedStates(long aMaxExtendedStates,
|
||||
BSTR** aExtendedStates,
|
||||
long* aNExtendedStates)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aExtendedStates || !aNExtendedStates)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aExtendedStates = nullptr;
|
||||
*aNExtendedStates = 0;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -415,38 +367,28 @@ ia2Accessible::get_localizedExtendedStates(long aMaxLocalizedExtendedStates,
|
||||
BSTR** aLocalizedExtendedStates,
|
||||
long* aNLocalizedExtendedStates)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aLocalizedExtendedStates || !aNLocalizedExtendedStates)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aLocalizedExtendedStates = nullptr;
|
||||
*aNLocalizedExtendedStates = 0;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_uniqueID(long* aUniqueID)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aUniqueID)
|
||||
return E_INVALIDARG;
|
||||
|
||||
AccessibleWrap* acc = static_cast<AccessibleWrap*>(this);
|
||||
*aUniqueID = AccessibleWrap::GetChildIDFor(acc);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_windowHandle(HWND* aWindowHandle)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aWindowHandle)
|
||||
return E_INVALIDARG;
|
||||
*aWindowHandle = 0;
|
||||
@@ -457,15 +399,11 @@ ia2Accessible::get_windowHandle(HWND* aWindowHandle)
|
||||
|
||||
*aWindowHandle = AccessibleWrap::GetHWNDFor(acc);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_indexInParent(long* aIndexInParent)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aIndexInParent)
|
||||
return E_INVALIDARG;
|
||||
*aIndexInParent = -1;
|
||||
@@ -481,15 +419,11 @@ ia2Accessible::get_indexInParent(long* aIndexInParent)
|
||||
return S_FALSE;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_locale(IA2Locale* aLocale)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aLocale)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -532,15 +466,11 @@ ia2Accessible::get_locale(IA2Locale* aLocale)
|
||||
// country abbreviations or if there are more than one subcode.
|
||||
aLocale->variant = ::SysAllocString(lang.get());
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_attributes(BSTR* aAttributes)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAttributes)
|
||||
return E_INVALIDARG;
|
||||
*aAttributes = nullptr;
|
||||
@@ -558,8 +488,6 @@ ia2Accessible::get_attributes(BSTR* aAttributes)
|
||||
|
||||
MOZ_ASSERT(!acc->IsProxy());
|
||||
return E_UNEXPECTED;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -568,22 +496,16 @@ ia2Accessible::get_attributes(BSTR* aAttributes)
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_attribute(BSTR name, VARIANT* aAttribute)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAttribute)
|
||||
return E_INVALIDARG;
|
||||
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_accessibleWithCaret(IUnknown** aAccessible,
|
||||
long* aCaretOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAccessible || !aCaretOffset)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -611,8 +533,6 @@ ia2Accessible::get_accessibleWithCaret(IUnknown** aAccessible,
|
||||
(*aAccessible)->AddRef();
|
||||
*aCaretOffset = caretOffset;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -621,8 +541,6 @@ ia2Accessible::get_relationTargetsOfType(BSTR aType,
|
||||
IUnknown*** aTargets,
|
||||
long* aNTargets)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aTargets || !aNTargets || aMaxTargets < 0)
|
||||
return E_INVALIDARG;
|
||||
*aNTargets = 0;
|
||||
@@ -663,16 +581,12 @@ ia2Accessible::get_relationTargetsOfType(BSTR aType,
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2Accessible::get_selectionRanges(IA2Range** aRanges,
|
||||
long *aNRanges)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRanges || !aNRanges)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -714,8 +628,6 @@ ia2Accessible::get_selectionRanges(IA2Range** aRanges,
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -39,8 +39,6 @@ ia2AccessibleAction::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleAction::nActions(long* aActionCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aActionCount)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -52,30 +50,22 @@ ia2AccessibleAction::nActions(long* aActionCount)
|
||||
|
||||
*aActionCount = acc->ActionCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleAction::doAction(long aActionIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
AccessibleWrap* acc = static_cast<AccessibleWrap*>(this);
|
||||
if (acc->IsDefunct())
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
uint8_t index = static_cast<uint8_t>(aActionIndex);
|
||||
return acc->DoAction(index) ? S_OK : E_INVALIDARG;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleAction::get_description(long aActionIndex, BSTR *aDescription)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aDescription)
|
||||
return E_INVALIDARG;
|
||||
*aDescription = nullptr;
|
||||
@@ -93,8 +83,6 @@ ia2AccessibleAction::get_description(long aActionIndex, BSTR *aDescription)
|
||||
*aDescription = ::SysAllocStringLen(description.get(),
|
||||
description.Length());
|
||||
return *aDescription ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -102,8 +90,6 @@ ia2AccessibleAction::get_keyBinding(long aActionIndex, long aNumMaxBinding,
|
||||
BSTR **aKeyBinding,
|
||||
long *aNumBinding)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aKeyBinding)
|
||||
return E_INVALIDARG;
|
||||
*aKeyBinding = nullptr;
|
||||
@@ -143,15 +129,11 @@ ia2AccessibleAction::get_keyBinding(long aActionIndex, long aNumMaxBinding,
|
||||
|
||||
*aNumBinding = 1;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleAction::get_name(long aActionIndex, BSTR *aName)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aName)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -169,20 +151,14 @@ ia2AccessibleAction::get_name(long aActionIndex, BSTR *aName)
|
||||
|
||||
*aName = ::SysAllocStringLen(name.get(), name.Length());
|
||||
return *aName ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleAction::get_localizedName(long aActionIndex, BSTR *aLocalizedName)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aLocalizedName)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aLocalizedName = nullptr;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -41,8 +41,6 @@ ia2AccessibleComponent::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleComponent::get_locationInParent(long* aX, long* aY)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aX || !aY)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -75,15 +73,11 @@ ia2AccessibleComponent::get_locationInParent(long* aX, long* aY)
|
||||
*aX = rect.x - parentRect.x;
|
||||
*aY = rect.y - parentRect.y;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleComponent::get_foreground(IA2Color* aForeground)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aForeground)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -98,15 +92,11 @@ ia2AccessibleComponent::get_foreground(IA2Color* aForeground)
|
||||
*aForeground = frame->StyleColor()->mColor;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleComponent::get_background(IA2Color* aBackground)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aBackground)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -121,7 +111,5 @@ ia2AccessibleComponent::get_background(IA2Color* aBackground)
|
||||
*aBackground = frame->StyleBackground()->mBackgroundColor;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
@@ -22,8 +22,6 @@ using namespace mozilla::a11y;
|
||||
STDMETHODIMP
|
||||
ia2AccessibleEditableText::copyText(long aStartOffset, long aEndOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -35,15 +33,11 @@ ia2AccessibleEditableText::copyText(long aStartOffset, long aEndOffset)
|
||||
|
||||
textAcc->CopyText(aStartOffset, aEndOffset);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleEditableText::deleteText(long aStartOffset, long aEndOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -55,15 +49,11 @@ ia2AccessibleEditableText::deleteText(long aStartOffset, long aEndOffset)
|
||||
|
||||
textAcc->DeleteText(aStartOffset, aEndOffset);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleEditableText::insertText(long aOffset, BSTR *aText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
uint32_t length = ::SysStringLen(*aText);
|
||||
nsAutoString text(*aText, length);
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
@@ -77,15 +67,11 @@ ia2AccessibleEditableText::insertText(long aOffset, BSTR *aText)
|
||||
|
||||
textAcc->InsertText(text, aOffset);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleEditableText::cutText(long aStartOffset, long aEndOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -97,15 +83,11 @@ ia2AccessibleEditableText::cutText(long aStartOffset, long aEndOffset)
|
||||
|
||||
textAcc->CutText(aStartOffset, aEndOffset);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleEditableText::pasteText(long aOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -117,16 +99,12 @@ ia2AccessibleEditableText::pasteText(long aOffset)
|
||||
|
||||
textAcc->PasteText(aOffset);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleEditableText::replaceText(long aStartOffset, long aEndOffset,
|
||||
BSTR *aText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
if (textAcc->IsDefunct())
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
@@ -141,8 +119,6 @@ ia2AccessibleEditableText::replaceText(long aStartOffset, long aEndOffset,
|
||||
textAcc->InsertText(text, aStartOffset);
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
|
||||
@@ -45,8 +45,6 @@ ia2AccessibleHyperlink::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHyperlink::get_anchor(long aIndex, VARIANT* aAnchor)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAnchor)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -77,15 +75,11 @@ ia2AccessibleHyperlink::get_anchor(long aIndex, VARIANT* aAnchor)
|
||||
aAnchor->punkVal = static_cast<IUnknown*>(instancePtr);
|
||||
aAnchor->vt = VT_UNKNOWN;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHyperlink::get_anchorTarget(long aIndex, VARIANT* aAnchorTarget)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAnchorTarget) {
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
@@ -124,15 +118,11 @@ ia2AccessibleHyperlink::get_anchorTarget(long aIndex, VARIANT* aAnchorTarget)
|
||||
aAnchorTarget->bstrVal = ::SysAllocStringLen(stringURI.get(),
|
||||
stringURI.Length());
|
||||
return aAnchorTarget->bstrVal ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHyperlink::get_startIndex(long* aIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aIndex)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -149,15 +139,11 @@ ia2AccessibleHyperlink::get_startIndex(long* aIndex)
|
||||
|
||||
*aIndex = thisObj->StartOffset();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHyperlink::get_endIndex(long* aIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aIndex)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -174,15 +160,11 @@ ia2AccessibleHyperlink::get_endIndex(long* aIndex)
|
||||
|
||||
*aIndex = thisObj->EndOffset();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHyperlink::get_valid(boolean* aValid)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aValid)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -199,7 +181,5 @@ ia2AccessibleHyperlink::get_valid(boolean* aValid)
|
||||
|
||||
*aValid = thisObj->IsLinkValid();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
@@ -19,8 +19,6 @@ using namespace mozilla::a11y;
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHypertext::get_nHyperlinks(long* aHyperlinkCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aHyperlinkCount)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -34,16 +32,12 @@ ia2AccessibleHypertext::get_nHyperlinks(long* aHyperlinkCount)
|
||||
|
||||
*aHyperlinkCount = hyperText->LinkCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHypertext::get_hyperlink(long aLinkIndex,
|
||||
IAccessibleHyperlink** aHyperlink)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aHyperlink)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -65,15 +59,11 @@ ia2AccessibleHypertext::get_hyperlink(long aLinkIndex,
|
||||
static_cast<IAccessibleHyperlink*>(hyperLink);
|
||||
(*aHyperlink)->AddRef();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleHypertext::get_hyperlinkIndex(long aCharIndex, long* aHyperlinkIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aHyperlinkIndex)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -87,7 +77,5 @@ ia2AccessibleHypertext::get_hyperlinkIndex(long aCharIndex, long* aHyperlinkInde
|
||||
|
||||
*aHyperlinkIndex = hyperAcc->LinkIndexAtOffset(aCharIndex);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
@@ -43,8 +43,6 @@ ia2AccessibleImage::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleImage::get_description(BSTR* aDescription)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aDescription)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -61,8 +59,6 @@ ia2AccessibleImage::get_description(BSTR* aDescription)
|
||||
|
||||
*aDescription = ::SysAllocStringLen(description.get(), description.Length());
|
||||
return *aDescription ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -70,8 +66,6 @@ ia2AccessibleImage::get_imagePosition(enum IA2CoordinateType aCoordType,
|
||||
long* aX,
|
||||
long* aY)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aX || !aY)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -90,15 +84,11 @@ ia2AccessibleImage::get_imagePosition(enum IA2CoordinateType aCoordType,
|
||||
*aX = pos.x;
|
||||
*aY = pos.y;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleImage::get_imageSize(long* aHeight, long* aWidth)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aHeight || !aWidth)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -113,7 +103,5 @@ ia2AccessibleImage::get_imageSize(long* aHeight, long* aWidth)
|
||||
*aHeight = size.width;
|
||||
*aWidth = size.height;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
@@ -34,8 +34,6 @@ IMPL_IUNKNOWN_QUERY_TAIL
|
||||
STDMETHODIMP
|
||||
ia2AccessibleRelation::get_relationType(BSTR* aRelationType)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRelationType)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -51,43 +49,31 @@ ia2AccessibleRelation::get_relationType(BSTR* aRelationType)
|
||||
}
|
||||
|
||||
return *aRelationType ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleRelation::get_localizedRelationType(BSTR *aLocalizedRelationType)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aLocalizedRelationType)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aLocalizedRelationType = nullptr;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleRelation::get_nTargets(long *aNTargets)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNTargets)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aNTargets = mTargets.Length();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleRelation::get_target(long aTargetIndex, IUnknown **aTarget)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (aTargetIndex < 0 || (uint32_t)aTargetIndex >= mTargets.Length() || !aTarget)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -97,16 +83,12 @@ ia2AccessibleRelation::get_target(long aTargetIndex, IUnknown **aTarget)
|
||||
(*aTarget)->AddRef();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleRelation::get_targets(long aMaxTargets, IUnknown **aTargets,
|
||||
long *aNTargets)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNTargets || !aTargets)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -120,6 +102,4 @@ ia2AccessibleRelation::get_targets(long aMaxTargets, IUnknown **aTargets,
|
||||
|
||||
*aNTargets = maxTargets;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -60,8 +60,6 @@ ia2AccessibleTable::get_accessibleAt(long aRowIdx, long aColIdx,
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_caption(IUnknown** aAccessible)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAccessible)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -75,16 +73,12 @@ ia2AccessibleTable::get_caption(IUnknown** aAccessible)
|
||||
|
||||
(*aAccessible = static_cast<IAccessible*>(caption))->AddRef();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_childIndex(long aRowIdx, long aColIdx,
|
||||
long* aChildIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aChildIdx)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -99,15 +93,11 @@ ia2AccessibleTable::get_childIndex(long aRowIdx, long aColIdx,
|
||||
|
||||
*aChildIdx = mTable->CellIndexAt(aRowIdx, aColIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_columnDescription(long aColIdx, BSTR* aDescription)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aDescription)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -125,16 +115,12 @@ ia2AccessibleTable::get_columnDescription(long aColIdx, BSTR* aDescription)
|
||||
|
||||
*aDescription = ::SysAllocStringLen(descr.get(), descr.Length());
|
||||
return *aDescription ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_columnExtentAt(long aRowIdx, long aColIdx,
|
||||
long* aSpan)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aSpan)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -149,31 +135,23 @@ ia2AccessibleTable::get_columnExtentAt(long aRowIdx, long aColIdx,
|
||||
|
||||
*aSpan = mTable->ColExtentAt(aRowIdx, aColIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_columnHeader(IAccessibleTable** aAccessibleTable,
|
||||
long* aStartingRowIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAccessibleTable || !aStartingRowIndex)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aAccessibleTable = nullptr;
|
||||
*aStartingRowIndex = -1;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_columnIndex(long aCellIdx, long* aColIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aColIdx)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -187,15 +165,11 @@ ia2AccessibleTable::get_columnIndex(long aCellIdx, long* aColIdx)
|
||||
|
||||
*aColIdx = mTable->ColIndexAt(aCellIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_nColumns(long* aColCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aColCount)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -205,15 +179,11 @@ ia2AccessibleTable::get_nColumns(long* aColCount)
|
||||
|
||||
*aColCount = mTable->ColCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_nRows(long* aRowCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRowCount)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -223,8 +193,6 @@ ia2AccessibleTable::get_nRows(long* aRowCount)
|
||||
|
||||
*aRowCount = mTable->RowCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -236,8 +204,6 @@ ia2AccessibleTable::get_nSelectedChildren(long* aChildCount)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_nSelectedColumns(long* aColCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aColCount)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -247,15 +213,11 @@ ia2AccessibleTable::get_nSelectedColumns(long* aColCount)
|
||||
|
||||
*aColCount = mTable->SelectedColCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_nSelectedRows(long* aRowCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRowCount)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -266,15 +228,11 @@ ia2AccessibleTable::get_nSelectedRows(long* aRowCount)
|
||||
*aRowCount = mTable->SelectedRowCount();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_rowDescription(long aRowIdx, BSTR* aDescription)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aDescription)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -292,15 +250,11 @@ ia2AccessibleTable::get_rowDescription(long aRowIdx, BSTR* aDescription)
|
||||
|
||||
*aDescription = ::SysAllocStringLen(descr.get(), descr.Length());
|
||||
return *aDescription ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_rowExtentAt(long aRowIdx, long aColIdx, long* aSpan)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aSpan)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -315,31 +269,23 @@ ia2AccessibleTable::get_rowExtentAt(long aRowIdx, long aColIdx, long* aSpan)
|
||||
|
||||
*aSpan = mTable->RowExtentAt(aRowIdx, aColIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_rowHeader(IAccessibleTable** aAccessibleTable,
|
||||
long* aStartingColumnIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAccessibleTable || !aStartingColumnIndex)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aAccessibleTable = nullptr;
|
||||
*aStartingColumnIndex = -1;
|
||||
return E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_rowIndex(long aCellIdx, long* aRowIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRowIdx)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -353,16 +299,12 @@ ia2AccessibleTable::get_rowIndex(long aCellIdx, long* aRowIdx)
|
||||
|
||||
*aRowIdx = mTable->RowIndexAt(aCellIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_selectedChildren(long aMaxChildren, long** aChildren,
|
||||
long* aNChildren)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aChildren || !aNChildren)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -384,36 +326,24 @@ ia2AccessibleTable::get_selectedChildren(long aMaxChildren, long** aChildren,
|
||||
(*aChildren)[i] = cellIndices[i];
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_selectedColumns(long aMaxColumns, long** aColumns,
|
||||
long* aNColumns)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
return get_selectedColumns(aColumns, aNColumns);
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_selectedRows(long aMaxRows, long** aRows, long* aNRows)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
return get_selectedRows(aRows, aNRows);
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_summary(IUnknown** aAccessible)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAccessible)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -424,15 +354,11 @@ ia2AccessibleTable::get_summary(IUnknown** aAccessible)
|
||||
|
||||
*aAccessible = nullptr;
|
||||
return S_FALSE;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_isColumnSelected(long aColIdx, boolean* aIsSelected)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aIsSelected)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -445,15 +371,11 @@ ia2AccessibleTable::get_isColumnSelected(long aColIdx, boolean* aIsSelected)
|
||||
|
||||
*aIsSelected = mTable->IsColSelected(aColIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_isRowSelected(long aRowIdx, boolean* aIsSelected)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aIsSelected)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -466,16 +388,12 @@ ia2AccessibleTable::get_isRowSelected(long aRowIdx, boolean* aIsSelected)
|
||||
|
||||
*aIsSelected = mTable->IsRowSelected(aRowIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_isSelected(long aRowIdx, long aColIdx,
|
||||
boolean* aIsSelected)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aIsSelected)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -490,15 +408,11 @@ ia2AccessibleTable::get_isSelected(long aRowIdx, long aColIdx,
|
||||
|
||||
*aIsSelected = mTable->IsCellSelected(aRowIdx, aColIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::selectRow(long aRowIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!mTable)
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
@@ -507,15 +421,11 @@ ia2AccessibleTable::selectRow(long aRowIdx)
|
||||
|
||||
mTable->SelectRow(aRowIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::selectColumn(long aColIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!mTable)
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
@@ -524,15 +434,11 @@ ia2AccessibleTable::selectColumn(long aColIdx)
|
||||
|
||||
mTable->SelectCol(aColIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::unselectRow(long aRowIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!mTable)
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
@@ -541,15 +447,11 @@ ia2AccessibleTable::unselectRow(long aRowIdx)
|
||||
|
||||
mTable->UnselectRow(aRowIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::unselectColumn(long aColIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!mTable)
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
@@ -558,8 +460,6 @@ ia2AccessibleTable::unselectColumn(long aColIdx)
|
||||
|
||||
mTable->UnselectCol(aColIdx);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -569,8 +469,6 @@ ia2AccessibleTable::get_rowColumnExtentsAtIndex(long aCellIdx, long* aRowIdx,
|
||||
long* aColExtents,
|
||||
boolean* aIsSelected)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRowIdx || !aColIdx || !aRowExtents || !aColExtents || !aIsSelected)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -595,8 +493,6 @@ ia2AccessibleTable::get_rowColumnExtentsAtIndex(long aCellIdx, long* aRowIdx,
|
||||
*aIsSelected = mTable->IsCellSelected(rowIdx, colIdx);
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -611,8 +507,6 @@ ia2AccessibleTable::get_modelChange(IA2TableModelChange* aModelChange)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_cellAt(long aRowIdx, long aColIdx, IUnknown** aCell)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aCell)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -628,15 +522,11 @@ ia2AccessibleTable::get_cellAt(long aRowIdx, long aColIdx, IUnknown** aCell)
|
||||
|
||||
(*aCell = static_cast<IAccessible*>(cell))->AddRef();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_nSelectedCells(long* aCellCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aCellCount)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -646,15 +536,11 @@ ia2AccessibleTable::get_nSelectedCells(long* aCellCount)
|
||||
|
||||
*aCellCount = mTable->SelectedCellCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_selectedCells(IUnknown*** aCells, long* aNSelectedCells)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aCells || !aNSelectedCells)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -682,15 +568,11 @@ ia2AccessibleTable::get_selectedCells(IUnknown*** aCells, long* aNSelectedCells)
|
||||
|
||||
*aNSelectedCells = cells.Length();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_selectedColumns(long** aColumns, long* aNColumns)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aColumns || !aNColumns)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -712,15 +594,11 @@ ia2AccessibleTable::get_selectedColumns(long** aColumns, long* aNColumns)
|
||||
(*aColumns)[i] = colIndices[i];
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTable::get_selectedRows(long** aRows, long* aNRows)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRows || !aNRows)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -742,6 +620,4 @@ ia2AccessibleTable::get_selectedRows(long** aRows, long* aNRows)
|
||||
(*aRows)[i] = rowIndices[i];
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -46,8 +46,6 @@ ia2AccessibleTableCell::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_table(IUnknown** aTable)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aTable)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -63,15 +61,11 @@ ia2AccessibleTableCell::get_table(IUnknown** aTable)
|
||||
*aTable = static_cast<IAccessible*>(wrap);
|
||||
(*aTable)->AddRef();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_columnExtent(long* aSpan)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aSpan)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -82,16 +76,12 @@ ia2AccessibleTableCell::get_columnExtent(long* aSpan)
|
||||
*aSpan = mTableCell->ColExtent();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_columnHeaderCells(IUnknown*** aCellAccessibles,
|
||||
long* aNColumnHeaderCells)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aCellAccessibles || !aNColumnHeaderCells)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -118,15 +108,11 @@ ia2AccessibleTableCell::get_columnHeaderCells(IUnknown*** aCellAccessibles,
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_columnIndex(long* aColIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aColIdx)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -136,15 +122,11 @@ ia2AccessibleTableCell::get_columnIndex(long* aColIdx)
|
||||
|
||||
*aColIdx = mTableCell->ColIdx();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_rowExtent(long* aSpan)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aSpan)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -154,16 +136,12 @@ ia2AccessibleTableCell::get_rowExtent(long* aSpan)
|
||||
|
||||
*aSpan = mTableCell->RowExtent();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_rowHeaderCells(IUnknown*** aCellAccessibles,
|
||||
long* aNRowHeaderCells)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aCellAccessibles || !aNRowHeaderCells)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -189,15 +167,11 @@ ia2AccessibleTableCell::get_rowHeaderCells(IUnknown*** aCellAccessibles,
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_rowIndex(long* aRowIdx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRowIdx)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -207,8 +181,6 @@ ia2AccessibleTableCell::get_rowIndex(long* aRowIdx)
|
||||
|
||||
*aRowIdx = mTableCell->RowIdx();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -217,8 +189,6 @@ ia2AccessibleTableCell::get_rowColumnExtents(long* aRowIdx, long* aColIdx,
|
||||
long* aColExtents,
|
||||
boolean* aIsSelected)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRowIdx || !aColIdx || !aRowExtents || !aColExtents || !aIsSelected)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -234,15 +204,11 @@ ia2AccessibleTableCell::get_rowColumnExtents(long* aRowIdx, long* aColIdx,
|
||||
*aIsSelected = mTableCell->Selected();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleTableCell::get_isSelected(boolean* aIsSelected)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aIsSelected)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -252,6 +218,4 @@ ia2AccessibleTableCell::get_isSelected(boolean* aIsSelected)
|
||||
|
||||
*aIsSelected = mTableCell->Selected();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -28,8 +28,6 @@ bool ia2AccessibleText::sLastTextChangeWasInsert = false;
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::addSelection(long aStartOffset, long aEndOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -38,16 +36,12 @@ ia2AccessibleText::addSelection(long aStartOffset, long aEndOffset)
|
||||
|
||||
return textAcc->AddToSelection(aStartOffset, aEndOffset) ?
|
||||
S_OK : E_INVALIDARG;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_attributes(long aOffset, long *aStartOffset,
|
||||
long *aEndOffset, BSTR *aTextAttributes)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStartOffset || !aEndOffset || !aTextAttributes)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -74,15 +68,11 @@ ia2AccessibleText::get_attributes(long aOffset, long *aStartOffset,
|
||||
*aEndOffset = endOffset;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_caretOffset(long *aOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aOffset)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -97,8 +87,6 @@ ia2AccessibleText::get_caretOffset(long *aOffset)
|
||||
*aOffset = textAcc->CaretOffset();
|
||||
|
||||
return *aOffset != -1 ? S_OK : S_FALSE;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -107,8 +95,6 @@ ia2AccessibleText::get_characterExtents(long aOffset,
|
||||
long* aX, long* aY,
|
||||
long* aWidth, long* aHeight)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aX || !aY || !aWidth || !aHeight)
|
||||
return E_INVALIDARG;
|
||||
*aX = *aY = *aWidth = *aHeight = 0;
|
||||
@@ -129,15 +115,11 @@ ia2AccessibleText::get_characterExtents(long aOffset,
|
||||
*aWidth = rect.width;
|
||||
*aHeight = rect.height;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_nSelections(long* aNSelections)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNSelections)
|
||||
return E_INVALIDARG;
|
||||
*aNSelections = 0;
|
||||
@@ -151,8 +133,6 @@ ia2AccessibleText::get_nSelections(long* aNSelections)
|
||||
*aNSelections = textAcc->SelectionCount();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -160,8 +140,6 @@ ia2AccessibleText::get_offsetAtPoint(long aX, long aY,
|
||||
enum IA2CoordinateType aCoordType,
|
||||
long* aOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aOffset)
|
||||
return E_INVALIDARG;
|
||||
*aOffset = 0;
|
||||
@@ -179,16 +157,12 @@ ia2AccessibleText::get_offsetAtPoint(long aX, long aY,
|
||||
*aOffset = textAcc->OffsetAtPoint(aX, aY, geckoCoordType);
|
||||
|
||||
return *aOffset == -1 ? S_FALSE : S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_selection(long aSelectionIndex, long* aStartOffset,
|
||||
long* aEndOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStartOffset || !aEndOffset)
|
||||
return E_INVALIDARG;
|
||||
*aStartOffset = *aEndOffset = 0;
|
||||
@@ -207,15 +181,11 @@ ia2AccessibleText::get_selection(long aSelectionIndex, long* aStartOffset,
|
||||
*aStartOffset = startOffset;
|
||||
*aEndOffset = endOffset;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_text(long aStartOffset, long aEndOffset, BSTR* aText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aText)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -239,8 +209,6 @@ ia2AccessibleText::get_text(long aStartOffset, long aEndOffset, BSTR* aText)
|
||||
|
||||
*aText = ::SysAllocStringLen(text.get(), text.Length());
|
||||
return *aText ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -249,8 +217,6 @@ ia2AccessibleText::get_textBeforeOffset(long aOffset,
|
||||
long* aStartOffset, long* aEndOffset,
|
||||
BSTR* aText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStartOffset || !aEndOffset || !aText)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -287,8 +253,6 @@ ia2AccessibleText::get_textBeforeOffset(long aOffset,
|
||||
|
||||
*aText = ::SysAllocStringLen(text.get(), text.Length());
|
||||
return *aText ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -297,8 +261,6 @@ ia2AccessibleText::get_textAfterOffset(long aOffset,
|
||||
long* aStartOffset, long* aEndOffset,
|
||||
BSTR* aText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStartOffset || !aEndOffset || !aText)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -335,8 +297,6 @@ ia2AccessibleText::get_textAfterOffset(long aOffset,
|
||||
|
||||
*aText = ::SysAllocStringLen(text.get(), text.Length());
|
||||
return *aText ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -345,8 +305,6 @@ ia2AccessibleText::get_textAtOffset(long aOffset,
|
||||
long* aStartOffset, long* aEndOffset,
|
||||
BSTR* aText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStartOffset || !aEndOffset || !aText)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -381,15 +339,11 @@ ia2AccessibleText::get_textAtOffset(long aOffset,
|
||||
|
||||
*aText = ::SysAllocStringLen(text.get(), text.Length());
|
||||
return *aText ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::removeSelection(long aSelectionIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -398,15 +352,11 @@ ia2AccessibleText::removeSelection(long aSelectionIndex)
|
||||
|
||||
return textAcc->RemoveFromSelection(aSelectionIndex) ?
|
||||
S_OK : E_INVALIDARG;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::setCaretOffset(long aOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -418,16 +368,12 @@ ia2AccessibleText::setCaretOffset(long aOffset)
|
||||
|
||||
textAcc->SetCaretOffset(aOffset);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::setSelection(long aSelectionIndex, long aStartOffset,
|
||||
long aEndOffset)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -436,15 +382,11 @@ ia2AccessibleText::setSelection(long aSelectionIndex, long aStartOffset,
|
||||
|
||||
return textAcc->SetSelectionBoundsAt(aSelectionIndex, aStartOffset, aEndOffset) ?
|
||||
S_OK : E_INVALIDARG;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_nCharacters(long* aNCharacters)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNCharacters)
|
||||
return E_INVALIDARG;
|
||||
*aNCharacters = 0;
|
||||
@@ -457,16 +399,12 @@ ia2AccessibleText::get_nCharacters(long* aNCharacters)
|
||||
|
||||
*aNCharacters = textAcc->CharacterCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::scrollSubstringTo(long aStartIndex, long aEndIndex,
|
||||
enum IA2ScrollType aScrollType)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
MOZ_ASSERT(!HyperTextProxyFor(this));
|
||||
|
||||
HyperTextAccessible* textAcc = static_cast<HyperTextAccessibleWrap*>(this);
|
||||
@@ -478,8 +416,6 @@ ia2AccessibleText::scrollSubstringTo(long aStartIndex, long aEndIndex,
|
||||
|
||||
textAcc->ScrollSubstringTo(aStartIndex, aEndIndex, aScrollType);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -487,8 +423,6 @@ ia2AccessibleText::scrollSubstringToPoint(long aStartIndex, long aEndIndex,
|
||||
enum IA2CoordinateType aCoordType,
|
||||
long aX, long aY)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
uint32_t geckoCoordType = (aCoordType == IA2_COORDTYPE_SCREEN_RELATIVE) ?
|
||||
nsIAccessibleCoordinateType::COORDTYPE_SCREEN_RELATIVE :
|
||||
nsIAccessibleCoordinateType::COORDTYPE_PARENT_RELATIVE;
|
||||
@@ -505,28 +439,18 @@ ia2AccessibleText::scrollSubstringToPoint(long aStartIndex, long aEndIndex,
|
||||
textAcc->ScrollSubstringToPoint(aStartIndex, aEndIndex,
|
||||
geckoCoordType, aX, aY);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_newText(IA2TextSegment *aNewText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
return GetModifiedText(true, aNewText);
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleText::get_oldText(IA2TextSegment *aOldText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
return GetModifiedText(false, aOldText);
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
// ia2AccessibleText
|
||||
|
||||
@@ -46,8 +46,6 @@ ia2AccessibleValue::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ia2AccessibleValue::get_currentValue(VARIANT* aCurrentValue)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aCurrentValue)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -68,15 +66,11 @@ ia2AccessibleValue::get_currentValue(VARIANT* aCurrentValue)
|
||||
aCurrentValue->vt = VT_R8;
|
||||
aCurrentValue->dblVal = currentValue;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleValue::setCurrentValue(VARIANT aValue)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (aValue.vt != VT_R8)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -87,15 +81,11 @@ ia2AccessibleValue::setCurrentValue(VARIANT aValue)
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
return valueAcc->SetCurValue(aValue.dblVal) ? S_OK : E_FAIL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleValue::get_maximumValue(VARIANT* aMaximumValue)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aMaximumValue)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -116,15 +106,11 @@ ia2AccessibleValue::get_maximumValue(VARIANT* aMaximumValue)
|
||||
aMaximumValue->vt = VT_R8;
|
||||
aMaximumValue->dblVal = maximumValue;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ia2AccessibleValue::get_minimumValue(VARIANT* aMinimumValue)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aMinimumValue)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -145,7 +131,5 @@ ia2AccessibleValue::get_minimumValue(VARIANT* aMinimumValue)
|
||||
aMinimumValue->vt = VT_R8;
|
||||
aMinimumValue->dblVal = minimumValue;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
@@ -110,8 +110,6 @@ AccessibleWrap::Shutdown()
|
||||
STDMETHODIMP
|
||||
AccessibleWrap::QueryInterface(REFIID iid, void** ppv)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!ppv)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -165,8 +163,6 @@ AccessibleWrap::QueryInterface(REFIID iid, void** ppv)
|
||||
|
||||
(reinterpret_cast<IUnknown*>(*ppv))->AddRef();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
//-----------------------------------------------------
|
||||
@@ -176,8 +172,6 @@ AccessibleWrap::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
AccessibleWrap::get_accParent( IDispatch __RPC_FAR *__RPC_FAR *ppdispParent)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!ppdispParent)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -208,15 +202,11 @@ AccessibleWrap::get_accParent( IDispatch __RPC_FAR *__RPC_FAR *ppdispParent)
|
||||
|
||||
*ppdispParent = NativeAccessible(xpParentAcc);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
AccessibleWrap::get_accChildCount( long __RPC_FAR *pcountChildren)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pcountChildren)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -230,8 +220,6 @@ AccessibleWrap::get_accChildCount( long __RPC_FAR *pcountChildren)
|
||||
|
||||
*pcountChildren = ChildCount();
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -239,8 +227,6 @@ AccessibleWrap::get_accChild(
|
||||
/* [in] */ VARIANT varChild,
|
||||
/* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *ppdispChild)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!ppdispChild)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -265,8 +251,6 @@ AccessibleWrap::get_accChild(
|
||||
|
||||
child.forget(ppdispChild);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -331,8 +315,6 @@ AccessibleWrap::get_accName(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ BSTR __RPC_FAR *pszName)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pszName || varChild.vt != VT_I4)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -361,8 +343,6 @@ AccessibleWrap::get_accName(
|
||||
if (!*pszName)
|
||||
return E_OUTOFMEMORY;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
|
||||
@@ -371,8 +351,6 @@ AccessibleWrap::get_accValue(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ BSTR __RPC_FAR *pszValue)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pszValue)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -401,16 +379,12 @@ AccessibleWrap::get_accValue(
|
||||
if (!*pszValue)
|
||||
return E_OUTOFMEMORY;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
AccessibleWrap::get_accDescription(VARIANT varChild,
|
||||
BSTR __RPC_FAR *pszDescription)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pszDescription)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -432,8 +406,6 @@ AccessibleWrap::get_accDescription(VARIANT varChild,
|
||||
*pszDescription = ::SysAllocStringLen(description.get(),
|
||||
description.Length());
|
||||
return *pszDescription ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -441,8 +413,6 @@ AccessibleWrap::get_accRole(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ VARIANT __RPC_FAR *pvarRole)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pvarRole)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -532,8 +502,6 @@ AccessibleWrap::get_accRole(
|
||||
}
|
||||
|
||||
return E_FAIL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -541,8 +509,6 @@ AccessibleWrap::get_accState(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ VARIANT __RPC_FAR *pvarState)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pvarState)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -574,8 +540,6 @@ AccessibleWrap::get_accState(
|
||||
nsAccUtils::To32States(state, &msaaState, nullptr);
|
||||
pvarState->lVal = msaaState;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
|
||||
@@ -584,15 +548,11 @@ AccessibleWrap::get_accHelp(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ BSTR __RPC_FAR *pszHelp)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pszHelp)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*pszHelp = nullptr;
|
||||
return S_FALSE;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -601,16 +561,12 @@ AccessibleWrap::get_accHelpTopic(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ long __RPC_FAR *pidTopic)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pszHelpFile || !pidTopic)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*pszHelpFile = nullptr;
|
||||
*pidTopic = 0;
|
||||
return S_FALSE;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -618,8 +574,6 @@ AccessibleWrap::get_accKeyboardShortcut(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ BSTR __RPC_FAR *pszKeyboardShortcut)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pszKeyboardShortcut)
|
||||
return E_INVALIDARG;
|
||||
*pszKeyboardShortcut = nullptr;
|
||||
@@ -645,16 +599,12 @@ AccessibleWrap::get_accKeyboardShortcut(
|
||||
*pszKeyboardShortcut = ::SysAllocStringLen(shortcut.get(),
|
||||
shortcut.Length());
|
||||
return *pszKeyboardShortcut ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
AccessibleWrap::get_accFocus(
|
||||
/* [retval][out] */ VARIANT __RPC_FAR *pvarChild)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pvarChild)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -685,8 +635,6 @@ AccessibleWrap::get_accFocus(
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -723,8 +671,6 @@ private:
|
||||
STDMETHODIMP
|
||||
AccessibleEnumerator::QueryInterface(REFIID iid, void ** ppvObject)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (iid == IID_IEnumVARIANT) {
|
||||
*ppvObject = static_cast<IEnumVARIANT*>(this);
|
||||
AddRef();
|
||||
@@ -738,15 +684,11 @@ AccessibleEnumerator::QueryInterface(REFIID iid, void ** ppvObject)
|
||||
|
||||
*ppvObject = nullptr;
|
||||
return E_NOINTERFACE;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
AccessibleEnumerator::Next(unsigned long celt, VARIANT FAR* rgvar, unsigned long FAR* pceltFetched)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
uint32_t length = mArray.Length();
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
@@ -766,29 +708,21 @@ AccessibleEnumerator::Next(unsigned long celt, VARIANT FAR* rgvar, unsigned long
|
||||
*pceltFetched = celt;
|
||||
|
||||
return hr;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
AccessibleEnumerator::Clone(IEnumVARIANT FAR* FAR* ppenum)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
*ppenum = new AccessibleEnumerator(*this);
|
||||
if (!*ppenum)
|
||||
return E_OUTOFMEMORY;
|
||||
NS_ADDREF(*ppenum);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
AccessibleEnumerator::Skip(unsigned long celt)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
uint32_t length = mArray.Length();
|
||||
// Check if we can skip the requested number of elements
|
||||
if (celt > length - mCurIndex) {
|
||||
@@ -797,8 +731,6 @@ AccessibleEnumerator::Skip(unsigned long celt)
|
||||
}
|
||||
mCurIndex += celt;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -821,8 +753,6 @@ AccessibleEnumerator::Skip(unsigned long celt)
|
||||
STDMETHODIMP
|
||||
AccessibleWrap::get_accSelection(VARIANT __RPC_FAR *pvarChildren)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pvarChildren)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -842,8 +772,6 @@ AccessibleWrap::get_accSelection(VARIANT __RPC_FAR *pvarChildren)
|
||||
NS_ADDREF(pvarChildren->punkVal = pEnum);
|
||||
}
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -851,8 +779,6 @@ AccessibleWrap::get_accDefaultAction(
|
||||
/* [optional][in] */ VARIANT varChild,
|
||||
/* [retval][out] */ BSTR __RPC_FAR *pszDefaultAction)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pszDefaultAction)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -874,8 +800,6 @@ AccessibleWrap::get_accDefaultAction(
|
||||
*pszDefaultAction = ::SysAllocStringLen(defaultAction.get(),
|
||||
defaultAction.Length());
|
||||
return *pszDefaultAction ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -883,8 +807,6 @@ AccessibleWrap::accSelect(
|
||||
/* [in] */ long flagsSelect,
|
||||
/* [optional][in] */ VARIANT varChild)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
RefPtr<IAccessible> accessible;
|
||||
HRESULT hr = ResolveChild(varChild, getter_AddRefs(accessible));
|
||||
if (FAILED(hr)) {
|
||||
@@ -926,8 +848,6 @@ AccessibleWrap::accSelect(
|
||||
}
|
||||
|
||||
return E_FAIL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -938,8 +858,6 @@ AccessibleWrap::accLocation(
|
||||
/* [out] */ long __RPC_FAR *pcyHeight,
|
||||
/* [optional][in] */ VARIANT varChild)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pxLeft || !pyTop || !pcxWidth || !pcyHeight)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -966,8 +884,6 @@ AccessibleWrap::accLocation(
|
||||
*pcxWidth = rect.width;
|
||||
*pcyHeight = rect.height;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -976,8 +892,6 @@ AccessibleWrap::accNavigate(
|
||||
/* [optional][in] */ VARIANT varStart,
|
||||
/* [retval][out] */ VARIANT __RPC_FAR *pvarEndUpAt)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pvarEndUpAt)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -1060,8 +974,6 @@ AccessibleWrap::accNavigate(
|
||||
pvarEndUpAt->pdispVal = NativeAccessible(navAccessible);
|
||||
pvarEndUpAt->vt = VT_DISPATCH;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -1070,8 +982,6 @@ AccessibleWrap::accHitTest(
|
||||
/* [in] */ long yTop,
|
||||
/* [retval][out] */ VARIANT __RPC_FAR *pvarChild)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!pvarChild)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -1098,16 +1008,12 @@ AccessibleWrap::accHitTest(
|
||||
return S_FALSE;
|
||||
}
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
AccessibleWrap::accDoDefaultAction(
|
||||
/* [optional][in] */ VARIANT varChild)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
RefPtr<IAccessible> accessible;
|
||||
HRESULT hr = ResolveChild(varChild, getter_AddRefs(accessible));
|
||||
if (FAILED(hr)) {
|
||||
@@ -1119,8 +1025,6 @@ AccessibleWrap::accDoDefaultAction(
|
||||
}
|
||||
|
||||
return DoAction(0) ? S_OK : E_INVALIDARG;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
|
||||
@@ -69,8 +69,6 @@ ApplicationAccessibleWrap::QueryInterface(REFIID iid, void** ppv)
|
||||
STDMETHODIMP
|
||||
ApplicationAccessibleWrap::get_appName(BSTR* aName)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aName)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -86,15 +84,11 @@ ApplicationAccessibleWrap::get_appName(BSTR* aName)
|
||||
|
||||
*aName = ::SysAllocStringLen(name.get(), name.Length());
|
||||
return *aName ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ApplicationAccessibleWrap::get_appVersion(BSTR* aVersion)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aVersion)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -110,15 +104,11 @@ ApplicationAccessibleWrap::get_appVersion(BSTR* aVersion)
|
||||
|
||||
*aVersion = ::SysAllocStringLen(version.get(), version.Length());
|
||||
return *aVersion ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ApplicationAccessibleWrap::get_toolkitName(BSTR* aName)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aName)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -132,15 +122,11 @@ ApplicationAccessibleWrap::get_toolkitName(BSTR* aName)
|
||||
|
||||
*aName = ::SysAllocStringLen(name.get(), name.Length());
|
||||
return *aName ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ApplicationAccessibleWrap::get_toolkitVersion(BSTR* aVersion)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aVersion)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -156,7 +142,5 @@ ApplicationAccessibleWrap::get_toolkitVersion(BSTR* aVersion)
|
||||
|
||||
*aVersion = ::SysAllocStringLen(version.get(), version.Length());
|
||||
return *aVersion ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
@@ -65,8 +65,6 @@ DocAccessibleWrap::get_accParent(
|
||||
STDMETHODIMP
|
||||
DocAccessibleWrap::get_accValue(VARIANT aVarChild, BSTR __RPC_FAR* aValue)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aValue)
|
||||
return E_INVALIDARG;
|
||||
*aValue = nullptr;
|
||||
@@ -90,8 +88,6 @@ DocAccessibleWrap::get_accValue(VARIANT aVarChild, BSTR __RPC_FAR* aValue)
|
||||
|
||||
*aValue = ::SysAllocStringLen(url.get(), url.Length());
|
||||
return *aValue ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -21,8 +21,6 @@ STDMETHODIMP
|
||||
ChildrenEnumVariant::Next(ULONG aCount, VARIANT FAR* aItems,
|
||||
ULONG FAR* aCountFetched)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aItems || !aCountFetched)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -55,15 +53,11 @@ ChildrenEnumVariant::Next(ULONG aCount, VARIANT FAR* aItems,
|
||||
(*aCountFetched) = countFetched;
|
||||
|
||||
return countFetched < aCount ? S_FALSE : S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ChildrenEnumVariant::Skip(ULONG aCount)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (mAnchorAcc->IsDefunct() || mAnchorAcc->GetChildAt(mCurIndex) != mCurAcc)
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
@@ -71,15 +65,11 @@ ChildrenEnumVariant::Skip(ULONG aCount)
|
||||
mCurAcc = mAnchorAcc->GetChildAt(mCurIndex);
|
||||
|
||||
return mCurAcc ? S_OK : S_FALSE;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ChildrenEnumVariant::Reset()
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (mAnchorAcc->IsDefunct())
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
@@ -87,15 +77,11 @@ ChildrenEnumVariant::Reset()
|
||||
mCurAcc = mAnchorAcc->GetChildAt(0);
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
ChildrenEnumVariant::Clone(IEnumVARIANT** aEnumVariant)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aEnumVariant)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -103,6 +89,4 @@ ChildrenEnumVariant::Clone(IEnumVARIANT** aEnumVariant)
|
||||
(*aEnumVariant)->AddRef();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -9,10 +9,6 @@
|
||||
|
||||
#include "nsDebug.h"
|
||||
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
#include "nsExceptionHandler.h"
|
||||
#endif
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
||||
@@ -37,22 +33,5 @@ GetHRESULT(nsresult aResult)
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
FilterExceptions(unsigned int aCode, EXCEPTION_POINTERS* aExceptionInfo)
|
||||
{
|
||||
if (aCode == EXCEPTION_ACCESS_VIOLATION) {
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
// MSAA swallows crashes (because it is COM-based) but we still need to
|
||||
// learn about those crashes so we can fix them. Make sure to pass them to
|
||||
// the crash reporter.
|
||||
CrashReporter::WriteMinidumpForException(aExceptionInfo);
|
||||
#endif
|
||||
} else {
|
||||
NS_NOTREACHED("We should only be catching crash exceptions");
|
||||
}
|
||||
|
||||
return EXCEPTION_CONTINUE_SEARCH;
|
||||
}
|
||||
|
||||
} // namespace a11y
|
||||
} // namespace mozilla
|
||||
@@ -79,7 +79,6 @@ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**); \
|
||||
STDMETHODIMP \
|
||||
Class::QueryInterface(REFIID aIID, void** aInstancePtr) \
|
||||
{ \
|
||||
A11Y_TRYBLOCK_BEGIN \
|
||||
if (!aInstancePtr) \
|
||||
return E_INVALIDARG; \
|
||||
*aInstancePtr = nullptr; \
|
||||
@@ -88,17 +87,14 @@ Class::QueryInterface(REFIID aIID, void** aInstancePtr) \
|
||||
|
||||
#define IMPL_IUNKNOWN_QUERY_TAIL \
|
||||
return hr; \
|
||||
A11Y_TRYBLOCK_END \
|
||||
}
|
||||
|
||||
#define IMPL_IUNKNOWN_QUERY_TAIL_AGGREGATED(Member) \
|
||||
return Member->QueryInterface(aIID, aInstancePtr); \
|
||||
A11Y_TRYBLOCK_END \
|
||||
}
|
||||
|
||||
#define IMPL_IUNKNOWN_QUERY_TAIL_INHERITED(BaseClass) \
|
||||
return BaseClass::QueryInterface(aIID, aInstancePtr); \
|
||||
A11Y_TRYBLOCK_END \
|
||||
}
|
||||
|
||||
#define IMPL_IUNKNOWN_QUERY_IFACE(Iface) \
|
||||
@@ -158,21 +154,6 @@ Class::QueryInterface(REFIID aIID, void** aInstancePtr) \
|
||||
IMPL_IUNKNOWN_QUERY_CLASS(Super2); \
|
||||
IMPL_IUNKNOWN_QUERY_TAIL_INHERITED(Super0)
|
||||
|
||||
|
||||
/**
|
||||
* Wrap every method body by these macroses to pass exception to the crash
|
||||
* reporter.
|
||||
*/
|
||||
#define A11Y_TRYBLOCK_BEGIN \
|
||||
MOZ_SEH_TRY {
|
||||
|
||||
#define A11Y_TRYBLOCK_END \
|
||||
} MOZ_SEH_EXCEPT(mozilla::a11y::FilterExceptions(::GetExceptionCode(), \
|
||||
GetExceptionInformation())) \
|
||||
{ } \
|
||||
return E_FAIL;
|
||||
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
|
||||
@@ -181,11 +162,6 @@ namespace a11y {
|
||||
*/
|
||||
HRESULT GetHRESULT(nsresult aResult);
|
||||
|
||||
/**
|
||||
* Used to pass an exception to the crash reporter.
|
||||
*/
|
||||
int FilterExceptions(unsigned int aCode, EXCEPTION_POINTERS* aExceptionInfo);
|
||||
|
||||
} // namespace a11y;
|
||||
} //namespace mozilla;
|
||||
|
||||
|
||||
@@ -28,8 +28,6 @@ using namespace mozilla::a11y;
|
||||
STDMETHODIMP
|
||||
sdnAccessible::QueryInterface(REFIID aREFIID, void** aInstancePtr)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aInstancePtr)
|
||||
return E_FAIL;
|
||||
*aInstancePtr = nullptr;
|
||||
@@ -53,8 +51,6 @@ sdnAccessible::QueryInterface(REFIID aREFIID, void** aInstancePtr)
|
||||
}
|
||||
|
||||
return E_NOINTERFACE;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -65,8 +61,6 @@ sdnAccessible::get_nodeInfo(BSTR __RPC_FAR* aNodeName,
|
||||
unsigned int __RPC_FAR* aUniqueID,
|
||||
unsigned short __RPC_FAR* aNodeType)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNodeName || !aNameSpaceID || !aNodeValue || !aNumChildren ||
|
||||
!aUniqueID || !aNodeType)
|
||||
return E_INVALIDARG;
|
||||
@@ -114,8 +108,6 @@ sdnAccessible::get_nodeInfo(BSTR __RPC_FAR* aNodeName,
|
||||
*aNumChildren = mNode->GetChildCount();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -125,8 +117,6 @@ sdnAccessible::get_attributes(unsigned short aMaxAttribs,
|
||||
BSTR __RPC_FAR* aAttribValues,
|
||||
unsigned short __RPC_FAR* aNumAttribs)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAttribNames || !aNameSpaceIDs || !aAttribValues || !aNumAttribs)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -159,8 +149,6 @@ sdnAccessible::get_attributes(unsigned short aMaxAttribs,
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -169,8 +157,6 @@ sdnAccessible::get_attributesForNames(unsigned short aMaxAttribs,
|
||||
short __RPC_FAR* aNameSpaceID,
|
||||
BSTR __RPC_FAR* aAttribValues)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAttribNames || !aNameSpaceID || !aAttribValues)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -207,8 +193,6 @@ sdnAccessible::get_attributesForNames(unsigned short aMaxAttribs,
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -218,8 +202,6 @@ sdnAccessible::get_computedStyle(unsigned short aMaxStyleProperties,
|
||||
BSTR __RPC_FAR* aStyleValues,
|
||||
unsigned short __RPC_FAR* aNumStyleProperties)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStyleProperties || aStyleValues || !aNumStyleProperties)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -257,8 +239,6 @@ sdnAccessible::get_computedStyle(unsigned short aMaxStyleProperties,
|
||||
*aNumStyleProperties = static_cast<unsigned short>(realIndex);
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -267,8 +247,6 @@ sdnAccessible::get_computedStyleForProperties(unsigned short aNumStyleProperties
|
||||
BSTR __RPC_FAR* aStyleProperties,
|
||||
BSTR __RPC_FAR* aStyleValues)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aStyleProperties || !aStyleValues)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -291,15 +269,11 @@ sdnAccessible::get_computedStyleForProperties(unsigned short aNumStyleProperties
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::scrollTo(boolean aScrollTopLeft)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
DocAccessible* document = GetDocument();
|
||||
if (!document) // that's IsDefunct check
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
@@ -313,15 +287,11 @@ sdnAccessible::scrollTo(boolean aScrollTopLeft)
|
||||
|
||||
nsCoreUtils::ScrollTo(document->PresShell(), mNode->AsContent(), scrollType);
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_parentNode(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNode)
|
||||
return E_INVALIDARG;
|
||||
*aNode = nullptr;
|
||||
@@ -336,15 +306,11 @@ sdnAccessible::get_parentNode(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_firstChild(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNode)
|
||||
return E_INVALIDARG;
|
||||
*aNode = nullptr;
|
||||
@@ -359,15 +325,11 @@ sdnAccessible::get_firstChild(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_lastChild(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNode)
|
||||
return E_INVALIDARG;
|
||||
*aNode = nullptr;
|
||||
@@ -382,15 +344,11 @@ sdnAccessible::get_lastChild(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_previousSibling(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNode)
|
||||
return E_INVALIDARG;
|
||||
*aNode = nullptr;
|
||||
@@ -405,15 +363,11 @@ sdnAccessible::get_previousSibling(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_nextSibling(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNode)
|
||||
return E_INVALIDARG;
|
||||
*aNode = nullptr;
|
||||
@@ -428,16 +382,12 @@ sdnAccessible::get_nextSibling(ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_childAt(unsigned aChildIndex,
|
||||
ISimpleDOMNode __RPC_FAR *__RPC_FAR* aNode)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNode)
|
||||
return E_INVALIDARG;
|
||||
*aNode = nullptr;
|
||||
@@ -453,15 +403,11 @@ sdnAccessible::get_childAt(unsigned aChildIndex,
|
||||
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_innerHTML(BSTR __RPC_FAR* aInnerHTML)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aInnerHTML)
|
||||
return E_INVALIDARG;
|
||||
*aInnerHTML = nullptr;
|
||||
@@ -482,15 +428,11 @@ sdnAccessible::get_innerHTML(BSTR __RPC_FAR* aInnerHTML)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_localInterface(void __RPC_FAR *__RPC_FAR* aLocalInterface)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aLocalInterface)
|
||||
return E_INVALIDARG;
|
||||
*aLocalInterface = nullptr;
|
||||
@@ -502,15 +444,11 @@ sdnAccessible::get_localInterface(void __RPC_FAR *__RPC_FAR* aLocalInterface)
|
||||
AddRef();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnAccessible::get_language(BSTR __RPC_FAR* aLanguage)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aLanguage)
|
||||
return E_INVALIDARG;
|
||||
*aLanguage = nullptr;
|
||||
@@ -534,6 +472,4 @@ sdnAccessible::get_language(BSTR __RPC_FAR* aLanguage)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -24,8 +24,6 @@ IMPL_IUNKNOWN_QUERY_TAIL_AGGREGATED(mAccessible)
|
||||
STDMETHODIMP
|
||||
sdnDocAccessible::get_URL(BSTR __RPC_FAR* aURL)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aURL)
|
||||
return E_INVALIDARG;
|
||||
*aURL = nullptr;
|
||||
@@ -40,15 +38,11 @@ sdnDocAccessible::get_URL(BSTR __RPC_FAR* aURL)
|
||||
|
||||
*aURL = ::SysAllocStringLen(URL.get(), URL.Length());
|
||||
return *aURL ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnDocAccessible::get_title(BSTR __RPC_FAR* aTitle)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aTitle)
|
||||
return E_INVALIDARG;
|
||||
*aTitle = nullptr;
|
||||
@@ -60,15 +54,11 @@ sdnDocAccessible::get_title(BSTR __RPC_FAR* aTitle)
|
||||
mAccessible->Title(title);
|
||||
*aTitle = ::SysAllocStringLen(title.get(), title.Length());
|
||||
return *aTitle ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnDocAccessible::get_mimeType(BSTR __RPC_FAR* aMimeType)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aMimeType)
|
||||
return E_INVALIDARG;
|
||||
*aMimeType = nullptr;
|
||||
@@ -83,15 +73,11 @@ sdnDocAccessible::get_mimeType(BSTR __RPC_FAR* aMimeType)
|
||||
|
||||
*aMimeType = ::SysAllocStringLen(mimeType.get(), mimeType.Length());
|
||||
return *aMimeType ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnDocAccessible::get_docType(BSTR __RPC_FAR* aDocType)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aDocType)
|
||||
return E_INVALIDARG;
|
||||
*aDocType = nullptr;
|
||||
@@ -106,16 +92,12 @@ sdnDocAccessible::get_docType(BSTR __RPC_FAR* aDocType)
|
||||
|
||||
*aDocType = ::SysAllocStringLen(docType.get(), docType.Length());
|
||||
return *aDocType ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnDocAccessible::get_nameSpaceURIForID(short aNameSpaceID,
|
||||
BSTR __RPC_FAR* aNameSpaceURI)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aNameSpaceURI)
|
||||
return E_INVALIDARG;
|
||||
*aNameSpaceURI = nullptr;
|
||||
@@ -138,20 +120,14 @@ sdnDocAccessible::get_nameSpaceURIForID(short aNameSpaceID,
|
||||
nameSpaceURI.Length());
|
||||
|
||||
return *aNameSpaceURI ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnDocAccessible::put_alternateViewMediaTypes(BSTR __RPC_FAR* aCommaSeparatedMediaTypes)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aCommaSeparatedMediaTypes)
|
||||
return E_INVALIDARG;
|
||||
*aCommaSeparatedMediaTypes = nullptr;
|
||||
|
||||
return mAccessible->IsDefunct() ? CO_E_OBJNOTCONNECTED : E_NOTIMPL;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -33,8 +33,6 @@ IMPL_IUNKNOWN_QUERY_TAIL_AGGREGATED(mAccessible)
|
||||
STDMETHODIMP
|
||||
sdnTextAccessible::get_domText(BSTR __RPC_FAR* aText)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aText)
|
||||
return E_INVALIDARG;
|
||||
*aText = nullptr;
|
||||
@@ -51,8 +49,6 @@ sdnTextAccessible::get_domText(BSTR __RPC_FAR* aText)
|
||||
|
||||
*aText = ::SysAllocStringLen(nodeValue.get(), nodeValue.Length());
|
||||
return *aText ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -63,8 +59,6 @@ sdnTextAccessible::get_clippedSubstringBounds(unsigned int aStartIndex,
|
||||
int __RPC_FAR* aWidth,
|
||||
int __RPC_FAR* aHeight)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
nscoord x = 0, y = 0, width = 0, height = 0;
|
||||
HRESULT rv = get_unclippedSubstringBounds(aStartIndex, aEndIndex,
|
||||
&x, &y, &width, &height);
|
||||
@@ -86,8 +80,6 @@ sdnTextAccessible::get_clippedSubstringBounds(unsigned int aStartIndex,
|
||||
*aWidth = clippedRect.width;
|
||||
*aHeight = clippedRect.height;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
@@ -98,8 +90,6 @@ sdnTextAccessible::get_unclippedSubstringBounds(unsigned int aStartIndex,
|
||||
int __RPC_FAR* aWidth,
|
||||
int __RPC_FAR* aHeight)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aX || !aY || !aWidth || !aHeight)
|
||||
return E_INVALIDARG;
|
||||
*aX = *aY = *aWidth = *aHeight = 0;
|
||||
@@ -135,16 +125,12 @@ sdnTextAccessible::get_unclippedSubstringBounds(unsigned int aStartIndex,
|
||||
*aHeight = presContext->AppUnitsToDevPixels(sum.height);
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnTextAccessible::scrollToSubstring(unsigned int aStartIndex,
|
||||
unsigned int aEndIndex)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (mAccessible->IsDefunct())
|
||||
return CO_E_OBJNOTCONNECTED;
|
||||
|
||||
@@ -159,15 +145,11 @@ sdnTextAccessible::scrollToSubstring(unsigned int aStartIndex,
|
||||
nsCoreUtils::ScrollSubstringTo(mAccessible->GetFrame(), range,
|
||||
nsIAccessibleScrollType::SCROLL_TYPE_ANYWHERE);
|
||||
return GetHRESULT(rv);
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
sdnTextAccessible::get_fontFamily(BSTR __RPC_FAR* aFontFamily)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aFontFamily)
|
||||
return E_INVALIDARG;
|
||||
*aFontFamily = nullptr;
|
||||
@@ -189,8 +171,6 @@ sdnTextAccessible::get_fontFamily(BSTR __RPC_FAR* aFontFamily)
|
||||
|
||||
*aFontFamily = ::SysAllocStringLen(name.get(), name.Length());
|
||||
return *aFontFamily ? S_OK : E_OUTOFMEMORY;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
||||
@@ -28,24 +28,18 @@ STDMETHODIMP
|
||||
uiaRawElmProvider::GetObjectForChild(long aIdChild,
|
||||
__RPC__deref_out_opt IAccessibleEx** aAccEx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAccEx)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aAccEx = nullptr;
|
||||
|
||||
return mAcc->IsDefunct() ? CO_E_OBJNOTCONNECTED : S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
uiaRawElmProvider::GetIAccessiblePair(__RPC__deref_out_opt IAccessible** aAcc,
|
||||
__RPC__out long* aIdChild)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aAcc || !aIdChild)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -60,15 +54,11 @@ uiaRawElmProvider::GetIAccessiblePair(__RPC__deref_out_opt IAccessible** aAcc,
|
||||
mAcc->AddRef();
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
uiaRawElmProvider::GetRuntimeId(__RPC__deref_out_opt SAFEARRAY** aRuntimeIds)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRuntimeIds)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -81,16 +71,12 @@ uiaRawElmProvider::GetRuntimeId(__RPC__deref_out_opt SAFEARRAY** aRuntimeIds)
|
||||
SafeArrayPutElement(*aRuntimeIds, &i, (void*)&(ids[i]));
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
uiaRawElmProvider::ConvertReturnedElement(__RPC__in_opt IRawElementProviderSimple* aRawElmProvider,
|
||||
__RPC__deref_out_opt IAccessibleEx** aAccEx)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRawElmProvider || !aAccEx)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -102,8 +88,6 @@ uiaRawElmProvider::ConvertReturnedElement(__RPC__in_opt IRawElementProviderSimpl
|
||||
*aAccEx = static_cast<IAccessibleEx*>(instancePtr);
|
||||
|
||||
return hr;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -112,39 +96,29 @@ uiaRawElmProvider::ConvertReturnedElement(__RPC__in_opt IRawElementProviderSimpl
|
||||
STDMETHODIMP
|
||||
uiaRawElmProvider::get_ProviderOptions(__RPC__out enum ProviderOptions* aOptions)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aOptions)
|
||||
return E_INVALIDARG;
|
||||
|
||||
// This method is not used with IAccessibleEx implementations.
|
||||
*aOptions = ProviderOptions_ServerSideProvider;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
uiaRawElmProvider::GetPatternProvider(PATTERNID aPatternId,
|
||||
__RPC__deref_out_opt IUnknown** aPatternProvider)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aPatternProvider)
|
||||
return E_INVALIDARG;
|
||||
|
||||
*aPatternProvider = nullptr;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
uiaRawElmProvider::GetPropertyValue(PROPERTYID aPropertyId,
|
||||
__RPC__out VARIANT* aPropertyValue)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aPropertyValue)
|
||||
return E_INVALIDARG;
|
||||
|
||||
@@ -226,21 +200,15 @@ uiaRawElmProvider::GetPropertyValue(PROPERTYID aPropertyId,
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
uiaRawElmProvider::get_HostRawElementProvider(__RPC__deref_out_opt IRawElementProviderSimple** aRawElmProvider)
|
||||
{
|
||||
A11Y_TRYBLOCK_BEGIN
|
||||
|
||||
if (!aRawElmProvider)
|
||||
return E_INVALIDARG;
|
||||
|
||||
// This method is not used with IAccessibleEx implementations.
|
||||
*aRawElmProvider = nullptr;
|
||||
return S_OK;
|
||||
|
||||
A11Y_TRYBLOCK_END
|
||||
}
|
||||
@@ -13,5 +13,5 @@ DIRS += ['/%s' % CONFIG['MOZ_BRANDING_DIRECTORY']]
|
||||
|
||||
# Never add tier dirs after browser because they apparently won't get
|
||||
# packaged properly on Mac.
|
||||
DIRS += ['/browser']
|
||||
DIRS += ['/application/palemoon']
|
||||
|
||||
@@ -54,14 +54,6 @@ GARBAGE += $(addprefix $(FINAL_TARGET)/defaults/pref/, palemoon.js)
|
||||
|
||||
endif
|
||||
|
||||
ifdef MOZ_WIDGET_GTK
|
||||
libs::
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/mozicon128.png $(FINAL_TARGET)/icons
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png $(FINAL_TARGET)/chrome/icons/default
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png $(FINAL_TARGET)/chrome/icons/default
|
||||
$(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png $(FINAL_TARGET)/chrome/icons/default
|
||||
endif
|
||||
|
||||
ifndef LIBXUL_SDK
|
||||
# channel-prefs.js is handled separate from other prefs due to bug 756325
|
||||
libs:: $(srcdir)/profile/channel-prefs.js
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<blocklist lastupdate="1508456048000"
|
||||
<blocklist lastupdate="1521130300000"
|
||||
xmlns="http://www.mozilla.org/2006/addons-blocklist">
|
||||
<emItems>
|
||||
<emItem blockID="i545" id="superlrcs@svenyor.net">
|
||||
@@ -2441,6 +2441,18 @@ xmlns="http://www.mozilla.org/2006/addons-blocklist">
|
||||
<versionRange minVersion="4.0.0a" maxVersion="4.1.20a"
|
||||
severity="1" />
|
||||
</emItem>
|
||||
<emItem blockID="2447476f-043b-4d0b-9d3c-8e859c97d950" id="{44e4b2cf-77ba-4f76-aca7-f3fcbc2dda2f}">
|
||||
<prefs/>
|
||||
<versionRange minVersion="0" maxVersion="*" severity="3"/>
|
||||
</emItem>
|
||||
<emItem blockID="f58729ec-f93c-41d9-870d-dd9c9fd811b6" id="/^(addon@fasterweb\.com|\{5f398d3f-25db-47f5-b422-aa2364ff6c0b\}|addon@fasterp\.com|addon@calculator)$/">
|
||||
<prefs/>
|
||||
<versionRange minVersion="0" maxVersion="*" severity="3"/>
|
||||
</emItem>
|
||||
<emItem blockID="3d55fab0-ec1a-4bca-84c9-3b74f5d01509" id="/^.*extension.*@asdf\.pl$/">
|
||||
<prefs/>
|
||||
<versionRange minVersion="0" maxVersion="*" severity="3"/>
|
||||
</emItem>
|
||||
<emItem blockID="pm100" id="{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}">
|
||||
<versionRange minVersion="0" maxVersion="*" severity="1">
|
||||
</versionRange>
|
||||
|
||||
@@ -205,6 +205,11 @@
|
||||
<true/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.productivity</string>
|
||||
<key>LSEnvironment</key>
|
||||
<dict>
|
||||
<key>MallocNanoZone</key>
|
||||
<string>0</string>
|
||||
</dict>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.6</string>
|
||||
<key>LSMinimumSystemVersionByArchitecture</key>
|
||||
|
||||
@@ -7,12 +7,9 @@
|
||||
DIRS += ['profile/extensions']
|
||||
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT' and CONFIG['MOZ_ASAN']:
|
||||
GoannaProgram(CONFIG['MOZ_APP_NAME'])
|
||||
else:
|
||||
GoannaProgram(CONFIG['MOZ_APP_NAME'], msvcrt='static')
|
||||
GeckoProgram(CONFIG['MOZ_APP_NAME'])
|
||||
|
||||
JS_PREFERENCE_FILES += [
|
||||
JS_PREFERENCE_PP_FILES += [
|
||||
'profile/palemoon.js',
|
||||
]
|
||||
|
||||
@@ -30,14 +27,8 @@ FINAL_TARGET_FILES.defaults.profile += ['profile/prefs.js']
|
||||
|
||||
DEFINES['APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
|
||||
|
||||
for var in ('MOZILLA_OFFICIAL', 'LIBXUL_SDK'):
|
||||
if CONFIG[var]:
|
||||
DEFINES[var] = True
|
||||
|
||||
DEFINES['XPCOM_GLUE'] = True
|
||||
|
||||
GENERATED_INCLUDES += [
|
||||
'/build',
|
||||
LOCAL_INCLUDES += [
|
||||
'!/build',
|
||||
]
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
@@ -46,11 +37,9 @@ LOCAL_INCLUDES += [
|
||||
'/xpcom/build',
|
||||
]
|
||||
|
||||
DELAYLOAD_DLLS += [
|
||||
'mozglue.dll',
|
||||
USE_LIBS += [
|
||||
'mozglue',
|
||||
]
|
||||
USE_STATIC_LIBS = True
|
||||
|
||||
|
||||
if CONFIG['_MSC_VER']:
|
||||
# Always enter a Windows program through wmain, whether or not we're
|
||||
@@ -72,16 +61,6 @@ if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
|
||||
LDFLAGS += ['/HEAP:0x40000']
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
USE_LIBS += [
|
||||
'mozglue',
|
||||
'xpcomglue_staticruntime',
|
||||
]
|
||||
else:
|
||||
USE_LIBS += [
|
||||
'xpcomglue',
|
||||
]
|
||||
|
||||
DISABLE_STL_WRAPPING = True
|
||||
|
||||
if CONFIG['MOZ_LINKER']:
|
||||
|
||||
@@ -8,25 +8,13 @@
|
||||
#include "application.ini.h"
|
||||
#include "nsXPCOMGlue.h"
|
||||
#if defined(XP_WIN)
|
||||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x0600
|
||||
#include <windows.h>
|
||||
#include <winbase.h>
|
||||
#include <VersionHelpers.h>
|
||||
#include <stdlib.h>
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
#elif defined(XP_UNIX)
|
||||
#include <sys/resource.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
#include <mach/mach_time.h>
|
||||
#include "MacQuirks.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <time.h>
|
||||
@@ -35,20 +23,26 @@
|
||||
#include "nsIFile.h"
|
||||
#include "nsStringGlue.h"
|
||||
|
||||
// Easy access to a five second startup delay used to get
|
||||
// a debugger attached in the metro environment.
|
||||
// #define DEBUG_delay_start_metro
|
||||
|
||||
#ifdef XP_WIN
|
||||
// we want a wmain entry point
|
||||
#include "nsWindowsWMain.cpp"
|
||||
#define snprintf _snprintf
|
||||
#define XRE_WANT_ENVIRON
|
||||
#define strcasecmp _stricmp
|
||||
#ifdef MOZ_SANDBOX
|
||||
#include "mozilla/sandboxing/SandboxInitialization.h"
|
||||
#endif
|
||||
#endif
|
||||
#include "BinaryPath.h"
|
||||
|
||||
#include "nsXPCOMPrivate.h" // for MAXPATHLEN and XPCOM_DLL
|
||||
#include "mozilla/StartupTimeline.h"
|
||||
|
||||
#include "mozilla/Sprintf.h"
|
||||
#include "mozilla/Telemetry.h"
|
||||
#include "mozilla/WindowsDllBlocklist.h"
|
||||
|
||||
#if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID) \
|
||||
&& !(defined(XP_LINUX) && defined(MOZ_SANDBOX))
|
||||
#define MOZ_BROWSER_CAN_BE_CONTENTPROC
|
||||
#include "../../ipc/contentproc/plugin-container.cpp"
|
||||
#endif
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
@@ -56,12 +50,6 @@ using namespace mozilla;
|
||||
#define kOSXResourcesFolder "Resources"
|
||||
#endif
|
||||
#define kDesktopFolder "browser"
|
||||
#define kMetroFolder "metro"
|
||||
#define kMetroAppIniFilename "metroapp.ini"
|
||||
#ifdef XP_WIN
|
||||
#define kMetroTestFile "tests.ini"
|
||||
const char* kMetroConsoleIdParam = "testconsoleid=";
|
||||
#endif
|
||||
|
||||
static void Output(const char *fmt, ... )
|
||||
{
|
||||
@@ -84,10 +72,19 @@ static void Output(const char *fmt, ... )
|
||||
#if MOZ_WINCONSOLE
|
||||
fwprintf_s(stderr, wide_msg);
|
||||
#else
|
||||
MessageBoxW(nullptr,
|
||||
wide_msg,
|
||||
L"Pale Moon",
|
||||
MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
|
||||
// Linking user32 at load-time interferes with the DLL blocklist (bug 932100).
|
||||
// This is a rare codepath, so we can load user32 at run-time instead.
|
||||
HMODULE user32 = LoadLibraryW(L"user32.dll");
|
||||
if (user32) {
|
||||
decltype(MessageBoxW)* messageBoxW =
|
||||
(decltype(MessageBoxW)*) GetProcAddress(user32, "MessageBoxW");
|
||||
if (messageBoxW) {
|
||||
messageBoxW(nullptr, wide_msg, L"Pale Moon", MB_OK
|
||||
| MB_ICONERROR
|
||||
| MB_SETFOREGROUND);
|
||||
}
|
||||
FreeLibrary(user32);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -114,76 +111,60 @@ static bool IsArg(const char* arg, const char* s)
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef XP_WIN
|
||||
/*
|
||||
* AttachToTestHarness - Windows helper for when we are running
|
||||
* in the immersive environment. Firefox is launched by Windows in
|
||||
* response to a request by metrotestharness, which is launched by
|
||||
* runtests.py. As such stdout in fx doesn't point to the right
|
||||
* stream. This helper touches up stdout such that test output gets
|
||||
* routed to a named pipe metrotestharness creates and dumps to its
|
||||
* stdout.
|
||||
*/
|
||||
static void AttachToTestHarness()
|
||||
{
|
||||
// attach to the metrotestharness named logging pipe
|
||||
HANDLE winOut = CreateFileA("\\\\.\\pipe\\metrotestharness",
|
||||
GENERIC_WRITE,
|
||||
FILE_SHARE_WRITE, 0,
|
||||
OPEN_EXISTING, 0, 0);
|
||||
|
||||
if (winOut == INVALID_HANDLE_VALUE) {
|
||||
OutputDebugStringW(L"Could not create named logging pipe.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
// Set the c runtime handle
|
||||
int stdOut = _open_osfhandle((intptr_t)winOut, _O_APPEND);
|
||||
if (stdOut == -1) {
|
||||
OutputDebugStringW(L"Could not open c-runtime handle.\n");
|
||||
return;
|
||||
}
|
||||
FILE *fp = _fdopen(stdOut, "a");
|
||||
*stdout = *fp;
|
||||
}
|
||||
#endif
|
||||
|
||||
XRE_GetFileFromPathType XRE_GetFileFromPath;
|
||||
XRE_CreateAppDataType XRE_CreateAppData;
|
||||
XRE_FreeAppDataType XRE_FreeAppData;
|
||||
#ifdef XRE_HAS_DLL_BLOCKLIST
|
||||
XRE_SetupDllBlocklistType XRE_SetupDllBlocklist;
|
||||
#endif
|
||||
XRE_TelemetryAccumulateType XRE_TelemetryAccumulate;
|
||||
XRE_StartupTimelineRecordType XRE_StartupTimelineRecord;
|
||||
XRE_mainType XRE_main;
|
||||
XRE_StopLateWriteChecksType XRE_StopLateWriteChecks;
|
||||
XRE_XPCShellMainType XRE_XPCShellMain;
|
||||
XRE_GetProcessTypeType XRE_GetProcessType;
|
||||
XRE_SetProcessTypeType XRE_SetProcessType;
|
||||
XRE_InitChildProcessType XRE_InitChildProcess;
|
||||
XRE_EnableSameExecutableForContentProcType XRE_EnableSameExecutableForContentProc;
|
||||
#ifdef LIBFUZZER
|
||||
XRE_LibFuzzerSetMainType XRE_LibFuzzerSetMain;
|
||||
XRE_LibFuzzerGetFuncsType XRE_LibFuzzerGetFuncs;
|
||||
#endif
|
||||
|
||||
static const nsDynamicFunctionLoad kXULFuncs[] = {
|
||||
{ "XRE_GetFileFromPath", (NSFuncPtr*) &XRE_GetFileFromPath },
|
||||
{ "XRE_CreateAppData", (NSFuncPtr*) &XRE_CreateAppData },
|
||||
{ "XRE_FreeAppData", (NSFuncPtr*) &XRE_FreeAppData },
|
||||
#ifdef XRE_HAS_DLL_BLOCKLIST
|
||||
{ "XRE_SetupDllBlocklist", (NSFuncPtr*) &XRE_SetupDllBlocklist },
|
||||
#endif
|
||||
{ "XRE_TelemetryAccumulate", (NSFuncPtr*) &XRE_TelemetryAccumulate },
|
||||
{ "XRE_StartupTimelineRecord", (NSFuncPtr*) &XRE_StartupTimelineRecord },
|
||||
{ "XRE_main", (NSFuncPtr*) &XRE_main },
|
||||
{ "XRE_StopLateWriteChecks", (NSFuncPtr*) &XRE_StopLateWriteChecks },
|
||||
{ "XRE_XPCShellMain", (NSFuncPtr*) &XRE_XPCShellMain },
|
||||
{ "XRE_GetProcessType", (NSFuncPtr*) &XRE_GetProcessType },
|
||||
{ "XRE_SetProcessType", (NSFuncPtr*) &XRE_SetProcessType },
|
||||
{ "XRE_InitChildProcess", (NSFuncPtr*) &XRE_InitChildProcess },
|
||||
{ "XRE_EnableSameExecutableForContentProc", (NSFuncPtr*) &XRE_EnableSameExecutableForContentProc },
|
||||
#ifdef LIBFUZZER
|
||||
{ "XRE_LibFuzzerSetMain", (NSFuncPtr*) &XRE_LibFuzzerSetMain },
|
||||
{ "XRE_LibFuzzerGetFuncs", (NSFuncPtr*) &XRE_LibFuzzerGetFuncs },
|
||||
#endif
|
||||
{ nullptr, nullptr }
|
||||
};
|
||||
|
||||
static int do_main(int argc, char* argv[], nsIFile *xreDirectory)
|
||||
#ifdef LIBFUZZER
|
||||
int libfuzzer_main(int argc, char **argv);
|
||||
|
||||
/* This wrapper is used by the libFuzzer main to call into libxul */
|
||||
|
||||
void libFuzzerGetFuncs(const char* moduleName, LibFuzzerInitFunc* initFunc,
|
||||
LibFuzzerTestingFunc* testingFunc) {
|
||||
return XRE_LibFuzzerGetFuncs(moduleName, initFunc, testingFunc);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int do_main(int argc, char* argv[], char* envp[], nsIFile *xreDirectory)
|
||||
{
|
||||
nsCOMPtr<nsIFile> appini;
|
||||
nsresult rv;
|
||||
uint32_t mainFlags = 0;
|
||||
|
||||
#ifdef XP_WIN
|
||||
if (!IsWindowsVistaOrGreater()) {
|
||||
Output("Couldn't load valid PE image.\n");
|
||||
return 255;
|
||||
}
|
||||
|
||||
#endif
|
||||
// Allow palemoon.exe to launch XULRunner apps via -app <application.ini>
|
||||
// Note that -app must be the *first* argument.
|
||||
const char *appDataFile = getenv("XUL_APP_FILE");
|
||||
@@ -207,14 +188,26 @@ static int do_main(int argc, char* argv[], nsIFile *xreDirectory)
|
||||
}
|
||||
|
||||
char appEnv[MAXPATHLEN];
|
||||
snprintf(appEnv, MAXPATHLEN, "XUL_APP_FILE=%s", argv[2]);
|
||||
if (putenv(appEnv)) {
|
||||
SprintfLiteral(appEnv, "XUL_APP_FILE=%s", argv[2]);
|
||||
if (putenv(strdup(appEnv))) {
|
||||
Output("Couldn't set %s.\n", appEnv);
|
||||
return 255;
|
||||
}
|
||||
argv[2] = argv[0];
|
||||
argv += 2;
|
||||
argc -= 2;
|
||||
} else if (argc > 1 && IsArg(argv[1], "xpcshell")) {
|
||||
for (int i = 1; i < argc; i++) {
|
||||
argv[i] = argv[i + 1];
|
||||
}
|
||||
|
||||
XREShellData shellData;
|
||||
#if defined(XP_WIN) && defined(MOZ_SANDBOX)
|
||||
shellData.sandboxBrokerServices =
|
||||
sandboxing::GetInitializedBrokerServices();
|
||||
#endif
|
||||
|
||||
return XRE_XPCShellMain(--argc, argv, envp, &shellData);
|
||||
}
|
||||
|
||||
if (appini) {
|
||||
@@ -224,6 +217,13 @@ static int do_main(int argc, char* argv[], nsIFile *xreDirectory)
|
||||
Output("Couldn't read application.ini");
|
||||
return 255;
|
||||
}
|
||||
#if defined(HAS_DLL_BLOCKLIST)
|
||||
// The dll blocklist operates in the exe vs. xullib. Pass a flag to
|
||||
// xullib so automated tests can check the result once the browser
|
||||
// is up and running.
|
||||
appData->flags |=
|
||||
DllBlocklist_CheckStatus() ? NS_XRE_DLL_BLOCKLIST_ENABLED : 0;
|
||||
#endif
|
||||
// xreDirectory already has a refcount from NS_NewLocalFile
|
||||
appData->xreDirectory = xreDirectory;
|
||||
int result = XRE_main(argc, argv, appData, mainFlags);
|
||||
@@ -231,7 +231,6 @@ static int do_main(int argc, char* argv[], nsIFile *xreDirectory)
|
||||
return result;
|
||||
}
|
||||
|
||||
// Desktop browser launch
|
||||
ScopedAppData appData(&sAppData);
|
||||
nsCOMPtr<nsIFile> exeFile;
|
||||
rv = mozilla::BinaryPath::GetFile(argv[0], getter_AddRefs(exeFile));
|
||||
@@ -243,10 +242,7 @@ static int do_main(int argc, char* argv[], nsIFile *xreDirectory)
|
||||
nsCOMPtr<nsIFile> greDir;
|
||||
exeFile->GetParent(getter_AddRefs(greDir));
|
||||
#ifdef XP_MACOSX
|
||||
nsCOMPtr<nsIFile> parent;
|
||||
greDir->GetParent(getter_AddRefs(parent));
|
||||
greDir = parent.forget();
|
||||
greDir->AppendNative(NS_LITERAL_CSTRING(kOSXResourcesFolder));
|
||||
greDir->SetNativeLeafName(NS_LITERAL_CSTRING(kOSXResourcesFolder));
|
||||
#endif
|
||||
nsCOMPtr<nsIFile> appSubdir;
|
||||
greDir->Clone(getter_AddRefs(appSubdir));
|
||||
@@ -256,33 +252,29 @@ static int do_main(int argc, char* argv[], nsIFile *xreDirectory)
|
||||
// xreDirectory already has a refcount from NS_NewLocalFile
|
||||
appData.xreDirectory = xreDirectory;
|
||||
|
||||
return XRE_main(argc, argv, &appData, mainFlags);
|
||||
}
|
||||
|
||||
/**
|
||||
* Local TimeStamp::Now()-compatible implementation used to record timestamps
|
||||
* which will be passed to XRE_StartupTimelineRecord().
|
||||
*/
|
||||
static uint64_t
|
||||
TimeStamp_Now()
|
||||
{
|
||||
#ifdef XP_WIN
|
||||
LARGE_INTEGER freq;
|
||||
::QueryPerformanceFrequency(&freq);
|
||||
return GetTickCount64() * freq.QuadPart;
|
||||
#elif defined(XP_MACOSX)
|
||||
return mach_absolute_time();
|
||||
#elif defined(HAVE_CLOCK_MONOTONIC)
|
||||
struct timespec ts;
|
||||
int rv = clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
|
||||
if (rv != 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64_t baseNs = (uint64_t)ts.tv_sec * 1000000000;
|
||||
return baseNs + (uint64_t)ts.tv_nsec;
|
||||
#if defined(HAS_DLL_BLOCKLIST)
|
||||
appData.flags |=
|
||||
DllBlocklist_CheckStatus() ? NS_XRE_DLL_BLOCKLIST_ENABLED : 0;
|
||||
#endif
|
||||
|
||||
#if defined(XP_WIN) && defined(MOZ_SANDBOX)
|
||||
sandbox::BrokerServices* brokerServices =
|
||||
sandboxing::GetInitializedBrokerServices();
|
||||
#if defined(MOZ_CONTENT_SANDBOX)
|
||||
if (!brokerServices) {
|
||||
Output("Couldn't initialize the broker services.\n");
|
||||
return 255;
|
||||
}
|
||||
#endif
|
||||
appData.sandboxBrokerServices = brokerServices;
|
||||
#endif
|
||||
|
||||
#ifdef LIBFUZZER
|
||||
if (getenv("LIBFUZZER"))
|
||||
XRE_LibFuzzerSetMain(argc, argv, libfuzzer_main);
|
||||
#endif
|
||||
|
||||
return XRE_main(argc, argv, &appData, mainFlags);
|
||||
}
|
||||
|
||||
static bool
|
||||
@@ -298,11 +290,6 @@ FileExists(const char *path)
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef LIBXUL_SDK
|
||||
# define XPCOM_PATH "xulrunner" XPCOM_FILE_PATH_SEPARATOR XPCOM_DLL
|
||||
#else
|
||||
# define XPCOM_PATH XPCOM_DLL
|
||||
#endif
|
||||
static nsresult
|
||||
InitXPCOMGlue(const char *argv0, nsIFile **xreDirectory)
|
||||
{
|
||||
@@ -315,55 +302,13 @@ InitXPCOMGlue(const char *argv0, nsIFile **xreDirectory)
|
||||
}
|
||||
|
||||
char *lastSlash = strrchr(exePath, XPCOM_FILE_PATH_SEPARATOR[0]);
|
||||
if (!lastSlash || (size_t(lastSlash - exePath) > MAXPATHLEN - sizeof(XPCOM_PATH) - 1))
|
||||
if (!lastSlash ||
|
||||
(size_t(lastSlash - exePath) > MAXPATHLEN - sizeof(XPCOM_DLL) - 1))
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
strcpy(lastSlash + 1, XPCOM_PATH);
|
||||
lastSlash += sizeof(XPCOM_PATH) - sizeof(XPCOM_DLL);
|
||||
strcpy(lastSlash + 1, XPCOM_DLL);
|
||||
|
||||
if (!FileExists(exePath)) {
|
||||
#if defined(LIBXUL_SDK) && defined(XP_MACOSX)
|
||||
// Check for <bundle>/Contents/Frameworks/XUL.framework/libxpcom.dylib
|
||||
bool greFound = false;
|
||||
CFBundleRef appBundle = CFBundleGetMainBundle();
|
||||
if (!appBundle)
|
||||
return NS_ERROR_FAILURE;
|
||||
CFURLRef fwurl = CFBundleCopyPrivateFrameworksURL(appBundle);
|
||||
CFURLRef absfwurl = nullptr;
|
||||
if (fwurl) {
|
||||
absfwurl = CFURLCopyAbsoluteURL(fwurl);
|
||||
CFRelease(fwurl);
|
||||
}
|
||||
if (absfwurl) {
|
||||
CFURLRef xulurl =
|
||||
CFURLCreateCopyAppendingPathComponent(nullptr, absfwurl,
|
||||
CFSTR("XUL.framework"),
|
||||
true);
|
||||
|
||||
if (xulurl) {
|
||||
CFURLRef xpcomurl =
|
||||
CFURLCreateCopyAppendingPathComponent(nullptr, xulurl,
|
||||
CFSTR("libxpcom.dylib"),
|
||||
false);
|
||||
|
||||
if (xpcomurl) {
|
||||
if (CFURLGetFileSystemRepresentation(xpcomurl, true,
|
||||
(UInt8*) exePath,
|
||||
sizeof(exePath)) &&
|
||||
access(tbuffer, R_OK | X_OK) == 0) {
|
||||
if (realpath(tbuffer, exePath)) {
|
||||
greFound = true;
|
||||
}
|
||||
}
|
||||
CFRelease(xpcomurl);
|
||||
}
|
||||
CFRelease(xulurl);
|
||||
}
|
||||
CFRelease(absfwurl);
|
||||
}
|
||||
}
|
||||
if (!greFound) {
|
||||
#endif
|
||||
Output("Could not find the Mozilla runtime.\n");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
@@ -383,45 +328,72 @@ InitXPCOMGlue(const char *argv0, nsIFile **xreDirectory)
|
||||
return rv;
|
||||
}
|
||||
|
||||
// This will set this thread as the main thread.
|
||||
NS_LogInit();
|
||||
|
||||
// chop XPCOM_DLL off exePath
|
||||
*lastSlash = '\0';
|
||||
if (xreDirectory) {
|
||||
// chop XPCOM_DLL off exePath
|
||||
*lastSlash = '\0';
|
||||
#ifdef XP_MACOSX
|
||||
lastSlash = strrchr(exePath, XPCOM_FILE_PATH_SEPARATOR[0]);
|
||||
strcpy(lastSlash + 1, kOSXResourcesFolder);
|
||||
lastSlash = strrchr(exePath, XPCOM_FILE_PATH_SEPARATOR[0]);
|
||||
strcpy(lastSlash + 1, kOSXResourcesFolder);
|
||||
#endif
|
||||
#ifdef XP_WIN
|
||||
rv = NS_NewLocalFile(NS_ConvertUTF8toUTF16(exePath), false,
|
||||
xreDirectory);
|
||||
rv = NS_NewLocalFile(NS_ConvertUTF8toUTF16(exePath), false,
|
||||
xreDirectory);
|
||||
#else
|
||||
rv = NS_NewNativeLocalFile(nsDependentCString(exePath), false,
|
||||
xreDirectory);
|
||||
rv = NS_NewNativeLocalFile(nsDependentCString(exePath), false,
|
||||
xreDirectory);
|
||||
#endif
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
int main(int argc, char* argv[], char* envp[])
|
||||
{
|
||||
#ifdef DEBUG_delay_start_metro
|
||||
Sleep(5000);
|
||||
#endif
|
||||
uint64_t start = TimeStamp_Now();
|
||||
mozilla::TimeStamp start = mozilla::TimeStamp::Now();
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
TriggerQuirks();
|
||||
#ifdef HAS_DLL_BLOCKLIST
|
||||
DllBlocklist_Initialize();
|
||||
|
||||
#ifdef DEBUG
|
||||
// In order to be effective against AppInit DLLs, the blocklist must be
|
||||
// initialized before user32.dll is loaded into the process (bug 932100).
|
||||
if (GetModuleHandleA("user32.dll")) {
|
||||
fprintf(stderr, "DLL blocklist was unable to intercept AppInit DLLs.\n");
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
int gotCounters;
|
||||
#if defined(XP_UNIX)
|
||||
struct rusage initialRUsage;
|
||||
gotCounters = !getrusage(RUSAGE_SELF, &initialRUsage);
|
||||
#elif defined(XP_WIN)
|
||||
IO_COUNTERS ioCounters;
|
||||
gotCounters = GetProcessIoCounters(GetCurrentProcess(), &ioCounters);
|
||||
#ifdef MOZ_BROWSER_CAN_BE_CONTENTPROC
|
||||
// We are launching as a content process, delegate to the appropriate
|
||||
// main
|
||||
if (argc > 1 && IsArg(argv[1], "contentproc")) {
|
||||
#if defined(XP_WIN) && defined(MOZ_SANDBOX)
|
||||
// We need to initialize the sandbox TargetServices before InitXPCOMGlue
|
||||
// because we might need the sandbox broker to give access to some files.
|
||||
if (IsSandboxedProcess() && !sandboxing::GetInitializedTargetServices()) {
|
||||
Output("Failed to initialize the sandbox target services.");
|
||||
return 255;
|
||||
}
|
||||
#endif
|
||||
|
||||
nsresult rv = InitXPCOMGlue(argv[0], nullptr);
|
||||
if (NS_FAILED(rv)) {
|
||||
return 255;
|
||||
}
|
||||
|
||||
int result = content_process_main(argc, argv);
|
||||
|
||||
// InitXPCOMGlue calls NS_LogInit, so we need to balance it here.
|
||||
NS_LogTerm();
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
nsIFile *xreDirectory;
|
||||
|
||||
nsresult rv = InitXPCOMGlue(argv[0], &xreDirectory);
|
||||
@@ -431,11 +403,11 @@ int main(int argc, char* argv[])
|
||||
|
||||
XRE_StartupTimelineRecord(mozilla::StartupTimeline::START, start);
|
||||
|
||||
#ifdef XRE_HAS_DLL_BLOCKLIST
|
||||
XRE_SetupDllBlocklist();
|
||||
#ifdef MOZ_BROWSER_CAN_BE_CONTENTPROC
|
||||
XRE_EnableSameExecutableForContentProc();
|
||||
#endif
|
||||
|
||||
int result = do_main(argc, argv, xreDirectory);
|
||||
int result = do_main(argc, argv, envp, xreDirectory);
|
||||
|
||||
NS_LogTerm();
|
||||
|
||||
|
||||
@@ -1036,6 +1036,9 @@ pref("browser.newtab.preload", false);
|
||||
// Toggles the content of 'about:newtab'. Shows the grid when enabled.
|
||||
pref("browser.newtabpage.enabled", true);
|
||||
|
||||
// XXX: Remove this when "enhanced" tiles are dead
|
||||
pref("browser.newtabpage.enhanced", false);
|
||||
|
||||
// number of columns of newtab grid
|
||||
pref("browser.newtabpage.columns", 4);
|
||||
|
||||
|
||||
@@ -88,6 +88,9 @@
|
||||
</vbox>
|
||||
|
||||
<description class="text-pmcreds">
|
||||
#ifdef MC_PRIVATE_BUILD
|
||||
This is a private build of Pale Moon. If you did not manually build this copy from source yourself, then please download an official version from the <label class="text-link" href="http://www.palemoon.org/">Pale Moon website</label>.
|
||||
#else
|
||||
Pale Moon is released by <label class="text-link" href="http://www.moonchildproductions.info">Moonchild Productions</label>.
|
||||
</description>
|
||||
<description class="text-pmcreds">
|
||||
@@ -96,6 +99,7 @@
|
||||
<description class="text-blurb">
|
||||
If you wish to contribute, please consider helping out by providing support to other users on the <label class="text-link" href="https://forum.palemoon.org/">Pale Moon forum</label>
|
||||
or getting involved in our development by tackling some of the issues found in our GitHub issue tracker.
|
||||
#endif
|
||||
</description>
|
||||
</vbox>
|
||||
</vbox>
|
||||
|
||||
@@ -234,8 +234,8 @@ const SEARCH_ENGINES = {
|
||||
};
|
||||
|
||||
// This global tracks if the page has been set up before, to prevent double inits
|
||||
let gInitialized = false;
|
||||
let gObserver = new MutationObserver(function (mutations) {
|
||||
var gInitialized = false;
|
||||
var gObserver = new MutationObserver(function (mutations) {
|
||||
for (let mutation of mutations) {
|
||||
if (mutation.attributeName == "searchEngineURL") {
|
||||
setupSearchEngine();
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/* 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/. */
|
||||
|
||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
@namespace html url("http://www.w3.org/1999/xhtml");
|
||||
|
||||
/* Apply crisp rendering for favicons at exactly 2dppx resolution */
|
||||
@media (resolution: 2dppx) {
|
||||
.ac-site-icon {
|
||||
image-rendering: -moz-crisp-edges;
|
||||
}
|
||||
}
|
||||
|
||||
richlistitem > .ac-title-box > .ac-title > .ac-comment:not([selected]) > html|span.ac-selected-text {
|
||||
display: none;
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -10,9 +10,9 @@
|
||||
* have been properly initialized already.
|
||||
*/
|
||||
|
||||
let Cc = Components.classes;
|
||||
let Ci = Components.interfaces;
|
||||
let Cu = Components.utils;
|
||||
var Cc = Components.classes;
|
||||
var Ci = Components.interfaces;
|
||||
var Cu = Components.utils;
|
||||
|
||||
// Services = object with smart getters for common XPCOM services
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<menuitem id="menu_mac_show_all" label="&showAllAppsCmdMac.label;"/>
|
||||
</menupopup>
|
||||
<!-- Mac window menu -->
|
||||
#include ../../../toolkit/content/macWindowMenu.inc
|
||||
#include ../../../../toolkit/content/macWindowMenu.inc
|
||||
#endif
|
||||
|
||||
#ifdef XP_WIN
|
||||
|
||||
@@ -226,7 +226,7 @@ const gXPInstallObserver = {
|
||||
* - If an add-on was installed, incrementing the count, show the bar.
|
||||
* - If an add-on was uninstalled, and no more items are left, hide the bar.
|
||||
*/
|
||||
let AddonsMgrListener = {
|
||||
var AddonsMgrListener = {
|
||||
get addonBar() document.getElementById("addon-bar"),
|
||||
get statusBar() document.getElementById("status-bar"),
|
||||
getAddonBarItemCount: function() {
|
||||
@@ -461,7 +461,7 @@ var LightWeightThemeWebInstaller = {
|
||||
/*
|
||||
* Listen for Lightweight Theme styling changes and update the browser's theme accordingly.
|
||||
*/
|
||||
let LightweightThemeListener = {
|
||||
var LightweightThemeListener = {
|
||||
_modifiedStyles: [],
|
||||
|
||||
init: function () {
|
||||
|
||||
@@ -132,38 +132,8 @@
|
||||
</splitmenu>
|
||||
<menuseparator class="appmenu-menuseparator"/>
|
||||
<splitmenu id="appmenu_webDeveloper"
|
||||
command="Tools:DevToolbox"
|
||||
label="&appMenuWebDeveloper.label;">
|
||||
<menupopup id="appmenu_webDeveloper_popup">
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<menuitem id="appmenu_devToolbox"
|
||||
observes="devtoolsMenuBroadcaster_DevToolbox"/>
|
||||
<menuseparator id="appmenu_devtools_separator"/>
|
||||
<menuitem id="appmenu_devToolbar"
|
||||
observes="devtoolsMenuBroadcaster_DevToolbar"/>
|
||||
<menuitem id="appmenu_chromeDebugger"
|
||||
observes="devtoolsMenuBroadcaster_ChromeDebugger"/>
|
||||
<menuitem id="appmenu_browserConsole"
|
||||
observes="devtoolsMenuBroadcaster_BrowserConsole"/>
|
||||
<menuitem id="appmenu_responsiveUI"
|
||||
observes="devtoolsMenuBroadcaster_ResponsiveUI"/>
|
||||
<menuitem id="appmenu_eyedropper"
|
||||
observes="devtoolsMenuBroadcaster_Eyedropper"/>
|
||||
<menuitem id="appmenu_scratchpad"
|
||||
observes="devtoolsMenuBroadcaster_Scratchpad"/>
|
||||
#endif
|
||||
<menuitem id="appmenu_pageSource"
|
||||
observes="devtoolsMenuBroadcaster_PageSource"/>
|
||||
<menuitem id="appmenu_errorConsole"
|
||||
observes="devtoolsMenuBroadcaster_ErrorConsole"/>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<menuitem id="appmenu_devtools_connect"
|
||||
observes="devtoolsMenuBroadcaster_connect"/>
|
||||
#endif
|
||||
<menuseparator id="appmenu_devToolsEndSeparator"/>
|
||||
<menuitem id="appmenu_getMoreDevtools"
|
||||
observes="devtoolsMenuBroadcaster_GetMoreTools"/>
|
||||
<menuseparator/>
|
||||
#define ID_PREFIX appmenu_developer_
|
||||
#define OMIT_ACCESSKEYS
|
||||
#include browser-charsetmenu.inc
|
||||
@@ -173,6 +143,11 @@
|
||||
type="checkbox"
|
||||
observes="workOfflineMenuitemState"
|
||||
oncommand="BrowserOffline.toggleOfflineStatus();"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="appmenu_pageSource"
|
||||
observes="devtoolsMenuBroadcaster_PageSource"/>
|
||||
<menuitem id="appmenu_javascriptConsole"
|
||||
observes="devtoolsMenuBroadcaster_ErrorConsole"/>
|
||||
</menupopup>
|
||||
</splitmenu>
|
||||
<menuseparator class="appmenu-menuseparator"/>
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
/* 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/. */
|
||||
|
||||
/**
|
||||
* Listeners for the DevTools theme.
|
||||
*/
|
||||
var DevToolsTheme = {
|
||||
_devtoolsThemePrefName: "devtools.theme",
|
||||
styleSheet: null,
|
||||
initialized: false,
|
||||
|
||||
get isStyleSheetEnabled() {
|
||||
return this.styleSheet && !this.styleSheet.sheet.disabled;
|
||||
},
|
||||
|
||||
init: function () {
|
||||
this.initialized = true;
|
||||
Services.prefs.addObserver(this._devtoolsThemePrefName, this, false);
|
||||
Services.obs.addObserver(this, "lightweight-theme-styling-update", false);
|
||||
Services.obs.addObserver(this, "lightweight-theme-window-updated", false);
|
||||
this._updateDevtoolsThemeAttribute();
|
||||
},
|
||||
|
||||
observe: function (subject, topic, data) {
|
||||
if (topic == "lightweight-theme-styling-update") {
|
||||
let newTheme = JSON.parse(data);
|
||||
this._toggleStyleSheet();
|
||||
}
|
||||
|
||||
if (topic == "nsPref:changed" && data == this._devtoolsThemePrefName) {
|
||||
this._updateDevtoolsThemeAttribute();
|
||||
}
|
||||
},
|
||||
|
||||
_inferBrightness: function() {
|
||||
ToolbarIconColor.inferFromText();
|
||||
// Get an inverted full screen button if the dark theme is applied.
|
||||
if (this.isStyleSheetEnabled &&
|
||||
document.documentElement.getAttribute("devtoolstheme") == "dark") {
|
||||
document.documentElement.setAttribute("brighttitlebarforeground", "true");
|
||||
} else {
|
||||
document.documentElement.removeAttribute("brighttitlebarforeground");
|
||||
}
|
||||
},
|
||||
|
||||
_updateDevtoolsThemeAttribute: function() {
|
||||
// Set an attribute on root element to make it possible
|
||||
// to change colors based on the selected devtools theme.
|
||||
let devtoolsTheme = Services.prefs.getCharPref(this._devtoolsThemePrefName);
|
||||
if (devtoolsTheme != "dark") {
|
||||
devtoolsTheme = "light";
|
||||
}
|
||||
document.documentElement.setAttribute("devtoolstheme", devtoolsTheme);
|
||||
this._inferBrightness();
|
||||
},
|
||||
|
||||
handleEvent: function(e) {
|
||||
if (e.type === "load") {
|
||||
this.styleSheet.removeEventListener("load", this);
|
||||
this.refreshBrowserDisplay();
|
||||
}
|
||||
},
|
||||
|
||||
refreshBrowserDisplay: function() {
|
||||
// Don't touch things on the browser if gBrowserInit.onLoad hasn't
|
||||
// yet fired.
|
||||
if (this.initialized) {
|
||||
gBrowser.tabContainer._positionPinnedTabs();
|
||||
this._inferBrightness();
|
||||
}
|
||||
},
|
||||
|
||||
_toggleStyleSheet: function() {
|
||||
let wasEnabled = this.isStyleSheetEnabled;
|
||||
if (wasEnabled) {
|
||||
this.styleSheet.sheet.disabled = true;
|
||||
this.refreshBrowserDisplay();
|
||||
}
|
||||
},
|
||||
|
||||
uninit: function () {
|
||||
Services.prefs.removeObserver(this._devtoolsThemePrefName, this);
|
||||
Services.obs.removeObserver(this, "lightweight-theme-styling-update", false);
|
||||
Services.obs.removeObserver(this, "lightweight-theme-window-updated", false);
|
||||
if (this.styleSheet) {
|
||||
this.styleSheet.removeEventListener("load", this);
|
||||
}
|
||||
this.styleSheet = null;
|
||||
}
|
||||
};
|
||||
@@ -304,7 +304,7 @@ var FullScreen = {
|
||||
},
|
||||
|
||||
_cancelAnimation: function() {
|
||||
window.mozCancelAnimationFrame(this._animationHandle);
|
||||
window.cancelAnimationFrame(this._animationHandle);
|
||||
this._animationHandle = 0;
|
||||
clearTimeout(this._animationTimeout);
|
||||
this._isAnimating = false;
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
/*
|
||||
#ifdef 0
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
/* 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/.
|
||||
#endif
|
||||
*/
|
||||
|
||||
// One of the possible values for the mousewheel.* preferences.
|
||||
// From nsEventStateManager.cpp.
|
||||
const MOUSE_SCROLL_ZOOM = 3;
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/**
|
||||
* Controls the "full zoom" setting and its site-specific preferences.
|
||||
@@ -36,7 +28,6 @@ var FullZoom = {
|
||||
return this._siteSpecificPref;
|
||||
},
|
||||
|
||||
//**************************************************************************//
|
||||
// nsISupports
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIDOMEventListener,
|
||||
@@ -45,12 +36,10 @@ var FullZoom = {
|
||||
Ci.nsISupportsWeakReference,
|
||||
Ci.nsISupports]),
|
||||
|
||||
//**************************************************************************//
|
||||
// Initialization & Destruction
|
||||
|
||||
init: function FullZoom_init() {
|
||||
// Listen for scrollwheel events so we can save scrollwheel-based changes.
|
||||
window.addEventListener("DOMMouseScroll", this, false);
|
||||
gBrowser.addEventListener("ZoomChangeUsingMouseWheel", this);
|
||||
|
||||
// Register ourselves with the service so we know when our pref changes.
|
||||
this._cps2 = Cc["@mozilla.org/content-pref/service;1"].
|
||||
@@ -74,76 +63,30 @@ var FullZoom = {
|
||||
}
|
||||
|
||||
// This should be nulled after initialization.
|
||||
this._initialLocations.clear();
|
||||
this._initialLocations = null;
|
||||
},
|
||||
|
||||
destroy: function FullZoom_destroy() {
|
||||
gPrefService.removeObserver("browser.zoom.", this);
|
||||
this._cps2.removeObserverForName(this.name, this);
|
||||
window.removeEventListener("DOMMouseScroll", this, false);
|
||||
gBrowser.removeEventListener("ZoomChangeUsingMouseWheel", this);
|
||||
},
|
||||
|
||||
|
||||
//**************************************************************************//
|
||||
// Event Handlers
|
||||
|
||||
// nsIDOMEventListener
|
||||
|
||||
handleEvent: function FullZoom_handleEvent(event) {
|
||||
switch (event.type) {
|
||||
case "DOMMouseScroll":
|
||||
this._handleMouseScrolled(event);
|
||||
case "ZoomChangeUsingMouseWheel":
|
||||
let browser = this._getTargetedBrowser(event);
|
||||
this._ignorePendingZoomAccesses(browser);
|
||||
this._applyZoomToPref(browser);
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
_handleMouseScrolled: function FullZoom__handleMouseScrolled(event) {
|
||||
// Construct the "mousewheel action" pref key corresponding to this event.
|
||||
// Based on nsEventStateManager::WheelPrefs::GetBasePrefName().
|
||||
var pref = "mousewheel.";
|
||||
|
||||
var pressedModifierCount = event.shiftKey + event.ctrlKey + event.altKey +
|
||||
event.metaKey + event.getModifierState("OS");
|
||||
if (pressedModifierCount != 1) {
|
||||
pref += "default.";
|
||||
} else if (event.shiftKey) {
|
||||
pref += "with_shift.";
|
||||
} else if (event.ctrlKey) {
|
||||
pref += "with_control.";
|
||||
} else if (event.altKey) {
|
||||
pref += "with_alt.";
|
||||
} else if (event.metaKey) {
|
||||
pref += "with_meta.";
|
||||
} else {
|
||||
pref += "with_win.";
|
||||
}
|
||||
|
||||
pref += "action";
|
||||
|
||||
// Don't do anything if this isn't a "zoom" scroll event.
|
||||
var isZoomEvent = false;
|
||||
try {
|
||||
isZoomEvent = (gPrefService.getIntPref(pref) == MOUSE_SCROLL_ZOOM);
|
||||
} catch (e) {}
|
||||
if (!isZoomEvent)
|
||||
return;
|
||||
|
||||
// XXX Lazily cache all the possible action prefs so we don't have to get
|
||||
// them anew from the pref service for every scroll event? We'd have to
|
||||
// make sure to observe them so we can update the cache when they change.
|
||||
|
||||
// We have to call _applyZoomToPref in a timeout because we handle the
|
||||
// event before the event state manager has a chance to apply the zoom
|
||||
// during nsEventStateManager::PostHandleEvent.
|
||||
let browser = gBrowser.selectedBrowser;
|
||||
let token = this._getBrowserToken(browser);
|
||||
window.setTimeout(function () {
|
||||
if (token.isCurrent)
|
||||
this._applyZoomToPref(browser);
|
||||
}.bind(this), 0);
|
||||
},
|
||||
|
||||
// nsIObserver
|
||||
|
||||
observe: function (aSubject, aTopic, aData) {
|
||||
@@ -165,12 +108,12 @@ var FullZoom = {
|
||||
|
||||
// nsIContentPrefObserver
|
||||
|
||||
onContentPrefSet: function FullZoom_onContentPrefSet(aGroup, aName, aValue) {
|
||||
this._onContentPrefChanged(aGroup, aValue);
|
||||
onContentPrefSet: function FullZoom_onContentPrefSet(aGroup, aName, aValue, aIsPrivate) {
|
||||
this._onContentPrefChanged(aGroup, aValue, aIsPrivate);
|
||||
},
|
||||
|
||||
onContentPrefRemoved: function FullZoom_onContentPrefRemoved(aGroup, aName) {
|
||||
this._onContentPrefChanged(aGroup, undefined);
|
||||
onContentPrefRemoved: function FullZoom_onContentPrefRemoved(aGroup, aName, aIsPrivate) {
|
||||
this._onContentPrefChanged(aGroup, undefined, aIsPrivate);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -181,7 +124,7 @@ var FullZoom = {
|
||||
* @param aValue The new value of the changed preference. Pass undefined to
|
||||
* indicate the preference's removal.
|
||||
*/
|
||||
_onContentPrefChanged: function FullZoom__onContentPrefChanged(aGroup, aValue) {
|
||||
_onContentPrefChanged: function FullZoom__onContentPrefChanged(aGroup, aValue, aIsPrivate) {
|
||||
if (this._isNextContentPrefChangeInternal) {
|
||||
// Ignore changes that FullZoom itself makes. This works because the
|
||||
// content pref service calls callbacks before notifying observers, and it
|
||||
@@ -194,9 +137,10 @@ var FullZoom = {
|
||||
if (!browser.currentURI)
|
||||
return;
|
||||
|
||||
let ctxt = this._loadContextFromBrowser(browser);
|
||||
let domain = this._cps2.extractDomain(browser.currentURI.spec);
|
||||
if (aGroup) {
|
||||
if (aGroup == domain)
|
||||
if (aGroup == domain && ctxt.usePrivateBrowsing == aIsPrivate)
|
||||
this._applyPrefToZoom(aValue, browser);
|
||||
return;
|
||||
}
|
||||
@@ -208,10 +152,9 @@ var FullZoom = {
|
||||
// zoom should be set to the new global preference now that the global
|
||||
// preference has changed.
|
||||
let hasPref = false;
|
||||
let ctxt = this._loadContextFromBrowser(browser);
|
||||
let token = this._getBrowserToken(browser);
|
||||
this._cps2.getByDomainAndName(browser.currentURI.spec, this.name, ctxt, {
|
||||
handleResult: function () hasPref = true,
|
||||
handleResult: function () { hasPref = true; },
|
||||
handleCompletion: function () {
|
||||
if (!hasPref && token.isCurrent)
|
||||
this._applyPrefToZoom(undefined, browser);
|
||||
@@ -234,6 +177,7 @@ var FullZoom = {
|
||||
*/
|
||||
onLocationChange: function FullZoom_onLocationChange(aURI, aIsTabSwitch, aBrowser) {
|
||||
let browser = aBrowser || gBrowser.selectedBrowser;
|
||||
|
||||
// If we haven't been initialized yet but receive an onLocationChange
|
||||
// notification then let's store and replay it upon initialization.
|
||||
if (this._initialLocations) {
|
||||
@@ -247,14 +191,14 @@ var FullZoom = {
|
||||
this._ignorePendingZoomAccesses(browser);
|
||||
|
||||
if (!aURI || (aIsTabSwitch && !this.siteSpecific)) {
|
||||
this._notifyOnLocationChange();
|
||||
this._notifyOnLocationChange(browser);
|
||||
return;
|
||||
}
|
||||
|
||||
// Avoid the cps roundtrip and apply the default/global pref.
|
||||
if (aURI.spec == "about:blank") {
|
||||
this._applyPrefToZoom(undefined, browser,
|
||||
this._notifyOnLocationChange.bind(this));
|
||||
this._notifyOnLocationChange.bind(this, browser));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -262,7 +206,7 @@ var FullZoom = {
|
||||
if (!aIsTabSwitch && browser.isSyntheticDocument) {
|
||||
ZoomManager.setZoomForBrowser(browser, 1);
|
||||
// _ignorePendingZoomAccesses already called above, so no need here.
|
||||
this._notifyOnLocationChange();
|
||||
this._notifyOnLocationChange(browser);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -271,7 +215,7 @@ var FullZoom = {
|
||||
let pref = this._cps2.getCachedByDomainAndName(aURI.spec, this.name, ctxt);
|
||||
if (pref) {
|
||||
this._applyPrefToZoom(pref.value, browser,
|
||||
this._notifyOnLocationChange.bind(this));
|
||||
this._notifyOnLocationChange.bind(this, browser));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -279,14 +223,14 @@ var FullZoom = {
|
||||
let value = undefined;
|
||||
let token = this._getBrowserToken(browser);
|
||||
this._cps2.getByDomainAndName(aURI.spec, this.name, ctxt, {
|
||||
handleResult: function (resultPref) value = resultPref.value,
|
||||
handleResult: function (resultPref) { value = resultPref.value; },
|
||||
handleCompletion: function () {
|
||||
if (!token.isCurrent) {
|
||||
this._notifyOnLocationChange();
|
||||
this._notifyOnLocationChange(browser);
|
||||
return;
|
||||
}
|
||||
this._applyPrefToZoom(value, browser,
|
||||
this._notifyOnLocationChange.bind(this));
|
||||
this._notifyOnLocationChange.bind(this, browser));
|
||||
}.bind(this)
|
||||
});
|
||||
},
|
||||
@@ -299,7 +243,6 @@ var FullZoom = {
|
||||
menuItem.setAttribute("checked", !ZoomManager.useFullZoom);
|
||||
},
|
||||
|
||||
//**************************************************************************//
|
||||
// Setting & Pref Manipulation
|
||||
|
||||
/**
|
||||
@@ -323,19 +266,32 @@ var FullZoom = {
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets the zoom level of the page in the current browser to the global zoom
|
||||
* level.
|
||||
* Sets the zoom level for the given browser to the given floating
|
||||
* point value, where 1 is the default zoom level.
|
||||
*/
|
||||
reset: function FullZoom_reset() {
|
||||
let browser = gBrowser.selectedBrowser;
|
||||
setZoom: function (value, browser = gBrowser.selectedBrowser) {
|
||||
ZoomManager.setZoomForBrowser(browser, value);
|
||||
this._ignorePendingZoomAccesses(browser);
|
||||
this._applyZoomToPref(browser);
|
||||
},
|
||||
|
||||
/**
|
||||
* Sets the zoom level of the page in the given browser to the global zoom
|
||||
* level.
|
||||
*
|
||||
* @return A promise which resolves when the zoom reset has been applied.
|
||||
*/
|
||||
reset: function FullZoom_reset(browser = gBrowser.selectedBrowser) {
|
||||
let token = this._getBrowserToken(browser);
|
||||
this._getGlobalValue(browser, function (value) {
|
||||
let result = this._getGlobalValue(browser).then(value => {
|
||||
if (token.isCurrent) {
|
||||
ZoomManager.setZoomForBrowser(browser, value === undefined ? 1 : value);
|
||||
this._ignorePendingZoomAccesses(browser);
|
||||
Services.obs.notifyObservers(browser, "browser-fullZoom:zoomReset", "");
|
||||
}
|
||||
});
|
||||
this._removePref(browser);
|
||||
return result;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -383,7 +339,7 @@ var FullZoom = {
|
||||
}
|
||||
|
||||
let token = this._getBrowserToken(aBrowser);
|
||||
this._getGlobalValue(aBrowser, function (value) {
|
||||
this._getGlobalValue(aBrowser).then(value => {
|
||||
if (token.isCurrent) {
|
||||
ZoomManager.setZoomForBrowser(aBrowser, value === undefined ? 1 : value);
|
||||
this._ignorePendingZoomAccesses(aBrowser);
|
||||
@@ -399,6 +355,7 @@ var FullZoom = {
|
||||
* @param browser The zoom of this browser will be saved. Required.
|
||||
*/
|
||||
_applyZoomToPref: function FullZoom__applyZoomToPref(browser) {
|
||||
Services.obs.notifyObservers(browser, "browser-fullZoom:zoomChange", "");
|
||||
if (!this.siteSpecific ||
|
||||
gInPrintPreviewMode ||
|
||||
browser.isSyntheticDocument)
|
||||
@@ -419,6 +376,7 @@ var FullZoom = {
|
||||
* @param browser The zoom of this browser will be removed. Required.
|
||||
*/
|
||||
_removePref: function FullZoom__removePref(browser) {
|
||||
Services.obs.notifyObservers(browser, "browser-fullZoom:zoomReset", "");
|
||||
if (browser.isSyntheticDocument)
|
||||
return;
|
||||
let ctxt = this._loadContextFromBrowser(browser);
|
||||
@@ -429,7 +387,6 @@ var FullZoom = {
|
||||
});
|
||||
},
|
||||
|
||||
//**************************************************************************//
|
||||
// Utilities
|
||||
|
||||
/**
|
||||
@@ -461,6 +418,30 @@ var FullZoom = {
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns the browser that the supplied zoom event is associated with.
|
||||
* @param event The ZoomChangeUsingMouseWheel event.
|
||||
* @return The associated browser element, if one exists, otherwise null.
|
||||
*/
|
||||
_getTargetedBrowser: function FullZoom__getTargetedBrowser(event) {
|
||||
let target = event.originalTarget;
|
||||
|
||||
// With remote content browsers, the event's target is the browser
|
||||
// we're looking for.
|
||||
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
if (target instanceof window.XULElement &&
|
||||
target.localName == "browser" &&
|
||||
target.namespaceURI == XUL_NS)
|
||||
return target;
|
||||
|
||||
// With in-process content browsers, the event's target is the content
|
||||
// document.
|
||||
if (target.nodeType == Node.DOCUMENT_NODE)
|
||||
return gBrowser.getBrowserForDocument(target);
|
||||
|
||||
throw new Error("Unexpected ZoomChangeUsingMouseWheel event source");
|
||||
},
|
||||
|
||||
/**
|
||||
* Increments the zoom change token for the given browser so that pending
|
||||
* async operations know that it may be unsafe to access they zoom when they
|
||||
@@ -491,54 +472,49 @@ var FullZoom = {
|
||||
/**
|
||||
* Gets the global browser.content.full-zoom content preference.
|
||||
*
|
||||
* WARNING: callback may be called synchronously or asynchronously. The
|
||||
* reason is that it's usually desirable to avoid turns of the event loop
|
||||
* where possible, since they can lead to visible, jarring jumps in zoom
|
||||
* level. It's not always possible to avoid them, though. As a convenience,
|
||||
* then, this method takes a callback and returns nothing.
|
||||
*
|
||||
* @param browser The content browser pertaining to the zoom.
|
||||
* @param callback Synchronously or asynchronously called when done. It's
|
||||
* bound to this object (FullZoom) and called as:
|
||||
* callback(prefValue)
|
||||
* @param browser The browser pertaining to the zoom.
|
||||
* @returns Promise<prefValue>
|
||||
* Resolves to the preference value when done.
|
||||
*/
|
||||
_getGlobalValue: function FullZoom__getGlobalValue(browser, callback) {
|
||||
_getGlobalValue: function FullZoom__getGlobalValue(browser) {
|
||||
// * !("_globalValue" in this) => global value not yet cached.
|
||||
// * this._globalValue === undefined => global value known not to exist.
|
||||
// * Otherwise, this._globalValue is a number, the global value.
|
||||
if ("_globalValue" in this) {
|
||||
callback.call(this, this._globalValue, true);
|
||||
return;
|
||||
}
|
||||
let value = undefined;
|
||||
this._cps2.getGlobal(this.name, this._loadContextFromBrowser(browser), {
|
||||
handleResult: function (pref) value = pref.value,
|
||||
handleCompletion: function (reason) {
|
||||
this._globalValue = this._ensureValid(value);
|
||||
callback.call(this, this._globalValue);
|
||||
}.bind(this)
|
||||
return new Promise(resolve => {
|
||||
if ("_globalValue" in this) {
|
||||
resolve(this._globalValue);
|
||||
return;
|
||||
}
|
||||
let value = undefined;
|
||||
this._cps2.getGlobal(this.name, this._loadContextFromBrowser(browser), {
|
||||
handleResult: function (pref) { value = pref.value; },
|
||||
handleCompletion: (reason) => {
|
||||
this._globalValue = this._ensureValid(value);
|
||||
resolve(this._globalValue);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Gets the load context from the given content browser.
|
||||
* Gets the load context from the given Browser.
|
||||
*
|
||||
* @param Browser The Browser whose load context will be returned.
|
||||
* @return The nsILoadContext of the given Browser.
|
||||
* @return The nsILoadContext of the given Browser.
|
||||
*/
|
||||
_loadContextFromBrowser: function FullZoom__loadContextFromBrowser(browser) {
|
||||
return browser.loadContext;
|
||||
},
|
||||
|
||||
/**
|
||||
* Asynchronously broadcasts a "browser-fullZoom:locationChange" notification
|
||||
* so that tests can select tabs, load pages, etc. and be notified when the
|
||||
* zoom levels on those pages change. The notification is always asynchronous
|
||||
* so that observers are guaranteed a consistent behavior.
|
||||
* Asynchronously broadcasts "browser-fullZoom:location-change" so that
|
||||
* listeners can be notified when the zoom levels on those pages change.
|
||||
* The notification is always asynchronous so that observers are guaranteed a
|
||||
* consistent behavior.
|
||||
*/
|
||||
_notifyOnLocationChange: function FullZoom__notifyOnLocationChange() {
|
||||
_notifyOnLocationChange: function FullZoom__notifyOnLocationChange(browser) {
|
||||
this._executeSoon(function () {
|
||||
Services.obs.notifyObservers(null, "browser-fullZoom:locationChange", "");
|
||||
Services.obs.notifyObservers(browser, "browser-fullZoom:location-change", "");
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// chrome-only, we must listen for the simple gesture events during
|
||||
// the capturing phase and call stopPropagation on every event.
|
||||
|
||||
let gGestureSupport = {
|
||||
var gGestureSupport = {
|
||||
_currentRotation: 0,
|
||||
_lastRotateDelta: 0,
|
||||
_rotateMomentumThreshold: .75,
|
||||
@@ -532,7 +532,7 @@ let gGestureSupport = {
|
||||
};
|
||||
|
||||
// History Swipe Animation Support (bug 678392)
|
||||
let gHistorySwipeAnimation = {
|
||||
var gHistorySwipeAnimation = {
|
||||
|
||||
active: false,
|
||||
isLTR: false,
|
||||
|
||||
@@ -85,8 +85,8 @@
|
||||
observes="workOfflineMenuitemState"
|
||||
oncommand="BrowserOffline.toggleOfflineStatus();"/>
|
||||
<menuitem id="menu_restart"
|
||||
label="&appMenuRestart.label;"
|
||||
accesskey="&appMenuRestart.accesskey;"
|
||||
label="&restartCmd.label;"
|
||||
accesskey="&restartCmd.accesskey;"
|
||||
command="cmd_restartApplication"/>
|
||||
<menuitem id="menu_FileQuitItem"
|
||||
#ifdef XP_WIN
|
||||
@@ -534,43 +534,12 @@
|
||||
label="&webDeveloperMenu.label;"
|
||||
accesskey="&webDeveloperMenu.accesskey;">
|
||||
<menupopup id="menuWebDeveloperPopup">
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<menuitem id="menu_devToolbox"
|
||||
observes="devtoolsMenuBroadcaster_DevToolbox"
|
||||
accesskey="&devToolboxMenuItem.accesskey;"/>
|
||||
<menuseparator id="menu_devtools_separator"/>
|
||||
<menuitem id="menu_devToolbar"
|
||||
observes="devtoolsMenuBroadcaster_DevToolbar"
|
||||
accesskey="&devToolbarMenu.accesskey;"/>
|
||||
<menuitem id="menu_chromeDebugger"
|
||||
observes="devtoolsMenuBroadcaster_ChromeDebugger"/>
|
||||
<menuitem id="menu_browserConsole"
|
||||
observes="devtoolsMenuBroadcaster_BrowserConsole"
|
||||
accesskey="&browserConsoleCmd.accesskey;"/>
|
||||
<menuitem id="menu_responsiveUI"
|
||||
observes="devtoolsMenuBroadcaster_ResponsiveUI"
|
||||
accesskey="&responsiveDesignTool.accesskey;"/>
|
||||
<menuitem id="menu_eyedropper"
|
||||
observes="devtoolsMenuBroadcaster_Eyedropper"
|
||||
accesskey="&eyedropper.accesskey;"/>
|
||||
<menuitem id="menu_scratchpad"
|
||||
observes="devtoolsMenuBroadcaster_Scratchpad"
|
||||
accesskey="&scratchpad.accesskey;"/>
|
||||
#endif
|
||||
<menuitem id="menu_pageSource"
|
||||
observes="devtoolsMenuBroadcaster_PageSource"
|
||||
accesskey="&pageSourceCmd.accesskey;"/>
|
||||
<menuitem id="javascriptConsole"
|
||||
observes="devtoolsMenuBroadcaster_ErrorConsole"
|
||||
accesskey="&errorConsoleCmd.accesskey;"/>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<menuitem id="menu_devtools_connect"
|
||||
observes="devtoolsMenuBroadcaster_connect"/>
|
||||
#endif
|
||||
<menuseparator id="devToolsEndSeparator"/>
|
||||
<menuitem id="getMoreDevtools"
|
||||
observes="devtoolsMenuBroadcaster_GetMoreTools"
|
||||
accesskey="&getMoreDevtoolsCmd.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menuitem id="menu_pageInfo"
|
||||
|
||||
@@ -189,11 +189,24 @@ var StarUI = {
|
||||
this._itemId = aItemId !== undefined ? aItemId : this._itemId;
|
||||
this.beginBatch();
|
||||
|
||||
this.panel.openPopup(aAnchorElement, aPosition);
|
||||
|
||||
let onPanelReady = fn => {
|
||||
let target = this.panel;
|
||||
if (target.parentNode) {
|
||||
// By targeting the panel's parent and using a capturing listener, we
|
||||
// can have our listener called before others waiting for the panel to
|
||||
// be shown (which probably expect the panel to be fully initialized)
|
||||
target = target.parentNode;
|
||||
}
|
||||
target.addEventListener("popupshown", function(event) {
|
||||
fn();
|
||||
}, {"capture": true, "once": true});
|
||||
};
|
||||
gEditItemOverlay.initPanel(this._itemId,
|
||||
{ hiddenRows: ["description", "location",
|
||||
{ onPanelReady,
|
||||
hiddenRows: ["description", "location",
|
||||
"loadInSidebar", "keyword"] });
|
||||
|
||||
this.panel.openPopup(aAnchorElement, aPosition);
|
||||
},
|
||||
|
||||
panelShown:
|
||||
@@ -959,7 +972,7 @@ var PlacesMenuDNDHandler = {
|
||||
* This object handles the initialization and uninitialization of the bookmarks
|
||||
* toolbar.
|
||||
*/
|
||||
let PlacesToolbarHelper = {
|
||||
var PlacesToolbarHelper = {
|
||||
_place: "place:folder=TOOLBAR",
|
||||
|
||||
get _viewElt() {
|
||||
@@ -1006,7 +1019,7 @@ let PlacesToolbarHelper = {
|
||||
* menu button.
|
||||
*/
|
||||
|
||||
let BookmarkingUI = {
|
||||
var BookmarkingUI = {
|
||||
get button() {
|
||||
if (!this._button) {
|
||||
this._button = document.getElementById("bookmarks-menu-button");
|
||||
|
||||
@@ -92,24 +92,9 @@
|
||||
|
||||
<command id="Tools:Search" oncommand="BrowserSearch.webSearch();"/>
|
||||
<command id="Tools:Downloads" oncommand="BrowserDownloadsUI();"/>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<command id="Tools:DevToolbox" oncommand="gDevToolsBrowser.toggleToolboxCommand(gBrowser);"/>
|
||||
<command id="Tools:DevToolbar" oncommand="DeveloperToolbar.toggle();" disabled="true" hidden="true"/>
|
||||
<command id="Tools:DevToolbarFocus" oncommand="DeveloperToolbar.focusToggle();" disabled="true"/>
|
||||
<command id="Tools:DevAppMgr" oncommand="gDevToolsBrowser.openAppManager(gBrowser);" disabled="true" hidden="true"/>
|
||||
<command id="Tools:WebIDE" oncommand="gDevToolsBrowser.openWebIDE();" disabled="true" hidden="true"/>
|
||||
<command id="Tools:ChromeDebugger" oncommand="BrowserToolboxProcess.init();" disabled="true" hidden="true"/>
|
||||
<command id="Tools:BrowserConsole" oncommand="HUDService.openBrowserConsoleOrFocus();"/>
|
||||
<command id="Tools:Scratchpad" oncommand="Scratchpad.openScratchpad();" disabled="true" hidden="true"/>
|
||||
<command id="Tools:ResponsiveUI" oncommand="ResponsiveUI.toggle();" disabled="true" hidden="true"/>
|
||||
<command id="Tools:Eyedropper" oncommand="openEyedropper();"/>
|
||||
#endif
|
||||
<command id="Tools:Addons" oncommand="BrowserOpenAddonsMgr();"/>
|
||||
<command id="Tools:Permissions" oncommand="BrowserOpenPermissionsMgr();"/>
|
||||
<command id="Tools:ErrorConsole" oncommand="toJavaScriptConsole()" disabled="true" hidden="true"/>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<command id="Tools:DevToolsConnect" oncommand="gDevToolsBrowser.openConnectScreen(gBrowser)" disabled="true" hidden="true"/>
|
||||
#endif
|
||||
<command id="Tools:Sanitize"
|
||||
oncommand="Cc['@mozilla.org/browser/browserglue;1'].getService(Ci.nsIBrowserGlue).sanitize(window);"/>
|
||||
<command id="Tools:PrivateBrowsing"
|
||||
@@ -170,46 +155,6 @@
|
||||
#endif
|
||||
<broadcaster id="workOfflineMenuitemState"/>
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<!-- DevTools broadcasters -->
|
||||
<broadcaster id="devtoolsMenuBroadcaster_DevToolbox"
|
||||
label="&devToolboxMenuItem.label;"
|
||||
type="checkbox" autocheck="false"
|
||||
command="Tools:DevToolbox"
|
||||
key="key_devToolbox"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_DevToolbar"
|
||||
label="&devToolbarMenu.label;"
|
||||
type="checkbox" autocheck="false"
|
||||
command="Tools:DevToolbar"
|
||||
key="key_devToolbar"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_DevAppMgr"
|
||||
label="&devAppMgrMenu.label;"
|
||||
command="Tools:DevAppMgr"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_webide"
|
||||
label="&webide.label;"
|
||||
command="Tools:WebIDE"
|
||||
key="key_webide"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_ChromeDebugger"
|
||||
label="&chromeDebuggerMenu.label;"
|
||||
command="Tools:ChromeDebugger"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_BrowserConsole"
|
||||
label="&browserConsoleCmd.label;"
|
||||
key="key_browserConsole"
|
||||
command="Tools:BrowserConsole"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_Scratchpad"
|
||||
label="&scratchpad.label;"
|
||||
command="Tools:Scratchpad"
|
||||
key="key_scratchpad"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_ResponsiveUI"
|
||||
label="&responsiveDesignTool.label;"
|
||||
type="checkbox" autocheck="false"
|
||||
command="Tools:ResponsiveUI"
|
||||
key="key_responsiveUI"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_Eyedropper"
|
||||
label="&eyedropper.label;"
|
||||
type="checkbox" autocheck="false"
|
||||
command="Tools:Eyedropper"/>
|
||||
#endif
|
||||
<broadcaster id="devtoolsMenuBroadcaster_PageSource"
|
||||
label="&pageSourceCmd.label;"
|
||||
key="key_viewSource"
|
||||
@@ -217,14 +162,6 @@
|
||||
<broadcaster id="devtoolsMenuBroadcaster_ErrorConsole"
|
||||
label="&errorConsoleCmd.label;"
|
||||
command="Tools:ErrorConsole"/>
|
||||
<broadcaster id="devtoolsMenuBroadcaster_GetMoreTools"
|
||||
label="&getMoreDevtoolsCmd.label;"
|
||||
oncommand="openUILinkIn(gPrefService.getCharPref('browser.getdevtools.url'), 'tab');"/>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<broadcaster id="devtoolsMenuBroadcaster_connect"
|
||||
label="&devtoolsConnect.label;"
|
||||
command="Tools:DevToolsConnect"/>
|
||||
#endif
|
||||
</broadcasterset>
|
||||
|
||||
<keyset id="mainKeyset">
|
||||
@@ -271,21 +208,6 @@
|
||||
<key id="key_openDownloads" key="&downloads.commandkey;" command="Tools:Downloads" modifiers="accel"/>
|
||||
#endif
|
||||
<key id="key_openAddons" key="&addons.commandkey;" command="Tools:Addons" modifiers="accel,shift"/>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<key id="key_browserConsole" key="&browserConsoleCmd.commandkey;" command="Tools:BrowserConsole" modifiers="accel,shift"/>
|
||||
<key id="key_devToolbox" keycode="VK_F12" keytext="F12" command="Tools:DevToolbox"/>
|
||||
<key id="key_devToolbar" keycode="&devToolbar.keycode;" modifiers="shift"
|
||||
keytext="&devToolbar.keytext;" command="Tools:DevToolbarFocus"/>
|
||||
<key id="key_responsiveUI" key="&responsiveDesignTool.commandkey;" command="Tools:ResponsiveUI"
|
||||
#ifdef XP_MACOSX
|
||||
modifiers="accel,alt"
|
||||
#else
|
||||
modifiers="accel,shift"
|
||||
#endif
|
||||
/>
|
||||
<key id="key_scratchpad" keycode="&scratchpad.keycode;" modifiers="shift"
|
||||
keytext="&scratchpad.keytext;" command="Tools:Scratchpad"/>
|
||||
#endif
|
||||
<key id="openFileKb" key="&openFileCmd.commandkey;" command="Browser:OpenFile" modifiers="accel"/>
|
||||
<key id="key_savePage" key="&savePageCmd.commandkey;" command="Browser:SavePage" modifiers="accel"/>
|
||||
<key id="printKb" key="&printCmd.commandkey;" command="cmd_print" modifiers="accel"/>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
// gSyncUI handles updating the tools menu
|
||||
let gSyncUI = {
|
||||
var gSyncUI = {
|
||||
_obs: ["weave:service:sync:start",
|
||||
"weave:service:sync:delayed",
|
||||
"weave:service:quota:remaining",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/**
|
||||
* Keeps thumbnails of open web pages up-to-date.
|
||||
*/
|
||||
let gBrowserThumbnails = {
|
||||
var gBrowserThumbnails = {
|
||||
/**
|
||||
* Pref that controls whether we can store SSL content on disk
|
||||
*/
|
||||
@@ -92,7 +92,12 @@ let gBrowserThumbnails = {
|
||||
|
||||
filterForThumbnailExpiration:
|
||||
function Thumbnails_filterForThumbnailExpiration(aCallback) {
|
||||
aCallback([browser.currentURI.spec for (browser of gBrowser.browsers)]);
|
||||
// Tycho: aCallback([browser.currentURI.spec for (browser of gBrowser.browsers)]);
|
||||
let result = [];
|
||||
for (let browser of gBrowser.browsers) {
|
||||
result.push(browser.currentURI.spec);
|
||||
}
|
||||
aCallback(result);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -137,7 +142,7 @@ let gBrowserThumbnails = {
|
||||
|
||||
// FIXME Bug 720575 - Don't capture thumbnails for SVG or XML documents as
|
||||
// that currently regresses Talos SVG tests.
|
||||
if (doc instanceof SVGDocument || doc instanceof XMLDocument)
|
||||
if (doc instanceof XMLDocument)
|
||||
return false;
|
||||
|
||||
// There's no point in taking screenshot of loading pages.
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/* 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/. */
|
||||
|
||||
var UserAgentCompatibility = {
|
||||
PREF_UA_COMPAT: "general.useragent.compatMode",
|
||||
PREF_UA_COMPAT_GECKO: "general.useragent.compatMode.gecko",
|
||||
PREF_UA_COMPAT_FIREFOX: "general.useragent.compatMode.firefox",
|
||||
|
||||
init: function() {
|
||||
this.checkPreferences();
|
||||
Services.prefs.addObserver(this.PREF_UA_COMPAT, this, false);
|
||||
Services.prefs.addObserver(this.PREF_UA_COMPAT_GECKO, this, false);
|
||||
Services.prefs.addObserver(this.PREF_UA_COMPAT_FIREFOX, this, false);
|
||||
},
|
||||
|
||||
uninit: function() {
|
||||
Services.prefs.removeObserver(this.PREF_UA_COMPAT, this, false);
|
||||
Services.prefs.removeObserver(this.PREF_UA_COMPAT_GECKO, this, false);
|
||||
Services.prefs.removeObserver(this.PREF_UA_COMPAT_FIREFOX, this, false);
|
||||
},
|
||||
|
||||
observe: function() {
|
||||
this.checkPreferences();
|
||||
},
|
||||
|
||||
checkPreferences: function() {
|
||||
var compatMode = Services.prefs.getIntPref(this.PREF_UA_COMPAT);
|
||||
|
||||
switch(compatMode) {
|
||||
case 0:
|
||||
Services.prefs.setBoolPref(this.PREF_UA_COMPAT_GECKO, false);
|
||||
Services.prefs.setBoolPref(this.PREF_UA_COMPAT_FIREFOX, false);
|
||||
break;
|
||||
case 1:
|
||||
Services.prefs.setBoolPref(this.PREF_UA_COMPAT_GECKO, true);
|
||||
Services.prefs.setBoolPref(this.PREF_UA_COMPAT_FIREFOX, false);
|
||||
break;
|
||||
case 2:
|
||||
Services.prefs.setBoolPref(this.PREF_UA_COMPAT_GECKO, true);
|
||||
Services.prefs.setBoolPref(this.PREF_UA_COMPAT_FIREFOX, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -3,7 +3,7 @@
|
||||
# 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/.
|
||||
|
||||
let WebrtcIndicator = {
|
||||
var WebrtcIndicator = {
|
||||
init: function () {
|
||||
let temp = {};
|
||||
Cu.import("resource:///modules/webrtcUI.jsm", temp);
|
||||
|
||||
@@ -115,8 +115,17 @@ toolbar[printpreview="true"] {
|
||||
|
||||
#titlebar {
|
||||
-moz-binding: url("chrome://global/content/bindings/general.xml#windowdragbox");
|
||||
-moz-window-dragging: drag;
|
||||
}
|
||||
|
||||
%ifdef XP_WIN
|
||||
#main-window[tabsontop="true"] #TabsToolbar,
|
||||
#main-window[tabsontop="true"] #toolbar-menubar,
|
||||
#main-window[tabsontop="true"] #navigator-toolbox > toolbar:-moz-lwtheme {
|
||||
-moz-window-dragging: drag;
|
||||
}
|
||||
%endif
|
||||
|
||||
#titlebar-spacer {
|
||||
pointer-events: none;
|
||||
}
|
||||
@@ -271,6 +280,10 @@ panel[noactions] > richlistbox > richlistitem[type~="action"] > .ac-url-box > .a
|
||||
-moz-binding: url("chrome://browser/content/urlbarBindings.xml#urlbar-rich-result-popup");
|
||||
}
|
||||
|
||||
#DateTimePickerPanel[active="true"] {
|
||||
-moz-binding: url("chrome://global/content/bindings/datetimepopup.xml#datetime-popup");
|
||||
}
|
||||
|
||||
/* Pale Moon: Address bar: Feeds */
|
||||
#ub-feed-button > .button-box > .box-inherit > .button-text,
|
||||
#ub-feed-button > .button-box > .button-menu-dropmarker {
|
||||
@@ -315,6 +328,66 @@ panel[noactions] > richlistbox > richlistitem[type~="action"] > .ac-url-box > .a
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
/* Private Autocomplete */
|
||||
textbox[type="private-autocomplete"] {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete");
|
||||
}
|
||||
|
||||
panel[type="private-autocomplete"] {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#autocomplete-result-popup");
|
||||
}
|
||||
|
||||
panel[type="private-autocomplete-richlistbox"] {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-rich-result-popup");
|
||||
}
|
||||
|
||||
.private-autocomplete-tree {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-tree");
|
||||
-moz-user-focus: ignore;
|
||||
}
|
||||
|
||||
.private-autocomplete-treebody {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-treebody");
|
||||
}
|
||||
|
||||
.private-autocomplete-richlistbox {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-richlistbox");
|
||||
-moz-user-focus: ignore;
|
||||
}
|
||||
|
||||
.private-autocomplete-richlistbox > scrollbox {
|
||||
overflow-x: hidden !important;
|
||||
}
|
||||
|
||||
.private-autocomplete-richlistitem {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-richlistitem");
|
||||
-moz-box-orient: vertical;
|
||||
overflow: -moz-hidden-unscrollable;
|
||||
}
|
||||
|
||||
.private-autocomplete-treerows {
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#private-autocomplete-treerows");
|
||||
}
|
||||
|
||||
.private-autocomplete-history-dropmarker {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.private-autocomplete-history-dropmarker[enablehistory="true"] {
|
||||
display: -moz-box;
|
||||
-moz-binding: url("chrome://browser/content/autocomplete.xml#private-history-dropmarker");
|
||||
}
|
||||
|
||||
.ac-ellipsis-after {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.ac-url-text[type~="action"],
|
||||
.ac-action-text:not([type~="action"]) {
|
||||
visibility: collapse;
|
||||
}
|
||||
|
||||
|
||||
/* ::::: Unified Back-/Forward Button ::::: */
|
||||
#back-button > .toolbarbutton-menu-dropmarker,
|
||||
#forward-button > .toolbarbutton-menu-dropmarker {
|
||||
@@ -533,11 +606,11 @@ window[chromehidden~="toolbar"] toolbar:not(.toolbar-primary):not(#nav-bar):not(
|
||||
max-width: 280px;
|
||||
}
|
||||
|
||||
.form-validation-anchor {
|
||||
.popup-anchor {
|
||||
/* should occupy space but not be visible */
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
-moz-stack-sizing: ignore;
|
||||
}
|
||||
|
||||
#addon-progress-notification {
|
||||
@@ -618,10 +691,6 @@ statuspanel[inactive][previoustype=overLink] {
|
||||
-moz-box-align: end;
|
||||
}
|
||||
|
||||
.panel-inner-arrowcontentfooter[footertype="promobox"] {
|
||||
-moz-binding: url("chrome://browser/content/urlbarBindings.xml#promobox");
|
||||
}
|
||||
|
||||
/* highlighter */
|
||||
%include highlighter.css
|
||||
|
||||
@@ -681,7 +750,7 @@ toolbarbutton[type="badged"] {
|
||||
}
|
||||
|
||||
/* Strict icon size for PMkit 'ui/button' */
|
||||
toolbarbutton[pmkit-button="true"] > .toolbarbutton-badge-container > .toolbarbutton-icon {
|
||||
toolbarbutton[pmkit-button="true"] > .toolbarbutton-badge-stack > .toolbarbutton-icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
# 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/.
|
||||
|
||||
let Ci = Components.interfaces;
|
||||
let Cu = Components.utils;
|
||||
var Ci = Components.interfaces;
|
||||
var Cu = Components.utils;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource:///modules/RecentWindow.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "CharsetMenu",
|
||||
@@ -65,6 +66,9 @@ XPCOMUtils.defineLazyGetter(window, "gFindBar", function() {
|
||||
return findbar;
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",
|
||||
"resource://gre/modules/BrowserUtils.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "gPrefService", function() {
|
||||
return Services.prefs;
|
||||
});
|
||||
@@ -109,20 +113,6 @@ XPCOMUtils.defineLazyGetter(this, "PopupNotifications", function () {
|
||||
}
|
||||
});
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
XPCOMUtils.defineLazyGetter(this, "DeveloperToolbar", function() {
|
||||
let tmp = {};
|
||||
Cu.import("resource://gre/modules/devtools/DeveloperToolbar.jsm", tmp);
|
||||
return new tmp.DeveloperToolbar(window, document.getElementById("developer-toolbar"));
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "BrowserToolboxProcess", function() {
|
||||
let tmp = {};
|
||||
Cu.import("resource://gre/modules/devtools/ToolboxProcess.jsm", tmp);
|
||||
return tmp.BrowserToolboxProcess;
|
||||
});
|
||||
#endif
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PageThumbs",
|
||||
"resource://gre/modules/PageThumbs.jsm");
|
||||
|
||||
@@ -152,7 +142,12 @@ let gInitialPages = [
|
||||
#include browser-plugins.js
|
||||
#include browser-tabPreviews.js
|
||||
#include browser-thumbnails.js
|
||||
#include browser-uacompat.js
|
||||
|
||||
#ifdef MOZ_WEBRTC
|
||||
#include browser-webrtcUI.js
|
||||
#endif
|
||||
|
||||
#include browser-gestureSupport.js
|
||||
|
||||
#ifdef MOZ_SERVICES_SYNC
|
||||
@@ -336,6 +331,48 @@ const gSessionHistoryObserver = {
|
||||
}
|
||||
};
|
||||
|
||||
var gURLBarSettings = {
|
||||
prefSuggest: "browser.urlbar.suggest.",
|
||||
/*
|
||||
For searching in the source code:
|
||||
browser.urlbar.suggest.bookmark
|
||||
browser.urlbar.suggest.history
|
||||
browser.urlbar.suggest.openpage
|
||||
*/
|
||||
prefSuggests: [
|
||||
"bookmark",
|
||||
"history",
|
||||
"openpage"
|
||||
],
|
||||
prefKeyword: "keyword.enabled",
|
||||
|
||||
observe: function(aSubject, aTopic, aData) {
|
||||
if (aTopic != "nsPref:changed")
|
||||
return;
|
||||
|
||||
this.writePlaceholder();
|
||||
},
|
||||
|
||||
writePlaceholder: function() {
|
||||
let attribute = "placeholder";
|
||||
let prefs = this.prefSuggests.map(pref => {
|
||||
return this.prefSuggest + pref;
|
||||
});
|
||||
prefs.push(this.prefKeyword);
|
||||
let placeholderDefault = prefs.some(pref => {
|
||||
return gPrefService.getBoolPref(pref);
|
||||
});
|
||||
|
||||
if (placeholderDefault) {
|
||||
gURLBar.setAttribute(
|
||||
attribute, gNavigatorBundle.getString("urlbar.placeholder"));
|
||||
} else {
|
||||
gURLBar.setAttribute(
|
||||
attribute, gNavigatorBundle.getString("urlbar.placeholderURLOnly"));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Given a starting docshell and a URI to look up, find the docshell the URI
|
||||
* is loaded in.
|
||||
@@ -663,6 +700,8 @@ const gXSSObserver = {
|
||||
};
|
||||
|
||||
var gBrowserInit = {
|
||||
delayedStartupFinished: false,
|
||||
|
||||
onLoad: function() {
|
||||
gMultiProcessBrowser = gPrefService.getBoolPref("browser.tabs.remote");
|
||||
|
||||
@@ -685,6 +724,14 @@ var gBrowserInit = {
|
||||
|
||||
window.addEventListener("AppCommand", HandleAppCommandEvent, true);
|
||||
|
||||
// These routines add message listeners. They must run before
|
||||
// loading the frame script to ensure that we don't miss any
|
||||
// message sent between when the frame script is loaded and when
|
||||
// the listener is registered.
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
DevToolsTheme.init();
|
||||
#endif
|
||||
|
||||
messageManager.loadFrameScript("chrome://browser/content/content.js", true);
|
||||
messageManager.loadFrameScript("chrome://browser/content/content-sessionStore.js", true);
|
||||
|
||||
@@ -872,6 +919,7 @@ var gBrowserInit = {
|
||||
TabsInTitlebar.init();
|
||||
retrieveToolbarIconsizesFromTheme();
|
||||
ToolbarIconColor.init();
|
||||
UserAgentCompatibility.init();
|
||||
|
||||
#ifdef XP_WIN
|
||||
if (window.matchMedia("(-moz-os-version: windows-win8)").matches &&
|
||||
@@ -968,11 +1016,18 @@ var gBrowserInit = {
|
||||
Services.obs.addObserver(gXPInstallObserver, "addon-install-complete", false);
|
||||
Services.obs.addObserver(gXSSObserver, "xss-on-violate-policy", false);
|
||||
|
||||
gPrefService.addObserver(gURLBarSettings.prefSuggest, gURLBarSettings, false);
|
||||
gPrefService.addObserver(gURLBarSettings.prefKeyword, gURLBarSettings, false);
|
||||
|
||||
gURLBarSettings.writePlaceholder();
|
||||
|
||||
BrowserOffline.init();
|
||||
OfflineApps.init();
|
||||
IndexedDBPromptHelper.init();
|
||||
AddonManager.addAddonListener(AddonsMgrListener);
|
||||
#ifdef MOZ_WEBRTC
|
||||
WebrtcIndicator.init();
|
||||
#endif
|
||||
|
||||
// Ensure login manager is up and running.
|
||||
Services.logins;
|
||||
@@ -1114,27 +1169,6 @@ var gBrowserInit = {
|
||||
setUrlAndSearchBarWidthForConditionalForwardButton();
|
||||
});
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
// Enable Chrome Debugger?
|
||||
let chromeEnabled = gPrefService.getBoolPref("devtools.chrome.enabled");
|
||||
let remoteEnabled = chromeEnabled &&
|
||||
gPrefService.getBoolPref("devtools.debugger.chrome-enabled") &&
|
||||
gPrefService.getBoolPref("devtools.debugger.remote-enabled");
|
||||
if (remoteEnabled) {
|
||||
let cmd = document.getElementById("Tools:ChromeDebugger");
|
||||
cmd.removeAttribute("disabled");
|
||||
cmd.removeAttribute("hidden");
|
||||
}
|
||||
|
||||
// Enable Scratchpad in the UI, if the preference allows this.
|
||||
let scratchpadEnabled = gPrefService.getBoolPref(Scratchpad.prefEnabledName);
|
||||
if (scratchpadEnabled) {
|
||||
let cmd = document.getElementById("Tools:Scratchpad");
|
||||
cmd.removeAttribute("disabled");
|
||||
cmd.removeAttribute("hidden");
|
||||
}
|
||||
#endif
|
||||
|
||||
// Enable Error Console?
|
||||
let consoleEnabled = gPrefService.getBoolPref("devtools.errorconsole.enabled");
|
||||
if (consoleEnabled) {
|
||||
@@ -1152,19 +1186,6 @@ var gBrowserInit = {
|
||||
document.getElementById("appmenu_charsetMenu").hidden = true;
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
// Enable Responsive UI?
|
||||
let responsiveUIEnabled = gPrefService.getBoolPref("devtools.responsiveUI.enabled");
|
||||
if (responsiveUIEnabled) {
|
||||
let cmd = document.getElementById("Tools:ResponsiveUI");
|
||||
cmd.removeAttribute("disabled");
|
||||
cmd.removeAttribute("hidden");
|
||||
}
|
||||
|
||||
// Add Devtools menuitems and listeners
|
||||
gDevToolsBrowser.registerBrowserWindow(window);
|
||||
#endif
|
||||
|
||||
let appMenuButton = document.getElementById("appmenu-button");
|
||||
let appMenuPopup = document.getElementById("appmenu-popup");
|
||||
if (appMenuButton && appMenuPopup) {
|
||||
@@ -1205,6 +1226,8 @@ var gBrowserInit = {
|
||||
setTimeout(function () { BrowserChromeTest.markAsReady(); }, 0);
|
||||
});
|
||||
|
||||
this.delayedStartupFinished = true;
|
||||
|
||||
Services.obs.notifyObservers(window, "browser-delayed-startup-finished", "");
|
||||
},
|
||||
|
||||
@@ -1240,15 +1263,6 @@ var gBrowserInit = {
|
||||
if (!this._loadHandled)
|
||||
return;
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
gDevToolsBrowser.forgetBrowserWindow(window);
|
||||
|
||||
let desc = Object.getOwnPropertyDescriptor(window, "DeveloperToolbar");
|
||||
if (desc && !desc.get) {
|
||||
DeveloperToolbar.destroy();
|
||||
}
|
||||
#endif
|
||||
|
||||
// First clean up services initialized in gBrowserInit.onLoad (or those whose
|
||||
// uninit methods don't depend on the services having been initialized).
|
||||
|
||||
@@ -1278,6 +1292,12 @@ var gBrowserInit = {
|
||||
|
||||
ToolbarIconColor.uninit();
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
DevToolsTheme.uninit();
|
||||
#endif
|
||||
|
||||
UserAgentCompatibility.uninit();
|
||||
|
||||
var enumerator = Services.wm.getEnumerator(null);
|
||||
enumerator.getNext();
|
||||
if (!enumerator.hasMoreElements()) {
|
||||
@@ -1313,6 +1333,13 @@ var gBrowserInit = {
|
||||
Services.obs.removeObserver(gXPInstallObserver, "addon-install-complete");
|
||||
Services.obs.removeObserver(gXSSObserver, "xss-on-violate-policy");
|
||||
|
||||
try {
|
||||
gPrefService.removeObserver(gURLBarSettings.prefSuggest, gURLBarSettings);
|
||||
gPrefService.removeObserver(gURLBarSettings.prefKeyword, gURLBarSettings);
|
||||
} catch (ex) {
|
||||
Cu.reportError(ex);
|
||||
}
|
||||
|
||||
try {
|
||||
gPrefService.removeObserver(gHomeButton.prefDomain, gHomeButton);
|
||||
} catch (ex) {
|
||||
@@ -2010,49 +2037,43 @@ function readFromClipboard()
|
||||
return url;
|
||||
}
|
||||
|
||||
function BrowserViewSourceOfDocument(aDocument)
|
||||
function BrowserViewSourceOfDocument(aArgsOrDocument)
|
||||
{
|
||||
var pageCookie;
|
||||
var webNav;
|
||||
let args;
|
||||
|
||||
// Get the document charset
|
||||
var docCharset = "charset=" + aDocument.characterSet;
|
||||
if (aArgsOrDocument instanceof Document) {
|
||||
let doc = aArgsOrDocument;
|
||||
|
||||
// Get the nsIWebNavigation associated with the document
|
||||
try {
|
||||
var win;
|
||||
var ifRequestor;
|
||||
let requestor = doc.defaultView
|
||||
.QueryInterface(Ci.nsIInterfaceRequestor);
|
||||
let browser = requestor.getInterface(Ci.nsIWebNavigation)
|
||||
.QueryInterface(Ci.nsIDocShell)
|
||||
.chromeEventHandler;
|
||||
let outerWindowID = requestor.getInterface(Ci.nsIDOMWindowUtils)
|
||||
.outerWindowID;
|
||||
let URL = browser.currentURI.spec;
|
||||
args = { browser, outerWindowID, URL };
|
||||
} else {
|
||||
args = aArgsOrDocument;
|
||||
}
|
||||
|
||||
// Get the DOMWindow for the requested document. If the DOMWindow
|
||||
// cannot be found, then just use the content window...
|
||||
//
|
||||
// XXX: This is a bit of a hack...
|
||||
win = aDocument.defaultView;
|
||||
if (win == window) {
|
||||
win = content;
|
||||
let viewInternal = () => {
|
||||
top.gViewSourceUtils.viewSource(args);
|
||||
}
|
||||
|
||||
// Check if external view source is enabled. If so, try it. If it fails,
|
||||
// fallback to internal view source.
|
||||
if (Services.prefs.getBoolPref("view_source.editor.external")) {
|
||||
top.gViewSourceUtils
|
||||
.openInExternalEditor(args, null, null, null, result => {
|
||||
if (!result) {
|
||||
viewInternal();
|
||||
}
|
||||
ifRequestor = win.QueryInterface(Components.interfaces.nsIInterfaceRequestor);
|
||||
|
||||
webNav = ifRequestor.getInterface(nsIWebNavigation);
|
||||
} catch(err) {
|
||||
// If nsIWebNavigation cannot be found, just get the one for the whole
|
||||
// window...
|
||||
webNav = gBrowser.webNavigation;
|
||||
});
|
||||
} else {
|
||||
// Display using internal view source
|
||||
viewInternal();
|
||||
}
|
||||
//
|
||||
// Get the 'PageDescriptor' for the current document. This allows the
|
||||
// view-source to access the cached copy of the content rather than
|
||||
// refetching it from the network...
|
||||
//
|
||||
try{
|
||||
var PageLoader = webNav.QueryInterface(Components.interfaces.nsIWebPageDescriptor);
|
||||
|
||||
pageCookie = PageLoader.currentDescriptor;
|
||||
} catch(err) {
|
||||
// If no page descriptor is available, just use the view-source URL...
|
||||
}
|
||||
|
||||
top.gViewSourceUtils.viewSource(webNav.currentURI.spec, pageCookie, aDocument);
|
||||
}
|
||||
|
||||
// doc - document to use for source, or null for this window's document
|
||||
@@ -2313,7 +2334,7 @@ function BrowserOnAboutPageLoad(doc) {
|
||||
/**
|
||||
* Handle command events bubbling up from error page content
|
||||
*/
|
||||
let BrowserOnClick = {
|
||||
var BrowserOnClick = {
|
||||
handleEvent: function BrowserOnClick_handleEvent(aEvent) {
|
||||
if (!aEvent.isTrusted || // Don't trust synthetic events
|
||||
aEvent.button == 2 || aEvent.target.localName != "button") {
|
||||
@@ -2833,7 +2854,7 @@ const DOMLinkHandler = {
|
||||
break;
|
||||
|
||||
let tab = gBrowser.tabs[browserIndex];
|
||||
gBrowser.setIcon(tab, uri.spec);
|
||||
gBrowser.setIcon(tab, uri.spec, link.ownerDocument.nodePrincipal);
|
||||
iconAdded = true;
|
||||
}
|
||||
break;
|
||||
@@ -3425,26 +3446,6 @@ function updateCharacterEncodingMenuState()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if |aMimeType| is text-based, false otherwise.
|
||||
*
|
||||
* @param aMimeType
|
||||
* The MIME type to check.
|
||||
*
|
||||
* If adding types to this function, please also check the similar
|
||||
* function in findbar.xml
|
||||
*/
|
||||
function mimeTypeIsTextBased(aMimeType)
|
||||
{
|
||||
return aMimeType.startsWith("text/") ||
|
||||
aMimeType.endsWith("+xml") ||
|
||||
aMimeType == "application/x-javascript" ||
|
||||
aMimeType == "application/javascript" ||
|
||||
aMimeType == "application/json" ||
|
||||
aMimeType == "application/xml" ||
|
||||
aMimeType == "mozilla.application/cached-xul";
|
||||
}
|
||||
|
||||
var XULBrowserWindow = {
|
||||
// Stored Status, Link and Loading values
|
||||
status: "",
|
||||
@@ -3668,7 +3669,7 @@ var XULBrowserWindow = {
|
||||
this.setDefaultStatus(msg);
|
||||
|
||||
// Disable menu entries for images, enable otherwise
|
||||
if (!gMultiProcessBrowser && content.document && mimeTypeIsTextBased(content.document.contentType))
|
||||
if (!gMultiProcessBrowser && content.document && BrowserUtils.mimeTypeIsTextBased(content.document.contentType))
|
||||
this.isImage.removeAttribute('disabled');
|
||||
else
|
||||
this.isImage.setAttribute('disabled', 'true');
|
||||
@@ -3716,7 +3717,7 @@ var XULBrowserWindow = {
|
||||
}
|
||||
|
||||
// Disable menu entries for images, enable otherwise
|
||||
if (!gMultiProcessBrowser && content.document && mimeTypeIsTextBased(content.document.contentType))
|
||||
if (!gMultiProcessBrowser && content.document && BrowserUtils.mimeTypeIsTextBased(content.document.contentType))
|
||||
this.isImage.removeAttribute('disabled');
|
||||
else
|
||||
this.isImage.setAttribute('disabled', 'true');
|
||||
@@ -3814,11 +3815,16 @@ var XULBrowserWindow = {
|
||||
gFindBar.close();
|
||||
}
|
||||
|
||||
// XXX
|
||||
// See: https://github.com/MoonchildProductions/Pale-Moon/issues/364
|
||||
// An actual preference: findbar.highlightAll
|
||||
/*
|
||||
if (!(gPrefService.getBoolPref("accessibility.typeaheadfind.highlightallremember") ||
|
||||
gPrefService.getBoolPref("accessibility.typeaheadfind.highlightallbydefault"))) {
|
||||
// fix bug 253793 - turn off highlight when page changes
|
||||
gFindBar.getElement("highlight").checked = false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
UpdateBackForwardCommands(gBrowser.webNavigation);
|
||||
@@ -6825,20 +6831,9 @@ var TabContextMenu = {
|
||||
};
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
// Note: Do not delete! It is used for: base/content/nsContextMenu.js
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevTools",
|
||||
"resource://gre/modules/devtools/gDevTools.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevToolsBrowser",
|
||||
"resource://gre/modules/devtools/gDevTools.jsm");
|
||||
|
||||
Object.defineProperty(this, "HUDService", {
|
||||
get: function HUDService_getter() {
|
||||
let devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
|
||||
return devtools.require("devtools/webconsole/hudservice").HUDService;
|
||||
},
|
||||
configurable: true,
|
||||
enumerable: true
|
||||
});
|
||||
"resource://devtools/client/framework/gDevTools.jsm");
|
||||
#endif
|
||||
|
||||
// Prompt user to restart the browser in safe mode or normally
|
||||
@@ -6929,49 +6924,6 @@ function toggleAddonBar() {
|
||||
setToolbarVisibility(addonBar, addonBar.collapsed);
|
||||
}
|
||||
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
var Scratchpad = {
|
||||
prefEnabledName: "devtools.scratchpad.enabled",
|
||||
|
||||
openScratchpad: function SP_openScratchpad() {
|
||||
return this.ScratchpadManager.openScratchpad();
|
||||
}
|
||||
};
|
||||
|
||||
XPCOMUtils.defineLazyGetter(Scratchpad, "ScratchpadManager", function() {
|
||||
let tmp = {};
|
||||
Cu.import("resource://gre/modules/devtools/scratchpad-manager.jsm", tmp);
|
||||
return tmp.ScratchpadManager;
|
||||
});
|
||||
|
||||
var ResponsiveUI = {
|
||||
toggle: function RUI_toggle() {
|
||||
this.ResponsiveUIManager.toggle(window, gBrowser.selectedTab);
|
||||
}
|
||||
};
|
||||
|
||||
XPCOMUtils.defineLazyGetter(ResponsiveUI, "ResponsiveUIManager", function() {
|
||||
let tmp = {};
|
||||
Cu.import("resource://gre/modules/devtools/responsivedesign.jsm", tmp);
|
||||
return tmp.ResponsiveUIManager;
|
||||
});
|
||||
|
||||
function openEyedropper() {
|
||||
var eyedropper = new this.Eyedropper(this, { context: "menu",
|
||||
copyOnSelect: true });
|
||||
eyedropper.open();
|
||||
}
|
||||
|
||||
Object.defineProperty(this, "Eyedropper", {
|
||||
get: function() {
|
||||
let devtools = Cu.import("resource://gre/modules/devtools/Loader.jsm", {}).devtools;
|
||||
return devtools.require("devtools/eyedropper/eyedropper").Eyedropper;
|
||||
},
|
||||
configurable: true,
|
||||
enumerable: true
|
||||
});
|
||||
#endif
|
||||
|
||||
XPCOMUtils.defineLazyGetter(window, "gShowPageResizers", function () {
|
||||
#ifdef XP_WIN
|
||||
// Only show resizers on Windows 2000 and XP
|
||||
@@ -7051,7 +7003,8 @@ function focusNextFrame(event) {
|
||||
if (element.ownerDocument == document)
|
||||
focusAndSelectUrlBar();
|
||||
}
|
||||
let BrowserChromeTest = {
|
||||
|
||||
var BrowserChromeTest = {
|
||||
_cb: null,
|
||||
_ready: false,
|
||||
markAsReady: function () {
|
||||
@@ -7069,7 +7022,7 @@ let BrowserChromeTest = {
|
||||
}
|
||||
};
|
||||
|
||||
let ToolbarIconColor = {
|
||||
var ToolbarIconColor = {
|
||||
init: function () {
|
||||
this._initialized = true;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<?xml-stylesheet href="chrome://global/skin/devtools/common.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://devtools/skin/devtools-browser.css" type="text/css"?>
|
||||
#endif
|
||||
<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
|
||||
|
||||
@@ -65,6 +65,9 @@
|
||||
# wishes to include *must* go into the global-scripts.inc file
|
||||
# so that they can be shared by macBrowserOverlay.xul.
|
||||
#include global-scripts.inc
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
#include global-devtools-theme-scripts.inc
|
||||
#endif
|
||||
<script type="application/javascript" src="chrome://browser/content/nsContextMenu.js"/>
|
||||
|
||||
<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
|
||||
@@ -125,9 +128,25 @@
|
||||
|
||||
<!-- for search and content formfill/pw manager -->
|
||||
<panel type="autocomplete" id="PopupAutoComplete" noautofocus="true" hidden="true"/>
|
||||
<panel type="private-autocomplete" id="PopupAutoComplete" noautofocus="true" hidden="true"/>
|
||||
|
||||
<!-- for url bar autocomplete -->
|
||||
<panel type="autocomplete-richlistbox" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/>
|
||||
<panel type="private-autocomplete-richlistbox" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/>
|
||||
|
||||
<!-- for date/time picker. consumeoutsideclicks is set to never, so that
|
||||
clicks on the anchored input box are never consumed. -->
|
||||
<panel id="DateTimePickerPanel"
|
||||
type="arrow"
|
||||
hidden="true"
|
||||
orient="vertical"
|
||||
noautofocus="true"
|
||||
norolluponanchor="true"
|
||||
consumeoutsideclicks="never"
|
||||
level="parent"
|
||||
tabspecific="true">
|
||||
<iframe id="dateTimePopupFrame"/>
|
||||
</panel>
|
||||
|
||||
<!-- for invalid form error message -->
|
||||
<panel id="invalid-form-popup" type="arrow" orient="vertical" noautofocus="true" hidden="true" level="parent">
|
||||
@@ -136,7 +155,6 @@
|
||||
|
||||
<panel id="editBookmarkPanel"
|
||||
type="arrow"
|
||||
footertype="promobox"
|
||||
orient="vertical"
|
||||
ignorekeys="true"
|
||||
consumeoutsideclicks="true"
|
||||
@@ -410,8 +428,8 @@
|
||||
<toolbaritem id="urlbar-container" align="center" flex="400" persist="width" combined="true"
|
||||
title="&locationItem.title;" class="chromeclass-location" removable="true">
|
||||
<textbox id="urlbar" flex="1"
|
||||
placeholder="&urlbar.placeholder2;"
|
||||
type="autocomplete"
|
||||
placeholder=""
|
||||
type="private-autocomplete"
|
||||
autocompletesearch="urlinline history"
|
||||
autocompletesearchparam="enable-actions"
|
||||
autocompletepopup="PopupAutoCompleteRichResult"
|
||||
@@ -440,8 +458,10 @@
|
||||
<image id="alert-plugins-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
<image id="blocked-plugins-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
<image id="mixed-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
#ifdef MOZ_WEBRTC
|
||||
<image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
<image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
#endif
|
||||
<image id="pointerLock-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
<image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
</box>
|
||||
@@ -513,7 +533,7 @@
|
||||
flex="100" persist="width" removable="true">
|
||||
<searchbar id="searchbar" flex="1"/>
|
||||
</toolbaritem>
|
||||
|
||||
#ifdef MOZ_WEBRTC
|
||||
<toolbarbutton id="webrtc-status-button"
|
||||
class="toolbarbutton-1 chromeclass-toolbar-additional"
|
||||
type="menu"
|
||||
@@ -525,7 +545,7 @@
|
||||
onpopuphiding="WebrtcIndicator.clearPopup(this);"
|
||||
oncommand="WebrtcIndicator.menuCommand(event.target);"/>
|
||||
</toolbarbutton>
|
||||
|
||||
#endif
|
||||
<toolbarbutton id="bookmarks-menu-button"
|
||||
class="toolbarbutton-1 chromeclass-toolbar-additional"
|
||||
persist="class"
|
||||
@@ -941,7 +961,8 @@
|
||||
flex="1" contenttooltip="aHTMLTooltip"
|
||||
tabcontainer="tabbrowser-tabs"
|
||||
contentcontextmenu="contentAreaContextMenu"
|
||||
autocompletepopup="PopupAutoComplete"/>
|
||||
autocompletepopup="PopupAutoComplete"
|
||||
datetimepicker="DateTimePickerPanel"/>
|
||||
<chatbar id="pinnedchats" layer="true" mousethrough="always" hidden="true"/>
|
||||
<statuspanel id="statusbar-display" inactive="true"/>
|
||||
</vbox>
|
||||
@@ -971,33 +992,6 @@
|
||||
|
||||
<vbox id="browser-bottombox" layer="true">
|
||||
<notificationbox id="global-notificationbox"/>
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
<toolbar id="developer-toolbar"
|
||||
class="devtools-toolbar"
|
||||
hidden="true">
|
||||
#ifdef XP_MACOSX
|
||||
<toolbarbutton id="developer-toolbar-closebutton"
|
||||
class="devtools-closebutton"
|
||||
oncommand="DeveloperToolbar.hide();"
|
||||
tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
|
||||
#endif
|
||||
<stack class="gclitoolbar-stack-node" flex="1">
|
||||
<textbox class="gclitoolbar-input-node" rows="1"/>
|
||||
<hbox class="gclitoolbar-complete-node"/>
|
||||
</stack>
|
||||
<toolbarbutton id="developer-toolbar-toolbox-button"
|
||||
class="developer-toolbar-button"
|
||||
observes="devtoolsMenuBroadcaster_DevToolbox"
|
||||
tooltiptext="&devToolbarToolsButton.tooltip;"/>
|
||||
#ifndef XP_MACOSX
|
||||
<toolbarbutton id="developer-toolbar-closebutton"
|
||||
class="devtools-closebutton"
|
||||
oncommand="DeveloperToolbar.hide();"
|
||||
tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
|
||||
#endif
|
||||
</toolbar>
|
||||
#endif
|
||||
|
||||
<toolbar id="addon-bar"
|
||||
toolbarname="&statusBar.label;" accesskey="&statusBar.accesskey;"
|
||||
collapsed="true"
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
* 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/. */
|
||||
|
||||
let Cc = Components.classes;
|
||||
let Ci = Components.interfaces;
|
||||
let Cu = Components.utils;
|
||||
var Cc = Components.classes;
|
||||
var Ci = Components.interfaces;
|
||||
var Cu = Components.utils;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
@@ -13,6 +13,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",
|
||||
"resource://gre/modules/BrowserUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "LoginManagerContent",
|
||||
"resource://gre/modules/LoginManagerContent.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "LoginFormFactory",
|
||||
"resource://gre/modules/LoginManagerContent.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "InsecurePasswordUtils",
|
||||
"resource://gre/modules/InsecurePasswordUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "FormSubmitObserver",
|
||||
@@ -47,8 +49,9 @@ addMessageListener("Browser:HideSessionRestoreButton", function (message) {
|
||||
});
|
||||
|
||||
addEventListener("DOMFormHasPassword", function(event) {
|
||||
InsecurePasswordUtils.checkForInsecurePasswords(event.target);
|
||||
LoginManagerContent.onFormPassword(event);
|
||||
LoginManagerContent.onDOMFormHasPassword(event, content);
|
||||
let formLike = LoginFormFactory.createFromForm(event.target);
|
||||
InsecurePasswordUtils.reportInsecurePasswords(formLike);
|
||||
});
|
||||
addEventListener("DOMAutoComplete", function(event) {
|
||||
LoginManagerContent.onUsernameInput(event);
|
||||
@@ -57,8 +60,120 @@ addEventListener("blur", function(event) {
|
||||
LoginManagerContent.onUsernameInput(event);
|
||||
});
|
||||
|
||||
// Provide gContextMenuContentData for 'sdk/context-menu'
|
||||
var handleContentContextMenu = function (event) {
|
||||
let defaultPrevented = event.defaultPrevented;
|
||||
if (!Services.prefs.getBoolPref("dom.event.contextmenu.enabled")) {
|
||||
let plugin = null;
|
||||
try {
|
||||
plugin = event.target.QueryInterface(Ci.nsIObjectLoadingContent);
|
||||
} catch (e) {}
|
||||
if (plugin && plugin.displayedType == Ci.nsIObjectLoadingContent.TYPE_PLUGIN) {
|
||||
// Don't open a context menu for plugins.
|
||||
return;
|
||||
}
|
||||
|
||||
defaultPrevented = false;
|
||||
}
|
||||
|
||||
if (defaultPrevented)
|
||||
return;
|
||||
|
||||
let addonInfo = {};
|
||||
let subject = {
|
||||
event: event,
|
||||
addonInfo: addonInfo,
|
||||
};
|
||||
subject.wrappedJSObject = subject;
|
||||
Services.obs.notifyObservers(subject, "content-contextmenu", null);
|
||||
|
||||
let doc = event.target.ownerDocument;
|
||||
let docLocation = doc.mozDocumentURIIfNotForErrorPages;
|
||||
docLocation = docLocation && docLocation.spec;
|
||||
let charSet = doc.characterSet;
|
||||
let baseURI = doc.baseURI;
|
||||
let referrer = doc.referrer;
|
||||
let referrerPolicy = doc.referrerPolicy;
|
||||
let frameOuterWindowID = doc.defaultView.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIDOMWindowUtils)
|
||||
.outerWindowID;
|
||||
let loginFillInfo = LoginManagerContent.getFieldContext(event.target);
|
||||
|
||||
// The same-origin check will be done in nsContextMenu.openLinkInTab.
|
||||
let parentAllowsMixedContent = !!docShell.mixedContentChannel;
|
||||
|
||||
// get referrer attribute from clicked link and parse it
|
||||
// if per element referrer is enabled, the element referrer overrules
|
||||
// the document wide referrer
|
||||
if (Services.prefs.getBoolPref("network.http.enablePerElementReferrer")) {
|
||||
let referrerAttrValue = Services.netUtils.parseAttributePolicyString(event.target.
|
||||
getAttribute("referrerpolicy"));
|
||||
if (referrerAttrValue !== Ci.nsIHttpChannel.REFERRER_POLICY_UNSET) {
|
||||
referrerPolicy = referrerAttrValue;
|
||||
}
|
||||
}
|
||||
|
||||
// Media related cache info parent needs for saving
|
||||
let contentType = null;
|
||||
let contentDisposition = null;
|
||||
if (event.target.nodeType == Ci.nsIDOMNode.ELEMENT_NODE &&
|
||||
event.target instanceof Ci.nsIImageLoadingContent &&
|
||||
event.target.currentURI) {
|
||||
|
||||
try {
|
||||
let imageCache =
|
||||
Cc["@mozilla.org/image/tools;1"].getService(Ci.imgITools)
|
||||
.getImgCacheForDocument(doc);
|
||||
let props =
|
||||
imageCache.findEntryProperties(event.target.currentURI, doc);
|
||||
try {
|
||||
contentType = props.get("type", Ci.nsISupportsCString).data;
|
||||
} catch (e) {}
|
||||
try {
|
||||
contentDisposition =
|
||||
props.get("content-disposition", Ci.nsISupportsCString).data;
|
||||
} catch (e) {}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
let selectionInfo = BrowserUtils.getSelectionDetails(content);
|
||||
|
||||
let loadContext = docShell.QueryInterface(Ci.nsILoadContext);
|
||||
let userContextId = loadContext.originAttributes.userContextId;
|
||||
|
||||
let browser = docShell.chromeEventHandler;
|
||||
let mainWin = browser.ownerGlobal;
|
||||
|
||||
mainWin.gContextMenuContentData = {
|
||||
isRemote: false,
|
||||
event: event,
|
||||
popupNode: event.target,
|
||||
browser: browser,
|
||||
addonInfo: addonInfo,
|
||||
documentURIObject: doc.documentURIObject,
|
||||
docLocation: docLocation,
|
||||
charSet: charSet,
|
||||
referrer: referrer,
|
||||
referrerPolicy: referrerPolicy,
|
||||
contentType: contentType,
|
||||
contentDisposition: contentDisposition,
|
||||
selectionInfo: selectionInfo,
|
||||
loginFillInfo,
|
||||
parentAllowsMixedContent,
|
||||
userContextId,
|
||||
};
|
||||
}
|
||||
|
||||
Cc["@mozilla.org/eventlistenerservice;1"]
|
||||
.getService(Ci.nsIEventListenerService)
|
||||
.addSystemEventListener(global, "contextmenu", handleContentContextMenu, false);
|
||||
|
||||
// Lazily load the finder code
|
||||
addMessageListener("Finder:Initialize", function () {
|
||||
let {RemoteFinderListener} = Cu.import("resource://gre/modules/RemoteFinder.jsm", {});
|
||||
new RemoteFinderListener(global);
|
||||
});
|
||||
});
|
||||
|
||||
addEventListener("DOMWebNotificationClicked", function(event) {
|
||||
sendAsyncMessage("DOMWebNotificationClicked", {});
|
||||
}, false);
|
||||
@@ -0,0 +1,6 @@
|
||||
# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
# 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/.
|
||||
|
||||
<script type="application/javascript" src="chrome://browser/content/browser-devtools-theme.js"/>
|
||||
@@ -24,6 +24,9 @@
|
||||
# wishes to include *must* go into the global-scripts.inc file
|
||||
# so that they can be shared by this overlay.
|
||||
#include global-scripts.inc
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
#include global-devtools-theme-scripts.inc
|
||||
#endif
|
||||
|
||||
<script type="application/javascript">
|
||||
function OpenBrowserWindowFromDockMenu(options) {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/**
|
||||
* This singleton implements site dragging functionality.
|
||||
*/
|
||||
let gDrag = {
|
||||
var gDrag = {
|
||||
/**
|
||||
* The site offset to the drag start point.
|
||||
*/
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
#endif
|
||||
|
||||
let gDragDataHelper = {
|
||||
var gDragDataHelper = {
|
||||
get mimeType() {
|
||||
return "text/x-moz-url";
|
||||
},
|
||||
|
||||
@@ -11,7 +11,7 @@ const DELAY_REARRANGE_MS = 100;
|
||||
/**
|
||||
* This singleton implements site dropping functionality.
|
||||
*/
|
||||
let gDrop = {
|
||||
var gDrop = {
|
||||
/**
|
||||
* The last drop target.
|
||||
*/
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* indicate the transformation that results from dropping a cell at a certain
|
||||
* position.
|
||||
*/
|
||||
let gDropPreview = {
|
||||
var gDropPreview = {
|
||||
/**
|
||||
* Rearranges the sites currently contained in the grid when a site would be
|
||||
* dropped onto the given cell.
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* the default DnD target detection relies on the cursor's position. We want
|
||||
* to pick a drop target based on the dragged site's position.
|
||||
*/
|
||||
let gDropTargetShim = {
|
||||
var gDropTargetShim = {
|
||||
/**
|
||||
* Cache for the position of all cells, cleaned after drag finished.
|
||||
*/
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/**
|
||||
* This singleton represents the grid that contains all sites.
|
||||
*/
|
||||
let gGrid = {
|
||||
var gGrid = {
|
||||
/**
|
||||
* The DOM node of the grid.
|
||||
*/
|
||||
@@ -109,7 +109,12 @@ let gGrid = {
|
||||
|
||||
// (Re-)initialize all cells.
|
||||
let cellElements = this.node.querySelectorAll(".newtab-cell");
|
||||
this._cells = [new Cell(this, cell) for (cell of cellElements)];
|
||||
// Tycho: this._cells = [new Cell(this, cell) for (cell of cellElements)];
|
||||
this.cells = [];
|
||||
|
||||
for (let cellItem of cellElements) {
|
||||
this.cells.push(new Cell(this, cellItem));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
let Cu = Components.utils;
|
||||
let Ci = Components.interfaces;
|
||||
var Cu = Components.utils;
|
||||
var Ci = Components.interfaces;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
@@ -18,7 +18,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "Rect",
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
|
||||
"resource://gre/modules/PrivateBrowsingUtils.jsm");
|
||||
|
||||
let {
|
||||
var {
|
||||
links: gLinks,
|
||||
allPages: gAllPages,
|
||||
linkChecker: gLinkChecker,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* This singleton represents the whole 'New Tab Page' and takes care of
|
||||
* initializing all its components.
|
||||
*/
|
||||
let gPage = {
|
||||
var gPage = {
|
||||
/**
|
||||
* Initializes the page.
|
||||
*/
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* in the DOM and by showing or hiding the node. It additionally provides
|
||||
* convenience methods to work with a site's DOM node.
|
||||
*/
|
||||
let gTransformation = {
|
||||
var gTransformation = {
|
||||
/**
|
||||
* Returns the width of the left and top border of a cell. We need to take it
|
||||
* into account when measuring and comparing site and cell positions.
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* Dialog allowing to undo the removal of single site or to completely restore
|
||||
* the grid's original state.
|
||||
*/
|
||||
let gUndoDialog = {
|
||||
var gUndoDialog = {
|
||||
/**
|
||||
* The undo dialog's timeout in miliseconds.
|
||||
*/
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* This singleton provides functionality to update the current grid to a new
|
||||
* set of pinned and blocked sites. It adds, moves and removes sites.
|
||||
*/
|
||||
let gUpdater = {
|
||||
var gUpdater = {
|
||||
/**
|
||||
* Updates the current grid according to its pinned and blocked sites.
|
||||
* This removes old, moves existing and creates new sites to fill gaps.
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
|
||||
|
||||
var gContextMenuContentData = null;
|
||||
|
||||
function nsContextMenu(aXulMenu, aIsShift) {
|
||||
this.shouldDisplay = true;
|
||||
this.initMenu(aXulMenu, aIsShift);
|
||||
@@ -39,6 +41,7 @@ nsContextMenu.prototype = {
|
||||
},
|
||||
|
||||
hiding: function CM_hiding() {
|
||||
gContextMenuContentData = null;
|
||||
InlineSpellCheckerUI.clearSuggestionsFromMenu();
|
||||
InlineSpellCheckerUI.clearDictionaryListFromMenu();
|
||||
InlineSpellCheckerUI.uninit();
|
||||
@@ -265,7 +268,7 @@ nsContextMenu.prototype = {
|
||||
|
||||
// Hide menu entries for images, show otherwise
|
||||
if (this.inFrame) {
|
||||
if (mimeTypeIsTextBased(this.target.ownerDocument.contentType))
|
||||
if (BrowserUtils.mimeTypeIsTextBased(this.target.ownerDocument.contentType))
|
||||
this.isFrameImage.removeAttribute('hidden');
|
||||
else
|
||||
this.isFrameImage.setAttribute('hidden', 'true');
|
||||
@@ -422,12 +425,17 @@ nsContextMenu.prototype = {
|
||||
},
|
||||
|
||||
inspectNode: function CM_inspectNode() {
|
||||
let {devtools} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
let {devtools} = Cu.import("resource://devtools/shared/Loader.jsm", {});
|
||||
let gBrowser = this.browser.ownerDocument.defaultView.gBrowser;
|
||||
let tt = devtools.TargetFactory.forTab(gBrowser.selectedTab);
|
||||
return gDevTools.showToolbox(tt, "inspector").then(function(toolbox) {
|
||||
let target = devtools.TargetFactory.forTab(gBrowser.selectedTab);
|
||||
|
||||
return gDevTools.showToolbox(target, "inspector").then(function(toolbox) {
|
||||
let inspector = toolbox.getCurrentPanel();
|
||||
inspector.selection.setNode(this.target, "browser-context-menu");
|
||||
|
||||
this.browser.messageManager.sendAsyncMessage("debug:inspect", {}, {node: this.target});
|
||||
inspector.walker.findInspectingNode().then(nodeFront => {
|
||||
inspector.selection.setNodeFront(nodeFront, "browser-context-menu");
|
||||
});
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
@@ -906,6 +914,9 @@ nsContextMenu.prototype = {
|
||||
},
|
||||
|
||||
saveVideoFrameAsImage: function () {
|
||||
let referrerURI = document.documentURIObject;
|
||||
let isPrivate = PrivateBrowsingUtils.isBrowserPrivate(this.browser);
|
||||
|
||||
urlSecurityCheck(this.mediaURL, this.browser.contentPrincipal,
|
||||
Ci.nsIScriptSecurityManager.DISALLOW_SCRIPT);
|
||||
let name = "";
|
||||
@@ -923,7 +934,9 @@ nsContextMenu.prototype = {
|
||||
canvas.height = video.videoHeight;
|
||||
var ctxDraw = canvas.getContext("2d");
|
||||
ctxDraw.drawImage(video, 0, 0);
|
||||
saveImageURL(canvas.toDataURL("image/jpeg", ""), name, "SaveImageTitle", true, false, document.documentURIObject, this.target.ownerDocument);
|
||||
saveImageURL(canvas.toDataURL("image/jpeg", ""), name, "SaveImageTitle",
|
||||
true, false, referrerURI, null, null, null,
|
||||
isPrivate);
|
||||
},
|
||||
|
||||
fullScreenVideo: function () {
|
||||
@@ -1106,10 +1119,17 @@ nsContextMenu.prototype = {
|
||||
}
|
||||
}
|
||||
|
||||
// set up a channel to do the saving
|
||||
var ioService = Cc["@mozilla.org/network/io-service;1"].
|
||||
getService(Ci.nsIIOService);
|
||||
var channel = ioService.newChannelFromURI(makeURI(linkURL));
|
||||
// setting up a new channel for 'right click - save link as ...'
|
||||
// ideally we should use:
|
||||
// * doc - as the loadingNode, and/or
|
||||
// * this.principal - as the loadingPrincipal
|
||||
// for now lets use systemPrincipal to bypass mixedContentBlocker
|
||||
// checks after redirects, see bug: 1136055
|
||||
var channel = NetUtil.newChannel({
|
||||
uri: makeURI(linkURL),
|
||||
loadUsingSystemPrincipal: true
|
||||
});
|
||||
|
||||
if (linkDownload)
|
||||
channel.contentDispositionFilename = linkDownload;
|
||||
if (channel instanceof Ci.nsIPrivateBrowsingChannel) {
|
||||
@@ -1142,7 +1162,7 @@ nsContextMenu.prototype = {
|
||||
timer.TYPE_ONE_SHOT);
|
||||
|
||||
// kick off the channel with our proxy object as the listener
|
||||
channel.asyncOpen(new saveAsListener(), null);
|
||||
channel.asyncOpen2(new saveAsListener());
|
||||
},
|
||||
|
||||
// Save URL of clicked-on link.
|
||||
@@ -1174,6 +1194,8 @@ nsContextMenu.prototype = {
|
||||
// Save URL of the clicked upon image, video, or audio.
|
||||
saveMedia: function() {
|
||||
var doc = this.target.ownerDocument;
|
||||
let referrerURI = doc.documentURIObject;
|
||||
let isPrivate = PrivateBrowsingUtils.isBrowserPrivate(this.browser);
|
||||
if (this.onCanvas) {
|
||||
// Bypass cache, since it's a blob: URL.
|
||||
var target = this.target;
|
||||
@@ -1189,14 +1211,16 @@ nsContextMenu.prototype = {
|
||||
resolve(win.URL.createObjectURL(blob));
|
||||
})
|
||||
}}).then(function (blobURL) {
|
||||
saveImageURL(blobURL, "canvas.png", "SaveImageTitle", true,
|
||||
false, doc.documentURIObject, doc);
|
||||
saveImageURL(blobURL, "canvas.png", "SaveImageTitle",
|
||||
true, false, referrerURI, null, null, null,
|
||||
isPrivate);
|
||||
}, Components.utils.reportError);
|
||||
}
|
||||
} else if (this.onImage) {
|
||||
urlSecurityCheck(this.mediaURL, doc.nodePrincipal);
|
||||
saveImageURL(this.mediaURL, null, "SaveImageTitle", false,
|
||||
false, doc.documentURIObject, doc);
|
||||
saveImageURL(this.mediaURL, null, "SaveImageTitle",
|
||||
false, false, referrerURI, doc, null, null,
|
||||
isPrivate);
|
||||
} else if (this.onVideo || this.onAudio) {
|
||||
urlSecurityCheck(this.mediaURL, doc.nodePrincipal);
|
||||
var dialogTitle = this.onVideo ? "SaveVideoTitle" : "SaveAudioTitle";
|
||||
@@ -1373,9 +1397,8 @@ nsContextMenu.prototype = {
|
||||
|
||||
isDisabledForEvents: function(aNode) {
|
||||
let ownerDoc = aNode.ownerDocument;
|
||||
return
|
||||
ownerDoc.defaultView &&
|
||||
ownerDoc.defaultView
|
||||
return ownerDoc.defaultView &&
|
||||
ownerDoc.defaultView
|
||||
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIDOMWindowUtils)
|
||||
.isNodeDisabledForEvents(aNode);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var browser;
|
||||
var dialog = {};
|
||||
var pref = null;
|
||||
let openLocationModule = {};
|
||||
var openLocationModule = {};
|
||||
try {
|
||||
pref = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
@@ -16,7 +16,7 @@ try {
|
||||
}
|
||||
|
||||
Components.utils.import("resource:///modules/openLocationLastURL.jsm", openLocationModule);
|
||||
let gOpenLocationLastURL = new openLocationModule.OpenLocationLastURL(window.opener);
|
||||
var gOpenLocationLastURL = new openLocationModule.OpenLocationLastURL(window.opener);
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
let Cc = Components.classes;
|
||||
let Ci = Components.interfaces;
|
||||
let Cu = Components.utils;
|
||||
var Cc = Components.classes;
|
||||
var Ci = Components.interfaces;
|
||||
var Cu = Components.utils;
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
var padlock_PadLock =
|
||||
|
||||
@@ -359,7 +359,7 @@ function loadPageInfo()
|
||||
makeTabs(gDocument, gWindow);
|
||||
|
||||
initFeedTab();
|
||||
onLoadPermission();
|
||||
onLoadPermission(gDocument.nodePrincipal);
|
||||
|
||||
/* Call registered overlay init functions */
|
||||
onLoadRegistry.forEach(function(func) { func(); });
|
||||
@@ -857,7 +857,7 @@ function onBlockImage()
|
||||
if (checkbox.checked)
|
||||
permissionManager.add(uri, "image", nsIPermissionManager.DENY_ACTION);
|
||||
else
|
||||
permissionManager.remove(uri.host, "image");
|
||||
permissionManager.remove(uri, "image");
|
||||
}
|
||||
|
||||
function onImageSelect()
|
||||
|
||||
@@ -12,9 +12,10 @@ const IMAGE_DENY = 2;
|
||||
const COOKIE_DENY = 2;
|
||||
const COOKIE_SESSION = 2;
|
||||
|
||||
const nsIQuotaManager = Components.interfaces.nsIQuotaManager;
|
||||
const nsIQuotaManagerService = Components.interfaces.nsIQuotaManagerService;
|
||||
|
||||
var gPermURI;
|
||||
var gPermPrincipal;
|
||||
var gPrefs;
|
||||
var gUsageRequest;
|
||||
|
||||
@@ -107,7 +108,7 @@ var permissionObserver = {
|
||||
}
|
||||
};
|
||||
|
||||
function onLoadPermission()
|
||||
function onLoadPermission(principal)
|
||||
{
|
||||
gPrefs = Components.classes[PREFERENCES_CONTRACTID]
|
||||
.getService(Components.interfaces.nsIPrefBranch);
|
||||
@@ -116,6 +117,7 @@ function onLoadPermission()
|
||||
var permTab = document.getElementById("permTab");
|
||||
if (/^https?$/.test(uri.scheme)) {
|
||||
gPermURI = uri;
|
||||
gPermPrincipal = principal;
|
||||
var hostText = document.getElementById("hostText");
|
||||
hostText.value = gPermURI.host;
|
||||
|
||||
@@ -187,7 +189,7 @@ function onCheckboxClick(aPartId)
|
||||
var command = document.getElementById("cmd_" + aPartId + "Toggle");
|
||||
var checkbox = document.getElementById(aPartId + "Def");
|
||||
if (checkbox.checked) {
|
||||
permissionManager.remove(gPermURI.host, aPartId);
|
||||
permissionManager.remove(gPermURI, aPartId);
|
||||
command.setAttribute("disabled", "true");
|
||||
var perm = gPermObj[aPartId]();
|
||||
setRadioState(aPartId, perm);
|
||||
@@ -211,7 +213,7 @@ function onRadioClick(aPartId)
|
||||
var id = radioGroup.selectedItem.id;
|
||||
var permission = id.split('#')[1];
|
||||
if (permission == UNKNOWN) {
|
||||
permissionManager.remove(gPermURI.host, aPartId);
|
||||
permissionManager.remove(gPermURI, aPartId);
|
||||
} else {
|
||||
permissionManager.add(gPermURI, aPartId, permission);
|
||||
}
|
||||
@@ -230,10 +232,13 @@ function initIndexedDBRow()
|
||||
|
||||
row.appendChild(extras);
|
||||
|
||||
var quotaManager = Components.classes["@mozilla.org/dom/quota/manager;1"]
|
||||
.getService(nsIQuotaManager);
|
||||
var quotaManagerService =
|
||||
Components.classes["@mozilla.org/dom/quota-manager-service;1"]
|
||||
.getService(nsIQuotaManagerService);
|
||||
|
||||
gUsageRequest =
|
||||
quotaManager.getUsageForURI(gPermURI, onIndexedDBUsageCallback);
|
||||
quotaManagerService.getUsageForPrincipal(gPermPrincipal,
|
||||
onIndexedDBUsageCallback);
|
||||
|
||||
var status = document.getElementById("indexedDBStatus");
|
||||
var button = document.getElementById("indexedDBClear");
|
||||
@@ -245,22 +250,24 @@ function initIndexedDBRow()
|
||||
|
||||
function onIndexedDBClear()
|
||||
{
|
||||
Components.classes["@mozilla.org/dom/quota/manager;1"]
|
||||
.getService(nsIQuotaManager)
|
||||
.clearStoragesForURI(gPermURI);
|
||||
Components.classes["@mozilla.org/dom/quota-manager-service;1"]
|
||||
.getService(nsIQuotaManagerService)
|
||||
.clearStoragesForPrincipal(gPermPrincipal);
|
||||
|
||||
var permissionManager = Components.classes[PERMISSION_CONTRACTID]
|
||||
.getService(nsIPermissionManager);
|
||||
permissionManager.remove(gPermURI.host, "indexedDB");
|
||||
permissionManager.remove(gPermURI, "indexedDB");
|
||||
initIndexedDBRow();
|
||||
}
|
||||
|
||||
function onIndexedDBUsageCallback(uri, usage, fileUsage)
|
||||
function onIndexedDBUsageCallback(request)
|
||||
{
|
||||
let uri = request.principal.URI;
|
||||
if (!uri.equals(gPermURI)) {
|
||||
throw new Error("Callback received for bad URI: " + uri);
|
||||
throw new Error("Callback received for bad URI: " + uri.spec);
|
||||
}
|
||||
|
||||
let usage = request.result.usage;
|
||||
if (usage) {
|
||||
if (!("DownloadUtils" in window)) {
|
||||
Components.utils.import("resource://gre/modules/DownloadUtils.jsm");
|
||||
@@ -355,20 +362,33 @@ function initPluginsRow() {
|
||||
}
|
||||
}
|
||||
|
||||
let entries = [
|
||||
{
|
||||
// Tycho:
|
||||
// let entries = [
|
||||
// {
|
||||
// "permission": item[0],
|
||||
// "obj": item[1],
|
||||
// }
|
||||
// for (item of permissionMap)
|
||||
// ];
|
||||
let entries = [];
|
||||
for (let item of permissionMap) {
|
||||
entries.push({
|
||||
"permission": item[0],
|
||||
"obj": item[1],
|
||||
}
|
||||
for (item of permissionMap)
|
||||
];
|
||||
"obj": item[1]
|
||||
});
|
||||
}
|
||||
entries.sort(function(a, b) {
|
||||
return ((a.obj.name < b.obj.name) ? -1 : (a.obj.name == b.obj.name ? 0 : 1));
|
||||
});
|
||||
|
||||
let permissionEntries = [
|
||||
fillInPluginPermissionTemplate(p.permission, p.obj) for (p of entries)
|
||||
];
|
||||
// Tycho:
|
||||
// let permissionEntries = [
|
||||
// fillInPluginPermissionTemplate(p.permission, p.obj) for (p of entries)
|
||||
// ];
|
||||
let permissionEntries = [];
|
||||
entries.forEach(function (p) {
|
||||
permissionEntries.push(fillInPluginPermissionTemplate(p.permission, p.obj));
|
||||
});
|
||||
|
||||
let permPluginsRow = document.getElementById("permPluginsRow");
|
||||
clearPluginPermissionTemplate();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
<panel id="notification-popup"
|
||||
type="arrow"
|
||||
footertype="promobox"
|
||||
position="after_start"
|
||||
hidden="true"
|
||||
orient="vertical"
|
||||
@@ -54,7 +53,7 @@
|
||||
</hbox>
|
||||
</panel>
|
||||
|
||||
|
||||
#ifdef MOZ_WEBRTC
|
||||
<popupnotification id="webRTC-shareDevices-notification" hidden="true">
|
||||
<popupnotificationcontent id="webRTC-selectCamera" orient="vertical">
|
||||
<separator class="thin"/>
|
||||
@@ -75,7 +74,7 @@
|
||||
</menulist>
|
||||
</popupnotificationcontent>
|
||||
</popupnotification>
|
||||
|
||||
#endif
|
||||
<popupnotification id="servicesInstall-notification" hidden="true">
|
||||
<popupnotificationcontent orient="vertical" align="start">
|
||||
<!-- XXX bug 974146, tests are looking for this, can't remove yet. -->
|
||||
@@ -89,6 +88,14 @@
|
||||
</popupnotificationcontent>
|
||||
</popupnotification>
|
||||
|
||||
<popupnotification id="password-notification" hidden="true">
|
||||
<popupnotificationcontent orient="vertical">
|
||||
<textbox id="password-notification-username"/>
|
||||
<textbox id="password-notification-password" type="password" show-content=""/>
|
||||
<checkbox id="password-notification-visibilityToggle" hidden="true"/>
|
||||
</popupnotificationcontent>
|
||||
</popupnotification>
|
||||
|
||||
<popupnotification id="mixed-content-blocked-notification" hidden="true">
|
||||
<popupnotificationcontent orient="vertical" align="start">
|
||||
<separator/>
|
||||
|
||||
@@ -15,7 +15,7 @@ XPCOMUtils.defineLazyModuleGetter(this, "Promise",
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Task",
|
||||
"resource://gre/modules/Task.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "console",
|
||||
"resource://gre/modules/devtools/Console.jsm");
|
||||
"resource://gre/modules/Console.jsm");
|
||||
|
||||
function Sanitizer() {}
|
||||
Sanitizer.prototype = {
|
||||
|
||||
@@ -11,7 +11,7 @@ Cu.import("resource://gre/modules/PlacesUtils.jsm", this);
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
let RemoteTabViewer = {
|
||||
var RemoteTabViewer = {
|
||||
_tabsList: null,
|
||||
|
||||
init: function () {
|
||||
|
||||
@@ -15,7 +15,7 @@ const ADD_DEVICE_PAGE = 0;
|
||||
const SYNC_KEY_PAGE = 1;
|
||||
const DEVICE_CONNECTED_PAGE = 2;
|
||||
|
||||
let gSyncAddDevice = {
|
||||
var gSyncAddDevice = {
|
||||
|
||||
init: function init() {
|
||||
this.pin1.setAttribute("maxlength", PIN_PART_LENGTH);
|
||||
|
||||
@@ -8,7 +8,7 @@ const Cc = Components.classes;
|
||||
Components.utils.import("resource://services-sync/main.js");
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
let Change = {
|
||||
var Change = {
|
||||
_dialog: null,
|
||||
_dialogType: null,
|
||||
_status: null,
|
||||
|
||||
@@ -6,8 +6,8 @@ const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://services-sync/main.js");
|
||||
|
||||
let gProgressBar;
|
||||
let gCounter = 0;
|
||||
var gProgressBar;
|
||||
var gCounter = 0;
|
||||
|
||||
function onLoad(event) {
|
||||
Services.obs.addObserver(onEngineSync, "weave:engine:sync:finish", false);
|
||||
|
||||
@@ -10,7 +10,7 @@ const Cu = Components.utils;
|
||||
Cu.import("resource://services-sync/main.js");
|
||||
Cu.import("resource://gre/modules/DownloadUtils.jsm");
|
||||
|
||||
let gSyncQuota = {
|
||||
var gSyncQuota = {
|
||||
|
||||
init: function init() {
|
||||
this.bundle = document.getElementById("quotaStrings");
|
||||
@@ -86,7 +86,7 @@ let gSyncQuota = {
|
||||
|
||||
};
|
||||
|
||||
let gUsageTreeView = {
|
||||
var gUsageTreeView = {
|
||||
|
||||
_ignored: {keys: true,
|
||||
meta: true,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
const PERMISSIONS_RWUSR = 0x180;
|
||||
|
||||
// Weave should always exist before before this file gets included.
|
||||
let gSyncUtils = {
|
||||
var gSyncUtils = {
|
||||
get bundle() {
|
||||
delete this.bundle;
|
||||
return this.bundle = Services.strings.createBundle("chrome://browser/locale/syncSetup.properties");
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<xul:vbox flex="1" class="browserContainer">
|
||||
<xul:stack flex="1" class="browserStack" anonid="browserStack">
|
||||
<xul:browser anonid="initialBrowser" type="content-primary" message="true" disablehistory="true"
|
||||
xbl:inherits="tooltip=contenttooltip,contextmenu=contentcontextmenu,autocompletepopup"/>
|
||||
xbl:inherits="tooltip=contenttooltip,contextmenu=contentcontextmenu,autocompletepopup,datetimepicker"/>
|
||||
</xul:stack>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
@@ -138,19 +138,19 @@
|
||||
]]></getter>
|
||||
</property>
|
||||
|
||||
<property name="formValidationAnchor" readonly="true">
|
||||
<property name="popupAnchor" readonly="true">
|
||||
<getter><![CDATA[
|
||||
if (this.mCurrentTab._formValidationAnchor) {
|
||||
return this.mCurrentTab._formValidationAnchor;
|
||||
if (this.mCurrentTab._popupAnchor) {
|
||||
return this.mCurrentTab._popupAnchor;
|
||||
}
|
||||
let stack = this.mCurrentBrowser.parentNode;
|
||||
// Create an anchor for the form validation popup
|
||||
// Create an anchor for the popup
|
||||
const NS_XUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
let formValidationAnchor = document.createElementNS(NS_XUL, "hbox");
|
||||
formValidationAnchor.className = "form-validation-anchor";
|
||||
formValidationAnchor.hidden = true;
|
||||
stack.appendChild(formValidationAnchor);
|
||||
return this.mCurrentTab._formValidationAnchor = formValidationAnchor;
|
||||
let popupAnchor = document.createElementNS(NS_XUL, "hbox");
|
||||
popupAnchor.className = "popup-anchor";
|
||||
popupAnchor.hidden = true;
|
||||
stack.appendChild(popupAnchor);
|
||||
return this.mCurrentTab._popupAnchor = popupAnchor;
|
||||
]]></getter>
|
||||
</property>
|
||||
|
||||
@@ -302,6 +302,16 @@
|
||||
</body>
|
||||
</method>
|
||||
|
||||
<method name="getBrowserForContentWindow">
|
||||
<parameter name="aWindow"/>
|
||||
<body>
|
||||
<![CDATA[
|
||||
var tab = this._getTabForContentWindow(aWindow);
|
||||
return tab ? tab.linkedBrowser : null;
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
|
||||
<method name="getBrowserForOuterWindowID">
|
||||
<parameter name="aID"/>
|
||||
<body>
|
||||
@@ -707,7 +717,8 @@
|
||||
|
||||
let autocomplete = this.mTabBrowser._placesAutocomplete;
|
||||
if (this.mBrowser.registeredOpenURI) {
|
||||
autocomplete.unregisterOpenPage(this.mBrowser.registeredOpenURI);
|
||||
autocomplete.unregisterOpenPage(this.mBrowser.registeredOpenURI,
|
||||
this.mBrowser.getAttribute("usercontextid") || 0);
|
||||
delete this.mBrowser.registeredOpenURI;
|
||||
}
|
||||
// Tabs in private windows aren't registered as "Open" so
|
||||
@@ -715,7 +726,8 @@
|
||||
if (!isBlankPageURL(aLocation.spec) &&
|
||||
(!PrivateBrowsingUtils.isWindowPrivate(window) ||
|
||||
PrivateBrowsingUtils.permanentPrivateBrowsing)) {
|
||||
autocomplete.registerOpenPage(aLocation);
|
||||
autocomplete.registerOpenPage(aLocation,
|
||||
this.mBrowser.getAttribute("usercontextid") || 0);
|
||||
this.mBrowser.registeredOpenURI = aLocation;
|
||||
}
|
||||
}
|
||||
@@ -766,19 +778,28 @@
|
||||
<method name="setIcon">
|
||||
<parameter name="aTab"/>
|
||||
<parameter name="aURI"/>
|
||||
<parameter name="aLoadingPrincipal"/>
|
||||
<body>
|
||||
<![CDATA[
|
||||
var browser = this.getBrowserForTab(aTab);
|
||||
let browser = this.getBrowserForTab(aTab);
|
||||
browser.mIconURL = aURI instanceof Ci.nsIURI ? aURI.spec : aURI;
|
||||
|
||||
if (aURI && this.mFaviconService) {
|
||||
if (!(aURI instanceof Ci.nsIURI))
|
||||
if (!(aURI instanceof Ci.nsIURI)) {
|
||||
aURI = makeURI(aURI);
|
||||
this.mFaviconService.setAndFetchFaviconForPage(browser.currentURI,
|
||||
aURI, false,
|
||||
PrivateBrowsingUtils.isWindowPrivate(window) ?
|
||||
this.mFaviconService.FAVICON_LOAD_PRIVATE :
|
||||
this.mFaviconService.FAVICON_LOAD_NON_PRIVATE);
|
||||
}
|
||||
// We do not serialize the principal from within SessionStore.jsm,
|
||||
// hence if aLoadingPrincipal is null we default to the
|
||||
// systemPrincipal which will allow the favicon to load.
|
||||
let loadingPrincipal = aLoadingPrincipal
|
||||
? aLoadingPrincipal
|
||||
: Services.scriptSecurityManager.getSystemPrincipal();
|
||||
let loadType = PrivateBrowsingUtils.isWindowPrivate(window)
|
||||
? this.mFaviconService.FAVICON_LOAD_PRIVATE
|
||||
: this.mFaviconService.FAVICON_LOAD_NON_PRIVATE;
|
||||
|
||||
this.mFaviconService.setAndFetchFaviconForPage(
|
||||
browser.currentURI, aURI, false, loadType, null, loadingPrincipal);
|
||||
}
|
||||
|
||||
let sizedIconUrl = browser.mIconURL || "";
|
||||
@@ -874,7 +895,7 @@
|
||||
if (!this.isFailedIcon(url))
|
||||
icon = url;
|
||||
}
|
||||
this.setIcon(aTab, icon);
|
||||
this.setIcon(aTab, icon, browser.contentPrincipal);
|
||||
]]>
|
||||
</body>
|
||||
</method>
|
||||
@@ -1430,6 +1451,10 @@
|
||||
b.setAttribute("autocompletepopup", this.getAttribute("autocompletepopup"));
|
||||
b.setAttribute("autoscrollpopup", this._autoScrollPopup.id);
|
||||
|
||||
if (this.hasAttribute("datetimepicker")) {
|
||||
b.setAttribute("datetimepicker", this.getAttribute("datetimepicker"));
|
||||
}
|
||||
|
||||
// Create the browserStack container
|
||||
var stack = document.createElementNS(NS_XUL, "stack");
|
||||
stack.className = "browserStack";
|
||||
@@ -1566,7 +1591,7 @@
|
||||
}
|
||||
|
||||
if (animate) {
|
||||
mozRequestAnimationFrame(function () {
|
||||
requestAnimationFrame(function () {
|
||||
this.tabContainer._handleTabTelemetryStart(t, aURI);
|
||||
|
||||
// kick the animation off
|
||||
@@ -1865,7 +1890,8 @@
|
||||
this.mTabListeners[aTab._tPos].destroy();
|
||||
|
||||
if (browser.registeredOpenURI && !aTabWillBeMoved) {
|
||||
this._placesAutocomplete.unregisterOpenPage(browser.registeredOpenURI);
|
||||
this._placesAutocomplete.unregisterOpenPage(browser.registeredOpenURI,
|
||||
browser.getAttribute("usercontextid") || 0);
|
||||
delete browser.registeredOpenURI;
|
||||
}
|
||||
|
||||
@@ -2133,7 +2159,7 @@
|
||||
// Workarounds for bug 458697
|
||||
// Icon might have been set on DOMLinkAdded, don't override that.
|
||||
if (!ourBrowser.mIconURL && otherBrowser.mIconURL)
|
||||
this.setIcon(aOurTab, otherBrowser.mIconURL);
|
||||
this.setIcon(aOurTab, otherBrowser.mIconURL, otherBrowser.contentPrincipal);
|
||||
var isBusy = aOtherTab.hasAttribute("busy");
|
||||
if (isBusy) {
|
||||
aOurTab.setAttribute("busy", "true");
|
||||
@@ -2209,7 +2235,8 @@
|
||||
<![CDATA[
|
||||
// If the current URI is registered as open remove it from the list.
|
||||
if (aOurBrowser.registeredOpenURI) {
|
||||
this._placesAutocomplete.unregisterOpenPage(aOurBrowser.registeredOpenURI);
|
||||
this._placesAutocomplete.unregisterOpenPage(aOurBrowser.registeredOpenURI,
|
||||
aOurBrowser.getAttribute("usercontextid") || 0);
|
||||
delete aOurBrowser.registeredOpenURI;
|
||||
}
|
||||
|
||||
@@ -2716,6 +2743,9 @@
|
||||
get finder() {
|
||||
return this.mTabBrowser.mCurrentBrowser.finder;
|
||||
},
|
||||
destroy: function() {
|
||||
this.finder.destroy();
|
||||
},
|
||||
addResultListener: function(aListener) {
|
||||
this.mListeners.add(aListener);
|
||||
this.finder.addResultListener(aListener);
|
||||
@@ -2736,21 +2766,33 @@
|
||||
set caseSensitive(val) {
|
||||
return this.finder.caseSensitive = val;
|
||||
},
|
||||
fastFind: function(aSearchString, aLinksOnly, aDrawOutline) {
|
||||
this.finder.fastFind(aSearchString, aLinksOnly, aDrawOutline);
|
||||
set entireWord(val) {
|
||||
return this.finder.entireWord = val;
|
||||
},
|
||||
findAgain: function(aFindBackwards, aLinksOnly, aDrawOutline) {
|
||||
this.finder.findAgain(aFindBackwards, aLinksOnly, aDrawOutline);
|
||||
get highlighter() {
|
||||
return this.finder.highlighter;
|
||||
},
|
||||
get matchesCountLimit() {
|
||||
return this.finder.matchesCountLimit;
|
||||
},
|
||||
fastFind: function(...args) {
|
||||
this.finder.fastFind(...args);
|
||||
},
|
||||
findAgain: function(...args) {
|
||||
this.finder.findAgain(...args);
|
||||
},
|
||||
setSearchStringToSelection: function() {
|
||||
return this.finder.setSearchStringToSelection();
|
||||
},
|
||||
highlight: function(aHighlight, aWord) {
|
||||
this.finder.highlight(aHighlight, aWord);
|
||||
highlight: function(...args) {
|
||||
this.finder.highlight(...args);
|
||||
},
|
||||
getInitialSelection: function() {
|
||||
this.finder.getInitialSelection();
|
||||
},
|
||||
getActiveSelectionText: function() {
|
||||
return this.finder.getActiveSelectionText();
|
||||
},
|
||||
enableSelection: function() {
|
||||
this.finder.enableSelection();
|
||||
},
|
||||
@@ -2760,11 +2802,38 @@
|
||||
focusContent: function() {
|
||||
this.finder.focusContent();
|
||||
},
|
||||
onFindbarClose: function() {
|
||||
this.finder.onFindbarClose();
|
||||
},
|
||||
onFindbarOpen: function() {
|
||||
this.finder.onFindbarOpen();
|
||||
},
|
||||
onModalHighlightChange: function(...args) {
|
||||
return this.finder.onModalHighlightChange(...args);
|
||||
},
|
||||
onHighlightAllChange: function(...args) {
|
||||
return this.finder.onHighlightAllChange(...args);
|
||||
},
|
||||
keyPress: function(aEvent) {
|
||||
this.finder.keyPress(aEvent);
|
||||
},
|
||||
requestMatchesCount: function(aWord, aMatchLimit, aLinksOnly) {
|
||||
this.finder.requestMatchesCount(aWord, aMatchLimit, aLinksOnly);
|
||||
requestMatchesCount: function(...args) {
|
||||
this.finder.requestMatchesCount(...args);
|
||||
},
|
||||
onIteratorRangeFound: function(...args) {
|
||||
this.finder.onIteratorRangeFound(...args);
|
||||
},
|
||||
onIteratorReset: function() {
|
||||
this.finder.onIteratorReset();
|
||||
},
|
||||
onIteratorRestart: function(...args) {
|
||||
this.finder.onIteratorRestart(...args);
|
||||
},
|
||||
onIteratorStart: function(...args) {
|
||||
this.finder.onIteratorStart(...args);
|
||||
},
|
||||
onLocationChange: function(...args) {
|
||||
this.finder.onLocationChange(...args);
|
||||
}
|
||||
})
|
||||
]]></field>
|
||||
@@ -2773,6 +2842,19 @@
|
||||
onget="return this.mCurrentBrowser.docShell"
|
||||
readonly="true"/>
|
||||
|
||||
<property name="messageManager"
|
||||
readonly="true">
|
||||
<getter>
|
||||
<![CDATA[
|
||||
let frameLoader = this.mCurrentBrowser.frameLoader;
|
||||
if (!frameLoader) {
|
||||
return null;
|
||||
}
|
||||
return frameLoader.messageManager;
|
||||
]]>
|
||||
</getter>
|
||||
</property>
|
||||
|
||||
<property name="webNavigation"
|
||||
onget="return this.mCurrentBrowser.webNavigation"
|
||||
readonly="true"/>
|
||||
@@ -2789,6 +2871,10 @@
|
||||
readonly="true"
|
||||
onget="return this.mCurrentBrowser.contentWindow"/>
|
||||
|
||||
<property name="contentWindowAsCPOW"
|
||||
readonly="true"
|
||||
onget="return this.mCurrentBrowser.contentWindow;"/>
|
||||
|
||||
<property name="sessionHistory"
|
||||
onget="return this.mCurrentBrowser.sessionHistory;"
|
||||
readonly="true"/>
|
||||
@@ -2809,6 +2895,10 @@
|
||||
onget="return this.mCurrentBrowser.contentDocument;"
|
||||
readonly="true"/>
|
||||
|
||||
<property name="contentDocumentAsCPOW"
|
||||
onget="return this.mCurrentBrowser.contentDocument;"
|
||||
readonly="true"/>
|
||||
|
||||
<property name="contentTitle"
|
||||
onget="return this.mCurrentBrowser.contentTitle;"
|
||||
readonly="true"/>
|
||||
@@ -2859,23 +2949,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
// We need to take care of FAYT-watching as long as the findbar
|
||||
// isn't initialized. The checks on aEvent are copied from
|
||||
// _shouldFastFind (see findbar.xml).
|
||||
if (!gFindBarInitialized &&
|
||||
!(aEvent.ctrlKey || aEvent.metaKey) &&
|
||||
!aEvent.defaultPrevented) {
|
||||
let charCode = aEvent.charCode;
|
||||
if (charCode) {
|
||||
let char = String.fromCharCode(charCode);
|
||||
if (char == "'" || char == "/" ||
|
||||
Services.prefs.getBoolPref("accessibility.typeaheadfind")) {
|
||||
gFindBar._onBrowserKeypress(aEvent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
if (!aEvent.metaKey)
|
||||
return;
|
||||
@@ -2950,13 +3023,31 @@
|
||||
let browser = aMessage.target;
|
||||
|
||||
switch (aMessage.name) {
|
||||
case "DOMTitleChanged":
|
||||
case "DOMTitleChanged": {
|
||||
let tab = this.getTabForBrowser(browser);
|
||||
if (!tab)
|
||||
return;
|
||||
let titleChanged = this.setTabTitle(tab);
|
||||
if (titleChanged && !tab.selected && !tab.hasAttribute("busy"))
|
||||
tab.setAttribute("titlechanged", "true");
|
||||
break;
|
||||
}
|
||||
case "DOMWebNotificationClicked": {
|
||||
let tab = this.getTabForBrowser(browser);
|
||||
if (!tab)
|
||||
return;
|
||||
this.selectedTab = tab;
|
||||
window.focus();
|
||||
break;
|
||||
}
|
||||
case "Findbar:Keypress":
|
||||
if (!gFindBarInitialized) {
|
||||
// If the find bar for this tab is not yet alive, change that,
|
||||
// and make sure we return the result:
|
||||
return gFindBar.receiveMessage(aMessage);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
]]></body>
|
||||
</method>
|
||||
@@ -3022,6 +3113,8 @@
|
||||
this._outerWindowIDBrowserMap.set(this.mCurrentBrowser.outerWindowID,
|
||||
this.mCurrentBrowser);
|
||||
}
|
||||
messageManager.addMessageListener("DOMWebNotificationClicked", this);
|
||||
messageManager.addMessageListener("Findbar:Keypress", this);
|
||||
]]>
|
||||
</constructor>
|
||||
|
||||
@@ -3055,7 +3148,8 @@
|
||||
for (var i = 0; i < this.mTabListeners.length; ++i) {
|
||||
let browser = this.getBrowserAtIndex(i);
|
||||
if (browser.registeredOpenURI) {
|
||||
this._placesAutocomplete.unregisterOpenPage(browser.registeredOpenURI);
|
||||
this._placesAutocomplete.unregisterOpenPage(browser.registeredOpenURI,
|
||||
browser.getAttribute("usercontextid") || 0);
|
||||
delete browser.registeredOpenURI;
|
||||
}
|
||||
browser.webProgress.removeProgressListener(this.mTabFilters[i]);
|
||||
|
||||
@@ -17,32 +17,32 @@
|
||||
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:xbl="http://www.mozilla.org/xbl">
|
||||
|
||||
<binding id="urlbar" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete">
|
||||
<binding id="urlbar" extends="chrome://browser/content/autocomplete.xml#private-autocomplete">
|
||||
|
||||
<content sizetopopup="pref">
|
||||
<xul:hbox anonid="textbox-container"
|
||||
class="autocomplete-textbox-container urlbar-textbox-container"
|
||||
class="private-autocomplete-textbox-container urlbar-textbox-container"
|
||||
flex="1" xbl:inherits="focused">
|
||||
<children includes="image|deck|stack|box">
|
||||
<xul:image class="autocomplete-icon" allowevents="true"/>
|
||||
<xul:image class="private-autocomplete-icon" allowevents="true"/>
|
||||
</children>
|
||||
<xul:hbox anonid="textbox-input-box"
|
||||
class="textbox-input-box urlbar-input-box"
|
||||
flex="1" xbl:inherits="tooltiptext=inputtooltiptext">
|
||||
<children/>
|
||||
<html:input anonid="input"
|
||||
class="autocomplete-textbox urlbar-input textbox-input uri-element-right-align"
|
||||
class="private-autocomplete-textbox urlbar-input textbox-input uri-element-right-align"
|
||||
allowevents="true"
|
||||
xbl:inherits="tooltiptext=inputtooltiptext,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey"/>
|
||||
</xul:hbox>
|
||||
<children includes="hbox"/>
|
||||
</xul:hbox>
|
||||
<xul:dropmarker anonid="historydropmarker"
|
||||
class="autocomplete-history-dropmarker urlbar-history-dropmarker"
|
||||
class="private-autocomplete-history-dropmarker urlbar-history-dropmarker"
|
||||
allowevents="true"
|
||||
xbl:inherits="open,enablehistory,parentfocused=focused"/>
|
||||
<xul:popupset anonid="popupset"
|
||||
class="autocomplete-result-popupset"/>
|
||||
class="private-autocomplete-result-popupset"/>
|
||||
<children includes="toolbarbutton"/>
|
||||
</content>
|
||||
|
||||
@@ -823,7 +823,7 @@
|
||||
</implementation>
|
||||
</binding>
|
||||
|
||||
<binding id="urlbar-rich-result-popup" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-rich-result-popup">
|
||||
<binding id="urlbar-rich-result-popup" extends="chrome://browser/content/autocomplete.xml#private-autocomplete-rich-result-popup">
|
||||
<implementation>
|
||||
<field name="_maxResults">0</field>
|
||||
|
||||
@@ -990,9 +990,11 @@
|
||||
document.getAnonymousElementByAttribute(this, "anonid", "cancel");
|
||||
</field>
|
||||
<field name="DownloadUtils" readonly="true">
|
||||
let utils = {};
|
||||
Components.utils.import("resource://gre/modules/DownloadUtils.jsm", utils);
|
||||
utils.DownloadUtils;
|
||||
{
|
||||
let utils = {};
|
||||
Components.utils.import("resource://gre/modules/DownloadUtils.jsm", utils);
|
||||
utils.DownloadUtils;
|
||||
}
|
||||
</field>
|
||||
|
||||
<method name="destroy">
|
||||
@@ -1764,203 +1766,14 @@
|
||||
</implementation>
|
||||
</binding>
|
||||
|
||||
<binding id="promobox">
|
||||
<content>
|
||||
<xul:hbox class="panel-promo-box" align="start" flex="1">
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:image class="panel-promo-icon"/>
|
||||
<xul:description anonid="promo-message" class="panel-promo-message" flex="1">
|
||||
<xul:description anonid="promo-link"
|
||||
class="plain text-link inline-link"
|
||||
onclick="document.getBindingParent(this).onLinkClick();"/>
|
||||
</xul:description>
|
||||
</xul:hbox>
|
||||
<xul:toolbarbutton class="panel-promo-closebutton close-icon"
|
||||
oncommand="document.getBindingParent(this).onCloseButtonCommand();"
|
||||
tooltiptext="&closeNotification.tooltip;"/>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
|
||||
<implementation implements="nsIDOMEventListener">
|
||||
<constructor><![CDATA[
|
||||
this._panel.addEventListener("popupshowing", this, false);
|
||||
]]></constructor>
|
||||
|
||||
<destructor><![CDATA[
|
||||
this._panel.removeEventListener("popupshowing", this, false);
|
||||
]]></destructor>
|
||||
|
||||
<field name="_panel" readonly="true"><![CDATA[
|
||||
let node = this.parentNode;
|
||||
while(node && node.localName != "panel") {
|
||||
node = node.parentNode;
|
||||
}
|
||||
node;
|
||||
]]></field>
|
||||
<field name="_promomessage" readonly="true">
|
||||
document.getAnonymousElementByAttribute(this, "anonid", "promo-message");
|
||||
</field>
|
||||
<field name="_promolink" readonly="true">
|
||||
document.getAnonymousElementByAttribute(this, "anonid", "promo-link");
|
||||
</field>
|
||||
<field name="_brandBundle" readonly="true">
|
||||
Services.strings.createBundle("chrome://branding/locale/brand.properties");
|
||||
</field>
|
||||
<property name="_viewsLeftMap">
|
||||
<getter><![CDATA[
|
||||
let viewsLeftMap = {};
|
||||
try {
|
||||
viewsLeftMap = JSON.parse(Services.prefs.getCharPref("browser.syncPromoViewsLeftMap"));
|
||||
} catch (ex) {
|
||||
// If the old preference exists, migrate it to the new one.
|
||||
try {
|
||||
let oldPref = Services.prefs.getIntPref("browser.syncPromoViewsLeft");
|
||||
Services.prefs.clearUserPref("browser.syncPromoViewsLeft");
|
||||
viewsLeftMap.bookmarks = oldPref;
|
||||
viewsLeftMap.passwords = oldPref;
|
||||
Services.prefs.setCharPref("browser.syncPromoViewsLeftMap",
|
||||
JSON.stringify(viewsLeftMap));
|
||||
} catch (ex2) {}
|
||||
}
|
||||
return viewsLeftMap;
|
||||
]]></getter>
|
||||
</property>
|
||||
<property name="_viewsLeft">
|
||||
<getter><![CDATA[
|
||||
let views = 5;
|
||||
let map = this._viewsLeftMap;
|
||||
if (this._notificationType in map) {
|
||||
views = map[this._notificationType];
|
||||
}
|
||||
return views;
|
||||
]]></getter>
|
||||
<setter><![CDATA[
|
||||
let map = this._viewsLeftMap;
|
||||
map[this._notificationType] = val;
|
||||
Services.prefs.setCharPref("browser.syncPromoViewsLeftMap",
|
||||
JSON.stringify(map));
|
||||
return val;
|
||||
]]></setter>
|
||||
</property>
|
||||
<property name="_notificationType">
|
||||
<getter><![CDATA[
|
||||
// Use the popupid attribute to identify the notification type,
|
||||
// otherwise just rely on the panel id for common arrowpanels.
|
||||
let type = this._panel.firstChild.getAttribute("popupid") ||
|
||||
this._panel.id;
|
||||
if (type.startsWith("password-"))
|
||||
return "passwords";
|
||||
if (type == "editBookmarkPanel")
|
||||
return "bookmarks";
|
||||
if (type == "addon-install-complete") {
|
||||
if (!Services.prefs.prefHasUserValue("services.sync.username"))
|
||||
return "addons";
|
||||
if (!Services.prefs.getBoolPref("services.sync.engine.addons"))
|
||||
return "addons-sync-disabled";
|
||||
}
|
||||
return null;
|
||||
]]></getter>
|
||||
</property>
|
||||
<property name="_notificationMessage">
|
||||
<getter><![CDATA[
|
||||
return gNavigatorBundle.getFormattedString(
|
||||
"syncPromoNotification." + this._notificationType + ".description",
|
||||
[this._brandBundle.GetStringFromName("syncBrandShortName")]
|
||||
);
|
||||
]]></getter>
|
||||
</property>
|
||||
<property name="_notificationLink">
|
||||
<getter><![CDATA[
|
||||
if (this._notificationType == "addons-sync-disabled") {
|
||||
return "https://forum.palemoon.org/viewforum.php?f=52";
|
||||
}
|
||||
return "http://www.palemoon.org/sync/";
|
||||
]]></getter>
|
||||
</property>
|
||||
<method name="onCloseButtonCommand">
|
||||
<body><![CDATA[
|
||||
this._viewsLeft = 0;
|
||||
this.hidden = true;
|
||||
]]></body>
|
||||
</method>
|
||||
<method name="onLinkClick">
|
||||
<body><![CDATA[
|
||||
// Open a new selected tab and close the current panel.
|
||||
gBrowser.loadOneTab(this._promolink.getAttribute("href"),
|
||||
{ inBackground: false });
|
||||
this._panel.hidePopup();
|
||||
]]></body>
|
||||
</method>
|
||||
<method name="handleEvent">
|
||||
<parameter name="event"/>
|
||||
<body><![CDATA[
|
||||
if (event.type != "popupshowing" || event.target != this._panel)
|
||||
return;
|
||||
|
||||
// A previous notification may have unhidden this.
|
||||
this.hidden = true;
|
||||
|
||||
// Only handle supported notification panels.
|
||||
if (!this._notificationType) {
|
||||
return;
|
||||
}
|
||||
|
||||
let viewsLeft = this._viewsLeft;
|
||||
if (viewsLeft) {
|
||||
// XXX: Short-circuit this for now.
|
||||
// TO-DO: Clean up this code for sync promotion
|
||||
this._viewsLeft = 0;
|
||||
viewsLeft = 0;
|
||||
return;
|
||||
// XXX
|
||||
|
||||
if (Services.prefs.prefHasUserValue("services.sync.username") &&
|
||||
this._notificationType != "addons-sync-disabled") {
|
||||
// If the user has already setup Sync, don't show the notification.
|
||||
this._viewsLeft = 0;
|
||||
// Be sure to hide the panel, in case it was visible and the user
|
||||
// decided to setup Sync after noticing it.
|
||||
viewsLeft = 0;
|
||||
// The panel is still hidden, just bail out.
|
||||
return;
|
||||
}
|
||||
else {
|
||||
this._viewsLeft = viewsLeft - 1;
|
||||
}
|
||||
|
||||
this._promolink.setAttribute("href", this._notificationLink);
|
||||
this._promolink.value = gNavigatorBundle.getString("syncPromoNotification.learnMoreLinkText");
|
||||
|
||||
this.hidden = false;
|
||||
|
||||
// HACK: The description element doesn't wrap correctly in panels,
|
||||
// thus set a width on it, based on the available space, before
|
||||
// setting its textContent. Then set its height as well, to
|
||||
// fix wrong height calculation on Linux (bug 659578).
|
||||
this._panel.addEventListener("popupshown", function panelShown() {
|
||||
this._panel.removeEventListener("popupshown", panelShown, true);
|
||||
// Previous popupShown events may close the panel or change
|
||||
// its contents, so ensure this is still valid.
|
||||
if (this._panel.state != "open" || !this._notificationType)
|
||||
return;
|
||||
this._promomessage.width = this._promomessage.getBoundingClientRect().width;
|
||||
this._promomessage.firstChild.textContent = this._notificationMessage;
|
||||
this._promomessage.height = this._promomessage.getBoundingClientRect().height;
|
||||
}.bind(this), true);
|
||||
}
|
||||
]]></body>
|
||||
</method>
|
||||
</implementation>
|
||||
</binding>
|
||||
|
||||
<binding id="toolbarbutton-badged" display="xul:button"
|
||||
extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton">
|
||||
<content>
|
||||
<children includes="observes|template|menupopup|panel|tooltip"/>
|
||||
<xul:hbox class="toolbarbutton-badge-container" align="start" pack="end" flex="1">
|
||||
<xul:hbox class="toolbarbutton-badge" xbl:inherits="badge"/>
|
||||
<xul:stack class="toolbarbutton-badge-stack">
|
||||
<xul:image class="toolbarbutton-icon" xbl:inherits="validate,src=image,label"/>
|
||||
</xul:hbox>
|
||||
<xul:label class="toolbarbutton-badge" xbl:inherits="value=badge" top="0" end="0"/>
|
||||
</xul:stack>
|
||||
<xul:label class="toolbarbutton-text" crop="right" flex="1"
|
||||
xbl:inherits="value=label,accesskey,crop"/>
|
||||
</content>
|
||||
|
||||
@@ -53,6 +53,9 @@ browser.jar:
|
||||
content/browser/browser-title.css (content/browser-title.css)
|
||||
* content/browser/browser.js (content/browser.js)
|
||||
* content/browser/browser.xul (content/browser.xul)
|
||||
#ifdef MOZ_DEVTOOLS
|
||||
content/browser/browser-devtools-theme.js (content/browser-devtools-theme.js)
|
||||
#endif
|
||||
* content/browser/browser-tabPreviews.xml (content/browser-tabPreviews.xml)
|
||||
content/browser/content.js (content/content.js)
|
||||
content/browser/padlock.xul (content/padlock.xul)
|
||||
@@ -105,6 +108,8 @@ browser.jar:
|
||||
* content/browser/sanitize.xul (content/sanitize.xul)
|
||||
* content/browser/sanitizeDialog.js (content/sanitizeDialog.js)
|
||||
content/browser/sanitizeDialog.css (content/sanitizeDialog.css)
|
||||
* content/browser/autocomplete.css (content/autocomplete.css)
|
||||
* content/browser/autocomplete.xml (content/autocomplete.xml)
|
||||
content/browser/tabbrowser.css (content/tabbrowser.css)
|
||||
* content/browser/tabbrowser.xml (content/tabbrowser.xml)
|
||||
* content/browser/urlbarBindings.xml (content/urlbarBindings.xml)
|
||||
|
||||
@@ -4,4 +4,10 @@
|
||||
# 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/.
|
||||
|
||||
DIRS += ['content', 'locales']
|
||||
|
||||
DIST_SUBDIR = 'browser'
|
||||
export('DIST_SUBDIR')
|
||||
|
||||
include('../shared/branding.mozbuild')
|
||||
ApplicationBranding()
|
||||
@@ -8,6 +8,8 @@ pref("app.releaseNotesURL", "http://www.palemoon.org/releasenotes.shtml");
|
||||
|
||||
// Enable Firefox compatmode by default.
|
||||
pref("general.useragent.compatMode", 2);
|
||||
pref("general.useragent.compatMode.gecko", true);
|
||||
pref("general.useragent.compatMode.firefox", true);
|
||||
|
||||
// ========================= updates ========================
|
||||
#if defined(XP_WIN)
|
||||
|
||||
@@ -4,52 +4,55 @@
|
||||
# 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/.
|
||||
|
||||
DIRS += ['content', 'locales']
|
||||
|
||||
DIST_SUBDIR = 'browser'
|
||||
export('DIST_SUBDIR')
|
||||
|
||||
JS_PREFERENCE_FILES += [
|
||||
'pref/palemoon-branding.js',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||
FINAL_TARGET_FILES['..'] += [
|
||||
'palemoon.VisualElementsManifest.xml',
|
||||
]
|
||||
FINAL_TARGET_FILES.VisualElements += [
|
||||
'VisualElements_150.png',
|
||||
'VisualElements_70.png',
|
||||
]
|
||||
BRANDING_FILES += [
|
||||
'../shared/newtab.ico',
|
||||
'../shared/newwindow.ico',
|
||||
'../shared/pbmode.ico',
|
||||
'appname.bmp',
|
||||
'branding.nsi',
|
||||
'document.ico',
|
||||
'firefox.ico',
|
||||
'wizHeader.bmp',
|
||||
'wizHeaderRTL.bmp',
|
||||
'wizWatermark.bmp',
|
||||
]
|
||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
|
||||
BRANDING_FILES += [
|
||||
'../shared/background.png',
|
||||
'disk.icns',
|
||||
'document.icns',
|
||||
'dsstore',
|
||||
'firefox.icns',
|
||||
]
|
||||
elif CONFIG['MOZ_WIDGET_GTK']:
|
||||
BRANDING_FILES += [
|
||||
'default16.png',
|
||||
'default32.png',
|
||||
'default48.png',
|
||||
'mozicon128.png',
|
||||
@template
|
||||
def ApplicationBranding():
|
||||
JS_PREFERENCE_PP_FILES += [
|
||||
'pref/palemoon-branding.js',
|
||||
]
|
||||
|
||||
DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
|
||||
DEFINES['MOZ_BRANDING_DIRECTORY'] = CONFIG['MOZ_BRANDING_DIRECTORY']
|
||||
DEFINES['MOZILLA_UAVERSION_U'] = CONFIG['MOZILLA_UAVERSION_U']
|
||||
DEFINES['MOZILLA_COMPATVERSION_U'] = CONFIG['MOZILLA_COMPATVERSION_U']
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||
FINAL_TARGET_FILES['..'] += [
|
||||
'palemoon.VisualElementsManifest.xml',
|
||||
]
|
||||
FINAL_TARGET_FILES.VisualElements += [
|
||||
'VisualElements_150.png',
|
||||
'VisualElements_70.png',
|
||||
]
|
||||
BRANDING_FILES += [
|
||||
'../shared/newtab.ico',
|
||||
'../shared/newwindow.ico',
|
||||
'../shared/pbmode.ico',
|
||||
'appname.bmp',
|
||||
'branding.nsi',
|
||||
'document.ico',
|
||||
'firefox.ico',
|
||||
'wizHeader.bmp',
|
||||
'wizHeaderRTL.bmp',
|
||||
'wizWatermark.bmp',
|
||||
]
|
||||
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
|
||||
BRANDING_FILES += [
|
||||
'../shared/background.png',
|
||||
'disk.icns',
|
||||
'document.icns',
|
||||
'dsstore',
|
||||
'firefox.icns',
|
||||
]
|
||||
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
||||
BRANDING_FILES += [
|
||||
'default16.png',
|
||||
'default32.png',
|
||||
'default48.png',
|
||||
'mozicon128.png',
|
||||
]
|
||||
FINAL_TARGET_FILES.icons += ['mozicon128.png']
|
||||
FINAL_TARGET_FILES.chrome.icons.default += [
|
||||
'default16.png',
|
||||
'default32.png',
|
||||
'default48.png',
|
||||
]
|
||||
|
||||
DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION']
|
||||
DEFINES['MOZ_BRANDING_DIRECTORY'] = CONFIG['MOZ_BRANDING_DIRECTORY']
|
||||
DEFINES['MOZILLA_UAVERSION_U'] = CONFIG['MOZILLA_UAVERSION_U']
|
||||
DEFINES['MOZILLA_COMPATVERSION_U'] = "52.9"
|
||||
@@ -119,3 +119,11 @@ pref("browser.sessionstore.interval",60000); //every minute instead of every 10
|
||||
pref("accessibility.force_disabled", 1);
|
||||
|
||||
// ============================================================================
|
||||
|
||||
// ===| DevTools |=============================================================
|
||||
|
||||
// Number of usages of the web console or scratchpad.
|
||||
// If this is less than 5, then pasting code into the web console or scratchpad is disabled
|
||||
pref("devtools.selfxss.count", 100);
|
||||
|
||||
// ============================================================================
|
||||
@@ -36,6 +36,7 @@ pref("@GUAO_PREF@.yahoo.com","Mozilla/5.0 (@OS_SLICE@ rv:99.9) @GK_SLICE@ Firefo
|
||||
pref("@GUAO_PREF@.youtube.com","Mozilla/5.0 (@OS_SLICE@ rv:42.0) @GK_SLICE@ Firefox/42.0 @PM_SLICE@");
|
||||
pref("@GUAO_PREF@.gaming.youtube.com","Mozilla/5.0 (@OS_SLICE@ rv:42.0) @GK_SLICE@ Firefox/42.0");
|
||||
|
||||
pref("@GUAO_PREF@.dropbox.com","Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko");
|
||||
pref("@GUAO_PREF@.players.brightcove.net","Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko");
|
||||
|
||||
// The never-ending Facebook debacle...
|
||||
@@ -60,7 +61,6 @@ pref("@GUAO_PREF@.dailymotion.com","Mozilla/5.0 (@OS_SLICE@ rv:52.0) @GK_SLICE@
|
||||
// The following requires native mode. Or it blocks.. "too old firefox", breakage, etc.
|
||||
pref("@GUAO_PREF@.deviantart.com","Mozilla/5.0 (@OS_SLICE@ rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
|
||||
pref("@GUAO_PREF@.deviantart.net","Mozilla/5.0 (@OS_SLICE@ rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
|
||||
pref("@GUAO_PREF@.dropbox.com","Mozilla/5.0 (@OS_SLICE@ rv:@GRE_VERSION@) @GRE_DATE_SLICE@ @PM_SLICE@");
|
||||
|
||||
// UA-Sniffing domains below have indicated no interest in supporting Pale Moon (BOO!)
|
||||
pref("@GUAO_PREF@.humblebundle.com","Mozilla/5.0 (@OS_SLICE@ rv:@GK_VERSION@) @GK_SLICE@ @FX_SLICE@ (Pale Moon)");
|
||||
|
||||
@@ -4,4 +4,10 @@
|
||||
# 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/.
|
||||
|
||||
DIRS += ['content', 'locales']
|
||||
|
||||
DIST_SUBDIR = 'browser'
|
||||
export('DIST_SUBDIR')
|
||||
|
||||
include('../shared/branding.mozbuild')
|
||||
ApplicationBranding()
|
||||
@@ -4,4 +4,10 @@
|
||||
# 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/.
|
||||
|
||||
DIRS += ['content', 'locales']
|
||||
|
||||
DIST_SUBDIR = 'browser'
|
||||
export('DIST_SUBDIR')
|
||||
|
||||
include('../shared/branding.mozbuild')
|
||||
ApplicationBranding()
|
||||
@@ -8,6 +8,8 @@ pref("app.releaseNotesURL", "http://www.palemoon.org/unstable/releasenotes.shtml
|
||||
|
||||
// Enable Firefox compatmode by default.
|
||||
pref("general.useragent.compatMode", 2);
|
||||
pref("general.useragent.compatMode.gecko", true);
|
||||
pref("general.useragent.compatMode.firefox", true);
|
||||
|
||||
// ========================= updates ========================
|
||||
#if defined(XP_WIN)
|
||||
|
||||
@@ -3,40 +3,40 @@
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
installer:
|
||||
@$(MAKE) -C browser/installer installer
|
||||
@$(MAKE) -C application/palemoon/installer installer
|
||||
|
||||
package:
|
||||
@$(MAKE) -C browser/installer
|
||||
@$(MAKE) -C application/palemoon/installer
|
||||
|
||||
package-compare:
|
||||
@$(MAKE) -C browser/installer package-compare
|
||||
@$(MAKE) -C application/palemoon/installer package-compare
|
||||
|
||||
stage-package:
|
||||
@$(MAKE) -C browser/installer stage-package
|
||||
@$(MAKE) -C application/palemoon/installer stage-package
|
||||
|
||||
install::
|
||||
@$(MAKE) -C browser/installer install
|
||||
@$(MAKE) -C application/palemoon/installer install
|
||||
|
||||
clean::
|
||||
@$(MAKE) -C browser/installer clean
|
||||
@$(MAKE) -C application/palemoon/installer clean
|
||||
|
||||
distclean::
|
||||
@$(MAKE) -C browser/installer distclean
|
||||
@$(MAKE) -C application/palemoon/installer distclean
|
||||
|
||||
source-package::
|
||||
@$(MAKE) -C browser/installer source-package
|
||||
@$(MAKE) -C application/palemoon/installer source-package
|
||||
|
||||
upload::
|
||||
@$(MAKE) -C browser/installer upload
|
||||
@$(MAKE) -C application/palemoon/installer upload
|
||||
|
||||
source-upload::
|
||||
@$(MAKE) -C browser/installer source-upload
|
||||
@$(MAKE) -C application/palemoon/installer source-upload
|
||||
|
||||
hg-bundle::
|
||||
@$(MAKE) -C browser/installer hg-bundle
|
||||
@$(MAKE) -C application/palemoon/installer hg-bundle
|
||||
|
||||
l10n-check::
|
||||
@$(MAKE) -C browser/locales l10n-check
|
||||
@$(MAKE) -C application/palemoon/locales l10n-check
|
||||
|
||||
ifdef ENABLE_TESTS
|
||||
# Implemented in testing/testsuite-targets.mk
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
#include "nsNetUtil.h"
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "mozilla/ArrayUtils.h"
|
||||
#include "nsDOMString.h"
|
||||
|
||||
|
||||
namespace mozilla {
|
||||
namespace browser {
|
||||
@@ -21,7 +19,6 @@ struct RedirEntry {
|
||||
const char* id;
|
||||
const char* url;
|
||||
uint32_t flags;
|
||||
const char* idbOriginPostfix;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -33,17 +30,47 @@ struct RedirEntry {
|
||||
URI_SAFE_FOR_UNTRUSTED_CONTENT.
|
||||
*/
|
||||
static RedirEntry kRedirMap[] = {
|
||||
{ "certerror", "chrome://browser/content/certerror/aboutCertError.xhtml",
|
||||
{
|
||||
"certerror", "chrome://browser/content/certerror/aboutCertError.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::ALLOW_SCRIPT |
|
||||
nsIAboutModule::HIDE_FROM_ABOUTABOUT },
|
||||
{ "feeds", "chrome://browser/content/feeds/subscribe.xhtml",
|
||||
nsIAboutModule::HIDE_FROM_ABOUTABOUT
|
||||
},
|
||||
{
|
||||
"downloads", "chrome://browser/content/downloads/contentAreaDownloadsView.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"feeds", "chrome://browser/content/feeds/subscribe.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::ALLOW_SCRIPT |
|
||||
nsIAboutModule::HIDE_FROM_ABOUTABOUT },
|
||||
{ "privatebrowsing", "chrome://browser/content/aboutPrivateBrowsing.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "rights",
|
||||
nsIAboutModule::HIDE_FROM_ABOUTABOUT
|
||||
},
|
||||
{
|
||||
"home", "chrome://browser/content/abouthome/aboutHome.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::MAKE_LINKABLE |
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"newtab", "chrome://browser/content/newtab/newTab.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"palemoon", "chrome://global/content/memoriam.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::HIDE_FROM_ABOUTABOUT
|
||||
},
|
||||
{
|
||||
"permissions", "chrome://browser/content/preferences/aboutPermissions.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"privatebrowsing", "chrome://browser/content/aboutPrivateBrowsing.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"rights",
|
||||
#ifdef MOZ_OFFICIAL_BRANDING
|
||||
"chrome://global/content/aboutRights.xhtml",
|
||||
#else
|
||||
@@ -51,34 +78,27 @@ static RedirEntry kRedirMap[] = {
|
||||
#endif
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::MAKE_LINKABLE |
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "palemoon", "chrome://global/content/palemoon.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"robots", "chrome://browser/content/aboutRobots.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::HIDE_FROM_ABOUTABOUT },
|
||||
{ "logopage", "chrome://global/content/logopage.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::HIDE_FROM_ABOUTABOUT },
|
||||
{ "robots", "chrome://browser/content/aboutRobots.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "sessionrestore", "chrome://browser/content/aboutSessionRestore.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"sessionrestore", "chrome://browser/content/aboutSessionRestore.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
#ifdef MOZ_SERVICES_SYNC
|
||||
{ "sync-progress", "chrome://browser/content/sync/progress.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "sync-tabs", "chrome://browser/content/sync/aboutSyncTabs.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{
|
||||
"sync-progress", "chrome://browser/content/sync/progress.xhtml",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
{
|
||||
"sync-tabs", "chrome://browser/content/sync/aboutSyncTabs.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT
|
||||
},
|
||||
#endif
|
||||
{ "home", "chrome://browser/content/abouthome/aboutHome.xhtml",
|
||||
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
|
||||
nsIAboutModule::MAKE_LINKABLE |
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "newtab", "chrome://browser/content/newtab/newTab.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "permissions", "chrome://browser/content/preferences/aboutPermissions.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
{ "downloads", "chrome://browser/content/downloads/contentAreaDownloadsView.xul",
|
||||
nsIAboutModule::ALLOW_SCRIPT },
|
||||
};
|
||||
static const int kRedirTotal = ArrayLength(kRedirMap);
|
||||
|
||||
@@ -148,30 +168,6 @@ AboutRedirector::GetURIFlags(nsIURI *aURI, uint32_t *result)
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
AboutRedirector::GetIndexedDBOriginPostfix(nsIURI *aURI, nsAString &result)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aURI);
|
||||
|
||||
nsAutoCString name = GetAboutModuleName(aURI);
|
||||
|
||||
for (int i = 0; i < kRedirTotal; i++) {
|
||||
if (name.Equals(kRedirMap[i].id)) {
|
||||
const char* postfix = kRedirMap[i].idbOriginPostfix;
|
||||
if (!postfix) {
|
||||
break;
|
||||
}
|
||||
|
||||
result.AssignASCII(postfix);
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
||||
SetDOMStringToNull(result);
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
}
|
||||
|
||||
|
||||
nsresult
|
||||
AboutRedirector::Create(nsISupports *aOuter, REFNSIID aIID, void **result)
|
||||
{
|
||||
|
||||
@@ -18,17 +18,22 @@ LOCAL_INCLUDES += [
|
||||
'../about',
|
||||
'../dirprovider',
|
||||
'../feeds',
|
||||
'../migration',
|
||||
'../shell',
|
||||
]
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
OS_LIBS += [
|
||||
'esent',
|
||||
'netapi32',
|
||||
'ole32',
|
||||
'shell32',
|
||||
'shlwapi',
|
||||
'version',
|
||||
]
|
||||
DELAYLOAD_DLLS += [
|
||||
'esent.dll',
|
||||
'netapi32.dll',
|
||||
]
|
||||
|
||||
# Mac: Need to link with CoreFoundation for Mac Migrators (PList reading code)
|
||||
# GTK2: Need to link with glib for GNOME shell service
|
||||
|
||||
@@ -4,14 +4,6 @@
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef XP_WIN
|
||||
#define NS_WINIEHISTORYENUMERATOR_CID \
|
||||
{ 0x93480624, 0x806e, 0x4756, { 0xb7, 0xcb, 0x0f, 0xb7, 0xdd, 0x74, 0x6a, 0x8f } }
|
||||
|
||||
#define NS_IEHISTORYENUMERATOR_CONTRACTID \
|
||||
"@mozilla.org/profile/migrator/iehistoryenumerator;1"
|
||||
#endif
|
||||
|
||||
#define NS_SHELLSERVICE_CID \
|
||||
{ 0x63c7b9f4, 0xcc8, 0x43f8, { 0xb6, 0x66, 0xa, 0x66, 0x16, 0x55, 0xcb, 0x73 } }
|
||||
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
#include "nsGNOMEShellService.h"
|
||||
#endif
|
||||
|
||||
#if defined(XP_WIN)
|
||||
#include "nsIEHistoryEnumerator.h"
|
||||
#endif
|
||||
|
||||
#include "rdf.h"
|
||||
#include "nsFeedSniffer.h"
|
||||
#include "AboutRedirector.h"
|
||||
@@ -40,10 +36,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
|
||||
#endif
|
||||
|
||||
#if defined(XP_WIN)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator)
|
||||
#endif
|
||||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer)
|
||||
|
||||
NS_DEFINE_NAMED_CID(NS_BROWSERDIRECTORYPROVIDER_CID);
|
||||
@@ -54,9 +46,7 @@ NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
|
||||
#endif
|
||||
NS_DEFINE_NAMED_CID(NS_FEEDSNIFFER_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_BROWSER_ABOUT_REDIRECTOR_CID);
|
||||
#if defined(XP_WIN)
|
||||
NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUMERATOR_CID);
|
||||
#elif defined(XP_MACOSX)
|
||||
#ifdef XP_MACOSX
|
||||
NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID);
|
||||
#endif
|
||||
|
||||
@@ -69,9 +59,7 @@ static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
|
||||
#endif
|
||||
{ &kNS_FEEDSNIFFER_CID, false, nullptr, nsFeedSnifferConstructor },
|
||||
{ &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, nullptr, AboutRedirector::Create },
|
||||
#if defined(XP_WIN)
|
||||
{ &kNS_WINIEHISTORYENUMERATOR_CID, false, nullptr, nsIEHistoryEnumeratorConstructor },
|
||||
#elif defined(XP_MACOSX)
|
||||
#ifdef XP_MACOSX
|
||||
{ &kNS_SHELLSERVICE_CID, false, nullptr, nsMacShellServiceConstructor },
|
||||
#endif
|
||||
{ nullptr }
|
||||
@@ -91,7 +79,6 @@ static const mozilla::Module::ContractIDEntry kBrowserContracts[] = {
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "privatebrowsing", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "rights", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "palemoon", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "logopage", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "robots", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "sessionrestore", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
#ifdef MOZ_SERVICES_SYNC
|
||||
@@ -102,9 +89,7 @@ static const mozilla::Module::ContractIDEntry kBrowserContracts[] = {
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "newtab", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "permissions", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
{ NS_ABOUT_MODULE_CONTRACTID_PREFIX "downloads", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
|
||||
#if defined(XP_WIN)
|
||||
{ NS_IEHISTORYENUMERATOR_CONTRACTID, &kNS_WINIEHISTORYENUMERATOR_CID },
|
||||
#elif defined(XP_MACOSX)
|
||||
#ifdef XP_MACOSX
|
||||
{ NS_SHELLSERVICE_CONTRACTID, &kNS_SHELLSERVICE_CID },
|
||||
#endif
|
||||
{ nullptr }
|
||||
|
||||
Loaded 100 of 3102 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user