forked from upstream/UXP-mirror
Compare commits
955
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d6a7ae25d | ||
|
|
69ac2db129 | ||
|
|
9a97c58feb | ||
|
|
698b659ee2 | ||
|
|
43642846e2 | ||
|
|
f506d6fcaa | ||
|
|
4411befc8e | ||
|
|
eca7e648bf | ||
|
|
42f8488a5f | ||
|
|
6c3f95480a | ||
|
|
7c4d50dccf | ||
|
|
fba28f1975 | ||
|
|
b4154e043b | ||
|
|
b069dabc91 | ||
|
|
9349f7f29e | ||
|
|
fe8155c118 | ||
|
|
fcfd61829a | ||
|
|
a203f449bb | ||
|
|
acd4eee44e | ||
|
|
eae8d21428 | ||
|
|
f7edee79a1 | ||
|
|
d0e748cada | ||
|
|
bf901ae222 | ||
|
|
dca75f84eb | ||
|
|
2f87463ea3 | ||
|
|
401a0e12af | ||
|
|
810a3245a8 | ||
|
|
444b1a26ab | ||
|
|
1b0a03a2e1 | ||
|
|
844da2ccc6 | ||
|
|
70c2ad9f47 | ||
|
|
9b88e7cf78 | ||
|
|
846bbb9930 | ||
|
|
c80777a81c | ||
|
|
bb87aeab9a | ||
|
|
ce197c4e52 | ||
|
|
1697d6456f | ||
|
|
2f5ced80c4 | ||
|
|
11063e9720 | ||
|
|
765fc0b0e2 | ||
|
|
27e021136b | ||
|
|
6662cdbeb3 | ||
|
|
681c39a0ec | ||
|
|
31187065d9 | ||
|
|
be2b3635ad | ||
|
|
bccb9c1708 | ||
|
|
d9d3b687b7 | ||
|
|
1ea8529cfb | ||
|
|
8ed46f424e | ||
|
|
8ffac11aa6 | ||
|
|
f5618cd8e9 | ||
|
|
3b55277bc5 | ||
|
|
d220a5e6aa | ||
|
|
531abf2551 | ||
|
|
0a9acadcca | ||
|
|
9957290b5a | ||
|
|
c3ec00a152 | ||
|
|
b9ecf99332 | ||
|
|
ace6085fea | ||
|
|
e2649bc086 | ||
|
|
1916969baa | ||
|
|
3c48cc8509 | ||
|
|
ccbd5ecf57 | ||
|
|
30621a6307 | ||
|
|
115cf1e322 | ||
|
|
13f3978a14 | ||
|
|
ee4f7c4aa1 | ||
|
|
f5545f8af2 | ||
|
|
49989d0f01 | ||
|
|
d3575bfb5b | ||
|
|
5d9ae788d5 | ||
|
|
b73225e886 | ||
|
|
5b0f4649b3 | ||
|
|
2e33335820 | ||
|
|
29bd11c3cd | ||
|
|
dbfad99a51 | ||
|
|
8af1b0c22a | ||
|
|
55eb2832f5 | ||
|
|
95c4608241 | ||
|
|
a38e87d455 | ||
|
|
660d01438a | ||
|
|
8ae405b693 | ||
|
|
eb25a9bd70 | ||
|
|
3dbe5b2d7b | ||
|
|
420458002d | ||
|
|
7ab45761af | ||
|
|
f1e5578718 | ||
|
|
1b4c4256ee | ||
|
|
003273327d | ||
|
|
c30ebdac27 | ||
|
|
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'
|
||||
@@ -0,0 +1,86 @@
|
||||
# Code contribution guidelines
|
||||
|
||||
To make sure code changes remain easy to organize, find and troubleshoot, please use the following guidelines when contributing code to the Pale Moon project (and UXP). These guidelines may, for some of you, sound tedious or more work than you'd prefer to put in, but keep in mind that a single paragraph of explanation with a code commit can save hours of work later on, and code comments can save your hide when trying to debug or improve code.
|
||||
|
||||
## General guideline for issues
|
||||
|
||||
Issues are the main drivers behind getting code changes accepted into our source tree. Issues should be opened, and properly labeled, for any of the following:
|
||||
- Code bugs (broken functionality)
|
||||
- Regressions (functionality that worked before but has either stopped working, is working in a different way than intended, or e.g. has become poorly performing)
|
||||
- Enhancements (new code/features)
|
||||
- Improvements (better/improved way of existing functionality)
|
||||
- General development direction goals (META issues)
|
||||
|
||||
Labels should mostly be assigned to issues, not pull requests (PRs).
|
||||
|
||||
Issues opened should, where possible, only address one thing at a time. Never roll multiple bugs or enhancements that aren't directly required to be done at the same time into a single issue.
|
||||
|
||||
Issues should include:
|
||||
### For bugs
|
||||
- Description of the bug
|
||||
- Affected versions/features
|
||||
- Steps to reproduce the bug
|
||||
- Expected result when performing the steps
|
||||
- Actual result when performing the steps
|
||||
### For regressions
|
||||
- Description of the regression
|
||||
- Affected versions/features
|
||||
- What the previous behavior was
|
||||
- What the current (incorrect) behavior is
|
||||
### For enhancements and improvements
|
||||
- Description of the enhancement
|
||||
- Background: why is this needed or desired?
|
||||
- Impact of the enhancement/improvement
|
||||
### META issues
|
||||
- A general description, including **what** and **why** should be tackled
|
||||
- Links from the individual components of the META goal (by referencing from the actual individual issues)
|
||||
For META issues it is important that discussion about specific implementation parts are in the individual component issues and not in the META issue, so it can keep a quick overview of linked components that need to be tackled.
|
||||
|
||||
|
||||
## General guideline for submitting pull requests
|
||||
|
||||
Most of our code changes will likely be submitted by collaborators from our community. This will be ported from other projects (e.g. Mozilla-based code) or new implementations, or a mix. The standard way of getting your code into Pale Moon or UXP is by way of creating a pull request against the master branch (trunk).
|
||||
|
||||
A good pull request will:
|
||||
- **Have an issue associated with it!** Even though GitHub offers very similar tools for PRs as it does for issues, any reasoning behind code commits in a PR have to be explained in an accompanying issue.
|
||||
- Describe in detail **what** the code change attempts to achieve, and **how** it achieves this. If you have references to external sources, e.g. if your code is based on specific code from Mozilla, then including them is of course excellent, but it's important to provide a clear description alongside it.
|
||||
- Not just be a list of links or references. See the previous point. References are OK but do not provide a reason by themselves for a code change. Especially with porting code across from other projects, it is important to keep PRs and explanations in our tree and not dependent on third-party sources.
|
||||
- Verify that the code is exactly catered to our tree and in line with our feature set(s) and direction. Just 'porting something across because it is in other browsers" is not a reason or justification by itself. If needed, discuss the **why** for a code change in the attached issue before putting work into a PR that may otherwise be rejected.
|
||||
- Only address one bug, issue or enhancement. It is extremely important to keep individual code commits separate so that in case of back-outs, this can be done in a controlled and isolated manner.
|
||||
- If there are dependencies on other code being checked in, it is important that the PR lists exactly which other PRs need to be checked in first before the one in question can be merged. If at all possible, keep PR interdependency to a minimum.
|
||||
|
||||
The odd small minor one-liner pull request may not need an issue dedicated to it, but when it comes to modifying and refactoring chunks of many files, then yes it would be not only nice, but required, to have a chance to have discussion about it before it is accepted into the tree.
|
||||
|
||||
PRs that encompass major code changes or touch many files or functions should preferably get a review. Reviewing can be volunteered or requested.
|
||||
|
||||
## Code Style
|
||||
|
||||
Because our software encompasses many components of which a good portion is third-party, code style can vary significantly throughout our code base. It's therefore important to keep code as consistent as possible.
|
||||
|
||||
Important when editing/adding code:
|
||||
|
||||
1. Stick to the style of surrounding code. If you're editing code in a module that deviates from our generally-used code style, don't mix in generally-used code style with the deviating code style. E.g. if a source file uses tabs everywhere, and you edit this code, also use tabs. If you feel code style should be rewritten to improve legibility, preferably create a separate issue to change it and do not roll it in with functional code changes!
|
||||
2. Use the following guideline where there's no clear deviating style in use:
|
||||
- Put opening function/scope braces at the end of the line.
|
||||
- Align closing braces with the indentation of the first character of the function/scope
|
||||
- Use a line cap of 80 characters. Put continuations on the next line if it overflows.
|
||||
- Use spaces for indentation, and indent scopes 2 spaces.
|
||||
Example:
|
||||
```C++
|
||||
nsSVGFilterFrame*
|
||||
nsSVGFilterFrame::GetReferencedFilterIfNotInUse() {
|
||||
nsSVGFilterFrame* referenced = GetReferencedFilter();
|
||||
if (!referenced)
|
||||
return nullptr;
|
||||
|
||||
if (referenced->mLoopFlag) {
|
||||
// XXXjwatt: we should really send an error to the JavaScript Console here:
|
||||
NS_WARNING("Filter reference loop detected while inheriting attribute!");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return referenced;
|
||||
}
|
||||
```
|
||||
3. Comment your code where prudent! Documenting what you're doing, especially in a complex piece of code, is very important to keep it easy to debug.
|
||||
4. Try not to write "as compact as possible" source code. Many languages have facilities to write very compact source code by gluing a lot of statements together on single lines, but you should avoid this to keep it readable. Other people than yourself will be looking at and trying to understand your code, and it's important to keep proper paragraphing, whitespace and above all logical names for variables and functions.
|
||||
-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));
|
||||
},
|
||||
|
||||
@@ -901,11 +909,15 @@ nsContextMenu.prototype = {
|
||||
Ci.nsIScriptSecurityManager.DISALLOW_SCRIPT);
|
||||
let doc = this.target.ownerDocument;
|
||||
openUILink(viewURL, e, { disallowInheritPrincipal: true,
|
||||
referrerURI: doc.documentURIObject });
|
||||
referrerURI: doc.documentURIObject,
|
||||
forceAllowDataURI: true });
|
||||
}
|
||||
},
|
||||
|
||||
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 +935,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 +1120,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 +1163,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 +1195,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 +1212,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 +1398,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 = {
|
||||
@@ -148,7 +148,8 @@ Sanitizer.prototype = {
|
||||
|
||||
if (cookie.creationTime > this.range[0])
|
||||
// This cookie was created after our cutoff, clear it
|
||||
cookieMgr.remove(cookie.host, cookie.name, cookie.path, false);
|
||||
cookieMgr.remove(cookie.host, cookie.name, cookie.path,
|
||||
false, cookie.originAttributes);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -213,10 +214,16 @@ Sanitizer.prototype = {
|
||||
history: {
|
||||
clear: function ()
|
||||
{
|
||||
if (this.range)
|
||||
PlacesUtils.history.removeVisitsByTimeframe(this.range[0], this.range[1]);
|
||||
else
|
||||
PlacesUtils.history.removeAllPages();
|
||||
if (this.range) {
|
||||
PlacesUtils.history.removeVisitsByFilter({
|
||||
beginDate: new Date(this.range[0] / 1000),
|
||||
endDate: new Date(this.range[1] / 1000)
|
||||
}).catch(Components.utils.reportError);;
|
||||
} else {
|
||||
// Remove everything.
|
||||
PlacesUtils.history.clear()
|
||||
.catch(Components.utils.reportError);
|
||||
}
|
||||
|
||||
try {
|
||||
var os = Components.classes["@mozilla.org/observer-service;1"]
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -205,6 +205,7 @@ function openUILinkIn(url, where, aAllowThirdPartyFixup, aPostData, aReferrerURI
|
||||
openLinkIn(url, where, params);
|
||||
}
|
||||
|
||||
/* eslint-disable complexity */
|
||||
function openLinkIn(url, where, params) {
|
||||
if (!where || !url)
|
||||
return;
|
||||
@@ -215,6 +216,7 @@ function openLinkIn(url, where, params) {
|
||||
var aCharset = params.charset;
|
||||
var aReferrerURI = params.referrerURI;
|
||||
var aRelatedToCurrent = params.relatedToCurrent;
|
||||
var aForceAllowDataURI = params.forceAllowDataURI;
|
||||
var aInBackground = params.inBackground;
|
||||
var aDisallowInheritPrincipal = params.disallowInheritPrincipal;
|
||||
var aInitiatingDoc = params.initiatingDoc;
|
||||
@@ -315,6 +317,9 @@ function openLinkIn(url, where, params) {
|
||||
}
|
||||
if (aDisallowInheritPrincipal)
|
||||
flags |= Ci.nsIWebNavigation.LOAD_FLAGS_DISALLOW_INHERIT_OWNER;
|
||||
if (aForceAllowDataURI) {
|
||||
flags |= Ci.nsIWebNavigation.LOAD_FLAGS_FORCE_ALLOW_DATA_URI;
|
||||
}
|
||||
w.gBrowser.loadURIWithFlags(url, flags, aReferrerURI, null, aPostData);
|
||||
break;
|
||||
case "tabshifted":
|
||||
|
||||
@@ -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
|
||||
|
||||
Loaded 100 of 2824 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user