mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Compare commits
742 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a29e9a3611 | ||
|
481a82af37 | ||
|
03f933676a | ||
|
8bb770500e | ||
|
fc87911e98 | ||
|
a717e440aa | ||
|
8856df480e | ||
|
ca81ee15f8 | ||
|
315d248d53 | ||
|
dd613a387b | ||
|
68f4b0c134 | ||
|
bbf40c7646 | ||
|
04acc3ebc4 | ||
|
9a70877443 | ||
|
be119b4c9a | ||
|
cc1b6ac609 | ||
|
4578ec8d19 | ||
|
4dd4abc3c2 | ||
|
c3aa36323b | ||
|
a1ba0c9166 | ||
|
e618f44667 | ||
|
9e296bde3c | ||
|
015e3621a3 | ||
|
cae194f493 | ||
|
4fbd247231 | ||
|
e94a261bf5 | ||
|
9022d40e6a | ||
|
38d8acfa18 | ||
|
7ca9e9c54b | ||
|
64c561f0bd | ||
|
f2c0c3f8fb | ||
|
5f9bd3ecbd | ||
|
8796d3cd95 | ||
|
cc56720bd2 | ||
|
88faf1023a | ||
|
42f517ec69 | ||
|
4791109a28 | ||
|
19391d8ab0 | ||
|
59a779c38a | ||
|
b579b37db4 | ||
|
4aad5f23a0 | ||
|
e6047bd54b | ||
|
24c2f2fa38 | ||
|
6b1e5335bc | ||
|
2e94bfafea | ||
|
b09cd1a197 | ||
|
d63e5bbd8a | ||
|
6337aa6fad | ||
|
08ebbb395a | ||
|
87c8a72831 | ||
|
11f37bc6eb | ||
|
a5d88d697a | ||
|
f89c0d74dd | ||
|
9e60357fc8 | ||
|
75e0f9f60e | ||
|
9717d3e1da | ||
|
b822ea43b9 | ||
|
ac99621829 | ||
|
99d66db930 | ||
|
c27fceb7de | ||
|
845322b5fb | ||
|
ef7e98c616 | ||
|
a3919cb0ec | ||
|
034bd641de | ||
|
ca1c00f95d | ||
|
0add3eaacb | ||
|
574d4dcedc | ||
|
82d6bcbbea | ||
|
e87fedd27c | ||
|
fab2af8876 | ||
|
e8573173dd | ||
|
13e3c8b42a | ||
|
280c9127c1 | ||
|
6573df6cc3 | ||
|
03c9156c80 | ||
|
02cdf05848 | ||
|
e9bf3cdb98 | ||
|
6cb9f0c695 | ||
|
6152d68b6a | ||
|
88b88251e7 | ||
|
48fc0bd220 | ||
|
619f18fea0 | ||
|
7b518511df | ||
|
5c1118230d | ||
|
0dfefe391c | ||
|
b3a8da9b25 | ||
|
84f3ff2afd | ||
|
f5587b74f0 | ||
|
1174994211 | ||
|
049caf9131 | ||
|
39aed35644 | ||
|
a9aef28966 | ||
|
790d248111 | ||
|
640cd0f411 | ||
|
cfe8e320be | ||
|
5780bf40d4 | ||
|
31d3e88d32 | ||
|
7ecaa8afdd | ||
|
8c996d2efd | ||
|
d8b4281c06 | ||
|
c82eb3e80f | ||
|
14571658a2 | ||
|
aa4473e2c6 | ||
|
9deef4189c | ||
|
25d81e0f1d | ||
|
70590a759d | ||
|
8d01442d75 | ||
|
d65483ae16 | ||
|
7c6e53ddfb | ||
|
ff0c36b465 | ||
|
dafce45e49 | ||
|
be6af15754 | ||
|
cbc0625272 | ||
|
fd1f465fa7 | ||
|
8ed39e4ae5 | ||
|
3adb801ca8 | ||
|
ccf7b28723 | ||
|
e876217e24 | ||
|
ec0c57d0e1 | ||
|
87a7c4f94b | ||
|
27257d0288 | ||
|
245bc9bfab | ||
|
fa519f5108 | ||
|
30d83cb94a | ||
|
f5c79bf50c | ||
|
ea1324a9f1 | ||
|
261a8899fc | ||
|
a5de549456 | ||
|
bdaa857c49 | ||
|
1c14900093 | ||
|
01f385a6f7 | ||
|
cf6b57d659 | ||
|
f742ab4994 | ||
|
cfac1c347c | ||
|
047e8f9349 | ||
|
3d87a68561 | ||
|
66433c1869 | ||
|
869ae21c9f | ||
|
03fd5b15da | ||
|
fecd582035 | ||
|
180e9bd362 | ||
|
2fbb6ba1e9 | ||
|
51e12b3866 | ||
|
a6f9d78c1c | ||
|
8cf82c24dc | ||
|
438382c5df | ||
|
1ab44722e8 | ||
|
4291776473 | ||
|
06a5ef3cd8 | ||
|
9d9ee8b45f | ||
|
a22b670a00 | ||
|
8c6cc302d0 | ||
|
afcee77abe | ||
|
294eb75355 | ||
|
e472228f29 | ||
|
fb925e7aa5 | ||
|
a141082b91 | ||
|
71768ea6c3 | ||
|
ed39922f85 | ||
|
1da3f71357 | ||
|
c3d4f24720 | ||
|
9df4a54308 | ||
|
492c6c6843 | ||
|
a12c2ab3e1 | ||
|
f2f6ae4f29 | ||
|
679850a267 | ||
|
c90b65a72c | ||
|
d02d252690 | ||
|
b785d34d29 | ||
|
f5eef5390a | ||
|
97d559982e | ||
|
7a701546e1 | ||
|
ea63799c3e | ||
|
c05c3e4065 | ||
|
c629c5bb59 | ||
|
53b98a5022 | ||
|
f0347f0589 | ||
|
06a5a5bb36 | ||
|
08f6cbb675 | ||
|
1a406d079b | ||
|
3afa29d499 | ||
|
b98f142e0e | ||
|
894ac21532 | ||
|
e1132672ee | ||
|
15226b9332 | ||
|
1b85022c58 | ||
|
dbc479e490 | ||
|
5792cea985 | ||
|
16e8710a81 | ||
|
503ec7c2e6 | ||
|
11ee7e984c | ||
|
8d0ae1f894 | ||
|
95daea76fc | ||
|
8ca0b4580e | ||
|
80fc651d7e | ||
|
0f944cdc55 | ||
|
7653e9e04c | ||
|
7c866328e0 | ||
|
0d4879763a | ||
|
440dbfb6df | ||
|
875b202cbb | ||
|
beb005138a | ||
|
a94dc6a058 | ||
|
1c88c74f86 | ||
|
dfcfb51bef | ||
|
49786ccc34 | ||
|
c4284b2938 | ||
|
a90c9f9c3e | ||
|
bb006b46e6 | ||
|
f9706f260a | ||
|
319de22d89 | ||
|
115f760821 | ||
|
b9fc93955c | ||
|
f2756b5318 | ||
|
3a8778e2f8 | ||
|
58e17b3cdc | ||
|
cc6f285abd | ||
|
04c9bcd802 | ||
|
c8d0813669 | ||
|
9b9a9f359e | ||
|
b51a4de540 | ||
|
65f97a60ad | ||
|
4f07cba011 | ||
|
aad4bf2464 | ||
|
329facfbdf | ||
|
a4b6ef577e | ||
|
01e75761d3 | ||
|
737ff18498 | ||
|
d28efe8797 | ||
|
b560f04046 | ||
|
066762217f | ||
|
1a661a2d15 | ||
|
aefe9a4195 | ||
|
1d515adc22 | ||
|
9cdda243a1 | ||
|
22746985f2 | ||
|
76368bda60 | ||
|
88ecf49549 | ||
|
e7b66aa43a | ||
|
152141d7f4 | ||
|
466f5e23db | ||
|
eea1f6be63 | ||
|
5da1649653 | ||
|
c0af145165 | ||
|
a8283d1cc3 | ||
|
cc0530cbf6 | ||
|
a8263b1b4f | ||
|
bc5cbcf39b | ||
|
729b3f0a8f | ||
|
52c24ed061 | ||
|
ba1b4a41a9 | ||
|
f8e0797773 | ||
|
c8b457da38 | ||
|
e3723dcda5 | ||
|
46d3a81ba0 | ||
|
b6b033a52b | ||
|
98527317a8 | ||
|
8f0a202e0c | ||
|
5574d1c32f | ||
|
cfb4309479 | ||
|
91f48c5588 | ||
|
67b61c4af9 | ||
|
ccb06ce3cb | ||
|
2d8d064ce8 | ||
|
4c70c67042 | ||
|
d82624411e | ||
|
1d3b911b16 | ||
|
c038bf8198 | ||
|
30cc80efe3 | ||
|
ea9bd50fca | ||
|
15fc7e58a8 | ||
|
e57acace0b | ||
|
a697464a33 | ||
|
42b259d124 | ||
|
1fd1b320c2 | ||
|
1669c0afbd | ||
|
cf87c88b05 | ||
|
fafe7a7cfc | ||
|
99c27f57b1 | ||
|
367c6eb704 | ||
|
1086495096 | ||
|
17ec55a3b3 | ||
|
3f1ebebde5 | ||
|
ac2cc54e13 | ||
|
cc0db5f166 | ||
|
5892ffc382 | ||
|
45329d05a5 | ||
|
02a6b3bb38 | ||
|
732a307c75 | ||
|
b03a419c6b | ||
|
ba08c21517 | ||
|
81064faac3 | ||
|
f0c82200ba | ||
|
c3c3af34fd | ||
|
dd04583dcb | ||
|
0b7c0be29a | ||
|
d277dcd5d7 | ||
|
939e9f40b5 | ||
|
6546556a14 | ||
|
6193d8c554 | ||
|
ab6fd322d1 | ||
|
7e742f6e1f | ||
|
fa5268fa2d | ||
|
fd80e5c653 | ||
|
2814054863 | ||
|
241941a44a | ||
|
35295d2e27 | ||
|
6011d45e38 | ||
|
9ddb013875 | ||
|
e5c7fd1c55 | ||
|
99eebd00c4 | ||
|
bddf2a311b | ||
|
9a30f05f80 | ||
|
2ea173a254 | ||
|
ba0e1b5719 | ||
|
f9b042c375 | ||
|
c7701b8a61 | ||
|
03c1c21fd3 | ||
|
473c29a70d | ||
|
ad4ce5f441 | ||
|
ef06407da6 | ||
|
bbabccf9aa | ||
|
3827f817c7 | ||
|
8b400331c7 | ||
|
cef882616b | ||
|
4592cba19f | ||
|
b1018ad64b | ||
|
5ce52bd775 | ||
|
0193a3fe54 | ||
|
fb0133cd4b | ||
|
370cc028cb | ||
|
9fd6c8a1ee | ||
|
4e089766a5 | ||
|
cc80175e89 | ||
|
8a4f4bff9b | ||
|
2ace33f8b7 | ||
|
edd9efd1b3 | ||
|
8f240861e3 | ||
|
019611c764 | ||
|
491253fa03 | ||
|
07863c0d46 | ||
|
879911b721 | ||
|
1beec23065 | ||
|
5623338662 | ||
|
941d53ebfd | ||
|
9ce29e8ec5 | ||
|
aa42db6e25 | ||
|
04e2728dc2 | ||
|
b949d86c40 | ||
|
85c34c4dcf | ||
|
b65f336f81 | ||
|
9b43d265c3 | ||
|
ea27dff338 | ||
|
a23e845244 | ||
|
6b2c1fe969 | ||
|
af349ade33 | ||
|
b3468451f5 | ||
|
48f7c67587 | ||
|
e5568118ac | ||
|
a48e072076 | ||
|
531df6eaba | ||
|
64ad8c32f2 | ||
|
d8845b88f4 | ||
|
e7d8dd5ef7 | ||
|
1b9bc33bcf | ||
|
a4f0b4c5fb | ||
|
872f25dcc6 | ||
|
2a40650926 | ||
|
a76f40eb83 | ||
|
725ed88529 | ||
|
58e1149c71 | ||
|
7b5d30e9a9 | ||
|
4cbcb4615a | ||
|
602c163127 | ||
|
feffedbae9 | ||
|
18ef4f72c7 | ||
|
34db87563e | ||
|
658bf2834a | ||
|
7f1453b294 | ||
|
5f615a95bc | ||
|
9ba28dd730 | ||
|
379fb8d39e | ||
|
c72d57aa60 | ||
|
ba8b4e8b9d | ||
|
8d1453fd24 | ||
|
3cf50ed942 | ||
|
5a1c642431 | ||
|
6bfb5ab33b | ||
|
3fe062a5b6 | ||
|
176e14d451 | ||
|
feb99571d2 | ||
|
d5be6e3afb | ||
|
359a5b7cb5 | ||
|
406e347d6f | ||
|
b5d76b499c | ||
|
7aae02e411 | ||
|
8bc348d615 | ||
|
4c730e8935 | ||
|
0e461b7f5c | ||
|
d73fc464c9 | ||
|
f85816f0c7 | ||
|
b8eaec0db2 | ||
|
84a5749f9f | ||
|
a72e00a7b9 | ||
|
667d190547 | ||
|
bf51cd21b6 | ||
|
9c50f1bfdb | ||
|
ec2ee91bf0 | ||
|
c0a7fa392d | ||
|
2e7f935b0d | ||
|
4b0ac90ab3 | ||
|
710021be15 | ||
|
995dd0ba19 | ||
|
f962b5863e | ||
|
778ee5c60c | ||
|
a189c5b937 | ||
|
e94b3e2478 | ||
|
7ecc5d31ea | ||
|
1a86240c93 | ||
|
10916749d6 | ||
|
4b5c38eeb4 | ||
|
5671165308 | ||
|
ae317a5bfd | ||
|
27fb4694ed | ||
|
7f08159461 | ||
|
bac8fb5e61 | ||
|
927869e59e | ||
|
28d24e22d6 | ||
|
6df612a597 | ||
|
91a1286d52 | ||
|
3e06fa8271 | ||
|
f5a3fd6430 | ||
|
7ea19d740d | ||
|
919ae45b0f | ||
|
285dbb1ce6 | ||
|
bb5fe57984 | ||
|
1e0c248044 | ||
|
a7e997e524 | ||
|
07f57223a8 | ||
|
315b57e9f7 | ||
|
f9ebe693e4 | ||
|
15fad89839 | ||
|
e4ae534754 | ||
|
49c149c20b | ||
|
c64898f9fc | ||
|
1928572b52 | ||
|
da53451f97 | ||
|
a2bf177a32 | ||
|
dead08bf52 | ||
|
8a055593d6 | ||
|
48dabc9143 | ||
|
e6a3a5b72d | ||
|
1e6b870af0 | ||
|
713eebcafc | ||
|
09afa3a843 | ||
|
64cd460c73 | ||
|
b9c10cb46e | ||
|
c7d2891058 | ||
|
275af5e972 | ||
|
3a91ccd940 | ||
|
bb61775b61 | ||
|
3cdc29aa53 | ||
|
8aa4b7aaae | ||
|
c7d187a512 | ||
|
f97a241126 | ||
|
0401e6b912 | ||
|
869efa155f | ||
|
116859456e | ||
|
0abd08b6cc | ||
|
e8e0f1f6c6 | ||
|
a64237bcb0 | ||
|
ea0e213bef | ||
|
a659b48fd1 | ||
|
4cc3a221c3 | ||
|
dec98a5534 | ||
|
fcad76b405 | ||
|
0fb03e7aa1 | ||
|
7f3c21b64a | ||
|
339ce47575 | ||
|
7d09642925 | ||
|
fad6aec5d0 | ||
|
96bd993d99 | ||
|
8e9d736cda | ||
|
6a76bdb040 | ||
|
cf5b322efc | ||
|
7139f01103 | ||
|
0d12959a50 | ||
|
10c01ff43e | ||
|
66b5dc3d55 | ||
|
f12ad6b634 | ||
|
5bf4d4febd | ||
|
448a112352 | ||
|
9229cdd0eb | ||
|
9e22c975fa | ||
|
6301e06c8a | ||
|
123324f5f9 | ||
|
eb3325a9ae | ||
|
2d48a07bec | ||
|
669e8673ce | ||
|
b03c54bfbe | ||
|
35830c88e5 | ||
|
3c3045a5cb | ||
|
b25374c8e7 | ||
|
4f28c5ffff | ||
|
12043b16e7 | ||
|
d9ebd4c50f | ||
|
f6f2c9a0ca | ||
|
21310e4374 | ||
|
08ff72fa20 | ||
|
12cc069b69 | ||
|
cd27cbc802 | ||
|
a9f0fa9dfe | ||
|
240ba800ed | ||
|
84e2286995 | ||
|
58413e16b1 | ||
|
58e2e4b23d | ||
|
77dc8157d0 | ||
|
8426da0de6 | ||
|
66484d799e | ||
|
dcf533cc3c | ||
|
67708d07f2 | ||
|
d1d4f7a3ef | ||
|
46e8152b6d | ||
|
1f4f8f4af7 | ||
|
f24f885eeb | ||
|
a3c55f1d26 | ||
|
f6c9a96a12 | ||
|
4b33c17533 | ||
|
0677d0d9de | ||
|
64d86a7397 | ||
|
87e33b1692 | ||
|
4315f3b724 | ||
|
bb28b85bdd | ||
|
90863b8c5d | ||
|
c3f5e6463c | ||
|
b220672c42 | ||
|
acb0922500 | ||
|
b44919e3c5 | ||
|
a1f47abaf6 | ||
|
ff8aa46e5e | ||
|
d4ec164297 | ||
|
e312a35ef3 | ||
|
3018e1866b | ||
|
7a59914f97 | ||
|
4fb6e1ba29 | ||
|
e030236c36 | ||
|
a98c6b1f52 | ||
|
5b136976e9 | ||
|
56bbee8efb | ||
|
cd6ff760dd | ||
|
5caccda56c | ||
|
3b499d3d11 | ||
|
cca0bcc8e0 | ||
|
39ccd85d77 | ||
|
0ac37cefa1 | ||
|
36668efc2f | ||
|
a5a5e7ff08 | ||
|
57b9cf9ddd | ||
|
57fb011377 | ||
|
9e644b7538 | ||
|
ac86b61139 | ||
|
c3f2c2e91c | ||
|
de1bd286f8 | ||
|
98de8e79db | ||
|
d34d3d1b3b | ||
|
d7e1312e9d | ||
|
a2f430c6f3 | ||
|
128fbfb2d6 | ||
|
6006f77bd9 | ||
|
232f6bc427 | ||
|
50ca6928c3 | ||
|
1c7391b70a | ||
|
0cd8169125 | ||
|
6e457d6bb1 | ||
|
8b4b6ac2ed | ||
|
3750c59aaa | ||
|
7b3d7b8575 | ||
|
e5d0cfe639 | ||
|
f02e7b54b3 | ||
|
accf1f1613 | ||
|
a724e90d52 | ||
|
4ddff77339 | ||
|
54a015f785 | ||
|
f052e282dd | ||
|
2fe9f7bd31 | ||
|
cafa5954dc | ||
|
d8bc3d8372 | ||
|
4c5ccce85f | ||
|
552a3bf353 | ||
|
c04652d193 | ||
|
56557833d9 | ||
|
6a9a51222e | ||
|
14c030174e | ||
|
8d51acb9be | ||
|
d5e141648b | ||
|
4c795f5188 | ||
|
7fe13d87c6 | ||
|
7dcabf547b | ||
|
69178d519e | ||
|
493bec52c9 | ||
|
b14167ad04 | ||
|
85d041c0e2 | ||
|
be2160e6c3 | ||
|
232a68480e | ||
|
facee1f750 | ||
|
7e783d6a37 | ||
|
059ed41926 | ||
|
7840b4f406 | ||
|
4a6e9b636e | ||
|
89a1f2b372 | ||
|
bfdc2655ad | ||
|
51136f6541 | ||
|
9f7bdcf7d5 | ||
|
486e69e23b | ||
|
c506c8c5c0 | ||
|
4787b45db2 | ||
|
2733a561e4 | ||
|
9334a09176 | ||
|
8b4980b4ca | ||
|
c80264ab11 | ||
|
607a1d9f49 | ||
|
3006329678 | ||
|
f372e90025 | ||
|
6bcbefa5fc | ||
|
b0edce9c9d | ||
|
c95b92f1e8 | ||
|
c1269e105d | ||
|
3f48f8ec54 | ||
|
d8a602ed2f | ||
|
a028976ac4 | ||
|
22d2fc50d1 | ||
|
05cddc2490 | ||
|
ed5208366c | ||
|
dddfce456c | ||
|
64e6971099 | ||
|
7f6c18af09 | ||
|
9cff99dc4e | ||
|
5b12134a45 | ||
|
76eb49196e | ||
|
b153ba46db | ||
|
7b94ec0c8b | ||
|
f229796a39 | ||
|
6da2bbf229 | ||
|
85c945bc00 | ||
|
0c24e90b44 | ||
|
1aea3a06a5 | ||
|
796c7b6c59 | ||
|
700123d3eb | ||
|
b216f427f6 | ||
|
c080187908 | ||
|
75acd20e9a | ||
|
8e69e3dcea | ||
|
cb0dfccddc | ||
|
2773518869 | ||
|
70a01250e1 | ||
|
dce5d5c28f | ||
|
5918d426b3 | ||
|
943ffb217b | ||
|
09f021be88 | ||
|
5c79944b31 | ||
|
12150b43d2 | ||
|
59606b88d2 | ||
|
d4f06e3806 | ||
|
f6eb19f8d6 | ||
|
24e20aec0f | ||
|
31d9407ee2 | ||
|
a566549e04 | ||
|
816f700d3e | ||
|
64fcfa6068 | ||
|
67e23b472a | ||
|
eaa0942690 | ||
|
49d1fe3b30 | ||
|
eea39b8413 | ||
|
b28a6145a1 | ||
|
7a02419cac | ||
|
1347fec298 | ||
|
51e8c53f30 | ||
|
77097ffab7 | ||
|
96f9108343 | ||
|
e5ad5a8fcd | ||
|
86c329e790 | ||
|
3f970689a0 | ||
|
5a5b538af7 | ||
|
6d97cfb761 | ||
|
b85e69a94c | ||
|
03e25c778a | ||
|
6a603af993 | ||
|
4fe6ac0d4b | ||
|
a2b8c250a8 | ||
|
0a2b82757a | ||
|
f440f850ef | ||
|
f2b988a0ce | ||
|
10fccbd6cf | ||
|
3f71138d64 | ||
|
2f6475c0d8 | ||
|
33b52839c6 | ||
|
b66cddb919 | ||
|
aacc3aae9a | ||
|
e7ac0d0ff5 | ||
|
c6838d8ca8 | ||
|
bab532b35b | ||
|
608f2d4170 | ||
|
54647945f1 | ||
|
fe68aee82c | ||
|
d2f48f6e08 | ||
|
7de882ece3 | ||
|
70f51c972a | ||
|
c01f40017b | ||
|
8fa8af357b | ||
|
b08f0ed713 | ||
|
10f9a9484f | ||
|
f8909fe9e0 | ||
|
16125bdbbd | ||
|
6eaf11f07a | ||
|
fbc8b983d5 | ||
|
c8c3ef4792 | ||
|
6ed4fe96b8 | ||
|
bd1b80198f | ||
|
e4867b5afb | ||
|
b7556bdddf | ||
|
c82ef82c21 | ||
|
897c0f01ed | ||
|
43001c0a94 | ||
|
54424d0edc | ||
|
feaca0ddf2 | ||
|
4054d66de0 | ||
|
903da5e452 | ||
|
0a62a4dca8 | ||
|
0afcb82ee6 | ||
|
07ba48b082 | ||
|
9dd0ca2661 | ||
|
aa398d8798 | ||
|
fda2f34c75 | ||
|
661fa722a7 | ||
|
caef479ae0 | ||
|
d6531b9fe6 | ||
|
94f604975d | ||
|
a90b50f1ff | ||
|
30451b7ca5 | ||
|
5c160e018b | ||
|
a56ac9782e | ||
|
dda50912ed |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -35,6 +35,7 @@
|
||||
.metadata
|
||||
.project
|
||||
.pydevproject
|
||||
.vscode
|
||||
# Settings directory for eclipse
|
||||
/.settings
|
||||
.checkstyle
|
||||
@@ -42,11 +43,14 @@ cscope.*
|
||||
Session.vim
|
||||
tags
|
||||
Thumbs.db
|
||||
# IDE's
|
||||
.vs/
|
||||
.kdev4/
|
||||
*.kdev4
|
||||
# CEF generated directories
|
||||
/binary_distrib
|
||||
/docs
|
||||
# CEF generated files
|
||||
/include/cef_pack_resources.h
|
||||
/include/cef_pack_strings.h
|
||||
/include/cef_config.h
|
||||
/include/cef_version.h
|
||||
/patch/patch_state.h
|
||||
.ccls-cache/
|
||||
|
9
.style.cfg
Normal file
9
.style.cfg
Normal file
@@ -0,0 +1,9 @@
|
||||
# Copyright (c) 2017 The Chromium Embedded Framework Authors. All rights
|
||||
# reserved. Use of this source code is governed by a BSD-style license that
|
||||
# can be found in the LICENSE file
|
||||
|
||||
# Configuration settings for tools/fix_style.py
|
||||
{
|
||||
# Directories containing these path components will be ignored.
|
||||
'ignore_directories': ['yapf'],
|
||||
}
|
2
.style.yapf
Normal file
2
.style.yapf
Normal file
@@ -0,0 +1,2 @@
|
||||
[style]
|
||||
based_on_style = chromium
|
@@ -1,6 +1,8 @@
|
||||
# This file is an addendum to the Chromium AUTHORS file.
|
||||
# Names should be added to this file like so:
|
||||
# Name or Organization <email address>
|
||||
# This file is an addendum to the Chromium AUTHORS file. It lists authors
|
||||
# through March 16, 2015 when Git was introduced for source code management.
|
||||
# A list of additional authors added after that date can be found by executing
|
||||
# this command on a local Git checkout:
|
||||
# git log --all --format="%aN <%aE>" | sort -u
|
||||
|
||||
Marshall Greenblatt <magreenblatt@gmail.com>
|
||||
Jamie Kirkpatrick <jkp@spotify.com>
|
||||
|
@@ -7,5 +7,6 @@
|
||||
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
||||
|
||||
{
|
||||
'chromium_checkout': 'refs/tags/57.0.2987.133',
|
||||
'chromium_checkout': 'refs/tags/87.0.4280.141',
|
||||
'depot_tools_checkout': '39d870e1f0'
|
||||
}
|
||||
|
66
CHROMIUM_UPDATE.txt
Normal file
66
CHROMIUM_UPDATE.txt
Normal file
@@ -0,0 +1,66 @@
|
||||
# The Chromium Embedded Framework (CEF) project is built on top of the Chromium
|
||||
# project source tree. When updating Chromium to a new version certain files and
|
||||
# patterns should be observed for changes. If changes are detected then the CEF
|
||||
# source code or patch files will likely need to be updated.
|
||||
#
|
||||
# Add `--log-chromium-changes` to the automate-git.py command-line to output
|
||||
# the following files in the <download-dir>:
|
||||
#
|
||||
# * chromium_update_changes.diff
|
||||
# Files in the chromium/src directory that have changed. See the 'files'
|
||||
# section below.
|
||||
#
|
||||
# * chromium_update_patterns.txt
|
||||
# Files in the chromium/src directory that contain invalid/unexpected
|
||||
# patterns. See the 'patterns' section below. Failure of this step is
|
||||
# considered a fatal error during update.
|
||||
#
|
||||
# * chromium_update_patches.txt
|
||||
# Output from attempting to update existing Chromium patch files using the
|
||||
# patch_updater.py tool. Failure of this step is considered a fatal error
|
||||
# during update.
|
||||
#
|
||||
# For complete update instructions see:
|
||||
# https://bitbucket.org/chromiumembedded/cef/wiki/ChromiumUpdate.md
|
||||
|
||||
{
|
||||
# Files in the chromium/src directory that should be evaluated for changes.
|
||||
# Similar changes may need to be applied to the CEF source code.
|
||||
'files': [
|
||||
'chrome/browser/browser_process.h',
|
||||
'chrome/browser/extensions/api/tabs/tabs_api.*',
|
||||
'chrome/browser/extensions/chrome_component_extension_resource_manager.*',
|
||||
'chrome/browser/extensions/chrome_extension_web_contents_observer.*',
|
||||
'chrome/browser/extensions/component_loader.*',
|
||||
'chrome/browser/extensions/extension_service.*',
|
||||
'chrome/browser/printing/print_view_manager*',
|
||||
'chrome/browser/printing/printing_message_filter*',
|
||||
'chrome/browser/profiles/profile.h',
|
||||
'chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.*',
|
||||
'chrome/common/extensions/api/*_features.json',
|
||||
'chrome/renderer/chrome_content_renderer_client.*',
|
||||
'chrome/renderer/extensions/chrome_extensions_renderer_client.*',
|
||||
'content/browser/renderer_host/render_widget_host_view_base.*',
|
||||
'content/public/browser/content_browser_client.*',
|
||||
'content/public/browser/render_widget_host_view.h',
|
||||
'content/public/browser/storage_partition.h',
|
||||
'content/public/browser/web_contents_delegate.h',
|
||||
'content/public/common/content_features.cc',
|
||||
'content/shell/BUILD.gn',
|
||||
'content/shell/app/*',
|
||||
'content/shell/browser/shell_*',
|
||||
'content/shell/browser/renderer_host/shell_*',
|
||||
'content/shell/common/shell_*',
|
||||
'content/shell/gpu/shell_*',
|
||||
'content/shell/renderer/shell_*',
|
||||
'content/shell/utility/shell_*',
|
||||
'extensions/shell/*',
|
||||
'net/base/features.cc',
|
||||
'net/cookies/cookie_store.h',
|
||||
'services/network/public/cpp/features.cc',
|
||||
'ui/base/ui_base_features.cc',
|
||||
],
|
||||
# Patterns that should not be found in the chromium/src directory after
|
||||
# applying patch files.
|
||||
'patterns': [],
|
||||
}
|
@@ -12,8 +12,8 @@
|
||||
# distribution include:
|
||||
#
|
||||
# Linux: Ninja, Unix Makefiles
|
||||
# Mac OS X: Ninja, Xcode 5+
|
||||
# Windows: Ninja, Visual Studio 2010+
|
||||
# MacOS: Ninja, Xcode 8+ (x64) or Xcode 12.2+ (ARM64)
|
||||
# Windows: Ninja, Visual Studio 2015+
|
||||
#
|
||||
# Ninja is a cross-platform open-source tool for running fast builds using
|
||||
# pre-installed platform toolchains (GNU, clang, Xcode or MSVC). It can be
|
||||
@@ -40,21 +40,21 @@
|
||||
#
|
||||
# - Linux requirements:
|
||||
# Currently supported distributions include Debian Wheezy, Ubuntu Precise, and
|
||||
# related. Ubuntu 14.04 64-bit is recommended. Newer versions will likely also
|
||||
# related. Ubuntu 18.04 64-bit is recommended. Newer versions will likely also
|
||||
# work but may not have been tested.
|
||||
# Required packages include:
|
||||
# build-essential
|
||||
# libgtk2.0-dev (required by the cefclient target only)
|
||||
# libgtkglext1-dev (required by the cefclient target only)
|
||||
#
|
||||
# - Mac OS X requirements:
|
||||
# Xcode 5 or newer building on Mac OS X 10.9 (Mavericks) or newer. Xcode 7.2
|
||||
# and OS X 10.11 are recommended. The Xcode command-line tools must also be
|
||||
# installed. Only 64-bit builds are supported on OS X.
|
||||
# - MacOS requirements:
|
||||
# Xcode 8 or newer building on MacOS 10.10 (Yosemite) or newer. Xcode 11.2
|
||||
# and MacOS 10.14 are recommended. The Xcode command-line tools must also be
|
||||
# installed. Only 64-bit builds are supported.
|
||||
#
|
||||
# - Windows requirements:
|
||||
# Visual Studio 2010 or newer building on Windows 7 or newer. Visual Studio
|
||||
# 2015 Update 2 and Windows 10 64-bit are recommended.
|
||||
# Visual Studio 2015 Update 2 or newer building on Windows 7 or newer. Visual
|
||||
# Studio 2019 and Windows 10 64-bit are recommended.
|
||||
#
|
||||
# BUILD EXAMPLES
|
||||
#
|
||||
@@ -75,7 +75,7 @@
|
||||
# > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
|
||||
# > ninja cefclient cefsimple
|
||||
#
|
||||
# To perform a Mac OS X build using a 64-bit CEF binary distribution:
|
||||
# To perform a MacOS build using a 64-bit CEF binary distribution:
|
||||
# Using the Xcode IDE:
|
||||
# > cmake -G "Xcode" -DPROJECT_ARCH="x86_64" ..
|
||||
# Open build\cef.xcodeproj in Xcode and select Product > Build.
|
||||
@@ -84,25 +84,34 @@
|
||||
# > cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_BUILD_TYPE=Debug ..
|
||||
# > ninja cefclient cefsimple
|
||||
#
|
||||
# To perform a MacOS build using an ARM64 CEF binary distribution:
|
||||
# Using the Xcode IDE:
|
||||
# > cmake -G "Xcode" -DPROJECT_ARCH="arm64" ..
|
||||
# Open build\cef.xcodeproj in Xcode and select Product > Build.
|
||||
#
|
||||
# Using Ninja:
|
||||
# > cmake -G "Ninja" -DPROJECT_ARCH="arm64" -DCMAKE_BUILD_TYPE=Debug ..
|
||||
# > ninja cefclient cefsimple
|
||||
#
|
||||
# To perform a Windows build using a 32-bit CEF binary distribution:
|
||||
# Using the Visual Studio 2015 IDE:
|
||||
# > cmake -G "Visual Studio 14" ..
|
||||
# Using the Visual Studio 2019 IDE:
|
||||
# > cmake -G "Visual Studio 16" -A Win32 ..
|
||||
# Open build\cef.sln in Visual Studio and select Build > Build Solution.
|
||||
#
|
||||
# Using Ninja with Visual Studio 2015 command-line tools:
|
||||
# Using Ninja with Visual Studio 2019 command-line tools:
|
||||
# (this path may be different depending on your Visual Studio installation)
|
||||
# > "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"
|
||||
# > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat"
|
||||
# > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
|
||||
# > ninja cefclient cefsimple
|
||||
#
|
||||
# To perform a Windows build using a 64-bit CEF binary distribution:
|
||||
# Using the Visual Studio 2015 IDE:
|
||||
# > cmake -G "Visual Studio 14 Win64" ..
|
||||
# Using the Visual Studio 2019 IDE:
|
||||
# > cmake -G "Visual Studio 16" -A x64 ..
|
||||
# Open build\cef.sln in Visual Studio and select Build > Build Solution.
|
||||
#
|
||||
# Using Ninja with Visual Studio 2015 command-line tools:
|
||||
# Using Ninja with Visual Studio 2019 command-line tools:
|
||||
# (this path may be different depending on your Visual Studio installation)
|
||||
# > "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
|
||||
# > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"
|
||||
# > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
|
||||
# > ninja cefclient cefsimple
|
||||
|
||||
@@ -199,10 +208,15 @@ add_subdirectory(${CEF_LIBCEF_DLL_WRAPPER_PATH} libcef_dll_wrapper)
|
||||
# Include application targets.
|
||||
# Comes from the <target>/CMakeLists.txt file in the current directory.
|
||||
# TODO: Change these lines to match your project target when you copy this file.
|
||||
add_subdirectory(tests/cefclient)
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests")
|
||||
add_subdirectory(tests/cefsimple)
|
||||
add_subdirectory(tests/gtest)
|
||||
add_subdirectory(tests/ceftests)
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests/cefclient")
|
||||
add_subdirectory(tests/cefclient)
|
||||
endif()
|
||||
|
||||
# Display configuration settings.
|
||||
PRINT_CEF_CONFIG()
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2008-2014 Marshall A. Greenblatt. Portions Copyright (c)
|
||||
// Copyright (c) 2008-2020 Marshall A. Greenblatt. Portions Copyright (c)
|
||||
// 2006-2009 Google Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
|
@@ -7,6 +7,7 @@ The Chromium Embedded Framework (CEF) is a simple framework for embedding Chromi
|
||||
* General Usage - https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage
|
||||
* Master Build Quick-Start - https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart
|
||||
* Branches and Building - https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
||||
* Announcements - https://groups.google.com/forum/#!forum/cef-announce
|
||||
* Support Forum - http://www.magpcss.org/ceforum/
|
||||
* CEF1 C++ API Docs - http://magpcss.org/ceforum/apidocs/
|
||||
* CEF3 C++ API Docs - http://magpcss.org/ceforum/apidocs3/
|
||||
@@ -42,12 +43,14 @@ The CEF project is an extension of the Chromium project. CEF maintains developme
|
||||
|
||||
The base CEF framework includes support for the C and C++ programming languages. Thanks to the hard work of external maintainers CEF can integrate with a number of other programming languages and frameworks. These external projects are not maintained by CEF so please contact the respective project maintainer if you have any questions or issues.
|
||||
|
||||
* .Net - https://github.com/chillitom/CefSharp
|
||||
* .Net (CEF3) - https://github.com/cefsharp/CefSharp
|
||||
* .Net (CEF1) - https://bitbucket.org/fddima/cefglue
|
||||
* .Net/Mono (CEF3) - https://bitbucket.org/xilium/xilium.cefglue
|
||||
* .Net (CEF3) - https://bitbucket.org/chromiumfx/chromiumfx
|
||||
* Delphi (CEF1) - http://code.google.com/p/delphichromiumembedded/
|
||||
* Delphi (CEF3) - http://code.google.com/p/dcef3/
|
||||
* Delphi (CEF3) - https://github.com/hgourvest/dcef3
|
||||
* Delphi (CEF3) - https://github.com/salvadordf/CEF4Delphi
|
||||
* Go - https://github.com/richardwilkes/cef
|
||||
* Go - https://github.com/CzarekTomczak/cef2go
|
||||
* Java - https://bitbucket.org/chromiumembedded/java-cef
|
||||
* Java - http://code.google.com/p/javacef/
|
||||
|
130
cef_paths.gypi
130
cef_paths.gypi
@@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2017 The Chromium Embedded Framework Authors. All rights
|
||||
# Copyright (c) 2020 The Chromium Embedded Framework Authors. All rights
|
||||
# reserved. Use of this source code is governed by a BSD-style license that
|
||||
# can be found in the LICENSE file.
|
||||
#
|
||||
@@ -8,11 +8,15 @@
|
||||
# by hand. See the translator.README.txt file in the tools directory for
|
||||
# more information.
|
||||
#
|
||||
# $hash=72268a78a76d7d91b8ad47f6b6e9f6d9cb04d9cf$
|
||||
#
|
||||
|
||||
{
|
||||
'variables': {
|
||||
'autogen_cpp_includes': [
|
||||
'include/cef_accessibility_handler.h',
|
||||
'include/cef_app.h',
|
||||
'include/cef_audio_handler.h',
|
||||
'include/cef_auth_callback.h',
|
||||
'include/cef_browser.h',
|
||||
'include/cef_browser_process_handler.h',
|
||||
@@ -22,6 +26,7 @@
|
||||
'include/cef_context_menu_handler.h',
|
||||
'include/cef_cookie.h',
|
||||
'include/cef_crash_util.h',
|
||||
'include/cef_devtools_message_observer.h',
|
||||
'include/cef_dialog_handler.h',
|
||||
'include/cef_display_handler.h',
|
||||
'include/cef_dom.h',
|
||||
@@ -29,17 +34,18 @@
|
||||
'include/cef_download_item.h',
|
||||
'include/cef_drag_data.h',
|
||||
'include/cef_drag_handler.h',
|
||||
'include/cef_extension.h',
|
||||
'include/cef_extension_handler.h',
|
||||
'include/cef_file_util.h',
|
||||
'include/cef_find_handler.h',
|
||||
'include/cef_focus_handler.h',
|
||||
'include/cef_frame.h',
|
||||
'include/cef_geolocation.h',
|
||||
'include/cef_geolocation_handler.h',
|
||||
'include/cef_image.h',
|
||||
'include/cef_jsdialog_handler.h',
|
||||
'include/cef_keyboard_handler.h',
|
||||
'include/cef_life_span_handler.h',
|
||||
'include/cef_load_handler.h',
|
||||
'include/cef_media_router.h',
|
||||
'include/cef_menu_model.h',
|
||||
'include/cef_menu_model_delegate.h',
|
||||
'include/cef_navigation_entry.h',
|
||||
@@ -50,18 +56,22 @@
|
||||
'include/cef_print_settings.h',
|
||||
'include/cef_process_message.h',
|
||||
'include/cef_process_util.h',
|
||||
'include/cef_registration.h',
|
||||
'include/cef_render_handler.h',
|
||||
'include/cef_render_process_handler.h',
|
||||
'include/cef_request.h',
|
||||
'include/cef_request_callback.h',
|
||||
'include/cef_request_context.h',
|
||||
'include/cef_request_context_handler.h',
|
||||
'include/cef_request_handler.h',
|
||||
'include/cef_resource_bundle.h',
|
||||
'include/cef_resource_bundle_handler.h',
|
||||
'include/cef_resource_handler.h',
|
||||
'include/cef_resource_request_handler.h',
|
||||
'include/cef_response.h',
|
||||
'include/cef_response_filter.h',
|
||||
'include/cef_scheme.h',
|
||||
'include/cef_server.h',
|
||||
'include/cef_ssl_info.h',
|
||||
'include/cef_ssl_status.h',
|
||||
'include/cef_stream.h',
|
||||
@@ -77,6 +87,7 @@
|
||||
'include/cef_x509_certificate.h',
|
||||
'include/cef_xml_reader.h',
|
||||
'include/cef_zip_reader.h',
|
||||
'include/test/cef_test_helpers.h',
|
||||
'include/test/cef_translator_test.h',
|
||||
'include/views/cef_box_layout.h',
|
||||
'include/views/cef_browser_view.h',
|
||||
@@ -100,7 +111,9 @@
|
||||
'include/views/cef_window_delegate.h',
|
||||
],
|
||||
'autogen_capi_includes': [
|
||||
'include/capi/cef_accessibility_handler_capi.h',
|
||||
'include/capi/cef_app_capi.h',
|
||||
'include/capi/cef_audio_handler_capi.h',
|
||||
'include/capi/cef_auth_callback_capi.h',
|
||||
'include/capi/cef_browser_capi.h',
|
||||
'include/capi/cef_browser_process_handler_capi.h',
|
||||
@@ -110,6 +123,7 @@
|
||||
'include/capi/cef_context_menu_handler_capi.h',
|
||||
'include/capi/cef_cookie_capi.h',
|
||||
'include/capi/cef_crash_util_capi.h',
|
||||
'include/capi/cef_devtools_message_observer_capi.h',
|
||||
'include/capi/cef_dialog_handler_capi.h',
|
||||
'include/capi/cef_display_handler_capi.h',
|
||||
'include/capi/cef_dom_capi.h',
|
||||
@@ -117,17 +131,18 @@
|
||||
'include/capi/cef_download_item_capi.h',
|
||||
'include/capi/cef_drag_data_capi.h',
|
||||
'include/capi/cef_drag_handler_capi.h',
|
||||
'include/capi/cef_extension_capi.h',
|
||||
'include/capi/cef_extension_handler_capi.h',
|
||||
'include/capi/cef_file_util_capi.h',
|
||||
'include/capi/cef_find_handler_capi.h',
|
||||
'include/capi/cef_focus_handler_capi.h',
|
||||
'include/capi/cef_frame_capi.h',
|
||||
'include/capi/cef_geolocation_capi.h',
|
||||
'include/capi/cef_geolocation_handler_capi.h',
|
||||
'include/capi/cef_image_capi.h',
|
||||
'include/capi/cef_jsdialog_handler_capi.h',
|
||||
'include/capi/cef_keyboard_handler_capi.h',
|
||||
'include/capi/cef_life_span_handler_capi.h',
|
||||
'include/capi/cef_load_handler_capi.h',
|
||||
'include/capi/cef_media_router_capi.h',
|
||||
'include/capi/cef_menu_model_capi.h',
|
||||
'include/capi/cef_menu_model_delegate_capi.h',
|
||||
'include/capi/cef_navigation_entry_capi.h',
|
||||
@@ -138,18 +153,22 @@
|
||||
'include/capi/cef_print_settings_capi.h',
|
||||
'include/capi/cef_process_message_capi.h',
|
||||
'include/capi/cef_process_util_capi.h',
|
||||
'include/capi/cef_registration_capi.h',
|
||||
'include/capi/cef_render_handler_capi.h',
|
||||
'include/capi/cef_render_process_handler_capi.h',
|
||||
'include/capi/cef_request_capi.h',
|
||||
'include/capi/cef_request_callback_capi.h',
|
||||
'include/capi/cef_request_context_capi.h',
|
||||
'include/capi/cef_request_context_handler_capi.h',
|
||||
'include/capi/cef_request_handler_capi.h',
|
||||
'include/capi/cef_resource_bundle_capi.h',
|
||||
'include/capi/cef_resource_bundle_handler_capi.h',
|
||||
'include/capi/cef_resource_handler_capi.h',
|
||||
'include/capi/cef_resource_request_handler_capi.h',
|
||||
'include/capi/cef_response_capi.h',
|
||||
'include/capi/cef_response_filter_capi.h',
|
||||
'include/capi/cef_scheme_capi.h',
|
||||
'include/capi/cef_server_capi.h',
|
||||
'include/capi/cef_ssl_info_capi.h',
|
||||
'include/capi/cef_ssl_status_capi.h',
|
||||
'include/capi/cef_stream_capi.h',
|
||||
@@ -165,6 +184,7 @@
|
||||
'include/capi/cef_x509_certificate_capi.h',
|
||||
'include/capi/cef_xml_reader_capi.h',
|
||||
'include/capi/cef_zip_reader_capi.h',
|
||||
'include/capi/test/cef_test_helpers_capi.h',
|
||||
'include/capi/test/cef_translator_test_capi.h',
|
||||
'include/capi/views/cef_box_layout_capi.h',
|
||||
'include/capi/views/cef_browser_view_capi.h',
|
||||
@@ -188,8 +208,12 @@
|
||||
'include/capi/views/cef_window_delegate_capi.h',
|
||||
],
|
||||
'autogen_library_side': [
|
||||
'libcef_dll/ctocpp/accessibility_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/accessibility_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/app_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/app_ctocpp.h',
|
||||
'libcef_dll/ctocpp/audio_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/audio_handler_ctocpp.h',
|
||||
'libcef_dll/cpptoc/auth_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/auth_callback_cpptoc.h',
|
||||
'libcef_dll/cpptoc/before_download_callback_cpptoc.cc',
|
||||
@@ -224,6 +248,8 @@
|
||||
'libcef_dll/ctocpp/context_menu_handler_ctocpp.h',
|
||||
'libcef_dll/cpptoc/context_menu_params_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/context_menu_params_cpptoc.h',
|
||||
'libcef_dll/ctocpp/cookie_access_filter_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/cookie_access_filter_ctocpp.h',
|
||||
'libcef_dll/cpptoc/cookie_manager_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/cookie_manager_cpptoc.h',
|
||||
'libcef_dll/ctocpp/cookie_visitor_ctocpp.cc',
|
||||
@@ -236,6 +262,8 @@
|
||||
'libcef_dll/ctocpp/domvisitor_ctocpp.h',
|
||||
'libcef_dll/ctocpp/delete_cookies_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/delete_cookies_callback_ctocpp.h',
|
||||
'libcef_dll/ctocpp/dev_tools_message_observer_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/dev_tools_message_observer_ctocpp.h',
|
||||
'libcef_dll/ctocpp/dialog_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/dialog_handler_ctocpp.h',
|
||||
'libcef_dll/cpptoc/dictionary_value_cpptoc.cc',
|
||||
@@ -258,6 +286,10 @@
|
||||
'libcef_dll/ctocpp/drag_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/end_tracing_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/extension_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/extension_cpptoc.h',
|
||||
'libcef_dll/ctocpp/extension_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/extension_handler_ctocpp.h',
|
||||
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/file_dialog_callback_cpptoc.h',
|
||||
'libcef_dll/cpptoc/views/fill_layout_cpptoc.cc',
|
||||
@@ -268,12 +300,8 @@
|
||||
'libcef_dll/ctocpp/focus_handler_ctocpp.h',
|
||||
'libcef_dll/cpptoc/frame_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/frame_cpptoc.h',
|
||||
'libcef_dll/cpptoc/geolocation_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/geolocation_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/geolocation_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/geolocation_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/get_geolocation_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/get_geolocation_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/get_extension_resource_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/get_extension_resource_callback_cpptoc.h',
|
||||
'libcef_dll/cpptoc/image_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/image_cpptoc.h',
|
||||
'libcef_dll/cpptoc/jsdialog_callback_cpptoc.cc',
|
||||
@@ -292,10 +320,26 @@
|
||||
'libcef_dll/cpptoc/list_value_cpptoc.h',
|
||||
'libcef_dll/ctocpp/load_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/load_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/media_observer_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/media_observer_ctocpp.h',
|
||||
'libcef_dll/cpptoc/media_route_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/media_route_cpptoc.h',
|
||||
'libcef_dll/ctocpp/media_route_create_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/media_route_create_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/media_router_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/media_router_cpptoc.h',
|
||||
'libcef_dll/cpptoc/media_sink_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/media_sink_cpptoc.h',
|
||||
'libcef_dll/ctocpp/media_sink_device_info_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/media_sink_device_info_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/media_source_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/media_source_cpptoc.h',
|
||||
'libcef_dll/cpptoc/views/menu_button_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/views/menu_button_cpptoc.h',
|
||||
'libcef_dll/ctocpp/views/menu_button_delegate_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/views/menu_button_delegate_ctocpp.h',
|
||||
'libcef_dll/cpptoc/views/menu_button_pressed_lock_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/views/menu_button_pressed_lock_cpptoc.h',
|
||||
'libcef_dll/cpptoc/menu_model_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/menu_model_cpptoc.h',
|
||||
'libcef_dll/ctocpp/menu_model_delegate_ctocpp.cc',
|
||||
@@ -328,6 +372,8 @@
|
||||
'libcef_dll/ctocpp/read_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/register_cdm_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/register_cdm_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/registration_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/registration_cpptoc.h',
|
||||
'libcef_dll/ctocpp/render_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/render_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/render_process_handler_ctocpp.cc',
|
||||
@@ -350,6 +396,12 @@
|
||||
'libcef_dll/ctocpp/resource_bundle_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/resource_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/resource_handler_ctocpp.h',
|
||||
'libcef_dll/cpptoc/resource_read_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/resource_read_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/resource_request_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/resource_request_handler_ctocpp.h',
|
||||
'libcef_dll/cpptoc/resource_skip_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/resource_skip_callback_cpptoc.h',
|
||||
'libcef_dll/cpptoc/response_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/response_cpptoc.h',
|
||||
'libcef_dll/ctocpp/response_filter_ctocpp.cc',
|
||||
@@ -370,6 +422,10 @@
|
||||
'libcef_dll/cpptoc/views/scroll_view_cpptoc.h',
|
||||
'libcef_dll/cpptoc/select_client_certificate_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/select_client_certificate_callback_cpptoc.h',
|
||||
'libcef_dll/cpptoc/server_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/server_cpptoc.h',
|
||||
'libcef_dll/ctocpp/server_handler_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/server_handler_ctocpp.h',
|
||||
'libcef_dll/ctocpp/set_cookie_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/set_cookie_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/stream_reader_cpptoc.cc',
|
||||
@@ -416,6 +472,8 @@
|
||||
'libcef_dll/ctocpp/urlrequest_client_ctocpp.h',
|
||||
'libcef_dll/ctocpp/v8accessor_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/v8accessor_ctocpp.h',
|
||||
'libcef_dll/ctocpp/v8array_buffer_release_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/v8array_buffer_release_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/v8context_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/v8context_cpptoc.h',
|
||||
'libcef_dll/cpptoc/v8exception_cpptoc.cc',
|
||||
@@ -460,8 +518,12 @@
|
||||
'libcef_dll/cpptoc/zip_reader_cpptoc.h',
|
||||
],
|
||||
'autogen_client_side': [
|
||||
'libcef_dll/cpptoc/accessibility_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/accessibility_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/app_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/app_cpptoc.h',
|
||||
'libcef_dll/cpptoc/audio_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/audio_handler_cpptoc.h',
|
||||
'libcef_dll/ctocpp/auth_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/auth_callback_ctocpp.h',
|
||||
'libcef_dll/ctocpp/before_download_callback_ctocpp.cc',
|
||||
@@ -496,6 +558,8 @@
|
||||
'libcef_dll/cpptoc/context_menu_handler_cpptoc.h',
|
||||
'libcef_dll/ctocpp/context_menu_params_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/context_menu_params_ctocpp.h',
|
||||
'libcef_dll/cpptoc/cookie_access_filter_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/cookie_access_filter_cpptoc.h',
|
||||
'libcef_dll/ctocpp/cookie_manager_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/cookie_manager_ctocpp.h',
|
||||
'libcef_dll/cpptoc/cookie_visitor_cpptoc.cc',
|
||||
@@ -508,6 +572,8 @@
|
||||
'libcef_dll/cpptoc/domvisitor_cpptoc.h',
|
||||
'libcef_dll/cpptoc/delete_cookies_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/delete_cookies_callback_cpptoc.h',
|
||||
'libcef_dll/cpptoc/dev_tools_message_observer_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/dev_tools_message_observer_cpptoc.h',
|
||||
'libcef_dll/cpptoc/dialog_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/dialog_handler_cpptoc.h',
|
||||
'libcef_dll/ctocpp/dictionary_value_ctocpp.cc',
|
||||
@@ -530,6 +596,10 @@
|
||||
'libcef_dll/cpptoc/drag_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/end_tracing_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/extension_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/extension_ctocpp.h',
|
||||
'libcef_dll/cpptoc/extension_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/extension_handler_cpptoc.h',
|
||||
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/file_dialog_callback_ctocpp.h',
|
||||
'libcef_dll/ctocpp/views/fill_layout_ctocpp.cc',
|
||||
@@ -540,12 +610,8 @@
|
||||
'libcef_dll/cpptoc/focus_handler_cpptoc.h',
|
||||
'libcef_dll/ctocpp/frame_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/frame_ctocpp.h',
|
||||
'libcef_dll/ctocpp/geolocation_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/geolocation_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/geolocation_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/geolocation_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/get_geolocation_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/get_geolocation_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/get_extension_resource_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/get_extension_resource_callback_ctocpp.h',
|
||||
'libcef_dll/ctocpp/image_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/image_ctocpp.h',
|
||||
'libcef_dll/ctocpp/jsdialog_callback_ctocpp.cc',
|
||||
@@ -564,10 +630,26 @@
|
||||
'libcef_dll/ctocpp/list_value_ctocpp.h',
|
||||
'libcef_dll/cpptoc/load_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/load_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/media_observer_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/media_observer_cpptoc.h',
|
||||
'libcef_dll/ctocpp/media_route_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/media_route_ctocpp.h',
|
||||
'libcef_dll/cpptoc/media_route_create_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/media_route_create_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/media_router_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/media_router_ctocpp.h',
|
||||
'libcef_dll/ctocpp/media_sink_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/media_sink_ctocpp.h',
|
||||
'libcef_dll/cpptoc/media_sink_device_info_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/media_sink_device_info_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/media_source_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/media_source_ctocpp.h',
|
||||
'libcef_dll/ctocpp/views/menu_button_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/views/menu_button_ctocpp.h',
|
||||
'libcef_dll/cpptoc/views/menu_button_delegate_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/views/menu_button_delegate_cpptoc.h',
|
||||
'libcef_dll/ctocpp/views/menu_button_pressed_lock_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/views/menu_button_pressed_lock_ctocpp.h',
|
||||
'libcef_dll/ctocpp/menu_model_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/menu_model_ctocpp.h',
|
||||
'libcef_dll/cpptoc/menu_model_delegate_cpptoc.cc',
|
||||
@@ -600,6 +682,8 @@
|
||||
'libcef_dll/cpptoc/read_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/register_cdm_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/register_cdm_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/registration_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/registration_ctocpp.h',
|
||||
'libcef_dll/cpptoc/render_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/render_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/render_process_handler_cpptoc.cc',
|
||||
@@ -622,6 +706,12 @@
|
||||
'libcef_dll/cpptoc/resource_bundle_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/resource_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/resource_handler_cpptoc.h',
|
||||
'libcef_dll/ctocpp/resource_read_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/resource_read_callback_ctocpp.h',
|
||||
'libcef_dll/cpptoc/resource_request_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/resource_request_handler_cpptoc.h',
|
||||
'libcef_dll/ctocpp/resource_skip_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/resource_skip_callback_ctocpp.h',
|
||||
'libcef_dll/ctocpp/response_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/response_ctocpp.h',
|
||||
'libcef_dll/cpptoc/response_filter_cpptoc.cc',
|
||||
@@ -642,6 +732,10 @@
|
||||
'libcef_dll/ctocpp/views/scroll_view_ctocpp.h',
|
||||
'libcef_dll/ctocpp/select_client_certificate_callback_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/select_client_certificate_callback_ctocpp.h',
|
||||
'libcef_dll/ctocpp/server_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/server_ctocpp.h',
|
||||
'libcef_dll/cpptoc/server_handler_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/server_handler_cpptoc.h',
|
||||
'libcef_dll/cpptoc/set_cookie_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/set_cookie_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/stream_reader_ctocpp.cc',
|
||||
@@ -688,6 +782,8 @@
|
||||
'libcef_dll/cpptoc/urlrequest_client_cpptoc.h',
|
||||
'libcef_dll/cpptoc/v8accessor_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/v8accessor_cpptoc.h',
|
||||
'libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.cc',
|
||||
'libcef_dll/cpptoc/v8array_buffer_release_callback_cpptoc.h',
|
||||
'libcef_dll/ctocpp/v8context_ctocpp.cc',
|
||||
'libcef_dll/ctocpp/v8context_ctocpp.h',
|
||||
'libcef_dll/ctocpp/v8exception_ctocpp.cc',
|
||||
|
128
cef_paths2.gypi
128
cef_paths2.gypi
@@ -26,7 +26,6 @@
|
||||
'include/base/cef_string16.h',
|
||||
'include/base/cef_template_util.h',
|
||||
'include/base/cef_thread_checker.h',
|
||||
'include/base/cef_thread_collision_warner.h',
|
||||
'include/base/cef_trace_event.h',
|
||||
'include/base/cef_tuple.h',
|
||||
'include/base/cef_weak_ptr.h',
|
||||
@@ -35,22 +34,26 @@
|
||||
'include/base/internal/cef_lock_impl.h',
|
||||
'include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h',
|
||||
'include/base/internal/cef_thread_checker_impl.h',
|
||||
'include/cef_api_hash.h',
|
||||
'include/cef_base.h',
|
||||
'include/cef_config.h',
|
||||
'include/cef_version.h',
|
||||
'include/internal/cef_export.h',
|
||||
'include/internal/cef_logging_internal.h',
|
||||
'include/internal/cef_ptr.h',
|
||||
'include/internal/cef_string_wrappers.h',
|
||||
'include/internal/cef_types_wrappers.h',
|
||||
],
|
||||
'includes_common_capi': [
|
||||
'include/internal/cef_logging_internal.h',
|
||||
'include/internal/cef_string.h',
|
||||
'include/internal/cef_string_list.h',
|
||||
'include/internal/cef_string_map.h',
|
||||
'include/internal/cef_string_multimap.h',
|
||||
'include/internal/cef_string_types.h',
|
||||
'include/internal/cef_string_wrappers.h',
|
||||
'include/internal/cef_thread_internal.h',
|
||||
'include/internal/cef_time.h',
|
||||
'include/internal/cef_trace_event_internal.h',
|
||||
'include/internal/cef_types.h',
|
||||
'include/internal/cef_types_wrappers.h',
|
||||
],
|
||||
'includes_capi': [
|
||||
'include/capi/cef_base_capi.h',
|
||||
@@ -66,25 +69,37 @@
|
||||
'include/wrapper/cef_xml_object.h',
|
||||
'include/wrapper/cef_zip_archive.h',
|
||||
],
|
||||
'includes_wrapper_mac': [
|
||||
'include/wrapper/cef_library_loader.h',
|
||||
],
|
||||
'includes_win': [
|
||||
'include/base/internal/cef_atomicops_arm64_msvc.h',
|
||||
'include/base/internal/cef_atomicops_x86_msvc.h',
|
||||
'include/base/internal/cef_bind_internal_win.h',
|
||||
'include/cef_sandbox_win.h',
|
||||
'include/internal/cef_types_win.h',
|
||||
'include/internal/cef_win.h',
|
||||
],
|
||||
'includes_win_capi': [
|
||||
'include/internal/cef_types_win.h',
|
||||
],
|
||||
'includes_mac': [
|
||||
'include/base/internal/cef_atomicops_atomicword_compat.h',
|
||||
'include/base/internal/cef_atomicops_mac.h',
|
||||
'include/cef_application_mac.h',
|
||||
'include/cef_sandbox_mac.h',
|
||||
'include/internal/cef_mac.h',
|
||||
],
|
||||
'includes_mac_capi': [
|
||||
'include/internal/cef_types_mac.h',
|
||||
],
|
||||
'includes_linux': [
|
||||
'include/base/internal/cef_atomicops_atomicword_compat.h',
|
||||
'include/base/internal/cef_atomicops_arm_gcc.h',
|
||||
'include/base/internal/cef_atomicops_arm64_gcc.h',
|
||||
'include/base/internal/cef_atomicops_x86_gcc.h',
|
||||
'include/internal/cef_linux.h',
|
||||
],
|
||||
'includes_linux_capi': [
|
||||
'include/internal/cef_types_linux.h',
|
||||
],
|
||||
'libcef_sources_common': [
|
||||
@@ -100,6 +115,8 @@
|
||||
'libcef_dll/libcef_dll2.cc',
|
||||
'libcef_dll/ptr_util.h',
|
||||
'libcef_dll/resource.h',
|
||||
'libcef_dll/shutdown_checker.cc',
|
||||
'libcef_dll/shutdown_checker.h',
|
||||
'libcef_dll/transfer_util.cc',
|
||||
'libcef_dll/transfer_util.h',
|
||||
'libcef_dll/wrapper_types.h',
|
||||
@@ -115,7 +132,6 @@
|
||||
'libcef_dll/base/cef_ref_counted.cc',
|
||||
'libcef_dll/base/cef_string16.cc',
|
||||
'libcef_dll/base/cef_thread_checker_impl.cc',
|
||||
'libcef_dll/base/cef_thread_collision_warner.cc',
|
||||
'libcef_dll/base/cef_weak_ptr.cc',
|
||||
],
|
||||
'libcef_dll_wrapper_sources_common': [
|
||||
@@ -128,6 +144,8 @@
|
||||
'libcef_dll/ctocpp/ctocpp_ref_counted.h',
|
||||
'libcef_dll/ctocpp/ctocpp_scoped.h',
|
||||
'libcef_dll/ptr_util.h',
|
||||
'libcef_dll/shutdown_checker.cc',
|
||||
'libcef_dll/shutdown_checker.h',
|
||||
'libcef_dll/transfer_util.cc',
|
||||
'libcef_dll/transfer_util.h',
|
||||
'libcef_dll/wrapper_types.h',
|
||||
@@ -143,9 +161,17 @@
|
||||
'libcef_dll/wrapper/libcef_dll_wrapper.cc',
|
||||
'libcef_dll/wrapper/libcef_dll_wrapper2.cc',
|
||||
],
|
||||
'libcef_dll_wrapper_sources_mac': [
|
||||
'libcef_dll/wrapper/cef_library_loader_mac.mm',
|
||||
'libcef_dll/wrapper/libcef_dll_dylib.cc',
|
||||
],
|
||||
'shared_sources_browser': [
|
||||
'tests/shared/browser/client_app_browser.cc',
|
||||
'tests/shared/browser/client_app_browser.h',
|
||||
'tests/shared/browser/extension_util.cc',
|
||||
'tests/shared/browser/extension_util.h',
|
||||
'tests/shared/browser/file_util.cc',
|
||||
'tests/shared/browser/file_util.h',
|
||||
'tests/shared/browser/geometry_util.cc',
|
||||
'tests/shared/browser/geometry_util.h',
|
||||
'tests/shared/browser/main_message_loop.cc',
|
||||
@@ -155,8 +181,6 @@
|
||||
'tests/shared/browser/main_message_loop_std.cc',
|
||||
'tests/shared/browser/main_message_loop_std.h',
|
||||
'tests/shared/browser/resource_util.h',
|
||||
'tests/shared/browser/resource_util.cc',
|
||||
'tests/shared/browser/resource_util.h',
|
||||
],
|
||||
'shared_sources_common': [
|
||||
'tests/shared/common/client_app.cc',
|
||||
@@ -216,13 +240,18 @@
|
||||
'tests/cefclient/browser/dialog_test.h',
|
||||
'tests/cefclient/browser/drm_test.cc',
|
||||
'tests/cefclient/browser/drm_test.h',
|
||||
'tests/cefclient/browser/image_cache.cc',
|
||||
'tests/cefclient/browser/image_cache.h',
|
||||
'tests/cefclient/browser/main_context.cc',
|
||||
'tests/cefclient/browser/main_context.h',
|
||||
'tests/cefclient/browser/main_context_impl.cc',
|
||||
'tests/cefclient/browser/main_context_impl.h',
|
||||
'tests/cefclient/browser/media_router_test.cc',
|
||||
'tests/cefclient/browser/media_router_test.h',
|
||||
'tests/cefclient/browser/osr_dragdrop_events.h',
|
||||
'tests/cefclient/browser/osr_renderer.h',
|
||||
'tests/cefclient/browser/osr_renderer.cc',
|
||||
'tests/cefclient/browser/osr_renderer_settings.h',
|
||||
'tests/cefclient/browser/preferences_test.cc',
|
||||
'tests/cefclient/browser/preferences_test.h',
|
||||
'tests/cefclient/browser/resource.h',
|
||||
@@ -235,6 +264,8 @@
|
||||
'tests/cefclient/browser/root_window_manager.h',
|
||||
'tests/cefclient/browser/scheme_test.cc',
|
||||
'tests/cefclient/browser/scheme_test.h',
|
||||
'tests/cefclient/browser/server_test.cc',
|
||||
'tests/cefclient/browser/server_test.h',
|
||||
'tests/cefclient/browser/temp_window.h',
|
||||
'tests/cefclient/browser/test_runner.cc',
|
||||
'tests/cefclient/browser/test_runner.h',
|
||||
@@ -266,6 +297,7 @@
|
||||
'tests/cefclient/resources/drm.html',
|
||||
'tests/cefclient/resources/localstorage.html',
|
||||
'tests/cefclient/resources/logo.png',
|
||||
'tests/cefclient/resources/media_router.html',
|
||||
'tests/cefclient/resources/menu_icon.1x.png',
|
||||
'tests/cefclient/resources/menu_icon.2x.png',
|
||||
'tests/cefclient/resources/other_tests.html',
|
||||
@@ -273,11 +305,20 @@
|
||||
'tests/cefclient/resources/performance2.html',
|
||||
'tests/cefclient/resources/preferences.html',
|
||||
'tests/cefclient/resources/response_filter.html',
|
||||
'tests/cefclient/resources/server.html',
|
||||
'tests/cefclient/resources/transparency.html',
|
||||
'tests/cefclient/resources/urlrequest.html',
|
||||
'tests/cefclient/resources/websocket.html',
|
||||
'tests/cefclient/resources/window.html',
|
||||
'tests/cefclient/resources/xmlhttprequest.html',
|
||||
],
|
||||
'cefclient_sources_resources_extensions_set_page_color': [
|
||||
'tests/cefclient/resources/extensions/set_page_color/icon.png',
|
||||
'tests/cefclient/resources/extensions/set_page_color/manifest.json',
|
||||
'tests/cefclient/resources/extensions/set_page_color/popup.html',
|
||||
'tests/cefclient/resources/extensions/set_page_color/popup.js',
|
||||
'tests/cefclient/resources/extensions/set_page_color/README.md',
|
||||
],
|
||||
'cefclient_sources_win': [
|
||||
'tests/cefclient/browser/browser_window_osr_win.cc',
|
||||
'tests/cefclient/browser/browser_window_osr_win.h',
|
||||
@@ -286,10 +327,23 @@
|
||||
'tests/cefclient/browser/main_context_impl_win.cc',
|
||||
'tests/cefclient/browser/main_message_loop_multithreaded_win.cc',
|
||||
'tests/cefclient/browser/main_message_loop_multithreaded_win.h',
|
||||
'tests/cefclient/browser/osr_accessibility_helper.cc',
|
||||
'tests/cefclient/browser/osr_accessibility_helper.h',
|
||||
'tests/cefclient/browser/osr_accessibility_node.cc',
|
||||
'tests/cefclient/browser/osr_accessibility_node.h',
|
||||
'tests/cefclient/browser/osr_accessibility_node_win.cc',
|
||||
'tests/cefclient/browser/osr_dragdrop_win.cc',
|
||||
'tests/cefclient/browser/osr_dragdrop_win.h',
|
||||
'tests/cefclient/browser/osr_ime_handler_win.cc',
|
||||
'tests/cefclient/browser/osr_ime_handler_win.h',
|
||||
'tests/cefclient/browser/osr_d3d11_win.cc',
|
||||
'tests/cefclient/browser/osr_d3d11_win.h',
|
||||
'tests/cefclient/browser/osr_render_handler_win.cc',
|
||||
'tests/cefclient/browser/osr_render_handler_win.h',
|
||||
'tests/cefclient/browser/osr_render_handler_win_d3d11.cc',
|
||||
'tests/cefclient/browser/osr_render_handler_win_d3d11.h',
|
||||
'tests/cefclient/browser/osr_render_handler_win_gl.cc',
|
||||
'tests/cefclient/browser/osr_render_handler_win_gl.h',
|
||||
'tests/cefclient/browser/osr_window_win.cc',
|
||||
'tests/cefclient/browser/osr_window_win.h',
|
||||
'tests/cefclient/browser/resource_util_win_idmap.cc',
|
||||
@@ -310,9 +364,11 @@
|
||||
'tests/cefclient/browser/window_test_runner_win.cc',
|
||||
'tests/cefclient/browser/window_test_runner_win.h',
|
||||
'tests/cefclient/cefclient_win.cc',
|
||||
'tests/cefclient/resources/win/cefclient.rc',
|
||||
],
|
||||
'cefclient_sources_resources_win': [
|
||||
'tests/cefclient/resources/win/cefclient.exe.manifest',
|
||||
'tests/cefclient/resources/win/cefclient.ico',
|
||||
'tests/cefclient/resources/win/cefclient.rc',
|
||||
'tests/cefclient/resources/win/small.ico',
|
||||
],
|
||||
'cefclient_sources_mac': [
|
||||
@@ -321,6 +377,11 @@
|
||||
'tests/cefclient/browser/browser_window_std_mac.h',
|
||||
'tests/cefclient/browser/browser_window_std_mac.mm',
|
||||
'tests/cefclient/browser/main_context_impl_posix.cc',
|
||||
'tests/cefclient/browser/osr_accessibility_helper.cc',
|
||||
'tests/cefclient/browser/osr_accessibility_helper.h',
|
||||
'tests/cefclient/browser/osr_accessibility_node.cc',
|
||||
'tests/cefclient/browser/osr_accessibility_node.h',
|
||||
'tests/cefclient/browser/osr_accessibility_node_mac.mm',
|
||||
'tests/cefclient/browser/root_window_mac.h',
|
||||
'tests/cefclient/browser/root_window_mac.mm',
|
||||
'tests/cefclient/browser/temp_window_mac.h',
|
||||
@@ -345,6 +406,8 @@
|
||||
'tests/cefclient/browser/dialog_handler_gtk.cc',
|
||||
'tests/cefclient/browser/dialog_handler_gtk.h',
|
||||
'tests/cefclient/browser/main_context_impl_posix.cc',
|
||||
'tests/cefclient/browser/main_message_loop_multithreaded_gtk.cc',
|
||||
'tests/cefclient/browser/main_message_loop_multithreaded_gtk.h',
|
||||
'tests/cefclient/browser/print_handler_gtk.cc',
|
||||
'tests/cefclient/browser/print_handler_gtk.h',
|
||||
'tests/cefclient/browser/resource_util_linux.cc',
|
||||
@@ -354,6 +417,8 @@
|
||||
'tests/cefclient/browser/root_window_views.h',
|
||||
'tests/cefclient/browser/temp_window_x11.cc',
|
||||
'tests/cefclient/browser/temp_window_x11.h',
|
||||
'tests/cefclient/browser/util_gtk.cc',
|
||||
'tests/cefclient/browser/util_gtk.h',
|
||||
'tests/cefclient/browser/views_menu_bar.cc',
|
||||
'tests/cefclient/browser/views_menu_bar.h',
|
||||
'tests/cefclient/browser/views_style.cc',
|
||||
@@ -373,11 +438,13 @@
|
||||
'tests/cefsimple/simple_handler.h',
|
||||
],
|
||||
'cefsimple_sources_win': [
|
||||
'tests/cefsimple/cefsimple.exe.manifest',
|
||||
'tests/cefsimple/cefsimple.rc',
|
||||
'tests/cefsimple/cefsimple_win.cc',
|
||||
'tests/cefsimple/simple_handler_win.cc',
|
||||
'tests/cefsimple/resource.h',
|
||||
],
|
||||
'cefsimple_sources_resources_win': [
|
||||
'tests/cefsimple/cefsimple.exe.manifest',
|
||||
'tests/cefsimple/res/cefsimple.ico',
|
||||
'tests/cefsimple/res/small.ico',
|
||||
],
|
||||
@@ -399,19 +466,26 @@
|
||||
'tests/cefsimple/simple_handler_linux.cc',
|
||||
],
|
||||
'ceftests_sources_common': [
|
||||
'tests/ceftests/audio_output_unittest.cc',
|
||||
'tests/ceftests/browser_info_map_unittest.cc',
|
||||
'tests/ceftests/command_line_unittest.cc',
|
||||
'tests/ceftests/cookie_unittest.cc',
|
||||
'tests/ceftests/cors_unittest.cc',
|
||||
'tests/ceftests/devtools_message_unittest.cc',
|
||||
'tests/ceftests/dialog_unittest.cc',
|
||||
'tests/ceftests/display_unittest.cc',
|
||||
'tests/ceftests/dom_unittest.cc',
|
||||
'tests/ceftests/download_unittest.cc',
|
||||
'tests/ceftests/draggable_regions_unittest.cc',
|
||||
'tests/ceftests/file_util.cc',
|
||||
'tests/ceftests/file_util.h',
|
||||
'tests/ceftests/extensions/background_unittest.cc',
|
||||
'tests/ceftests/extensions/chrome_alarms_unittest.cc',
|
||||
'tests/ceftests/extensions/chrome_storage_unittest.cc',
|
||||
'tests/ceftests/extensions/chrome_tabs_unittest.cc',
|
||||
'tests/ceftests/extensions/extension_test_handler.cc',
|
||||
'tests/ceftests/extensions/extension_test_handler.h',
|
||||
'tests/ceftests/extensions/view_unittest.cc',
|
||||
'tests/ceftests/file_util_unittest.cc',
|
||||
'tests/ceftests/frame_unittest.cc',
|
||||
'tests/ceftests/geolocation_unittest.cc',
|
||||
'tests/ceftests/image_unittest.cc',
|
||||
'tests/ceftests/image_util.cc',
|
||||
'tests/ceftests/image_util.h',
|
||||
@@ -420,6 +494,8 @@
|
||||
'tests/ceftests/message_router_unittest.cc',
|
||||
'tests/ceftests/navigation_unittest.cc',
|
||||
'tests/ceftests/os_rendering_unittest.cc',
|
||||
'tests/ceftests/osr_accessibility_unittest.cc',
|
||||
'tests/ceftests/osr_display_unittest.cc',
|
||||
'tests/ceftests/parser_unittest.cc',
|
||||
'tests/ceftests/plugin_unittest.cc',
|
||||
'tests/ceftests/preference_unittest.cc',
|
||||
@@ -428,13 +504,16 @@
|
||||
'tests/ceftests/request_context_unittest.cc',
|
||||
'tests/ceftests/request_handler_unittest.cc',
|
||||
'tests/ceftests/request_unittest.cc',
|
||||
'tests/ceftests/response_unittest.cc',
|
||||
'tests/ceftests/resource.h',
|
||||
'tests/ceftests/resource_manager_unittest.cc',
|
||||
'tests/ceftests/resource_request_handler_unittest.cc',
|
||||
'tests/ceftests/routing_test_handler.cc',
|
||||
'tests/ceftests/routing_test_handler.h',
|
||||
'tests/ceftests/run_all_unittests.cc',
|
||||
'tests/ceftests/scheme_handler_unittest.cc',
|
||||
'tests/ceftests/scoped_temp_dir_unittest.cc',
|
||||
'tests/ceftests/server_unittest.cc',
|
||||
'tests/ceftests/stream_unittest.cc',
|
||||
'tests/ceftests/stream_resource_handler_unittest.cc',
|
||||
'tests/ceftests/string_unittest.cc',
|
||||
@@ -442,6 +521,11 @@
|
||||
'tests/ceftests/task_unittest.cc',
|
||||
'tests/ceftests/test_handler.cc',
|
||||
'tests/ceftests/test_handler.h',
|
||||
'tests/ceftests/test_request.cc',
|
||||
'tests/ceftests/test_request.h',
|
||||
'tests/ceftests/test_server.cc',
|
||||
'tests/ceftests/test_server.h',
|
||||
'tests/ceftests/test_server_unittest.cc',
|
||||
'tests/ceftests/test_suite.cc',
|
||||
'tests/ceftests/test_suite.h',
|
||||
'tests/ceftests/test_util.cc',
|
||||
@@ -450,6 +534,7 @@
|
||||
'tests/ceftests/thread_helper.h',
|
||||
'tests/ceftests/thread_unittest.cc',
|
||||
'tests/ceftests/tracing_unittest.cc',
|
||||
'tests/ceftests/track_callback.h',
|
||||
'tests/ceftests/translator_unittest.cc',
|
||||
'tests/ceftests/urlrequest_unittest.cc',
|
||||
'tests/ceftests/v8_unittest.cc',
|
||||
@@ -471,9 +556,11 @@
|
||||
],
|
||||
'ceftests_sources_win': [
|
||||
'tests/ceftests/resource_util_win_idmap.cc',
|
||||
'tests/ceftests/resources/win/ceftests.rc',
|
||||
],
|
||||
'ceftests_sources_resources_win': [
|
||||
'tests/ceftests/resources/win/ceftests.exe.manifest',
|
||||
'tests/ceftests/resources/win/ceftests.ico',
|
||||
'tests/ceftests/resources/win/ceftests.rc',
|
||||
'tests/ceftests/resources/win/small.ico',
|
||||
],
|
||||
'ceftests_sources_mac': [
|
||||
@@ -482,15 +569,15 @@
|
||||
'tests/ceftests/run_all_unittests_mac.mm',
|
||||
],
|
||||
'ceftests_sources_mac_helper': [
|
||||
'tests/shared/browser/resource_util.cc',
|
||||
'tests/shared/browser/file_util.cc',
|
||||
'tests/shared/browser/file_util.h',
|
||||
'tests/shared/browser/resource_util.h',
|
||||
'tests/shared/browser/resource_util_mac.mm',
|
||||
'tests/shared/browser/resource_util_posix.cc',
|
||||
'tests/ceftests/audio_output_unittest.cc',
|
||||
'tests/ceftests/client_app_delegates.cc',
|
||||
'tests/ceftests/cookie_unittest.cc',
|
||||
'tests/ceftests/dom_unittest.cc',
|
||||
'tests/ceftests/file_util.cc',
|
||||
'tests/ceftests/file_util.h',
|
||||
'tests/ceftests/frame_unittest.cc',
|
||||
'tests/ceftests/message_router_unittest.cc',
|
||||
'tests/ceftests/navigation_unittest.cc',
|
||||
@@ -499,16 +586,23 @@
|
||||
'tests/ceftests/process_message_unittest.cc',
|
||||
'tests/ceftests/request_handler_unittest.cc',
|
||||
'tests/ceftests/request_unittest.cc',
|
||||
'tests/ceftests/response_unittest.cc',
|
||||
'tests/ceftests/resource_request_handler_unittest.cc',
|
||||
'tests/ceftests/routing_test_handler.cc',
|
||||
'tests/ceftests/routing_test_handler.h',
|
||||
'tests/ceftests/scheme_handler_unittest.cc',
|
||||
'tests/ceftests/urlrequest_unittest.cc',
|
||||
'tests/ceftests/test_handler.cc',
|
||||
'tests/ceftests/test_handler.h',
|
||||
'tests/ceftests/test_request.cc',
|
||||
'tests/ceftests/test_request.h',
|
||||
'tests/ceftests/test_server.cc',
|
||||
'tests/ceftests/test_server.h',
|
||||
'tests/ceftests/test_suite.cc',
|
||||
'tests/ceftests/test_suite.h',
|
||||
'tests/ceftests/test_util.cc',
|
||||
'tests/ceftests/test_util.h',
|
||||
'tests/ceftests/track_callback.h',
|
||||
'tests/ceftests/thread_helper.cc',
|
||||
'tests/ceftests/thread_helper.h',
|
||||
'tests/ceftests/thread_unittest.cc',
|
||||
|
@@ -34,10 +34,12 @@ template("_repack_one_locale") {
|
||||
"${root_gen_dir}/chrome/generated_resources_${locale}.pak",
|
||||
"${root_gen_dir}/chrome/locale_settings_${locale}.pak",
|
||||
"${root_gen_dir}/chrome/platform_locale_settings_${locale}.pak",
|
||||
"${root_gen_dir}/components/strings/components_chromium_strings_${locale}.pak",
|
||||
"${root_gen_dir}/components/strings/components_locale_settings_${locale}.pak",
|
||||
"${root_gen_dir}/components/strings/components_strings_${locale}.pak",
|
||||
"${root_gen_dir}/content/app/strings/content_strings_${locale}.pak",
|
||||
"${root_gen_dir}/extensions/strings/extensions_strings_${locale}.pak",
|
||||
"${root_gen_dir}/services/strings/services_strings_${locale}.pak",
|
||||
"${root_gen_dir}/third_party/blink/public/strings/blink_strings_${locale}.pak",
|
||||
"${root_gen_dir}/ui/strings/app_locale_settings_${locale}.pak",
|
||||
"${root_gen_dir}/ui/strings/ui_strings_${locale}.pak",
|
||||
]
|
||||
@@ -51,10 +53,12 @@ template("_repack_one_locale") {
|
||||
"//chrome/app:generated_resources",
|
||||
"//chrome/app/resources:locale_settings",
|
||||
"//chrome/app/resources:platform_locale_settings",
|
||||
"//components/strings:components_chromium_strings",
|
||||
"//components/strings:components_locale_settings",
|
||||
"//components/strings:components_strings",
|
||||
"//content/app/strings",
|
||||
"//extensions/strings",
|
||||
"//services/strings",
|
||||
"//third_party/blink/public/strings",
|
||||
"//ui/strings:app_locale_settings",
|
||||
"//ui/strings:ui_strings",
|
||||
]
|
||||
|
@@ -19,22 +19,23 @@ macro(PRINT_CEF_CONFIG)
|
||||
message(STATUS "Platform: ${CMAKE_SYSTEM_NAME}")
|
||||
message(STATUS "Project architecture: ${PROJECT_ARCH}")
|
||||
|
||||
if(${CMAKE_GENERATOR} STREQUAL "Ninja" OR ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
|
||||
if(GEN_NINJA OR GEN_MAKEFILES)
|
||||
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Binary distribution root: ${_CEF_ROOT}")
|
||||
|
||||
if(OS_MACOSX)
|
||||
if(OS_MAC)
|
||||
message(STATUS "Base SDK: ${CMAKE_OSX_SYSROOT}")
|
||||
message(STATUS "Target SDK: ${CEF_TARGET_SDK}")
|
||||
endif()
|
||||
|
||||
if(OS_WINDOWS)
|
||||
message(STATUS "CEF Windows sandbox: ${USE_SANDBOX}")
|
||||
message(STATUS "Visual Studio ATL support: ${USE_ATL}")
|
||||
endif()
|
||||
|
||||
message(STATUS "CEF sandbox: ${USE_SANDBOX}")
|
||||
|
||||
set(_libraries ${CEF_STANDARD_LIBS})
|
||||
if(OS_WINDOWS AND USE_SANDBOX)
|
||||
list(APPEND _libraries ${CEF_SANDBOX_STANDARD_LIBS})
|
||||
@@ -74,15 +75,14 @@ macro(APPEND_PLATFORM_SOURCES name_of_list)
|
||||
if(OS_WINDOWS AND ${name_of_list}_WINDOWS)
|
||||
list(APPEND ${name_of_list} ${${name_of_list}_WINDOWS})
|
||||
endif()
|
||||
if(OS_MACOSX AND ${name_of_list}_MACOSX)
|
||||
list(APPEND ${name_of_list} ${${name_of_list}_MACOSX})
|
||||
if(OS_MAC AND ${name_of_list}_MAC)
|
||||
list(APPEND ${name_of_list} ${${name_of_list}_MAC})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Determine the target output directory based on platform and generator.
|
||||
macro(SET_CEF_TARGET_OUT_DIR)
|
||||
if(${CMAKE_GENERATOR} STREQUAL "Ninja" OR
|
||||
${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
|
||||
if(GEN_NINJA OR GEN_MAKEFILES)
|
||||
# By default Ninja and Make builds don't create a subdirectory named after
|
||||
# the configuration.
|
||||
set(CEF_TARGET_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}")
|
||||
@@ -102,7 +102,19 @@ macro(COPY_FILES target file_list source_dir target_dir)
|
||||
set(source_file ${source_dir}/${FILENAME})
|
||||
get_filename_component(target_name ${FILENAME} NAME)
|
||||
set(target_file ${target_dir}/${target_name})
|
||||
if(IS_DIRECTORY ${source_file})
|
||||
|
||||
string(FIND ${source_file} "$<CONFIGURATION>" _pos)
|
||||
if(NOT ${_pos} EQUAL -1)
|
||||
# Must test with an actual configuration directory.
|
||||
string(REPLACE "$<CONFIGURATION>" "Release" existing_source_file ${source_file})
|
||||
if(NOT EXISTS ${existing_source_file})
|
||||
string(REPLACE "$<CONFIGURATION>" "Debug" existing_source_file ${source_file})
|
||||
endif()
|
||||
else()
|
||||
set(existing_source_file ${source_file})
|
||||
endif()
|
||||
|
||||
if(IS_DIRECTORY ${existing_source_file})
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
@@ -172,26 +184,10 @@ endif(OS_LINUX)
|
||||
# Mac OS X macros.
|
||||
#
|
||||
|
||||
if(OS_MACOSX)
|
||||
|
||||
# Fix the framework rpath in the helper executable.
|
||||
macro(FIX_MACOSX_HELPER_FRAMEWORK_RPATH target)
|
||||
# The helper is in $app_name.app/Contents/Frameworks/$app_name Helper.app/Contents/MacOS/
|
||||
# so set rpath up to Contents/ so that the loader can find Frameworks/.
|
||||
set_target_properties(${target} PROPERTIES INSTALL_RPATH "@executable_path/../../../..")
|
||||
set_target_properties(${target} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
endmacro()
|
||||
|
||||
# Fix the framework rpath in the main executable.
|
||||
macro(FIX_MACOSX_MAIN_FRAMEWORK_RPATH target)
|
||||
# The main app is at $app_name.app/Contents/MacOS/$app_name
|
||||
# so set rpath up to Contents/ so that the loader can find Frameworks/.
|
||||
set_target_properties(${target} PROPERTIES INSTALL_RPATH "@executable_path/..")
|
||||
set_target_properties(${target} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
endmacro()
|
||||
if(OS_MAC)
|
||||
|
||||
# Manually process and copy over resource files.
|
||||
macro(COPY_MACOSX_RESOURCES resource_list prefix_list target source_dir app_path)
|
||||
macro(COPY_MAC_RESOURCES resource_list prefix_list target source_dir app_path)
|
||||
foreach(FILENAME ${resource_list})
|
||||
# Remove one or more prefixes from the source paths.
|
||||
set(TARGET_FILENAME "${FILENAME}")
|
||||
@@ -233,7 +229,7 @@ macro(COPY_MACOSX_RESOURCES resource_list prefix_list target source_dir app_path
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
endif(OS_MACOSX)
|
||||
endif(OS_MAC)
|
||||
|
||||
|
||||
#
|
||||
@@ -276,17 +272,17 @@ endmacro()
|
||||
# SET_EXECUTABLE_TARGET_PROPERTIES() instead of calling this macro directly.
|
||||
macro(SET_COMMON_TARGET_PROPERTIES target)
|
||||
# Compile flags.
|
||||
target_compile_options(${target} PUBLIC ${CEF_COMPILER_FLAGS} ${CEF_CXX_COMPILER_FLAGS})
|
||||
target_compile_options(${target} PUBLIC $<$<CONFIG:Debug>:${CEF_COMPILER_FLAGS_DEBUG} ${CEF_CXX_COMPILER_FLAGS_DEBUG}>)
|
||||
target_compile_options(${target} PUBLIC $<$<CONFIG:Release>:${CEF_COMPILER_FLAGS_RELEASE} ${CEF_CXX_COMPILER_FLAGS_RELEASE}>)
|
||||
target_compile_options(${target} PRIVATE ${CEF_COMPILER_FLAGS} ${CEF_CXX_COMPILER_FLAGS})
|
||||
target_compile_options(${target} PRIVATE $<$<CONFIG:Debug>:${CEF_COMPILER_FLAGS_DEBUG} ${CEF_CXX_COMPILER_FLAGS_DEBUG}>)
|
||||
target_compile_options(${target} PRIVATE $<$<CONFIG:Release>:${CEF_COMPILER_FLAGS_RELEASE} ${CEF_CXX_COMPILER_FLAGS_RELEASE}>)
|
||||
|
||||
# Compile definitions.
|
||||
target_compile_definitions(${target} PUBLIC ${CEF_COMPILER_DEFINES})
|
||||
target_compile_definitions(${target} PUBLIC $<$<CONFIG:Debug>:${CEF_COMPILER_DEFINES_DEBUG}>)
|
||||
target_compile_definitions(${target} PUBLIC $<$<CONFIG:Release>:${CEF_COMPILER_DEFINES_RELEASE}>)
|
||||
target_compile_definitions(${target} PRIVATE ${CEF_COMPILER_DEFINES})
|
||||
target_compile_definitions(${target} PRIVATE $<$<CONFIG:Debug>:${CEF_COMPILER_DEFINES_DEBUG}>)
|
||||
target_compile_definitions(${target} PRIVATE $<$<CONFIG:Release>:${CEF_COMPILER_DEFINES_RELEASE}>)
|
||||
|
||||
# Include directories.
|
||||
target_include_directories(${target} PUBLIC ${CEF_INCLUDE_PATH})
|
||||
target_include_directories(${target} PRIVATE ${CEF_INCLUDE_PATH})
|
||||
|
||||
# Linker flags.
|
||||
if(CEF_LINKER_FLAGS)
|
||||
@@ -302,7 +298,7 @@ macro(SET_COMMON_TARGET_PROPERTIES target)
|
||||
set_property(TARGET ${target} PROPERTY LINK_FLAGS_RELEASE ${_flags_str})
|
||||
endif()
|
||||
|
||||
if(OS_MACOSX)
|
||||
if(OS_MAC)
|
||||
# Set Xcode target properties.
|
||||
set_target_properties(${target} PROPERTIES
|
||||
XCODE_ATTRIBUTE_ALWAYS_SEARCH_USER_PATHS NO
|
||||
|
@@ -14,7 +14,8 @@ endif()
|
||||
|
||||
# Determine the platform.
|
||||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
||||
set(OS_MACOSX 1)
|
||||
set(OS_MAC 1)
|
||||
set(OS_MACOSX 1) # For backwards compatibility.
|
||||
set(OS_POSIX 1)
|
||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
||||
set(OS_LINUX 1)
|
||||
@@ -31,15 +32,20 @@ if(NOT DEFINED PROJECT_ARCH)
|
||||
set(PROJECT_ARCH "x86")
|
||||
endif()
|
||||
|
||||
if(OS_MACOSX)
|
||||
if(OS_MAC)
|
||||
# PROJECT_ARCH should be specified on Mac OS X.
|
||||
message(WARNING "No PROJECT_ARCH value specified, using ${PROJECT_ARCH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(${CMAKE_GENERATOR} STREQUAL "Ninja")
|
||||
set(GEN_NINJA 1)
|
||||
elseif(${CMAKE_GENERATOR} STREQUAL "Unix Makefiles")
|
||||
set(GEN_MAKEFILES 1)
|
||||
endif()
|
||||
|
||||
# Determine the build type.
|
||||
if(NOT CMAKE_BUILD_TYPE AND
|
||||
(${CMAKE_GENERATOR} STREQUAL "Ninja" OR ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles"))
|
||||
if(NOT CMAKE_BUILD_TYPE AND (GEN_NINJA OR GEN_MAKEFILES))
|
||||
# CMAKE_BUILD_TYPE should be specified when using Ninja or Unix Makefiles.
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
message(WARNING "No CMAKE_BUILD_TYPE value selected, using ${CMAKE_BUILD_TYPE}")
|
||||
@@ -61,6 +67,10 @@ list(APPEND CEF_COMPILER_DEFINES
|
||||
)
|
||||
|
||||
|
||||
# Configure use of the sandbox.
|
||||
option(USE_SANDBOX "Enable or disable use of the sandbox." ON)
|
||||
|
||||
|
||||
#
|
||||
# Linux configuration.
|
||||
#
|
||||
@@ -81,6 +91,8 @@ if(OS_LINUX)
|
||||
-Werror # Treat warnings as errors
|
||||
-Wno-missing-field-initializers # Don't warn about missing field initializers
|
||||
-Wno-unused-parameter # Don't warn about unused parameters
|
||||
-Wno-error=comment # Don't warn about code in comments
|
||||
-Wno-comment # Don't warn about code in comments
|
||||
)
|
||||
list(APPEND CEF_C_COMPILER_FLAGS
|
||||
-std=c99 # Use the C99 language standard
|
||||
@@ -130,6 +142,13 @@ if(OS_LINUX)
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
|
||||
CHECK_CXX_COMPILER_FLAG(-Wno-undefined-var-template COMPILER_SUPPORTS_NO_UNDEFINED_VAR_TEMPLATE)
|
||||
if(COMPILER_SUPPORTS_NO_UNDEFINED_VAR_TEMPLATE)
|
||||
list(APPEND CEF_CXX_COMPILER_FLAGS
|
||||
-Wno-undefined-var-template # Don't warn about potentially uninstantiated static members
|
||||
)
|
||||
endif()
|
||||
|
||||
CHECK_C_COMPILER_FLAG(-Wno-unused-local-typedefs COMPILER_SUPPORTS_NO_UNUSED_LOCAL_TYPEDEFS)
|
||||
if(COMPILER_SUPPORTS_NO_UNUSED_LOCAL_TYPEDEFS)
|
||||
list(APPEND CEF_C_COMPILER_FLAGS
|
||||
@@ -151,6 +170,12 @@ if(OS_LINUX)
|
||||
)
|
||||
endif()
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
list(APPEND CEF_CXX_COMPILER_FLAGS
|
||||
-Wno-attributes # The cfi-icall attribute is not supported by the GNU C++ compiler
|
||||
)
|
||||
endif()
|
||||
|
||||
if(PROJECT_ARCH STREQUAL "x86_64")
|
||||
# 64-bit architecture.
|
||||
list(APPEND CEF_COMPILER_FLAGS
|
||||
@@ -192,8 +217,11 @@ if(OS_LINUX)
|
||||
set(CEF_BINARY_FILES
|
||||
chrome-sandbox
|
||||
libcef.so
|
||||
natives_blob.bin
|
||||
libEGL.so
|
||||
libGLESv2.so
|
||||
snapshot_blob.bin
|
||||
v8_context_snapshot.bin
|
||||
swiftshader
|
||||
)
|
||||
|
||||
# List of CEF resource files.
|
||||
@@ -206,6 +234,12 @@ if(OS_LINUX)
|
||||
icudtl.dat
|
||||
locales
|
||||
)
|
||||
|
||||
if(USE_SANDBOX)
|
||||
list(APPEND CEF_COMPILER_DEFINES
|
||||
CEF_USE_SANDBOX # Used by apps to test if the sandbox is enabled
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -213,7 +247,7 @@ endif()
|
||||
# Mac OS X configuration.
|
||||
#
|
||||
|
||||
if(OS_MACOSX)
|
||||
if(OS_MAC)
|
||||
# Platform-specific compiler/linker flags.
|
||||
# See also Xcode target properties in cef_macros.cmake.
|
||||
set(CEF_LIBTYPE SHARED)
|
||||
@@ -277,7 +311,7 @@ if(OS_MACOSX)
|
||||
|
||||
# Find the newest available base SDK.
|
||||
execute_process(COMMAND xcode-select --print-path OUTPUT_VARIABLE XCODE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
foreach(OS_VERSION 10.11 10.10 10.9)
|
||||
foreach(OS_VERSION 10.15 10.14 10.13 10.12 10.11 10.10)
|
||||
set(SDK "${XCODE_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${OS_VERSION}.sdk")
|
||||
if(NOT "${CMAKE_OSX_SYSROOT}" AND EXISTS "${SDK}" AND IS_DIRECTORY "${SDK}")
|
||||
set(CMAKE_OSX_SYSROOT ${SDK})
|
||||
@@ -285,7 +319,7 @@ if(OS_MACOSX)
|
||||
endforeach()
|
||||
|
||||
# Target SDK.
|
||||
set(CEF_TARGET_SDK "10.9")
|
||||
set(CEF_TARGET_SDK "10.10")
|
||||
list(APPEND CEF_COMPILER_FLAGS
|
||||
-mmacosx-version-min=${CEF_TARGET_SDK}
|
||||
)
|
||||
@@ -294,18 +328,38 @@ if(OS_MACOSX)
|
||||
# Target architecture.
|
||||
if(PROJECT_ARCH STREQUAL "x86_64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64")
|
||||
elseif(PROJECT_ARCH STREQUAL "arm64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64")
|
||||
else()
|
||||
set(CMAKE_OSX_ARCHITECTURES "i386")
|
||||
endif()
|
||||
|
||||
# Prevent Xcode 11 from doing automatic codesigning.
|
||||
set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "")
|
||||
|
||||
# CEF directory paths.
|
||||
set(CEF_BINARY_DIR "${_CEF_ROOT}/$<CONFIGURATION>")
|
||||
set(CEF_BINARY_DIR_DEBUG "${_CEF_ROOT}/Debug")
|
||||
set(CEF_BINARY_DIR_RELEASE "${_CEF_ROOT}/Release")
|
||||
|
||||
# CEF library paths.
|
||||
set(CEF_LIB_DEBUG "${CEF_BINARY_DIR_DEBUG}/Chromium Embedded Framework.framework/Chromium Embedded Framework")
|
||||
set(CEF_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/Chromium Embedded Framework.framework/Chromium Embedded Framework")
|
||||
if(USE_SANDBOX)
|
||||
list(APPEND CEF_COMPILER_DEFINES
|
||||
CEF_USE_SANDBOX # Used by apps to test if the sandbox is enabled
|
||||
)
|
||||
|
||||
# CEF sandbox library paths.
|
||||
set(CEF_SANDBOX_LIB_DEBUG "${CEF_BINARY_DIR_DEBUG}/cef_sandbox.a")
|
||||
set(CEF_SANDBOX_LIB_RELEASE "${CEF_BINARY_DIR_RELEASE}/cef_sandbox.a")
|
||||
endif()
|
||||
|
||||
# CEF Helper app suffixes.
|
||||
# Format is "<name suffix>:<target suffix>:<plist suffix>".
|
||||
set(CEF_HELPER_APP_SUFFIXES
|
||||
"::"
|
||||
" (GPU):_gpu:.gpu"
|
||||
" (Plugin):_plugin:.plugin"
|
||||
" (Renderer):_renderer:.renderer"
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -314,27 +368,33 @@ endif()
|
||||
#
|
||||
|
||||
if(OS_WINDOWS)
|
||||
# Configure use of the sandbox.
|
||||
option(USE_SANDBOX "Enable or disable use of the sandbox." ON)
|
||||
if(USE_SANDBOX AND NOT MSVC_VERSION EQUAL 1900)
|
||||
# The cef_sandbox.lib static library is currently built with VS2015. It will
|
||||
# not link successfully with other VS versions.
|
||||
set(USE_SANDBOX OFF)
|
||||
if (GEN_NINJA)
|
||||
# When using the Ninja generator clear the CMake defaults to avoid excessive
|
||||
# console warnings (see issue #2120).
|
||||
set(CMAKE_CXX_FLAGS "")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "")
|
||||
endif()
|
||||
|
||||
# Configure use of official build compiler settings.
|
||||
# When using an official build the "Debug" build is actually a Release build
|
||||
# with DCHECKs enabled. In order to link the sandbox the Debug build must
|
||||
# be configured with some Release-related compiler settings.
|
||||
option(USE_OFFICIAL_BUILD_SANDBOX "Enable or disable use of an official build sandbox." ON)
|
||||
if(NOT USE_SANDBOX)
|
||||
# Don't need official build settings when the sandbox is off.
|
||||
set(USE_OFFICIAL_BUILD_SANDBOX OFF)
|
||||
if(USE_SANDBOX)
|
||||
# Check if the current MSVC version is compatible with the cef_sandbox.lib
|
||||
# static library. We require VS2015 or newer.
|
||||
if(MSVC_VERSION LESS 1900)
|
||||
message(WARNING "CEF sandbox is not compatible with the current MSVC version (${MSVC_VERSION})")
|
||||
set(USE_SANDBOX OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Consumers who run into LNK4099 warnings can pass /Z7 instead (see issue #385).
|
||||
set(CEF_DEBUG_INFO_FLAG "/Zi" CACHE STRING "Optional flag specifying specific /Z flag to use")
|
||||
|
||||
# Consumers using different runtime types may want to pass different flags
|
||||
set(CEF_RUNTIME_LIBRARY_FLAG "/MT" CACHE STRING "Optional flag specifying which runtime to use")
|
||||
if (CEF_RUNTIME_LIBRARY_FLAG)
|
||||
list(APPEND CEF_COMPILER_FLAGS_DEBUG ${CEF_RUNTIME_LIBRARY_FLAG}d)
|
||||
list(APPEND CEF_COMPILER_FLAGS_RELEASE ${CEF_RUNTIME_LIBRARY_FLAG})
|
||||
endif()
|
||||
|
||||
# Platform-specific compiler/linker flags.
|
||||
set(CEF_LIBTYPE STATIC)
|
||||
list(APPEND CEF_COMPILER_FLAGS
|
||||
@@ -353,24 +413,11 @@ if(OS_WINDOWS)
|
||||
/wd4996 # Ignore "function or variable may be unsafe" warning
|
||||
${CEF_DEBUG_INFO_FLAG}
|
||||
)
|
||||
if(USE_OFFICIAL_BUILD_SANDBOX)
|
||||
# CMake adds /RTC1, /D"_DEBUG" and a few other values by default for Debug
|
||||
# builds. We can't link the sandbox with those values so clear the CMake
|
||||
# defaults here.
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "")
|
||||
|
||||
list(APPEND CEF_COMPILER_FLAGS_DEBUG
|
||||
/MT # Multithreaded release runtime
|
||||
)
|
||||
else()
|
||||
list(APPEND CEF_COMPILER_FLAGS_DEBUG
|
||||
/MTd # Multithreaded debug runtime
|
||||
/RTC1 # Disable optimizations
|
||||
/Od # Enable basic run-time checks
|
||||
)
|
||||
endif()
|
||||
list(APPEND CEF_COMPILER_FLAGS_RELEASE
|
||||
/MT # Multithreaded release runtime
|
||||
/O2 # Optimize for maximum speed
|
||||
/Ob2 # Inline any suitable function
|
||||
/GF # Enable string pooling
|
||||
@@ -390,12 +437,6 @@ if(OS_WINDOWS)
|
||||
WIN32_LEAN_AND_MEAN # Exclude less common API declarations
|
||||
_HAS_EXCEPTIONS=0 # Disable exceptions
|
||||
)
|
||||
if(USE_OFFICIAL_BUILD_SANDBOX)
|
||||
list(APPEND CEF_COMPILER_DEFINES_DEBUG
|
||||
NDEBUG _NDEBUG # Not a debug build
|
||||
DCHECK_ALWAYS_ON=1 # DCHECKs are enabled
|
||||
)
|
||||
endif()
|
||||
list(APPEND CEF_COMPILER_DEFINES_RELEASE
|
||||
NDEBUG _NDEBUG # Not a debug build
|
||||
)
|
||||
@@ -421,13 +462,13 @@ if(OS_WINDOWS)
|
||||
# List of CEF binary files.
|
||||
set(CEF_BINARY_FILES
|
||||
chrome_elf.dll
|
||||
d3dcompiler_43.dll
|
||||
d3dcompiler_47.dll
|
||||
libcef.dll
|
||||
libEGL.dll
|
||||
libGLESv2.dll
|
||||
natives_blob.bin
|
||||
snapshot_blob.bin
|
||||
v8_context_snapshot.bin
|
||||
swiftshader
|
||||
)
|
||||
|
||||
# List of CEF resource files.
|
||||
@@ -450,8 +491,13 @@ if(OS_WINDOWS)
|
||||
# Libraries required by cef_sandbox.lib.
|
||||
set(CEF_SANDBOX_STANDARD_LIBS
|
||||
dbghelp.lib
|
||||
Delayimp.lib
|
||||
PowrProf.lib
|
||||
Propsys.lib
|
||||
psapi.lib
|
||||
SetupAPI.lib
|
||||
version.lib
|
||||
wbemuuid.lib
|
||||
winmm.lib
|
||||
)
|
||||
|
||||
@@ -463,10 +509,26 @@ if(OS_WINDOWS)
|
||||
# Configure use of ATL.
|
||||
option(USE_ATL "Enable or disable use of ATL." ON)
|
||||
if(USE_ATL)
|
||||
# Locate the atlmfc directory if it exists. It may be at any depth inside
|
||||
# the VC directory. The cl.exe path returned by CMAKE_CXX_COMPILER may also
|
||||
# be at different depths depending on the toolchain version
|
||||
# (e.g. "VC/bin/cl.exe", "VC/bin/amd64_x86/cl.exe",
|
||||
# "VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe", etc).
|
||||
set(HAS_ATLMFC 0)
|
||||
get_filename_component(VC_DIR ${CMAKE_CXX_COMPILER} DIRECTORY)
|
||||
get_filename_component(VC_DIR_NAME ${VC_DIR} NAME)
|
||||
while(NOT ${VC_DIR_NAME} STREQUAL "VC")
|
||||
get_filename_component(VC_DIR ${VC_DIR} DIRECTORY)
|
||||
if(IS_DIRECTORY "${VC_DIR}/atlmfc")
|
||||
set(HAS_ATLMFC 1)
|
||||
break()
|
||||
endif()
|
||||
get_filename_component(VC_DIR_NAME ${VC_DIR} NAME)
|
||||
endwhile()
|
||||
|
||||
# Determine if the Visual Studio install supports ATL.
|
||||
get_filename_component(VC_BIN_DIR ${CMAKE_CXX_COMPILER} DIRECTORY)
|
||||
get_filename_component(VC_DIR ${VC_BIN_DIR} DIRECTORY)
|
||||
if(NOT IS_DIRECTORY "${VC_DIR}/atlmfc")
|
||||
if(NOT HAS_ATLMFC)
|
||||
message(WARNING "ATL is not supported by your VC installation.")
|
||||
set(USE_ATL OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -39,14 +39,49 @@
|
||||
#define CEF_INCLUDE_BASE_CEF_ATOMIC_REF_COUNT_H_
|
||||
#pragma once
|
||||
|
||||
#if defined(BASE_ATOMIC_REF_COUNT_H_)
|
||||
// Do nothing if the Chromium header has already been included.
|
||||
// This can happen in cases where Chromium code is used directly by the
|
||||
// client application. When using Chromium code directly always include
|
||||
// the Chromium header first to avoid type conflicts.
|
||||
#elif defined(USING_CHROMIUM_INCLUDES)
|
||||
#if defined(USING_CHROMIUM_INCLUDES)
|
||||
// When building CEF include the Chromium header directly.
|
||||
#include "base/atomic_ref_count.h"
|
||||
|
||||
// Used when declaring a base::AtomicRefCount value. This is an object type with
|
||||
// Chromium headers.
|
||||
#define ATOMIC_DECLARATION (0)
|
||||
|
||||
// Maintaining compatibility with AtompicRefCount* functions that were removed
|
||||
// from Chromium in http://crrev.com/ee96d561.
|
||||
namespace base {
|
||||
|
||||
// Increment a reference count by 1.
|
||||
inline void AtomicRefCountInc(volatile AtomicRefCount* ptr) {
|
||||
const_cast<AtomicRefCount*>(ptr)->Increment();
|
||||
}
|
||||
|
||||
// Decrement a reference count by 1 and return whether the result is non-zero.
|
||||
// Insert barriers to ensure that state written before the reference count
|
||||
// became zero will be visible to a thread that has just made the count zero.
|
||||
inline bool AtomicRefCountDec(volatile AtomicRefCount* ptr) {
|
||||
return const_cast<AtomicRefCount*>(ptr)->Decrement();
|
||||
}
|
||||
|
||||
// Return whether the reference count is one. If the reference count is used
|
||||
// in the conventional way, a refrerence count of 1 implies that the current
|
||||
// thread owns the reference and no other thread shares it. This call performs
|
||||
// the test for a reference count of one, and performs the memory barrier
|
||||
// needed for the owning thread to act on the object, knowing that it has
|
||||
// exclusive access to the object.
|
||||
inline bool AtomicRefCountIsOne(volatile AtomicRefCount* ptr) {
|
||||
return const_cast<AtomicRefCount*>(ptr)->IsOne();
|
||||
}
|
||||
|
||||
// Return whether the reference count is zero. With conventional object
|
||||
// referencing counting, the object will be destroyed, so the reference count
|
||||
// should never be zero. Hence this is generally used for a debug check.
|
||||
inline bool AtomicRefCountIsZero(volatile AtomicRefCount* ptr) {
|
||||
return const_cast<AtomicRefCount*>(ptr)->IsZero();
|
||||
}
|
||||
|
||||
} // namespace base
|
||||
|
||||
#else // !USING_CHROMIUM_INCLUDES
|
||||
// The following is substantially similar to the Chromium implementation.
|
||||
// If the Chromium implementation diverges the below implementation should be
|
||||
@@ -58,6 +93,10 @@
|
||||
#define ANNOTATE_HAPPENS_BEFORE(obj) /* empty */
|
||||
#define ANNOTATE_HAPPENS_AFTER(obj) /* empty */
|
||||
|
||||
// Used when declaring a base::AtomicRefCount value. This is an integer/ptr type
|
||||
// with CEF headers.
|
||||
#define ATOMIC_DECLARATION = 0
|
||||
|
||||
namespace base {
|
||||
|
||||
typedef subtle::Atomic32 AtomicRefCount;
|
||||
|
@@ -122,8 +122,7 @@ Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, Atomic32 new_value);
|
||||
// *ptr with the increment applied. This routine implies no memory barriers.
|
||||
Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment);
|
||||
|
||||
Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 increment);
|
||||
Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, Atomic32 increment);
|
||||
|
||||
// These following lower-level operations are typically useful only to people
|
||||
// implementing higher-level synchronization operations like spinlocks,
|
||||
@@ -179,10 +178,14 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
|
||||
// Include our platform specific implementation.
|
||||
#if defined(OS_WIN) && defined(COMPILER_MSVC) && defined(ARCH_CPU_X86_FAMILY)
|
||||
#include "include/base/internal/cef_atomicops_x86_msvc.h"
|
||||
#elif defined(OS_MACOSX)
|
||||
#elif defined(OS_WIN) && (defined(__ARM_ARCH_ISA_A64) || defined(_M_ARM64))
|
||||
#include "include/base/internal/cef_atomicops_arm64_msvc.h"
|
||||
#elif defined(OS_MAC)
|
||||
#include "include/base/internal/cef_atomicops_mac.h"
|
||||
#elif defined(COMPILER_GCC) && defined(ARCH_CPU_X86_FAMILY)
|
||||
#include "include/base/internal/cef_atomicops_x86_gcc.h"
|
||||
#elif defined(COMPILER_GCC) && defined(__ARM_ARCH_ISA_A64)
|
||||
#include "include/base/internal/cef_atomicops_arm64_gcc.h"
|
||||
#elif defined(COMPILER_GCC) && defined(__ARM_ARCH)
|
||||
#include "include/base/internal/cef_atomicops_arm_gcc.h"
|
||||
#else
|
||||
@@ -191,7 +194,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
|
||||
|
||||
// On some platforms we need additional declarations to make
|
||||
// AtomicWord compatible with our other Atomic* types.
|
||||
#if defined(OS_MACOSX) || defined(OS_OPENBSD)
|
||||
#if defined(OS_MAC) || defined(OS_OPENBSD)
|
||||
#include "include/base/internal/cef_atomicops_atomicword_compat.h"
|
||||
#endif
|
||||
|
||||
|
@@ -42,12 +42,12 @@
|
||||
//
|
||||
// On Mac OS X, |long long| is used for 64-bit types for compatibility with
|
||||
// <inttypes.h> format macros even in the LP64 model.
|
||||
#if defined(__LP64__) && !defined(OS_MACOSX) && !defined(OS_OPENBSD)
|
||||
typedef long int64; // NOLINT(runtime/int)
|
||||
typedef unsigned long uint64; // NOLINT(runtime/int)
|
||||
#if defined(__LP64__) && !defined(OS_MAC) && !defined(OS_OPENBSD)
|
||||
typedef long int64;
|
||||
typedef unsigned long uint64;
|
||||
#else
|
||||
typedef long long int64; // NOLINT(runtime/int)
|
||||
typedef unsigned long long uint64; // NOLINT(runtime/int)
|
||||
typedef long long int64;
|
||||
typedef unsigned long long uint64;
|
||||
#endif
|
||||
|
||||
// TODO: Remove these type guards. These are to avoid conflicts with
|
||||
@@ -64,6 +64,16 @@ typedef int int32;
|
||||
typedef unsigned int uint32;
|
||||
#endif
|
||||
|
||||
#ifndef _INT16
|
||||
#define _INT16
|
||||
typedef short int16;
|
||||
#endif
|
||||
|
||||
#ifndef _UINT16
|
||||
#define _UINT16
|
||||
typedef unsigned short uint16;
|
||||
#endif
|
||||
|
||||
// UTF-16 character type.
|
||||
// This should be kept synchronized with base/strings/string16.h
|
||||
#ifndef char16
|
||||
|
@@ -89,34 +89,32 @@
|
||||
namespace base {
|
||||
|
||||
template <typename Functor>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void()>
|
||||
::UnboundRunType>
|
||||
void()>::UnboundRunType>
|
||||
Bind(Functor functor) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
typedef cef_internal::BindState<RunnableType, RunType, void()> BindState;
|
||||
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor)));
|
||||
}
|
||||
|
||||
template <typename Functor, typename P1>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)>
|
||||
::UnboundRunType>
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)>::
|
||||
UnboundRunType>
|
||||
Bind(Functor functor, const P1& p1) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
// Use RunnableType::RunType instead of RunType above because our
|
||||
@@ -138,32 +136,32 @@ Bind(Functor functor, const P1& p1) {
|
||||
// a scoped_refptr because BindState<> itself takes care of AddRef() for
|
||||
// methods. We also disallow binding of an array as the method's target
|
||||
// object.
|
||||
COMPILE_ASSERT(
|
||||
cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
|
||||
p1_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!is_array<P1>::value,
|
||||
first_bound_argument_to_method_cannot_be_array);
|
||||
typedef cef_internal::BindState<RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)> BindState;
|
||||
|
||||
typedef cef_internal::BindState<
|
||||
RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType)>
|
||||
BindState;
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor), p1));
|
||||
}
|
||||
|
||||
template <typename Functor, typename P1, typename P2>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType)>
|
||||
::UnboundRunType>
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType)>::
|
||||
UnboundRunType>
|
||||
Bind(Functor functor, const P1& p1, const P2& p2) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
// Use RunnableType::RunType instead of RunType above because our
|
||||
@@ -186,8 +184,7 @@ Bind(Functor functor, const P1& p1, const P2& p2) {
|
||||
// a scoped_refptr because BindState<> itself takes care of AddRef() for
|
||||
// methods. We also disallow binding of an array as the method's target
|
||||
// object.
|
||||
COMPILE_ASSERT(
|
||||
cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
|
||||
p1_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
@@ -195,27 +192,28 @@ Bind(Functor functor, const P1& p1, const P2& p2) {
|
||||
first_bound_argument_to_method_cannot_be_array);
|
||||
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P2>::value,
|
||||
p2_is_refcounted_type_and_needs_scoped_refptr);
|
||||
typedef cef_internal::BindState<RunnableType, RunType,
|
||||
typedef cef_internal::BindState<
|
||||
RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType)> BindState;
|
||||
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType)>
|
||||
BindState;
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor), p1, p2));
|
||||
}
|
||||
|
||||
template <typename Functor, typename P1, typename P2, typename P3>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType)>
|
||||
::UnboundRunType>
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType)>::
|
||||
UnboundRunType>
|
||||
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
// Use RunnableType::RunType instead of RunType above because our
|
||||
@@ -239,8 +237,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) {
|
||||
// a scoped_refptr because BindState<> itself takes care of AddRef() for
|
||||
// methods. We also disallow binding of an array as the method's target
|
||||
// object.
|
||||
COMPILE_ASSERT(
|
||||
cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
|
||||
p1_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
@@ -250,29 +247,30 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3) {
|
||||
p2_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P3>::value,
|
||||
p3_is_refcounted_type_and_needs_scoped_refptr);
|
||||
typedef cef_internal::BindState<RunnableType, RunType,
|
||||
typedef cef_internal::BindState<
|
||||
RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType)> BindState;
|
||||
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType)>
|
||||
BindState;
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3));
|
||||
}
|
||||
|
||||
template <typename Functor, typename P1, typename P2, typename P3, typename P4>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType)>
|
||||
::UnboundRunType>
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType)>::
|
||||
UnboundRunType>
|
||||
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
// Use RunnableType::RunType instead of RunType above because our
|
||||
@@ -297,8 +295,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
|
||||
// a scoped_refptr because BindState<> itself takes care of AddRef() for
|
||||
// methods. We also disallow binding of an array as the method's target
|
||||
// object.
|
||||
COMPILE_ASSERT(
|
||||
cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
|
||||
p1_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
@@ -310,33 +307,42 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4) {
|
||||
p3_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P4>::value,
|
||||
p4_is_refcounted_type_and_needs_scoped_refptr);
|
||||
typedef cef_internal::BindState<RunnableType, RunType,
|
||||
typedef cef_internal::BindState<
|
||||
RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType)> BindState;
|
||||
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType)>
|
||||
BindState;
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4));
|
||||
}
|
||||
|
||||
template <typename Functor, typename P1, typename P2, typename P3, typename P4,
|
||||
template <typename Functor,
|
||||
typename P1,
|
||||
typename P2,
|
||||
typename P3,
|
||||
typename P4,
|
||||
typename P5>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType)>
|
||||
::UnboundRunType>
|
||||
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType)>::
|
||||
UnboundRunType>
|
||||
Bind(Functor functor,
|
||||
const P1& p1,
|
||||
const P2& p2,
|
||||
const P3& p3,
|
||||
const P4& p4,
|
||||
const P5& p5) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
// Use RunnableType::RunType instead of RunType above because our
|
||||
@@ -362,8 +368,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
// a scoped_refptr because BindState<> itself takes care of AddRef() for
|
||||
// methods. We also disallow binding of an array as the method's target
|
||||
// object.
|
||||
COMPILE_ASSERT(
|
||||
cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
|
||||
p1_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
@@ -377,22 +382,27 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
p4_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P5>::value,
|
||||
p5_is_refcounted_type_and_needs_scoped_refptr);
|
||||
typedef cef_internal::BindState<RunnableType, RunType,
|
||||
typedef cef_internal::BindState<
|
||||
RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType)> BindState;
|
||||
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType)>
|
||||
BindState;
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5));
|
||||
}
|
||||
|
||||
template <typename Functor, typename P1, typename P2, typename P3, typename P4,
|
||||
typename P5, typename P6>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
template <typename Functor,
|
||||
typename P1,
|
||||
typename P2,
|
||||
typename P3,
|
||||
typename P4,
|
||||
typename P5,
|
||||
typename P6>
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
@@ -400,12 +410,18 @@ base::Callback<
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P6>::StorageType)>
|
||||
::UnboundRunType>
|
||||
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
const P5& p5, const P6& p6) {
|
||||
typename cef_internal::CallbackParamTraits<P6>::StorageType)>::
|
||||
UnboundRunType>
|
||||
Bind(Functor functor,
|
||||
const P1& p1,
|
||||
const P2& p2,
|
||||
const P3& p3,
|
||||
const P4& p4,
|
||||
const P5& p5,
|
||||
const P6& p6) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
// Use RunnableType::RunType instead of RunType above because our
|
||||
@@ -432,8 +448,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
// a scoped_refptr because BindState<> itself takes care of AddRef() for
|
||||
// methods. We also disallow binding of an array as the method's target
|
||||
// object.
|
||||
COMPILE_ASSERT(
|
||||
cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
|
||||
p1_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
@@ -449,23 +464,29 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
p5_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P6>::value,
|
||||
p6_is_refcounted_type_and_needs_scoped_refptr);
|
||||
typedef cef_internal::BindState<RunnableType, RunType,
|
||||
typedef cef_internal::BindState<
|
||||
RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P6>::StorageType)> BindState;
|
||||
typename cef_internal::CallbackParamTraits<P6>::StorageType)>
|
||||
BindState;
|
||||
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6));
|
||||
return Callback<typename BindState::UnboundRunType>(new BindState(
|
||||
cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6));
|
||||
}
|
||||
|
||||
template <typename Functor, typename P1, typename P2, typename P3, typename P4,
|
||||
typename P5, typename P6, typename P7>
|
||||
base::Callback<
|
||||
typename cef_internal::BindState<
|
||||
template <typename Functor,
|
||||
typename P1,
|
||||
typename P2,
|
||||
typename P3,
|
||||
typename P4,
|
||||
typename P5,
|
||||
typename P6,
|
||||
typename P7>
|
||||
base::Callback<typename cef_internal::BindState<
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType,
|
||||
typename cef_internal::FunctorTraits<Functor>::RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
@@ -474,12 +495,19 @@ base::Callback<
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P6>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P7>::StorageType)>
|
||||
::UnboundRunType>
|
||||
Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
const P5& p5, const P6& p6, const P7& p7) {
|
||||
typename cef_internal::CallbackParamTraits<P7>::StorageType)>::
|
||||
UnboundRunType>
|
||||
Bind(Functor functor,
|
||||
const P1& p1,
|
||||
const P2& p2,
|
||||
const P3& p3,
|
||||
const P4& p4,
|
||||
const P5& p5,
|
||||
const P6& p6,
|
||||
const P7& p7) {
|
||||
// Typedefs for how to store and run the functor.
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef
|
||||
typename cef_internal::FunctorTraits<Functor>::RunnableType RunnableType;
|
||||
typedef typename cef_internal::FunctorTraits<Functor>::RunType RunType;
|
||||
|
||||
// Use RunnableType::RunType instead of RunType above because our
|
||||
@@ -507,8 +535,7 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
// a scoped_refptr because BindState<> itself takes care of AddRef() for
|
||||
// methods. We also disallow binding of an array as the method's target
|
||||
// object.
|
||||
COMPILE_ASSERT(
|
||||
cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
COMPILE_ASSERT(cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
!cef_internal::NeedsScopedRefptrButGetsRawPtr<P1>::value,
|
||||
p1_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::HasIsMethodTag<RunnableType>::value ||
|
||||
@@ -526,19 +553,19 @@ Bind(Functor functor, const P1& p1, const P2& p2, const P3& p3, const P4& p4,
|
||||
p6_is_refcounted_type_and_needs_scoped_refptr);
|
||||
COMPILE_ASSERT(!cef_internal::NeedsScopedRefptrButGetsRawPtr<P7>::value,
|
||||
p7_is_refcounted_type_and_needs_scoped_refptr);
|
||||
typedef cef_internal::BindState<RunnableType, RunType,
|
||||
typedef cef_internal::BindState<
|
||||
RunnableType, RunType,
|
||||
void(typename cef_internal::CallbackParamTraits<P1>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P2>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P3>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P4>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P5>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P6>::StorageType,
|
||||
typename cef_internal::CallbackParamTraits<P7>::StorageType)> BindState;
|
||||
typename cef_internal::CallbackParamTraits<P7>::StorageType)>
|
||||
BindState;
|
||||
|
||||
|
||||
return Callback<typename BindState::UnboundRunType>(
|
||||
new BindState(cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6,
|
||||
p7));
|
||||
return Callback<typename BindState::UnboundRunType>(new BindState(
|
||||
cef_internal::MakeRunnable(functor), p1, p2, p3, p4, p5, p6, p7));
|
||||
}
|
||||
|
||||
} // namespace base
|
||||
|
@@ -276,13 +276,13 @@ class SupportsAddRefAndRelease {
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4624)
|
||||
#endif
|
||||
struct Base : public T, public BaseMixin {
|
||||
};
|
||||
struct Base : public T, public BaseMixin {};
|
||||
#if defined(OS_WIN)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
template <void(BaseMixin::*)(void)> struct Helper {};
|
||||
template <void (BaseMixin::*)(void)>
|
||||
struct Helper {};
|
||||
|
||||
template <typename C>
|
||||
static No& Check(Helper<&C::AddRef>*);
|
||||
@@ -297,22 +297,18 @@ class SupportsAddRefAndRelease {
|
||||
// Helpers to assert that arguments of a recounted type are bound with a
|
||||
// scoped_refptr.
|
||||
template <bool IsClasstype, typename T>
|
||||
struct UnsafeBindtoRefCountedArgHelper : false_type {
|
||||
};
|
||||
struct UnsafeBindtoRefCountedArgHelper : false_type {};
|
||||
|
||||
template <typename T>
|
||||
struct UnsafeBindtoRefCountedArgHelper<true, T>
|
||||
: integral_constant<bool, SupportsAddRefAndRelease<T>::value> {
|
||||
};
|
||||
: integral_constant<bool, SupportsAddRefAndRelease<T>::value> {};
|
||||
|
||||
template <typename T>
|
||||
struct UnsafeBindtoRefCountedArg : false_type {
|
||||
};
|
||||
struct UnsafeBindtoRefCountedArg : false_type {};
|
||||
|
||||
template <typename T>
|
||||
struct UnsafeBindtoRefCountedArg<T*>
|
||||
: UnsafeBindtoRefCountedArgHelper<is_class<T>::value, T> {
|
||||
};
|
||||
: UnsafeBindtoRefCountedArgHelper<is_class<T>::value, T> {};
|
||||
|
||||
template <typename T>
|
||||
class HasIsMethodTag {
|
||||
@@ -334,6 +330,7 @@ class UnretainedWrapper {
|
||||
public:
|
||||
explicit UnretainedWrapper(T* o) : ptr_(o) {}
|
||||
T* get() const { return ptr_; }
|
||||
|
||||
private:
|
||||
T* ptr_;
|
||||
};
|
||||
@@ -343,6 +340,7 @@ class ConstRefWrapper {
|
||||
public:
|
||||
explicit ConstRefWrapper(const T& o) : ptr_(&o) {}
|
||||
const T& get() const { return *ptr_; }
|
||||
|
||||
private:
|
||||
const T* ptr_;
|
||||
};
|
||||
@@ -409,8 +407,7 @@ class PassedWrapper {
|
||||
public:
|
||||
explicit PassedWrapper(T scoper) : is_valid_(true), scoper_(scoper.Pass()) {}
|
||||
PassedWrapper(const PassedWrapper& other)
|
||||
: is_valid_(other.is_valid_), scoper_(other.scoper_.Pass()) {
|
||||
}
|
||||
: is_valid_(other.is_valid_), scoper_(other.scoper_.Pass()) {}
|
||||
T Pass() const {
|
||||
CHECK(is_valid_);
|
||||
is_valid_ = false;
|
||||
@@ -460,17 +457,13 @@ struct UnwrapTraits<WeakPtr<T> > {
|
||||
template <typename T>
|
||||
struct UnwrapTraits<OwnedWrapper<T>> {
|
||||
typedef T* ForwardType;
|
||||
static ForwardType Unwrap(const OwnedWrapper<T>& o) {
|
||||
return o.get();
|
||||
}
|
||||
static ForwardType Unwrap(const OwnedWrapper<T>& o) { return o.get(); }
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct UnwrapTraits<PassedWrapper<T>> {
|
||||
typedef T ForwardType;
|
||||
static T Unwrap(PassedWrapper<T>& o) {
|
||||
return o.Pass();
|
||||
}
|
||||
static T Unwrap(PassedWrapper<T>& o) { return o.Pass(); }
|
||||
};
|
||||
|
||||
// Utility for handling different refcounting semantics in the Bind()
|
||||
@@ -567,8 +560,8 @@ static inline cef_internal::IgnoreResultHelper<T> IgnoreResult(T data) {
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static inline cef_internal::IgnoreResultHelper<Callback<T> >
|
||||
IgnoreResult(const Callback<T>& data) {
|
||||
static inline cef_internal::IgnoreResultHelper<Callback<T>> IgnoreResult(
|
||||
const Callback<T>& data) {
|
||||
return cef_internal::IgnoreResultHelper<Callback<T>>(data);
|
||||
}
|
||||
|
||||
|
@@ -27,7 +27,6 @@
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
#ifndef CEF_INCLUDE_BASE_CEF_BUILD_H_
|
||||
#define CEF_INCLUDE_BASE_CEF_BUILD_H_
|
||||
#pragma once
|
||||
@@ -45,6 +44,14 @@
|
||||
#define OS_WIN 1
|
||||
#endif
|
||||
#elif defined(__APPLE__)
|
||||
// New platform defines after https://crbug.com/1105907.
|
||||
#ifndef OS_MAC
|
||||
#define OS_MAC 1
|
||||
#endif
|
||||
#ifndef OS_APPLE
|
||||
#define OS_APPLE 1
|
||||
#endif
|
||||
// Old platform defines retained for backwards compatibility.
|
||||
#ifndef OS_MACOSX
|
||||
#define OS_MACOSX 1
|
||||
#endif
|
||||
@@ -58,7 +65,7 @@
|
||||
|
||||
// For access to standard POSIXish features, use OS_POSIX instead of a
|
||||
// more specific macro.
|
||||
#if defined(OS_MACOSX) || defined(OS_LINUX)
|
||||
#if defined(OS_MAC) || defined(OS_LINUX)
|
||||
#ifndef OS_POSIX
|
||||
#define OS_POSIX 1
|
||||
#endif
|
||||
@@ -96,7 +103,7 @@
|
||||
#define ARCH_CPU_ARMEL 1
|
||||
#define ARCH_CPU_32_BITS 1
|
||||
#define ARCH_CPU_LITTLE_ENDIAN 1
|
||||
#elif defined(__aarch64__)
|
||||
#elif defined(__aarch64__) || defined(_M_ARM64)
|
||||
#define ARCH_CPU_ARM_FAMILY 1
|
||||
#define ARCH_CPU_ARM64 1
|
||||
#define ARCH_CPU_64_BITS 1
|
||||
@@ -116,12 +123,10 @@
|
||||
// Type detection for wchar_t.
|
||||
#if defined(OS_WIN)
|
||||
#define WCHAR_T_IS_UTF16
|
||||
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \
|
||||
defined(__WCHAR_MAX__) && \
|
||||
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
|
||||
(__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
|
||||
#define WCHAR_T_IS_UTF32
|
||||
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && \
|
||||
defined(__WCHAR_MAX__) && \
|
||||
#elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
|
||||
(__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff)
|
||||
// On Posix, we'll detect short wchar_t, but projects aren't guaranteed to
|
||||
// compile in this mode (in particular, Chrome doesn't). This is intended for
|
||||
@@ -165,6 +170,16 @@
|
||||
#define ALLOW_UNUSED_LOCAL(x) false ? (void)x : (void)0
|
||||
#endif
|
||||
|
||||
// Sanitizers annotations.
|
||||
#if defined(__has_attribute)
|
||||
#if __has_attribute(no_sanitize)
|
||||
#define NO_SANITIZE(what) __attribute__((no_sanitize(what)))
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(NO_SANITIZE)
|
||||
#define NO_SANITIZE(what)
|
||||
#endif
|
||||
|
||||
#endif // !USING_CHROMIUM_INCLUDES
|
||||
|
||||
// Annotate a virtual method indicating it must be overriding a virtual method
|
||||
@@ -191,8 +206,7 @@
|
||||
|
||||
// Check for C++11 template alias support which was added in VS2013 and GCC4.7.
|
||||
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf
|
||||
#if __cplusplus > 199711L || \
|
||||
(defined(_MSC_VER) && _MSC_VER >= 1800) || \
|
||||
#if __cplusplus > 199711L || (defined(_MSC_VER) && _MSC_VER >= 1800) || \
|
||||
(defined(__GNUC__) && \
|
||||
(__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ >= 40700))
|
||||
#define HAS_CPP11_TEMPLATE_ALIAS_SUPPORT
|
||||
|
@@ -45,9 +45,9 @@
|
||||
// If the Chromium implementation diverges the below implementation should be
|
||||
// updated to match.
|
||||
|
||||
#include "include/base/internal/cef_callback_internal.h"
|
||||
#include "include/base/cef_callback_forward.h"
|
||||
#include "include/base/cef_template_util.h"
|
||||
#include "include/base/internal/cef_callback_internal.h"
|
||||
|
||||
// NOTE: Header files that do not require the full definition of Callback or
|
||||
// Closure should #include "base/cef_callback_forward.h" instead of this file.
|
||||
@@ -412,16 +412,15 @@ class Callback<R(void)> : public cef_internal::CallbackBase {
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -437,9 +436,7 @@ class Callback<R(void)> : public cef_internal::CallbackBase {
|
||||
}
|
||||
|
||||
private:
|
||||
typedef R(*PolymorphicInvoke)(
|
||||
cef_internal::BindStateBase*);
|
||||
|
||||
typedef R (*PolymorphicInvoke)(cef_internal::BindStateBase*);
|
||||
};
|
||||
|
||||
template <typename R, typename A1>
|
||||
@@ -452,16 +449,15 @@ class Callback<R(A1)> : public cef_internal::CallbackBase {
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -480,7 +476,6 @@ class Callback<R(A1)> : public cef_internal::CallbackBase {
|
||||
typedef R (*PolymorphicInvoke)(
|
||||
cef_internal::BindStateBase*,
|
||||
typename cef_internal::CallbackParamTraits<A1>::ForwardType);
|
||||
|
||||
};
|
||||
|
||||
template <typename R, typename A1, typename A2>
|
||||
@@ -493,16 +488,15 @@ class Callback<R(A1, A2)> : public cef_internal::CallbackBase {
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -524,7 +518,6 @@ class Callback<R(A1, A2)> : public cef_internal::CallbackBase {
|
||||
cef_internal::BindStateBase*,
|
||||
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A2>::ForwardType);
|
||||
|
||||
};
|
||||
|
||||
template <typename R, typename A1, typename A2, typename A3>
|
||||
@@ -537,16 +530,15 @@ class Callback<R(A1, A2, A3)> : public cef_internal::CallbackBase {
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -571,7 +563,6 @@ class Callback<R(A1, A2, A3)> : public cef_internal::CallbackBase {
|
||||
typename cef_internal::CallbackParamTraits<A1>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A2>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A3>::ForwardType);
|
||||
|
||||
};
|
||||
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4>
|
||||
@@ -584,16 +575,15 @@ class Callback<R(A1, A2, A3, A4)> : public cef_internal::CallbackBase {
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -621,10 +611,13 @@ class Callback<R(A1, A2, A3, A4)> : public cef_internal::CallbackBase {
|
||||
typename cef_internal::CallbackParamTraits<A2>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A3>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A4>::ForwardType);
|
||||
|
||||
};
|
||||
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5>
|
||||
class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
|
||||
public:
|
||||
@@ -635,16 +628,15 @@ class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -660,11 +652,10 @@ class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
|
||||
PolymorphicInvoke f =
|
||||
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
|
||||
|
||||
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
|
||||
cef_internal::CallbackForward(a2),
|
||||
cef_internal::CallbackForward(a3),
|
||||
cef_internal::CallbackForward(a4),
|
||||
cef_internal::CallbackForward(a5));
|
||||
return f(
|
||||
bind_state_.get(), cef_internal::CallbackForward(a1),
|
||||
cef_internal::CallbackForward(a2), cef_internal::CallbackForward(a3),
|
||||
cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a5));
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -675,11 +666,15 @@ class Callback<R(A1, A2, A3, A4, A5)> : public cef_internal::CallbackBase {
|
||||
typename cef_internal::CallbackParamTraits<A3>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A4>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A5>::ForwardType);
|
||||
|
||||
};
|
||||
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
typename A5, typename A6>
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6>
|
||||
class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5, A6);
|
||||
@@ -689,16 +684,15 @@ class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -715,11 +709,10 @@ class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
|
||||
PolymorphicInvoke f =
|
||||
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
|
||||
|
||||
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
|
||||
cef_internal::CallbackForward(a2),
|
||||
cef_internal::CallbackForward(a3),
|
||||
cef_internal::CallbackForward(a4),
|
||||
cef_internal::CallbackForward(a5),
|
||||
return f(
|
||||
bind_state_.get(), cef_internal::CallbackForward(a1),
|
||||
cef_internal::CallbackForward(a2), cef_internal::CallbackForward(a3),
|
||||
cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a5),
|
||||
cef_internal::CallbackForward(a6));
|
||||
}
|
||||
|
||||
@@ -732,12 +725,18 @@ class Callback<R(A1, A2, A3, A4, A5, A6)> : public cef_internal::CallbackBase {
|
||||
typename cef_internal::CallbackParamTraits<A4>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A5>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A6>::ForwardType);
|
||||
|
||||
};
|
||||
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
typename A5, typename A6, typename A7>
|
||||
class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBase {
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6,
|
||||
typename A7>
|
||||
class Callback<R(A1, A2, A3, A4, A5, A6, A7)>
|
||||
: public cef_internal::CallbackBase {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7);
|
||||
|
||||
@@ -746,16 +745,15 @@ class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBas
|
||||
// Note that this constructor CANNOT be explicit, and that Bind() CANNOT
|
||||
// return the exact Callback<> type. See base/bind.h for details.
|
||||
template <typename Runnable, typename BindRunType, typename BoundArgsType>
|
||||
Callback(cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>* bind_state)
|
||||
Callback(
|
||||
cef_internal::BindState<Runnable, BindRunType, BoundArgsType>* bind_state)
|
||||
: CallbackBase(bind_state) {
|
||||
|
||||
// Force the assignment to a local variable of PolymorphicInvoke
|
||||
// so the compiler will typecheck that the passed in Run() method has
|
||||
// the correct type.
|
||||
PolymorphicInvoke invoke_func =
|
||||
&cef_internal::BindState<Runnable, BindRunType, BoundArgsType>
|
||||
::InvokerType::Run;
|
||||
&cef_internal::BindState<Runnable, BindRunType,
|
||||
BoundArgsType>::InvokerType::Run;
|
||||
polymorphic_invoke_ = reinterpret_cast<InvokeFuncStorage>(invoke_func);
|
||||
}
|
||||
|
||||
@@ -773,13 +771,11 @@ class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBas
|
||||
PolymorphicInvoke f =
|
||||
reinterpret_cast<PolymorphicInvoke>(polymorphic_invoke_);
|
||||
|
||||
return f(bind_state_.get(), cef_internal::CallbackForward(a1),
|
||||
cef_internal::CallbackForward(a2),
|
||||
cef_internal::CallbackForward(a3),
|
||||
cef_internal::CallbackForward(a4),
|
||||
cef_internal::CallbackForward(a5),
|
||||
cef_internal::CallbackForward(a6),
|
||||
cef_internal::CallbackForward(a7));
|
||||
return f(
|
||||
bind_state_.get(), cef_internal::CallbackForward(a1),
|
||||
cef_internal::CallbackForward(a2), cef_internal::CallbackForward(a3),
|
||||
cef_internal::CallbackForward(a4), cef_internal::CallbackForward(a5),
|
||||
cef_internal::CallbackForward(a6), cef_internal::CallbackForward(a7));
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -792,10 +788,8 @@ class Callback<R(A1, A2, A3, A4, A5, A6, A7)> : public cef_internal::CallbackBas
|
||||
typename cef_internal::CallbackParamTraits<A5>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A6>::ForwardType,
|
||||
typename cef_internal::CallbackParamTraits<A7>::ForwardType);
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Syntactic sugar to make Callbacks<void(void)> easier to declare since it
|
||||
// will be used in a lot of APIs with delayed execution.
|
||||
typedef Callback<void(void)> Closure;
|
||||
|
@@ -48,12 +48,12 @@
|
||||
#include <list>
|
||||
|
||||
#include "include/base/cef_basictypes.h"
|
||||
#include "include/base/cef_callback.h"
|
||||
#include "include/base/internal/cef_callback_internal.h"
|
||||
#include "include/base/cef_build.h"
|
||||
#include "include/base/cef_callback.h"
|
||||
#include "include/base/cef_logging.h"
|
||||
#include "include/base/cef_macros.h"
|
||||
#include "include/base/cef_scoped_ptr.h"
|
||||
#include "include/base/internal/cef_callback_internal.h"
|
||||
|
||||
// OVERVIEW:
|
||||
//
|
||||
@@ -120,9 +120,7 @@ class CallbackListBase {
|
||||
public:
|
||||
Subscription(CallbackListBase<CallbackType>* list,
|
||||
typename std::list<CallbackType>::iterator iter)
|
||||
: list_(list),
|
||||
iter_(iter) {
|
||||
}
|
||||
: list_(list), iter_(iter) {}
|
||||
|
||||
~Subscription() {
|
||||
if (list_->active_iterator_count_) {
|
||||
@@ -167,14 +165,12 @@ class CallbackListBase {
|
||||
class Iterator {
|
||||
public:
|
||||
explicit Iterator(CallbackListBase<CallbackType>* list)
|
||||
: list_(list),
|
||||
list_iter_(list_->callbacks_.begin()) {
|
||||
: list_(list), list_iter_(list_->callbacks_.begin()) {
|
||||
++list_->active_iterator_count_;
|
||||
}
|
||||
|
||||
Iterator(const Iterator& iter)
|
||||
: list_(iter.list_),
|
||||
list_iter_(iter.list_iter_) {
|
||||
: list_(iter.list_), list_iter_(iter.list_iter_) {
|
||||
++list_->active_iterator_count_;
|
||||
}
|
||||
|
||||
@@ -210,9 +206,7 @@ class CallbackListBase {
|
||||
|
||||
// Returns an instance of a CallbackListBase::Iterator which can be used
|
||||
// to run callbacks.
|
||||
Iterator GetIterator() {
|
||||
return Iterator(this);
|
||||
}
|
||||
Iterator GetIterator() { return Iterator(this); }
|
||||
|
||||
// Compact the list: remove any entries which were NULLed out during
|
||||
// iteration.
|
||||
@@ -242,7 +236,8 @@ class CallbackListBase {
|
||||
|
||||
} // namespace cef_internal
|
||||
|
||||
template <typename Sig> class CallbackList;
|
||||
template <typename Sig>
|
||||
class CallbackList;
|
||||
|
||||
template <>
|
||||
class CallbackList<void(void)>
|
||||
@@ -357,7 +352,8 @@ class CallbackList<void(A1, A2, A3, A4)>
|
||||
|
||||
template <typename A1, typename A2, typename A3, typename A4, typename A5>
|
||||
class CallbackList<void(A1, A2, A3, A4, A5)>
|
||||
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5)> > {
|
||||
: public cef_internal::CallbackListBase<
|
||||
Callback<void(A1, A2, A3, A4, A5)>> {
|
||||
public:
|
||||
typedef Callback<void(A1, A2, A3, A4, A5)> CallbackType;
|
||||
|
||||
@@ -380,11 +376,15 @@ class CallbackList<void(A1, A2, A3, A4, A5)>
|
||||
DISALLOW_COPY_AND_ASSIGN(CallbackList);
|
||||
};
|
||||
|
||||
template <typename A1, typename A2, typename A3, typename A4, typename A5,
|
||||
template <typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6>
|
||||
class CallbackList<void(A1, A2, A3, A4, A5, A6)>
|
||||
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5,
|
||||
A6)> > {
|
||||
: public cef_internal::CallbackListBase<
|
||||
Callback<void(A1, A2, A3, A4, A5, A6)>> {
|
||||
public:
|
||||
typedef Callback<void(A1, A2, A3, A4, A5, A6)> CallbackType;
|
||||
|
||||
@@ -408,11 +408,16 @@ class CallbackList<void(A1, A2, A3, A4, A5, A6)>
|
||||
DISALLOW_COPY_AND_ASSIGN(CallbackList);
|
||||
};
|
||||
|
||||
template <typename A1, typename A2, typename A3, typename A4, typename A5,
|
||||
typename A6, typename A7>
|
||||
template <typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6,
|
||||
typename A7>
|
||||
class CallbackList<void(A1, A2, A3, A4, A5, A6, A7)>
|
||||
: public cef_internal::CallbackListBase<Callback<void(A1, A2, A3, A4, A5, A6,
|
||||
A7)> > {
|
||||
: public cef_internal::CallbackListBase<
|
||||
Callback<void(A1, A2, A3, A4, A5, A6, A7)>> {
|
||||
public:
|
||||
typedef Callback<void(A1, A2, A3, A4, A5, A6, A7)> CallbackType;
|
||||
|
||||
|
@@ -83,8 +83,8 @@
|
||||
// updated to match.
|
||||
|
||||
#include "include/base/cef_bind.h"
|
||||
#include "include/base/cef_callback.h"
|
||||
#include "include/base/cef_build.h"
|
||||
#include "include/base/cef_callback.h"
|
||||
#include "include/base/cef_logging.h"
|
||||
#include "include/base/cef_macros.h"
|
||||
#include "include/base/cef_weak_ptr.h"
|
||||
@@ -102,8 +102,7 @@ class CancelableCallback<void(void)> {
|
||||
|
||||
// |callback| must not be null.
|
||||
explicit CancelableCallback(const base::Callback<void(void)>& callback)
|
||||
: weak_factory_(this),
|
||||
callback_(callback) {
|
||||
: weak_factory_(this), callback_(callback) {
|
||||
DCHECK(!callback.is_null());
|
||||
InitializeForwarder();
|
||||
}
|
||||
@@ -118,9 +117,7 @@ class CancelableCallback<void(void)> {
|
||||
}
|
||||
|
||||
// Returns true if the wrapped callback has been cancelled.
|
||||
bool IsCancelled() const {
|
||||
return callback_.is_null();
|
||||
}
|
||||
bool IsCancelled() const { return callback_.is_null(); }
|
||||
|
||||
// Sets |callback| as the closure that may be cancelled. |callback| may not
|
||||
// be null. Outstanding and any previously wrapped callbacks are cancelled.
|
||||
@@ -137,14 +134,10 @@ class CancelableCallback<void(void)> {
|
||||
}
|
||||
|
||||
// Returns a callback that can be disabled by calling Cancel().
|
||||
const base::Callback<void(void)>& callback() const {
|
||||
return forwarder_;
|
||||
}
|
||||
const base::Callback<void(void)>& callback() const { return forwarder_; }
|
||||
|
||||
private:
|
||||
void Forward() {
|
||||
callback_.Run();
|
||||
}
|
||||
void Forward() { callback_.Run(); }
|
||||
|
||||
// Helper method to bind |forwarder_| using a weak pointer from
|
||||
// |weak_factory_|.
|
||||
@@ -172,8 +165,7 @@ class CancelableCallback<void(A1)> {
|
||||
|
||||
// |callback| must not be null.
|
||||
explicit CancelableCallback(const base::Callback<void(A1)>& callback)
|
||||
: weak_factory_(this),
|
||||
callback_(callback) {
|
||||
: weak_factory_(this), callback_(callback) {
|
||||
DCHECK(!callback.is_null());
|
||||
InitializeForwarder();
|
||||
}
|
||||
@@ -188,9 +180,7 @@ class CancelableCallback<void(A1)> {
|
||||
}
|
||||
|
||||
// Returns true if the wrapped callback has been cancelled.
|
||||
bool IsCancelled() const {
|
||||
return callback_.is_null();
|
||||
}
|
||||
bool IsCancelled() const { return callback_.is_null(); }
|
||||
|
||||
// Sets |callback| as the closure that may be cancelled. |callback| may not
|
||||
// be null. Outstanding and any previously wrapped callbacks are cancelled.
|
||||
@@ -207,14 +197,10 @@ class CancelableCallback<void(A1)> {
|
||||
}
|
||||
|
||||
// Returns a callback that can be disabled by calling Cancel().
|
||||
const base::Callback<void(A1)>& callback() const {
|
||||
return forwarder_;
|
||||
}
|
||||
const base::Callback<void(A1)>& callback() const { return forwarder_; }
|
||||
|
||||
private:
|
||||
void Forward(A1 a1) const {
|
||||
callback_.Run(a1);
|
||||
}
|
||||
void Forward(A1 a1) const { callback_.Run(a1); }
|
||||
|
||||
// Helper method to bind |forwarder_| using a weak pointer from
|
||||
// |weak_factory_|.
|
||||
@@ -242,8 +228,7 @@ class CancelableCallback<void(A1, A2)> {
|
||||
|
||||
// |callback| must not be null.
|
||||
explicit CancelableCallback(const base::Callback<void(A1, A2)>& callback)
|
||||
: weak_factory_(this),
|
||||
callback_(callback) {
|
||||
: weak_factory_(this), callback_(callback) {
|
||||
DCHECK(!callback.is_null());
|
||||
InitializeForwarder();
|
||||
}
|
||||
@@ -258,9 +243,7 @@ class CancelableCallback<void(A1, A2)> {
|
||||
}
|
||||
|
||||
// Returns true if the wrapped callback has been cancelled.
|
||||
bool IsCancelled() const {
|
||||
return callback_.is_null();
|
||||
}
|
||||
bool IsCancelled() const { return callback_.is_null(); }
|
||||
|
||||
// Sets |callback| as the closure that may be cancelled. |callback| may not
|
||||
// be null. Outstanding and any previously wrapped callbacks are cancelled.
|
||||
@@ -277,14 +260,10 @@ class CancelableCallback<void(A1, A2)> {
|
||||
}
|
||||
|
||||
// Returns a callback that can be disabled by calling Cancel().
|
||||
const base::Callback<void(A1, A2)>& callback() const {
|
||||
return forwarder_;
|
||||
}
|
||||
const base::Callback<void(A1, A2)>& callback() const { return forwarder_; }
|
||||
|
||||
private:
|
||||
void Forward(A1 a1, A2 a2) const {
|
||||
callback_.Run(a1, a2);
|
||||
}
|
||||
void Forward(A1 a1, A2 a2) const { callback_.Run(a1, a2); }
|
||||
|
||||
// Helper method to bind |forwarder_| using a weak pointer from
|
||||
// |weak_factory_|.
|
||||
|
@@ -125,9 +125,7 @@ class AutoLock {
|
||||
public:
|
||||
struct AlreadyAcquired {};
|
||||
|
||||
explicit AutoLock(Lock& lock) : lock_(lock) {
|
||||
lock_.Acquire();
|
||||
}
|
||||
explicit AutoLock(Lock& lock) : lock_(lock) { lock_.Acquire(); }
|
||||
|
||||
AutoLock(Lock& lock, const AlreadyAcquired&) : lock_(lock) {
|
||||
lock_.AssertAcquired();
|
||||
@@ -153,9 +151,7 @@ class AutoUnlock {
|
||||
lock_.Release();
|
||||
}
|
||||
|
||||
~AutoUnlock() {
|
||||
lock_.Acquire();
|
||||
}
|
||||
~AutoUnlock() { lock_.Acquire(); }
|
||||
|
||||
private:
|
||||
Lock& lock_;
|
||||
|
@@ -136,7 +136,11 @@
|
||||
#define CEF_INCLUDE_BASE_CEF_LOGGING_H_
|
||||
#pragma once
|
||||
|
||||
#if defined(DCHECK)
|
||||
#if defined(USING_CHROMIUM_INCLUDES)
|
||||
// When building CEF include the Chromium header directly.
|
||||
#include "base/logging.h"
|
||||
#include "base/notreached.h"
|
||||
#elif defined(DCHECK)
|
||||
// Do nothing if the macros provided by this header already exist.
|
||||
// This can happen in cases where Chromium code is used directly by the
|
||||
// client application. When using Chromium code directly always include
|
||||
@@ -144,23 +148,20 @@
|
||||
|
||||
// Always define the DCHECK_IS_ON macro which is used from other CEF headers.
|
||||
#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
|
||||
#define DCHECK_IS_ON() 0
|
||||
#define DCHECK_IS_ON() false
|
||||
#else
|
||||
#define DCHECK_IS_ON() 1
|
||||
#define DCHECK_IS_ON() true
|
||||
#endif
|
||||
|
||||
#elif defined(USING_CHROMIUM_INCLUDES)
|
||||
// When building CEF include the Chromium header directly.
|
||||
#include "base/logging.h"
|
||||
#else // !USING_CHROMIUM_INCLUDES
|
||||
#else // !defined(DCHECK)
|
||||
// The following is substantially similar to the Chromium implementation.
|
||||
// If the Chromium implementation diverges the below implementation should be
|
||||
// updated to match.
|
||||
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
#include <cstring>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
#include "include/base/cef_build.h"
|
||||
#include "include/base/cef_macros.h"
|
||||
@@ -217,16 +218,11 @@ const LogSeverity LOG_DFATAL = LOG_FATAL;
|
||||
cef::logging::ClassName(__FILE__, __LINE__, cef::logging::LOG_DFATAL, \
|
||||
##__VA_ARGS__)
|
||||
|
||||
#define COMPACT_GOOGLE_LOG_INFO \
|
||||
COMPACT_GOOGLE_LOG_EX_INFO(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_WARNING \
|
||||
COMPACT_GOOGLE_LOG_EX_WARNING(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_ERROR \
|
||||
COMPACT_GOOGLE_LOG_EX_ERROR(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_FATAL \
|
||||
COMPACT_GOOGLE_LOG_EX_FATAL(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_DFATAL \
|
||||
COMPACT_GOOGLE_LOG_EX_DFATAL(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_INFO COMPACT_GOOGLE_LOG_EX_INFO(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_WARNING COMPACT_GOOGLE_LOG_EX_WARNING(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_ERROR COMPACT_GOOGLE_LOG_EX_ERROR(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_FATAL COMPACT_GOOGLE_LOG_EX_FATAL(LogMessage)
|
||||
#define COMPACT_GOOGLE_LOG_DFATAL COMPACT_GOOGLE_LOG_EX_DFATAL(LogMessage)
|
||||
|
||||
#if defined(OS_WIN)
|
||||
// wingdi.h defines ERROR to be 0. When we call LOG(ERROR), it gets
|
||||
@@ -291,11 +287,13 @@ const LogSeverity LOG_0 = LOG_ERROR;
|
||||
#if defined(OS_WIN)
|
||||
#define VPLOG_STREAM(verbose_level) \
|
||||
cef::logging::Win32ErrorLogMessage(__FILE__, __LINE__, -verbose_level, \
|
||||
::cef::logging::GetLastSystemErrorCode()).stream()
|
||||
::cef::logging::GetLastSystemErrorCode()) \
|
||||
.stream()
|
||||
#elif defined(OS_POSIX)
|
||||
#define VPLOG_STREAM(verbose_level) \
|
||||
cef::logging::ErrnoLogMessage(__FILE__, __LINE__, -verbose_level, \
|
||||
::cef::logging::GetLastSystemErrorCode()).stream()
|
||||
::cef::logging::GetLastSystemErrorCode()) \
|
||||
.stream()
|
||||
#endif
|
||||
|
||||
#define VPLOG(verbose_level) \
|
||||
@@ -315,15 +313,16 @@ const LogSeverity LOG_0 = LOG_ERROR;
|
||||
#if defined(OS_WIN)
|
||||
#define PLOG_STREAM(severity) \
|
||||
COMPACT_GOOGLE_LOG_EX_##severity(Win32ErrorLogMessage, \
|
||||
::cef::logging::GetLastSystemErrorCode()).stream()
|
||||
::cef::logging::GetLastSystemErrorCode()) \
|
||||
.stream()
|
||||
#elif defined(OS_POSIX)
|
||||
#define PLOG_STREAM(severity) \
|
||||
COMPACT_GOOGLE_LOG_EX_##severity(ErrnoLogMessage, \
|
||||
::cef::logging::GetLastSystemErrorCode()).stream()
|
||||
::cef::logging::GetLastSystemErrorCode()) \
|
||||
.stream()
|
||||
#endif
|
||||
|
||||
#define PLOG(severity) \
|
||||
LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity))
|
||||
#define PLOG(severity) LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity))
|
||||
|
||||
#define PLOG_IF(severity, condition) \
|
||||
LAZY_STREAM(PLOG_STREAM(severity), LOG_IS_ON(severity) && (condition))
|
||||
@@ -353,9 +352,8 @@ const LogSeverity LOG_0 = LOG_ERROR;
|
||||
// TODO(akalin): Rewrite this so that constructs like if (...)
|
||||
// CHECK_EQ(...) else { ... } work properly.
|
||||
#define CHECK_OP(name, op, val1, val2) \
|
||||
if (std::string* _result = \
|
||||
cef::logging::Check##name##Impl((val1), (val2), \
|
||||
#val1 " " #op " " #val2)) \
|
||||
if (std::string* _result = cef::logging::Check##name##Impl( \
|
||||
(val1), (val2), #val1 " " #op " " #val2)) \
|
||||
cef::logging::LogMessage(__FILE__, __LINE__, _result).stream()
|
||||
|
||||
// Build the error message string. This is separate from the "Impl"
|
||||
@@ -374,20 +372,25 @@ std::string* MakeCheckOpString(const t1& v1, const t2& v2, const char* names) {
|
||||
#if !defined(COMPILER_MSVC)
|
||||
// Commonly used instantiations of MakeCheckOpString<>. Explicitly instantiated
|
||||
// in logging.cc.
|
||||
extern template std::string* MakeCheckOpString<int, int>(
|
||||
const int&, const int&, const char* names);
|
||||
extern template
|
||||
std::string* MakeCheckOpString<unsigned long, unsigned long>(
|
||||
const unsigned long&, const unsigned long&, const char* names);
|
||||
extern template
|
||||
std::string* MakeCheckOpString<unsigned long, unsigned int>(
|
||||
const unsigned long&, const unsigned int&, const char* names);
|
||||
extern template
|
||||
std::string* MakeCheckOpString<unsigned int, unsigned long>(
|
||||
const unsigned int&, const unsigned long&, const char* names);
|
||||
extern template
|
||||
std::string* MakeCheckOpString<std::string, std::string>(
|
||||
const std::string&, const std::string&, const char* name);
|
||||
extern template std::string* MakeCheckOpString<int, int>(const int&,
|
||||
const int&,
|
||||
const char* names);
|
||||
extern template std::string* MakeCheckOpString<unsigned long, unsigned long>(
|
||||
const unsigned long&,
|
||||
const unsigned long&,
|
||||
const char* names);
|
||||
extern template std::string* MakeCheckOpString<unsigned long, unsigned int>(
|
||||
const unsigned long&,
|
||||
const unsigned int&,
|
||||
const char* names);
|
||||
extern template std::string* MakeCheckOpString<unsigned int, unsigned long>(
|
||||
const unsigned int&,
|
||||
const unsigned long&,
|
||||
const char* names);
|
||||
extern template std::string* MakeCheckOpString<std::string, std::string>(
|
||||
const std::string&,
|
||||
const std::string&,
|
||||
const char* name);
|
||||
#endif
|
||||
|
||||
// Helper functions for CHECK_OP macro.
|
||||
@@ -398,12 +401,16 @@ std::string* MakeCheckOpString<std::string, std::string>(
|
||||
template <class t1, class t2> \
|
||||
inline std::string* Check##name##Impl(const t1& v1, const t2& v2, \
|
||||
const char* names) { \
|
||||
if (v1 op v2) return NULL; \
|
||||
else return MakeCheckOpString(v1, v2, names); \
|
||||
if (v1 op v2) \
|
||||
return NULL; \
|
||||
else \
|
||||
return MakeCheckOpString(v1, v2, names); \
|
||||
} \
|
||||
inline std::string* Check##name##Impl(int v1, int v2, const char* names) { \
|
||||
if (v1 op v2) return NULL; \
|
||||
else return MakeCheckOpString(v1, v2, names); \
|
||||
if (v1 op v2) \
|
||||
return NULL; \
|
||||
else \
|
||||
return MakeCheckOpString(v1, v2, names); \
|
||||
}
|
||||
DEFINE_CHECK_OP_IMPL(EQ, ==)
|
||||
DEFINE_CHECK_OP_IMPL(NE, !=)
|
||||
@@ -471,11 +478,9 @@ enum { DEBUG_MODE = ENABLE_DLOG };
|
||||
|
||||
#undef ENABLE_DLOG
|
||||
|
||||
#define DLOG(severity) \
|
||||
LAZY_STREAM(LOG_STREAM(severity), DLOG_IS_ON(severity))
|
||||
#define DLOG(severity) LAZY_STREAM(LOG_STREAM(severity), DLOG_IS_ON(severity))
|
||||
|
||||
#define DPLOG(severity) \
|
||||
LAZY_STREAM(PLOG_STREAM(severity), DLOG_IS_ON(severity))
|
||||
#define DPLOG(severity) LAZY_STREAM(PLOG_STREAM(severity), DLOG_IS_ON(severity))
|
||||
|
||||
#define DVLOG(verboselevel) DVLOG_IF(verboselevel, VLOG_IS_ON(verboselevel))
|
||||
|
||||
@@ -519,8 +524,9 @@ const LogSeverity LOG_DCHECK = LOG_INFO;
|
||||
if (DCHECK_IS_ON()) \
|
||||
if (std::string* _result = cef::logging::Check##name##Impl( \
|
||||
(val1), (val2), #val1 " " #op " " #val2)) \
|
||||
cef::logging::LogMessage(__FILE__, __LINE__, \
|
||||
::cef::logging::LOG_DCHECK, _result).stream()
|
||||
cef::logging::LogMessage(__FILE__, __LINE__, ::cef::logging::LOG_DCHECK, \
|
||||
_result) \
|
||||
.stream()
|
||||
|
||||
// Equality/Inequality checks - compare two values, and log a
|
||||
// LOG_DCHECK message including the two values when the result is not
|
||||
@@ -549,8 +555,8 @@ const LogSeverity LOG_DCHECK = LOG_INFO;
|
||||
#define DCHECK_GT(val1, val2) DCHECK_OP(GT, >, val1, val2)
|
||||
|
||||
#if defined(NDEBUG) && defined(OS_CHROMEOS)
|
||||
#define NOTREACHED() LOG(ERROR) << "NOTREACHED() hit in " << \
|
||||
__FUNCTION__ << ". "
|
||||
#define NOTREACHED() \
|
||||
LOG(ERROR) << "NOTREACHED() hit in " << __FUNCTION__ << ". "
|
||||
#else
|
||||
#define NOTREACHED() DCHECK(false)
|
||||
#endif
|
||||
@@ -577,7 +583,9 @@ class LogMessage {
|
||||
LogMessage(const char* file, int line, std::string* result);
|
||||
|
||||
// Used for DCHECK_EQ(), etc. Takes ownership of the given string.
|
||||
LogMessage(const char* file, int line, LogSeverity severity,
|
||||
LogMessage(const char* file,
|
||||
int line,
|
||||
LogSeverity severity,
|
||||
std::string* result);
|
||||
|
||||
~LogMessage();
|
||||
@@ -739,7 +747,8 @@ inline std::ostream& operator<<(std::ostream& out, const std::wstring& wstr) {
|
||||
#elif NOTIMPLEMENTED_POLICY == 4
|
||||
#define NOTIMPLEMENTED() LOG(ERROR) << NOTIMPLEMENTED_MSG
|
||||
#elif NOTIMPLEMENTED_POLICY == 5
|
||||
#define NOTIMPLEMENTED() do {\
|
||||
#define NOTIMPLEMENTED() \
|
||||
do { \
|
||||
static bool logged_once = false; \
|
||||
LOG_IF(ERROR, !logged_once) << NOTIMPLEMENTED_MSG; \
|
||||
logged_once = true; \
|
||||
|
@@ -126,14 +126,13 @@ char (&ArraySizeHelper(const T (&array)[N]))[N];
|
||||
namespace cef {
|
||||
|
||||
template <bool>
|
||||
struct CompileAssert {
|
||||
};
|
||||
struct CompileAssert {};
|
||||
|
||||
} // namespace cef
|
||||
|
||||
#define COMPILE_ASSERT(expr, msg) \
|
||||
typedef cef::CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] \
|
||||
ALLOW_UNUSED_TYPE
|
||||
typedef cef::CompileAssert<(bool(expr))> \
|
||||
msg[bool(expr) ? 1 : -1] ALLOW_UNUSED_TYPE
|
||||
|
||||
// Implementation details of COMPILE_ASSERT:
|
||||
//
|
||||
@@ -182,13 +181,12 @@ struct CompileAssert {
|
||||
|
||||
#endif // !USING_CHROMIUM_INCLUDES
|
||||
|
||||
#if !defined(ALLOW_THIS_IN_INITIALIZER_LIST)
|
||||
#if defined(COMPILER_MSVC)
|
||||
#if !defined(MSVC_PUSH_DISABLE_WARNING) && defined(COMPILER_MSVC)
|
||||
|
||||
// MSVC_PUSH_DISABLE_WARNING pushes |n| onto a stack of warnings to be disabled.
|
||||
// The warning remains disabled until popped by MSVC_POP_WARNING.
|
||||
#define MSVC_PUSH_DISABLE_WARNING(n) __pragma(warning(push)) \
|
||||
__pragma(warning(disable:n))
|
||||
#define MSVC_PUSH_DISABLE_WARNING(n) \
|
||||
__pragma(warning(push)) __pragma(warning(disable : n))
|
||||
|
||||
// MSVC_PUSH_WARNING_LEVEL pushes |n| as the global warning level. The level
|
||||
// remains in effect until popped by MSVC_POP_WARNING(). Use 0 to disable all
|
||||
@@ -198,6 +196,10 @@ struct CompileAssert {
|
||||
// Pop effects of innermost MSVC_PUSH_* macro.
|
||||
#define MSVC_POP_WARNING() __pragma(warning(pop))
|
||||
|
||||
#endif // !defined(MSVC_PUSH_DISABLE_WARNING) && defined(COMPILER_MSVC)
|
||||
|
||||
#if !defined(ALLOW_THIS_IN_INITIALIZER_LIST)
|
||||
#if defined(COMPILER_MSVC)
|
||||
// Allows |this| to be passed as an argument in constructor initializer lists.
|
||||
// This uses push/pop instead of the seemingly simpler suppress feature to avoid
|
||||
// having the warning be disabled for more than just |code|.
|
||||
@@ -207,13 +209,11 @@ struct CompileAssert {
|
||||
//
|
||||
// Compiler warning C4355: 'this': used in base member initializer list:
|
||||
// http://msdn.microsoft.com/en-us/library/3c594ae3(VS.80).aspx
|
||||
#define ALLOW_THIS_IN_INITIALIZER_LIST(code) MSVC_PUSH_DISABLE_WARNING(4355) \
|
||||
code \
|
||||
MSVC_POP_WARNING()
|
||||
#define ALLOW_THIS_IN_INITIALIZER_LIST(code) \
|
||||
MSVC_PUSH_DISABLE_WARNING(4355) \
|
||||
code MSVC_POP_WARNING()
|
||||
#else // !COMPILER_MSVC
|
||||
|
||||
#define ALLOW_THIS_IN_INITIALIZER_LIST(code) code
|
||||
|
||||
#endif // !COMPILER_MSVC
|
||||
#endif // !ALLOW_THIS_IN_INITIALIZER_LIST
|
||||
|
||||
|
@@ -248,10 +248,12 @@
|
||||
}; \
|
||||
type(type&); \
|
||||
void operator=(type&); \
|
||||
\
|
||||
public: \
|
||||
operator rvalue_type() { return rvalue_type(this); } \
|
||||
type Pass() { return type(rvalue_type(this)); } \
|
||||
typedef void MoveOnlyTypeForCPP03; \
|
||||
\
|
||||
private:
|
||||
|
||||
#endif // !USING_CHROMIUM_INCLUDES
|
||||
|
@@ -69,21 +69,14 @@ class PlatformThreadRef {
|
||||
public:
|
||||
typedef cef_platform_thread_handle_t RefType;
|
||||
|
||||
PlatformThreadRef()
|
||||
: id_(0) {
|
||||
}
|
||||
PlatformThreadRef() : id_(0) {}
|
||||
|
||||
explicit PlatformThreadRef(RefType id)
|
||||
: id_(id) {
|
||||
}
|
||||
explicit PlatformThreadRef(RefType id) : id_(id) {}
|
||||
|
||||
bool operator==(PlatformThreadRef other) const {
|
||||
return id_ == other.id_;
|
||||
}
|
||||
bool operator==(PlatformThreadRef other) const { return id_ == other.id_; }
|
||||
|
||||
bool is_null() const { return id_ == 0; }
|
||||
|
||||
bool is_null() const {
|
||||
return id_ == 0;
|
||||
}
|
||||
private:
|
||||
RefType id_;
|
||||
};
|
||||
|
@@ -51,7 +51,7 @@
|
||||
#include "include/base/cef_atomic_ref_count.h"
|
||||
#include "include/base/cef_build.h"
|
||||
#include "include/base/cef_logging.h"
|
||||
#include "include/base/cef_thread_collision_warner.h"
|
||||
#include "include/base/cef_macros.h"
|
||||
|
||||
namespace base {
|
||||
|
||||
@@ -60,12 +60,14 @@ namespace cef_subtle {
|
||||
class RefCountedBase {
|
||||
public:
|
||||
bool HasOneRef() const { return ref_count_ == 1; }
|
||||
bool HasAtLeastOneRef() const { return ref_count_ >= 1; }
|
||||
|
||||
protected:
|
||||
RefCountedBase()
|
||||
: ref_count_(0)
|
||||
#if DCHECK_IS_ON()
|
||||
, in_dtor_(false)
|
||||
,
|
||||
in_dtor_(false)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
@@ -76,12 +78,7 @@ class RefCountedBase {
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
void AddRef() const {
|
||||
// TODO(maruel): Add back once it doesn't assert 500 times/sec.
|
||||
// Current thread books the critical section "AddRelease"
|
||||
// without release it.
|
||||
// DFAKE_SCOPED_LOCK_THREAD_LOCKED(add_release_);
|
||||
#if DCHECK_IS_ON()
|
||||
DCHECK(!in_dtor_);
|
||||
#endif
|
||||
@@ -90,10 +87,6 @@ class RefCountedBase {
|
||||
|
||||
// Returns true if the object should self-delete.
|
||||
bool Release() const {
|
||||
// TODO(maruel): Add back once it doesn't assert 500 times/sec.
|
||||
// Current thread books the critical section "AddRelease"
|
||||
// without release it.
|
||||
// DFAKE_SCOPED_LOCK_THREAD_LOCKED(add_release_);
|
||||
#if DCHECK_IS_ON()
|
||||
DCHECK(!in_dtor_);
|
||||
#endif
|
||||
@@ -112,14 +105,13 @@ class RefCountedBase {
|
||||
mutable bool in_dtor_;
|
||||
#endif
|
||||
|
||||
DFAKE_MUTEX(add_release_);
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(RefCountedBase);
|
||||
};
|
||||
|
||||
class RefCountedThreadSafeBase {
|
||||
public:
|
||||
bool HasOneRef() const;
|
||||
bool HasAtLeastOneRef() const;
|
||||
|
||||
protected:
|
||||
RefCountedThreadSafeBase();
|
||||
@@ -160,9 +152,7 @@ class RefCounted : public cef_subtle::RefCountedBase {
|
||||
public:
|
||||
RefCounted() {}
|
||||
|
||||
void AddRef() const {
|
||||
cef_subtle::RefCountedBase::AddRef();
|
||||
}
|
||||
void AddRef() const { cef_subtle::RefCountedBase::AddRef(); }
|
||||
|
||||
void Release() const {
|
||||
if (cef_subtle::RefCountedBase::Release()) {
|
||||
@@ -178,7 +168,8 @@ class RefCounted : public cef_subtle::RefCountedBase {
|
||||
};
|
||||
|
||||
// Forward declaration.
|
||||
template <class T, typename Traits> class RefCountedThreadSafe;
|
||||
template <class T, typename Traits>
|
||||
class RefCountedThreadSafe;
|
||||
|
||||
// Default traits for RefCountedThreadSafe<T>. Deletes the object when its ref
|
||||
// count reaches 0. Overload to delete it on a different thread etc.
|
||||
@@ -188,8 +179,8 @@ struct DefaultRefCountedThreadSafeTraits {
|
||||
// Delete through RefCountedThreadSafe to make child classes only need to be
|
||||
// friend with RefCountedThreadSafe instead of this struct, which is an
|
||||
// implementation detail.
|
||||
RefCountedThreadSafe<T,
|
||||
DefaultRefCountedThreadSafeTraits>::DeleteInternal(x);
|
||||
RefCountedThreadSafe<T, DefaultRefCountedThreadSafeTraits>::DeleteInternal(
|
||||
x);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -210,9 +201,7 @@ class RefCountedThreadSafe : public cef_subtle::RefCountedThreadSafeBase {
|
||||
public:
|
||||
RefCountedThreadSafe() {}
|
||||
|
||||
void AddRef() const {
|
||||
cef_subtle::RefCountedThreadSafeBase::AddRef();
|
||||
}
|
||||
void AddRef() const { cef_subtle::RefCountedThreadSafeBase::AddRef(); }
|
||||
|
||||
void Release() const {
|
||||
if (cef_subtle::RefCountedThreadSafeBase::Release()) {
|
||||
@@ -303,8 +292,7 @@ class scoped_refptr {
|
||||
public:
|
||||
typedef T element_type;
|
||||
|
||||
scoped_refptr() : ptr_(NULL) {
|
||||
}
|
||||
scoped_refptr() : ptr_(NULL) {}
|
||||
|
||||
scoped_refptr(T* p) : ptr_(p) {
|
||||
if (ptr_)
|
||||
@@ -364,9 +352,7 @@ class scoped_refptr {
|
||||
*pp = p;
|
||||
}
|
||||
|
||||
void swap(scoped_refptr<T>& r) {
|
||||
swap(&r.ptr_);
|
||||
}
|
||||
void swap(scoped_refptr<T>& r) { swap(&r.ptr_); }
|
||||
|
||||
protected:
|
||||
T* ptr_;
|
||||
|
@@ -154,7 +154,8 @@ class RefCountedThreadSafeBase;
|
||||
template <class T>
|
||||
struct DefaultDeleter {
|
||||
DefaultDeleter() {}
|
||||
template <typename U> DefaultDeleter(const DefaultDeleter<U>& other) {
|
||||
template <typename U>
|
||||
DefaultDeleter(const DefaultDeleter<U>& other) {
|
||||
// IMPLEMENTATION NOTE: C++11 20.7.1.1.2p2 only provides this constructor
|
||||
// if U* is implicitly convertible to T* and U is not an array type.
|
||||
//
|
||||
@@ -194,7 +195,8 @@ struct DefaultDeleter<T[]> {
|
||||
// References:
|
||||
// C++98 [expr.delete]p3
|
||||
// http://cplusplus.github.com/LWG/lwg-defects.html#938
|
||||
template <typename U> void operator()(U* array) const;
|
||||
template <typename U>
|
||||
void operator()(U* array) const;
|
||||
};
|
||||
|
||||
template <class T, int n>
|
||||
@@ -209,18 +211,18 @@ struct DefaultDeleter<T[n]> {
|
||||
// scoped_ptr<int, base::FreeDeleter> foo_ptr(
|
||||
// static_cast<int*>(malloc(sizeof(int))));
|
||||
struct FreeDeleter {
|
||||
inline void operator()(void* ptr) const {
|
||||
free(ptr);
|
||||
}
|
||||
inline void operator()(void* ptr) const { free(ptr); }
|
||||
};
|
||||
|
||||
namespace cef_internal {
|
||||
|
||||
template <typename T> struct IsNotRefCounted {
|
||||
template <typename T>
|
||||
struct IsNotRefCounted {
|
||||
enum {
|
||||
value = !base::is_convertible<T*, base::subtle::RefCountedBase*>::value &&
|
||||
!base::is_convertible<T*, base::subtle::RefCountedThreadSafeBase*>::
|
||||
value
|
||||
value =
|
||||
!base::is_convertible<T*, base::subtle::RefCountedBase*>::value &&
|
||||
!base::is_convertible<T*,
|
||||
base::subtle::RefCountedThreadSafeBase*>::value
|
||||
};
|
||||
};
|
||||
|
||||
@@ -309,7 +311,8 @@ class scoped_ptr_impl {
|
||||
|
||||
private:
|
||||
// Needed to allow type-converting constructor.
|
||||
template <typename U, typename V> friend class scoped_ptr_impl;
|
||||
template <typename U, typename V>
|
||||
friend class scoped_ptr_impl;
|
||||
|
||||
// Use the empty base class optimization to allow us to have a D
|
||||
// member, while avoiding any space overhead for it when D is an
|
||||
@@ -443,18 +446,14 @@ class scoped_ptr {
|
||||
bool operator!=(const element_type* p) const { return impl_.get() != p; }
|
||||
|
||||
// Swap two scoped pointers.
|
||||
void swap(scoped_ptr& p2) {
|
||||
impl_.swap(p2.impl_);
|
||||
}
|
||||
void swap(scoped_ptr& p2) { impl_.swap(p2.impl_); }
|
||||
|
||||
// Release a pointer.
|
||||
// The return value is the current pointer held by this object.
|
||||
// If this object holds a NULL pointer, the return value is NULL.
|
||||
// After this operation, this object will hold a NULL pointer,
|
||||
// and will not own the object any more.
|
||||
element_type* release() WARN_UNUSED_RESULT {
|
||||
return impl_.release();
|
||||
}
|
||||
element_type* release() WARN_UNUSED_RESULT { return impl_.release(); }
|
||||
|
||||
// C++98 doesn't support functions templates with default parameters which
|
||||
// makes it hard to write a PassAs() that understands converting the deleter
|
||||
@@ -469,7 +468,8 @@ class scoped_ptr {
|
||||
|
||||
private:
|
||||
// Needed to reach into |impl_| in the constructor.
|
||||
template <typename U, typename V> friend class scoped_ptr;
|
||||
template <typename U, typename V>
|
||||
friend class scoped_ptr;
|
||||
base::cef_internal::scoped_ptr_impl<element_type, deleter_type> impl_;
|
||||
|
||||
// Forbidden for API compatibility with std::unique_ptr.
|
||||
@@ -479,8 +479,10 @@ class scoped_ptr {
|
||||
// doesn't make sense, and if U == T, it still doesn't make sense
|
||||
// because you should never have the same object owned by two different
|
||||
// scoped_ptrs.
|
||||
template <class U> bool operator==(scoped_ptr<U> const& p2) const;
|
||||
template <class U> bool operator!=(scoped_ptr<U> const& p2) const;
|
||||
template <class U>
|
||||
bool operator==(scoped_ptr<U> const& p2) const;
|
||||
template <class U>
|
||||
bool operator!=(scoped_ptr<U> const& p2) const;
|
||||
};
|
||||
|
||||
template <class T, class D>
|
||||
@@ -553,18 +555,14 @@ class scoped_ptr<T[], D> {
|
||||
bool operator!=(element_type* array) const { return impl_.get() != array; }
|
||||
|
||||
// Swap two scoped pointers.
|
||||
void swap(scoped_ptr& p2) {
|
||||
impl_.swap(p2.impl_);
|
||||
}
|
||||
void swap(scoped_ptr& p2) { impl_.swap(p2.impl_); }
|
||||
|
||||
// Release a pointer.
|
||||
// The return value is the current pointer held by this object.
|
||||
// If this object holds a NULL pointer, the return value is NULL.
|
||||
// After this operation, this object will hold a NULL pointer,
|
||||
// and will not own the object any more.
|
||||
element_type* release() WARN_UNUSED_RESULT {
|
||||
return impl_.release();
|
||||
}
|
||||
element_type* release() WARN_UNUSED_RESULT { return impl_.release(); }
|
||||
|
||||
private:
|
||||
// Force element_type to be a complete type.
|
||||
@@ -578,20 +576,24 @@ class scoped_ptr<T[], D> {
|
||||
// private and has no definition. This is disabled because it is not safe to
|
||||
// call delete[] on an array whose static type does not match its dynamic
|
||||
// type.
|
||||
template <typename U> explicit scoped_ptr(U* array);
|
||||
template <typename U>
|
||||
explicit scoped_ptr(U* array);
|
||||
explicit scoped_ptr(int disallow_construction_from_null);
|
||||
|
||||
// Disable reset() from any type other than element_type*, for the same
|
||||
// reasons as the constructor above.
|
||||
template <typename U> void reset(U* array);
|
||||
template <typename U>
|
||||
void reset(U* array);
|
||||
void reset(int disallow_reset_from_null);
|
||||
|
||||
// Forbid comparison of scoped_ptr types. If U != T, it totally
|
||||
// doesn't make sense, and if U == T, it still doesn't make sense
|
||||
// because you should never have the same object owned by two different
|
||||
// scoped_ptrs.
|
||||
template <class U> bool operator==(scoped_ptr<U> const& p2) const;
|
||||
template <class U> bool operator!=(scoped_ptr<U> const& p2) const;
|
||||
template <class U>
|
||||
bool operator==(scoped_ptr<U> const& p2) const;
|
||||
template <class U>
|
||||
bool operator!=(scoped_ptr<U> const& p2) const;
|
||||
};
|
||||
|
||||
// Free functions
|
||||
|
@@ -86,6 +86,7 @@ typedef std::char_traits<wchar_t> string16_char_traits;
|
||||
|
||||
#include "include/base/cef_macros.h"
|
||||
|
||||
namespace cef {
|
||||
namespace base {
|
||||
|
||||
typedef uint16_t char16;
|
||||
@@ -112,26 +113,19 @@ struct string16_char_traits {
|
||||
typedef mbstate_t state_type;
|
||||
typedef std::fpos<state_type> pos_type;
|
||||
|
||||
static void assign(char_type& c1, const char_type& c2) {
|
||||
c1 = c2;
|
||||
}
|
||||
static void assign(char_type& c1, const char_type& c2) { c1 = c2; }
|
||||
|
||||
static bool eq(const char_type& c1, const char_type& c2) {
|
||||
return c1 == c2;
|
||||
}
|
||||
static bool lt(const char_type& c1, const char_type& c2) {
|
||||
return c1 < c2;
|
||||
}
|
||||
static bool eq(const char_type& c1, const char_type& c2) { return c1 == c2; }
|
||||
static bool lt(const char_type& c1, const char_type& c2) { return c1 < c2; }
|
||||
|
||||
static int compare(const char_type* s1, const char_type* s2, size_t n) {
|
||||
return c16memcmp(s1, s2, n);
|
||||
}
|
||||
|
||||
static size_t length(const char_type* s) {
|
||||
return c16len(s);
|
||||
}
|
||||
static size_t length(const char_type* s) { return c16len(s); }
|
||||
|
||||
static const char_type* find(const char_type* s, size_t n,
|
||||
static const char_type* find(const char_type* s,
|
||||
size_t n,
|
||||
const char_type& a) {
|
||||
return c16memchr(s, a, n);
|
||||
}
|
||||
@@ -152,24 +146,26 @@ struct string16_char_traits {
|
||||
return eq_int_type(c, eof()) ? 0 : c;
|
||||
}
|
||||
|
||||
static char_type to_char_type(const int_type& c) {
|
||||
return char_type(c);
|
||||
}
|
||||
static char_type to_char_type(const int_type& c) { return char_type(c); }
|
||||
|
||||
static int_type to_int_type(const char_type& c) {
|
||||
return int_type(c);
|
||||
}
|
||||
static int_type to_int_type(const char_type& c) { return int_type(c); }
|
||||
|
||||
static bool eq_int_type(const int_type& c1, const int_type& c2) {
|
||||
return c1 == c2;
|
||||
}
|
||||
|
||||
static int_type eof() {
|
||||
return static_cast<int_type>(EOF);
|
||||
}
|
||||
static int_type eof() { return static_cast<int_type>(EOF); }
|
||||
};
|
||||
|
||||
typedef std::basic_string<char16, base::string16_char_traits> string16;
|
||||
typedef std::basic_string<char16, string16_char_traits> string16;
|
||||
|
||||
} // namespace base
|
||||
} // namespace cef
|
||||
|
||||
namespace base {
|
||||
|
||||
typedef cef::base::char16 char16;
|
||||
typedef cef::base::string16 string16;
|
||||
|
||||
extern std::ostream& operator<<(std::ostream& out, const string16& str);
|
||||
|
||||
@@ -217,8 +213,8 @@ extern void PrintTo(const string16& str, std::ostream* out);
|
||||
//
|
||||
// TODO(mark): File this bug with Apple and update this note with a bug number.
|
||||
|
||||
extern template
|
||||
class std::basic_string<base::char16, base::string16_char_traits>;
|
||||
extern template class std::basic_string<cef::base::char16,
|
||||
cef::base::string16_char_traits>;
|
||||
|
||||
#endif // WCHAR_T_IS_UTF32
|
||||
|
||||
|
@@ -60,13 +60,16 @@ struct integral_constant {
|
||||
typedef integral_constant<T, v> type;
|
||||
};
|
||||
|
||||
template <class T, T v> const T integral_constant<T, v>::value;
|
||||
template <class T, T v>
|
||||
const T integral_constant<T, v>::value;
|
||||
|
||||
typedef integral_constant<bool, true> true_type;
|
||||
typedef integral_constant<bool, false> false_type;
|
||||
|
||||
template <class T> struct is_pointer : false_type {};
|
||||
template <class T> struct is_pointer<T*> : true_type {};
|
||||
template <class T>
|
||||
struct is_pointer : false_type {};
|
||||
template <class T>
|
||||
struct is_pointer<T*> : true_type {};
|
||||
|
||||
// Member function pointer detection up to four params. Add more as needed
|
||||
// below. This is built-in to C++ 11, and we can remove this when we switch.
|
||||
@@ -93,30 +96,49 @@ struct is_member_function_pointer<R(Z::*)(A, B, C)> : true_type {};
|
||||
template <typename R, typename Z, typename A, typename B, typename C>
|
||||
struct is_member_function_pointer<R (Z::*)(A, B, C) const> : true_type {};
|
||||
|
||||
template <typename R, typename Z, typename A, typename B, typename C,
|
||||
template <typename R,
|
||||
typename Z,
|
||||
typename A,
|
||||
typename B,
|
||||
typename C,
|
||||
typename D>
|
||||
struct is_member_function_pointer<R (Z::*)(A, B, C, D)> : true_type {};
|
||||
template <typename R, typename Z, typename A, typename B, typename C,
|
||||
template <typename R,
|
||||
typename Z,
|
||||
typename A,
|
||||
typename B,
|
||||
typename C,
|
||||
typename D>
|
||||
struct is_member_function_pointer<R (Z::*)(A, B, C, D) const> : true_type {};
|
||||
|
||||
template <class T, class U>
|
||||
struct is_same : public false_type {};
|
||||
template <class T>
|
||||
struct is_same<T, T> : true_type {};
|
||||
|
||||
template <class T, class U> struct is_same : public false_type {};
|
||||
template <class T> struct is_same<T,T> : true_type {};
|
||||
template <class>
|
||||
struct is_array : public false_type {};
|
||||
template <class T, size_t n>
|
||||
struct is_array<T[n]> : public true_type {};
|
||||
template <class T>
|
||||
struct is_array<T[]> : public true_type {};
|
||||
|
||||
template<class> struct is_array : public false_type {};
|
||||
template<class T, size_t n> struct is_array<T[n]> : public true_type {};
|
||||
template<class T> struct is_array<T[]> : public true_type {};
|
||||
template <class T>
|
||||
struct is_non_const_reference : false_type {};
|
||||
template <class T>
|
||||
struct is_non_const_reference<T&> : true_type {};
|
||||
template <class T>
|
||||
struct is_non_const_reference<const T&> : false_type {};
|
||||
|
||||
template <class T> struct is_non_const_reference : false_type {};
|
||||
template <class T> struct is_non_const_reference<T&> : true_type {};
|
||||
template <class T> struct is_non_const_reference<const T&> : false_type {};
|
||||
template <class T>
|
||||
struct is_const : false_type {};
|
||||
template <class T>
|
||||
struct is_const<const T> : true_type {};
|
||||
|
||||
template <class T> struct is_const : false_type {};
|
||||
template <class T> struct is_const<const T> : true_type {};
|
||||
|
||||
template <class T> struct is_void : false_type {};
|
||||
template <> struct is_void<void> : true_type {};
|
||||
template <class T>
|
||||
struct is_void : false_type {};
|
||||
template <>
|
||||
struct is_void<void> : true_type {};
|
||||
|
||||
namespace cef_internal {
|
||||
|
||||
@@ -169,21 +191,21 @@ struct is_convertible
|
||||
: integral_constant<bool,
|
||||
sizeof(cef_internal::ConvertHelper::Test<To>(
|
||||
cef_internal::ConvertHelper::Create<From>())) ==
|
||||
sizeof(cef_internal::YesType)> {
|
||||
};
|
||||
sizeof(cef_internal::YesType)> {};
|
||||
|
||||
template <typename T>
|
||||
struct is_class
|
||||
: integral_constant<bool,
|
||||
sizeof(cef_internal::IsClassHelper::Test<T>(0)) ==
|
||||
sizeof(cef_internal::YesType)> {
|
||||
};
|
||||
sizeof(cef_internal::YesType)> {};
|
||||
|
||||
template <bool B, class T = void>
|
||||
struct enable_if {};
|
||||
|
||||
template <class T>
|
||||
struct enable_if<true, T> { typedef T type; };
|
||||
struct enable_if<true, T> {
|
||||
typedef T type;
|
||||
};
|
||||
|
||||
} // namespace base
|
||||
|
||||
|
@@ -58,7 +58,6 @@
|
||||
#define ENABLE_THREAD_CHECKER 0
|
||||
#endif
|
||||
|
||||
|
||||
namespace base {
|
||||
|
||||
namespace cef_internal {
|
||||
@@ -69,9 +68,7 @@ namespace cef_internal {
|
||||
// right version for your build configuration.
|
||||
class ThreadCheckerDoNothing {
|
||||
public:
|
||||
bool CalledOnValidThread() const {
|
||||
return true;
|
||||
}
|
||||
bool CalledOnValidThread() const { return true; }
|
||||
|
||||
void DetachFromThread() {}
|
||||
};
|
||||
@@ -110,11 +107,9 @@ class ThreadCheckerDoNothing {
|
||||
//
|
||||
// In Release mode, CalledOnValidThread will always return true.
|
||||
#if ENABLE_THREAD_CHECKER
|
||||
class ThreadChecker : public cef_internal::ThreadCheckerImpl {
|
||||
};
|
||||
class ThreadChecker : public cef_internal::ThreadCheckerImpl {};
|
||||
#else
|
||||
class ThreadChecker : public cef_internal::ThreadCheckerDoNothing {
|
||||
};
|
||||
class ThreadChecker : public cef_internal::ThreadCheckerDoNothing {};
|
||||
#endif // ENABLE_THREAD_CHECKER
|
||||
|
||||
#undef ENABLE_THREAD_CHECKER
|
||||
|
@@ -1,288 +0,0 @@
|
||||
// Copyright (c) 2014 Marshall A. Greenblatt. Portions copyright (c) 2012
|
||||
// Google Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#ifndef CEF_INCLUDE_BASE_CEF_THREAD_COLLISION_WARNER_H_
|
||||
#define CEF_INCLUDE_BASE_CEF_THREAD_COLLISION_WARNER_H_
|
||||
#pragma once
|
||||
|
||||
#if defined(BASE_THREADING_THREAD_COLLISION_WARNER_H_)
|
||||
// Do nothing if the Chromium header has already been included.
|
||||
// This can happen in cases where Chromium code is used directly by the
|
||||
// client application. When using Chromium code directly always include
|
||||
// the Chromium header first to avoid type conflicts.
|
||||
#elif defined(USING_CHROMIUM_INCLUDES)
|
||||
// When building CEF include the Chromium header directly.
|
||||
#include "base/threading/thread_collision_warner.h"
|
||||
#else // !USING_CHROMIUM_INCLUDES
|
||||
// The following is substantially similar to the Chromium implementation.
|
||||
// If the Chromium implementation diverges the below implementation should be
|
||||
// updated to match.
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "include/base/cef_atomicops.h"
|
||||
#include "include/base/cef_basictypes.h"
|
||||
#include "include/base/cef_build.h"
|
||||
#include "include/base/cef_logging.h"
|
||||
#include "include/base/cef_macros.h"
|
||||
|
||||
// A helper class alongside macros to be used to verify assumptions about thread
|
||||
// safety of a class.
|
||||
//
|
||||
// Example: Queue implementation non thread-safe but still usable if clients
|
||||
// are synchronized somehow.
|
||||
//
|
||||
// In this case the macro DFAKE_SCOPED_LOCK has to be
|
||||
// used, it checks that if a thread is inside the push/pop then
|
||||
// noone else is still inside the pop/push
|
||||
//
|
||||
// class NonThreadSafeQueue {
|
||||
// public:
|
||||
// ...
|
||||
// void push(int) { DFAKE_SCOPED_LOCK(push_pop_); ... }
|
||||
// int pop() { DFAKE_SCOPED_LOCK(push_pop_); ... }
|
||||
// ...
|
||||
// private:
|
||||
// DFAKE_MUTEX(push_pop_);
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Example: Queue implementation non thread-safe but still usable if clients
|
||||
// are synchronized somehow, it calls a method to "protect" from
|
||||
// a "protected" method
|
||||
//
|
||||
// In this case the macro DFAKE_SCOPED_RECURSIVE_LOCK
|
||||
// has to be used, it checks that if a thread is inside the push/pop
|
||||
// then noone else is still inside the pop/push
|
||||
//
|
||||
// class NonThreadSafeQueue {
|
||||
// public:
|
||||
// void push(int) {
|
||||
// DFAKE_SCOPED_LOCK(push_pop_);
|
||||
// ...
|
||||
// }
|
||||
// int pop() {
|
||||
// DFAKE_SCOPED_RECURSIVE_LOCK(push_pop_);
|
||||
// bar();
|
||||
// ...
|
||||
// }
|
||||
// void bar() { DFAKE_SCOPED_RECURSIVE_LOCK(push_pop_); ... }
|
||||
// ...
|
||||
// private:
|
||||
// DFAKE_MUTEX(push_pop_);
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Example: Queue implementation not usable even if clients are synchronized,
|
||||
// so only one thread in the class life cycle can use the two members
|
||||
// push/pop.
|
||||
//
|
||||
// In this case the macro DFAKE_SCOPED_LOCK_THREAD_LOCKED pins the
|
||||
// specified
|
||||
// critical section the first time a thread enters push or pop, from
|
||||
// that time on only that thread is allowed to execute push or pop.
|
||||
//
|
||||
// class NonThreadSafeQueue {
|
||||
// public:
|
||||
// ...
|
||||
// void push(int) { DFAKE_SCOPED_LOCK_THREAD_LOCKED(push_pop_); ... }
|
||||
// int pop() { DFAKE_SCOPED_LOCK_THREAD_LOCKED(push_pop_); ... }
|
||||
// ...
|
||||
// private:
|
||||
// DFAKE_MUTEX(push_pop_);
|
||||
// };
|
||||
//
|
||||
//
|
||||
// Example: Class that has to be contructed/destroyed on same thread, it has
|
||||
// a "shareable" method (with external synchronization) and a not
|
||||
// shareable method (even with external synchronization).
|
||||
//
|
||||
// In this case 3 Critical sections have to be defined
|
||||
//
|
||||
// class ExoticClass {
|
||||
// public:
|
||||
// ExoticClass() { DFAKE_SCOPED_LOCK_THREAD_LOCKED(ctor_dtor_); ... }
|
||||
// ~ExoticClass() { DFAKE_SCOPED_LOCK_THREAD_LOCKED(ctor_dtor_); ... }
|
||||
//
|
||||
// void Shareable() { DFAKE_SCOPED_LOCK(shareable_section_); ... }
|
||||
// void NotShareable() { DFAKE_SCOPED_LOCK_THREAD_LOCKED(ctor_dtor_); ... }
|
||||
// ...
|
||||
// private:
|
||||
// DFAKE_MUTEX(ctor_dtor_);
|
||||
// DFAKE_MUTEX(shareable_section_);
|
||||
// };
|
||||
|
||||
|
||||
#if DCHECK_IS_ON()
|
||||
|
||||
// Defines a class member that acts like a mutex. It is used only as a
|
||||
// verification tool.
|
||||
#define DFAKE_MUTEX(obj) \
|
||||
mutable base::ThreadCollisionWarner obj
|
||||
// Asserts the call is never called simultaneously in two threads. Used at
|
||||
// member function scope.
|
||||
#define DFAKE_SCOPED_LOCK(obj) \
|
||||
base::ThreadCollisionWarner::ScopedCheck s_check_##obj(&obj)
|
||||
// Asserts the call is never called simultaneously in two threads. Used at
|
||||
// member function scope. Same as DFAKE_SCOPED_LOCK but allows recursive locks.
|
||||
#define DFAKE_SCOPED_RECURSIVE_LOCK(obj) \
|
||||
base::ThreadCollisionWarner::ScopedRecursiveCheck sr_check_##obj(&obj)
|
||||
// Asserts the code is always executed in the same thread.
|
||||
#define DFAKE_SCOPED_LOCK_THREAD_LOCKED(obj) \
|
||||
base::ThreadCollisionWarner::Check check_##obj(&obj)
|
||||
|
||||
#else
|
||||
|
||||
#define DFAKE_MUTEX(obj) typedef void InternalFakeMutexType##obj
|
||||
#define DFAKE_SCOPED_LOCK(obj) ((void)0)
|
||||
#define DFAKE_SCOPED_RECURSIVE_LOCK(obj) ((void)0)
|
||||
#define DFAKE_SCOPED_LOCK_THREAD_LOCKED(obj) ((void)0)
|
||||
|
||||
#endif
|
||||
|
||||
namespace base {
|
||||
|
||||
// The class ThreadCollisionWarner uses an Asserter to notify the collision
|
||||
// AsserterBase is the interfaces and DCheckAsserter is the default asserter
|
||||
// used. During the unit tests is used another class that doesn't "DCHECK"
|
||||
// in case of collision (check thread_collision_warner_unittests.cc)
|
||||
struct AsserterBase {
|
||||
virtual ~AsserterBase() {}
|
||||
virtual void warn() = 0;
|
||||
};
|
||||
|
||||
struct DCheckAsserter : public AsserterBase {
|
||||
virtual ~DCheckAsserter() {}
|
||||
virtual void warn() OVERRIDE;
|
||||
};
|
||||
|
||||
class ThreadCollisionWarner {
|
||||
public:
|
||||
// The parameter asserter is there only for test purpose
|
||||
explicit ThreadCollisionWarner(AsserterBase* asserter = new DCheckAsserter())
|
||||
: valid_thread_id_(0),
|
||||
counter_(0),
|
||||
asserter_(asserter) {}
|
||||
|
||||
~ThreadCollisionWarner() {
|
||||
delete asserter_;
|
||||
}
|
||||
|
||||
// This class is meant to be used through the macro
|
||||
// DFAKE_SCOPED_LOCK_THREAD_LOCKED
|
||||
// it doesn't leave the critical section, as opposed to ScopedCheck,
|
||||
// because the critical section being pinned is allowed to be used only
|
||||
// from one thread
|
||||
class Check {
|
||||
public:
|
||||
explicit Check(ThreadCollisionWarner* warner)
|
||||
: warner_(warner) {
|
||||
warner_->EnterSelf();
|
||||
}
|
||||
|
||||
~Check() {}
|
||||
|
||||
private:
|
||||
ThreadCollisionWarner* warner_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(Check);
|
||||
};
|
||||
|
||||
// This class is meant to be used through the macro
|
||||
// DFAKE_SCOPED_LOCK
|
||||
class ScopedCheck {
|
||||
public:
|
||||
explicit ScopedCheck(ThreadCollisionWarner* warner)
|
||||
: warner_(warner) {
|
||||
warner_->Enter();
|
||||
}
|
||||
|
||||
~ScopedCheck() {
|
||||
warner_->Leave();
|
||||
}
|
||||
|
||||
private:
|
||||
ThreadCollisionWarner* warner_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(ScopedCheck);
|
||||
};
|
||||
|
||||
// This class is meant to be used through the macro
|
||||
// DFAKE_SCOPED_RECURSIVE_LOCK
|
||||
class ScopedRecursiveCheck {
|
||||
public:
|
||||
explicit ScopedRecursiveCheck(ThreadCollisionWarner* warner)
|
||||
: warner_(warner) {
|
||||
warner_->EnterSelf();
|
||||
}
|
||||
|
||||
~ScopedRecursiveCheck() {
|
||||
warner_->Leave();
|
||||
}
|
||||
|
||||
private:
|
||||
ThreadCollisionWarner* warner_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(ScopedRecursiveCheck);
|
||||
};
|
||||
|
||||
private:
|
||||
// This method stores the current thread identifier and does a DCHECK
|
||||
// if a another thread has already done it, it is safe if same thread
|
||||
// calls this multiple time (recursion allowed).
|
||||
void EnterSelf();
|
||||
|
||||
// Same as EnterSelf but recursion is not allowed.
|
||||
void Enter();
|
||||
|
||||
// Removes the thread_id stored in order to allow other threads to
|
||||
// call EnterSelf or Enter.
|
||||
void Leave();
|
||||
|
||||
// This stores the thread id that is inside the critical section, if the
|
||||
// value is 0 then no thread is inside.
|
||||
volatile subtle::Atomic32 valid_thread_id_;
|
||||
|
||||
// Counter to trace how many time a critical section was "pinned"
|
||||
// (when allowed) in order to unpin it when counter_ reaches 0.
|
||||
volatile subtle::Atomic32 counter_;
|
||||
|
||||
// Here only for class unit tests purpose, during the test I need to not
|
||||
// DCHECK but notify the collision with something else.
|
||||
AsserterBase* asserter_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(ThreadCollisionWarner);
|
||||
};
|
||||
|
||||
} // namespace base
|
||||
|
||||
#endif // !USING_CHROMIUM_INCLUDES
|
||||
|
||||
#endif // CEF_INCLUDE_BASE_CEF_THREAD_COLLISION_WARNER_H_
|
@@ -166,26 +166,23 @@
|
||||
#define TRACE_EVENT1(category, name, arg1_name, arg1_val) \
|
||||
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false); \
|
||||
CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name)
|
||||
#define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val) \
|
||||
cef_trace_event_begin(category, name, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val, false); \
|
||||
#define TRACE_EVENT2(category, name, arg1_name, arg1_val, arg2_name, arg2_val) \
|
||||
cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val, false); \
|
||||
CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name)
|
||||
|
||||
// Implementation detail: trace event macros create temporary variable names.
|
||||
// These macros give each temporary variable a unique name based on the line
|
||||
// number to prevent name collisions.
|
||||
#define CEF_INTERNAL_TRACE_EVENT_UID3(a,b) \
|
||||
cef_trace_event_unique_##a##b
|
||||
#define CEF_INTERNAL_TRACE_EVENT_UID2(a,b) \
|
||||
CEF_INTERNAL_TRACE_EVENT_UID3(a,b)
|
||||
#define CEF_INTERNAL_TRACE_EVENT_UID3(a, b) cef_trace_event_unique_##a##b
|
||||
#define CEF_INTERNAL_TRACE_EVENT_UID2(a, b) CEF_INTERNAL_TRACE_EVENT_UID3(a, b)
|
||||
#define CEF_INTERNAL_TRACE_EVENT_UID(name_prefix) \
|
||||
CEF_INTERNAL_TRACE_EVENT_UID2(name_prefix, __LINE__)
|
||||
|
||||
// Implementation detail: internal macro to end end event when the scope ends.
|
||||
#define CEF_INTERNAL_TRACE_END_ON_SCOPE_CLOSE(category, name) \
|
||||
cef_trace_event::CefTraceEndOnScopeClose \
|
||||
CEF_INTERNAL_TRACE_EVENT_UID(profileScope)(category, name)
|
||||
cef_trace_event::CefTraceEndOnScopeClose CEF_INTERNAL_TRACE_EVENT_UID( \
|
||||
profileScope)(category, name)
|
||||
|
||||
// Records a single event called "name" immediately, with 0, 1 or 2
|
||||
// associated arguments. If the category is not enabled, then this
|
||||
@@ -196,8 +193,8 @@
|
||||
cef_trace_event_instant(category, name, NULL, 0, NULL, 0, false)
|
||||
#define TRACE_EVENT_INSTANT1(category, name, arg1_name, arg1_val) \
|
||||
cef_trace_event_instant(category, name, arg1_name, arg1_val, NULL, 0, false)
|
||||
#define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val) \
|
||||
#define TRACE_EVENT_INSTANT2(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val) \
|
||||
cef_trace_event_instant(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val, false)
|
||||
#define TRACE_EVENT_COPY_INSTANT0(category, name) \
|
||||
@@ -218,8 +215,8 @@
|
||||
cef_trace_event_begin(category, name, NULL, 0, NULL, 0, false)
|
||||
#define TRACE_EVENT_BEGIN1(category, name, arg1_name, arg1_val) \
|
||||
cef_trace_event_begin(category, name, arg1_name, arg1_val, NULL, 0, false)
|
||||
#define TRACE_EVENT_BEGIN2(category, name, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val) \
|
||||
#define TRACE_EVENT_BEGIN2(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val) \
|
||||
cef_trace_event_begin(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val, false)
|
||||
#define TRACE_EVENT_COPY_BEGIN0(category, name) \
|
||||
@@ -239,16 +236,16 @@
|
||||
cef_trace_event_end(category, name, NULL, 0, NULL, 0, false)
|
||||
#define TRACE_EVENT_END1(category, name, arg1_name, arg1_val) \
|
||||
cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, false)
|
||||
#define TRACE_EVENT_END2(category, name, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val) \
|
||||
#define TRACE_EVENT_END2(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val) \
|
||||
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val, false)
|
||||
#define TRACE_EVENT_COPY_END0(category, name) \
|
||||
cef_trace_event_end(category, name, NULL, 0, NULL, 0, true)
|
||||
#define TRACE_EVENT_COPY_END1(category, name, arg1_name, arg1_val) \
|
||||
cef_trace_event_end(category, name, arg1_name, arg1_val, NULL, 0, true)
|
||||
#define TRACE_EVENT_COPY_END2(category, name, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val) \
|
||||
#define TRACE_EVENT_COPY_END2(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val) \
|
||||
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val, true)
|
||||
|
||||
@@ -266,8 +263,8 @@
|
||||
// values as a stacked-bar chart.
|
||||
// - category and name strings must have application lifetime (statics or
|
||||
// literals). They may not include " chars.
|
||||
#define TRACE_COUNTER2(category, name, value1_name, value1_val, \
|
||||
value2_name, value2_val) \
|
||||
#define TRACE_COUNTER2(category, name, value1_name, value1_val, value2_name, \
|
||||
value2_val) \
|
||||
cef_trace_counter(category, name, value1_name, value1_val, value2_name, \
|
||||
value2_val, false)
|
||||
#define TRACE_COPY_COUNTER2(category, name, value1_name, value1_val, \
|
||||
@@ -301,12 +298,11 @@
|
||||
value2_name, value2_val) \
|
||||
cef_trace_counter_id(category, name, id, value1_name, value1_val, \
|
||||
value2_name, value2_val, false)
|
||||
#define TRACE_COPY_COUNTER_ID2(category, name, id, value1_name, \
|
||||
value1_val, value2_name, value2_val) \
|
||||
#define TRACE_COPY_COUNTER_ID2(category, name, id, value1_name, value1_val, \
|
||||
value2_name, value2_val) \
|
||||
cef_trace_counter_id(category, name, id, value1_name, value1_val, \
|
||||
value2_name, value2_val, true)
|
||||
|
||||
|
||||
// Records a single ASYNC_BEGIN event called "name" immediately, with 0, 1 or 2
|
||||
// associated arguments. If the category is not enabled, then this
|
||||
// does nothing.
|
||||
@@ -334,12 +330,11 @@
|
||||
arg2_name, arg2_val, false)
|
||||
#define TRACE_EVENT_COPY_ASYNC_BEGIN0(category, name, id) \
|
||||
cef_trace_event_async_begin(category, name, id, NULL, 0, NULL, 0, true)
|
||||
#define TRACE_EVENT_COPY_ASYNC_BEGIN1(category, name, id, arg1_name, \
|
||||
arg1_val) \
|
||||
#define TRACE_EVENT_COPY_ASYNC_BEGIN1(category, name, id, arg1_name, arg1_val) \
|
||||
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, NULL, \
|
||||
0, true)
|
||||
#define TRACE_EVENT_COPY_ASYNC_BEGIN2(category, name, id, arg1_name, \
|
||||
arg1_val, arg2_name, arg2_val) \
|
||||
#define TRACE_EVENT_COPY_ASYNC_BEGIN2(category, name, id, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val) \
|
||||
cef_trace_event_async_begin(category, name, id, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val, true)
|
||||
|
||||
@@ -351,14 +346,14 @@
|
||||
// ASYNC_STEP_PAST events.
|
||||
#define TRACE_EVENT_ASYNC_STEP_INTO0(category, name, id, step) \
|
||||
cef_trace_event_async_step_into(category, name, id, step, NULL, 0, false)
|
||||
#define TRACE_EVENT_ASYNC_STEP_INTO1(category, name, id, step, \
|
||||
arg1_name, arg1_val) \
|
||||
#define TRACE_EVENT_ASYNC_STEP_INTO1(category, name, id, step, arg1_name, \
|
||||
arg1_val) \
|
||||
cef_trace_event_async_step_into(category, name, id, step, arg1_name, \
|
||||
arg1_val, false)
|
||||
#define TRACE_EVENT_COPY_ASYNC_STEP_INTO0(category, name, id, step) \
|
||||
cef_trace_event_async_step_into(category, name, id, step, NULL, 0, true)
|
||||
#define TRACE_EVENT_COPY_ASYNC_STEP_INTO1(category, name, id, step, \
|
||||
arg1_name, arg1_val) \
|
||||
#define TRACE_EVENT_COPY_ASYNC_STEP_INTO1(category, name, id, step, arg1_name, \
|
||||
arg1_val) \
|
||||
cef_trace_event_async_step_into(category, name, id, step, arg1_name, \
|
||||
arg1_val, true)
|
||||
|
||||
@@ -370,14 +365,14 @@
|
||||
// ASYNC_STEP_INTO events.
|
||||
#define TRACE_EVENT_ASYNC_STEP_PAST0(category, name, id, step) \
|
||||
cef_trace_event_async_step_past(category, name, id, step, NULL, 0, false)
|
||||
#define TRACE_EVENT_ASYNC_STEP_PAST1(category, name, id, step, \
|
||||
arg1_name, arg1_val) \
|
||||
#define TRACE_EVENT_ASYNC_STEP_PAST1(category, name, id, step, arg1_name, \
|
||||
arg1_val) \
|
||||
cef_trace_event_async_step_past(category, name, id, step, arg1_name, \
|
||||
arg1_val, false)
|
||||
#define TRACE_EVENT_COPY_ASYNC_STEP_PAST0(category, name, id, step) \
|
||||
cef_trace_event_async_step_past(category, name, id, step, NULL, 0, true)
|
||||
#define TRACE_EVENT_COPY_ASYNC_STEP_PAST1(category, name, id, step, \
|
||||
arg1_name, arg1_val) \
|
||||
#define TRACE_EVENT_COPY_ASYNC_STEP_PAST1(category, name, id, step, arg1_name, \
|
||||
arg1_val) \
|
||||
cef_trace_event_async_step_past(category, name, id, step, arg1_name, \
|
||||
arg1_val, true)
|
||||
|
||||
@@ -394,12 +389,11 @@
|
||||
arg2_name, arg2_val, false)
|
||||
#define TRACE_EVENT_COPY_ASYNC_END0(category, name, id) \
|
||||
cef_trace_event_async_end(category, name, id, NULL, 0, NULL, 0, true)
|
||||
#define TRACE_EVENT_COPY_ASYNC_END1(category, name, id, arg1_name, \
|
||||
arg1_val) \
|
||||
#define TRACE_EVENT_COPY_ASYNC_END1(category, name, id, arg1_name, arg1_val) \
|
||||
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, NULL, 0, \
|
||||
true)
|
||||
#define TRACE_EVENT_COPY_ASYNC_END2(category, name, id, arg1_name, \
|
||||
arg1_val, arg2_name, arg2_val) \
|
||||
#define TRACE_EVENT_COPY_ASYNC_END2(category, name, id, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val) \
|
||||
cef_trace_event_async_end(category, name, id, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val, true)
|
||||
|
||||
@@ -409,8 +403,7 @@ namespace cef_trace_event {
|
||||
class CefTraceEndOnScopeClose {
|
||||
public:
|
||||
CefTraceEndOnScopeClose(const char* category, const char* name)
|
||||
: category_(category), name_(name) {
|
||||
}
|
||||
: category_(category), name_(name) {}
|
||||
~CefTraceEndOnScopeClose() {
|
||||
cef_trace_event_end(category_, name_, NULL, 0, NULL, 0, false);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -117,8 +117,10 @@
|
||||
|
||||
namespace base {
|
||||
|
||||
template <typename T> class SupportsWeakPtr;
|
||||
template <typename T> class WeakPtr;
|
||||
template <typename T>
|
||||
class SupportsWeakPtr;
|
||||
template <typename T>
|
||||
class WeakPtr;
|
||||
|
||||
namespace cef_internal {
|
||||
// These classes are part of the WeakPtr implementation.
|
||||
@@ -164,9 +166,7 @@ class WeakReferenceOwner {
|
||||
|
||||
WeakReference GetRef() const;
|
||||
|
||||
bool HasRefs() const {
|
||||
return flag_.get() && !flag_->HasOneRef();
|
||||
}
|
||||
bool HasRefs() const { return flag_.get() && !flag_->HasOneRef(); }
|
||||
|
||||
void Invalidate();
|
||||
|
||||
@@ -200,8 +200,8 @@ class SupportsWeakPtrBase {
|
||||
// function that makes calling this easier.
|
||||
template <typename Derived>
|
||||
static WeakPtr<Derived> StaticAsWeakPtr(Derived* t) {
|
||||
typedef
|
||||
is_convertible<Derived, cef_internal::SupportsWeakPtrBase&> convertible;
|
||||
typedef is_convertible<Derived, cef_internal::SupportsWeakPtrBase&>
|
||||
convertible;
|
||||
COMPILE_ASSERT(convertible::value,
|
||||
AsWeakPtr_argument_inherits_from_SupportsWeakPtr);
|
||||
return AsWeakPtrImpl<Derived>(t, *t);
|
||||
@@ -212,8 +212,8 @@ class SupportsWeakPtrBase {
|
||||
// which is an instance of SupportsWeakPtr<Base>. We can then safely
|
||||
// static_cast the Base* to a Derived*.
|
||||
template <typename Derived, typename Base>
|
||||
static WeakPtr<Derived> AsWeakPtrImpl(
|
||||
Derived* t, const SupportsWeakPtr<Base>&) {
|
||||
static WeakPtr<Derived> AsWeakPtrImpl(Derived* t,
|
||||
const SupportsWeakPtr<Base>&) {
|
||||
WeakPtr<Base> ptr = t->Base::AsWeakPtr();
|
||||
return WeakPtr<Derived>(ptr.ref_, static_cast<Derived*>(ptr.ptr_));
|
||||
}
|
||||
@@ -221,7 +221,8 @@ class SupportsWeakPtrBase {
|
||||
|
||||
} // namespace cef_internal
|
||||
|
||||
template <typename T> class WeakPtrFactory;
|
||||
template <typename T>
|
||||
class WeakPtrFactory;
|
||||
|
||||
// The WeakPtr class holds a weak reference to |T*|.
|
||||
//
|
||||
@@ -239,23 +240,21 @@ template <typename T> class WeakPtrFactory;
|
||||
template <typename T>
|
||||
class WeakPtr : public cef_internal::WeakPtrBase {
|
||||
public:
|
||||
WeakPtr() : ptr_(NULL) {
|
||||
}
|
||||
WeakPtr() : ptr_(NULL) {}
|
||||
|
||||
// Allow conversion from U to T provided U "is a" T. Note that this
|
||||
// is separate from the (implicit) copy constructor.
|
||||
template <typename U>
|
||||
WeakPtr(const WeakPtr<U>& other) : WeakPtrBase(other), ptr_(other.ptr_) {
|
||||
}
|
||||
WeakPtr(const WeakPtr<U>& other) : WeakPtrBase(other), ptr_(other.ptr_) {}
|
||||
|
||||
T* get() const { return ref_.is_valid() ? ptr_ : NULL; }
|
||||
|
||||
T& operator*() const {
|
||||
DCHECK(get() != NULL);
|
||||
CHECK(ref_.is_valid());
|
||||
return *get();
|
||||
}
|
||||
T* operator->() const {
|
||||
DCHECK(get() != NULL);
|
||||
CHECK(ref_.is_valid());
|
||||
return get();
|
||||
}
|
||||
|
||||
@@ -280,18 +279,19 @@ class WeakPtr : public cef_internal::WeakPtrBase {
|
||||
private:
|
||||
// Explicitly declare comparison operators as required by the bool
|
||||
// trick, but keep them private.
|
||||
template <class U> bool operator==(WeakPtr<U> const&) const;
|
||||
template <class U> bool operator!=(WeakPtr<U> const&) const;
|
||||
template <class U>
|
||||
bool operator==(WeakPtr<U> const&) const;
|
||||
template <class U>
|
||||
bool operator!=(WeakPtr<U> const&) const;
|
||||
|
||||
friend class cef_internal::SupportsWeakPtrBase;
|
||||
template <typename U> friend class WeakPtr;
|
||||
template <typename U>
|
||||
friend class WeakPtr;
|
||||
friend class SupportsWeakPtr<T>;
|
||||
friend class WeakPtrFactory<T>;
|
||||
|
||||
WeakPtr(const cef_internal::WeakReference& ref, T* ptr)
|
||||
: WeakPtrBase(ref),
|
||||
ptr_(ptr) {
|
||||
}
|
||||
: WeakPtrBase(ref), ptr_(ptr) {}
|
||||
|
||||
// This pointer is only valid when ref_.is_valid() is true. Otherwise, its
|
||||
// value is undefined (as opposed to NULL).
|
||||
@@ -306,12 +306,9 @@ class WeakPtr : public cef_internal::WeakPtrBase {
|
||||
template <class T>
|
||||
class WeakPtrFactory {
|
||||
public:
|
||||
explicit WeakPtrFactory(T* ptr) : ptr_(ptr) {
|
||||
}
|
||||
explicit WeakPtrFactory(T* ptr) : ptr_(ptr) {}
|
||||
|
||||
~WeakPtrFactory() {
|
||||
ptr_ = NULL;
|
||||
}
|
||||
~WeakPtrFactory() { ptr_ = NULL; }
|
||||
|
||||
WeakPtr<T> GetWeakPtr() {
|
||||
DCHECK(ptr_);
|
||||
|
335
include/base/internal/cef_atomicops_arm64_gcc.h
Normal file
335
include/base/internal/cef_atomicops_arm64_gcc.h
Normal file
@@ -0,0 +1,335 @@
|
||||
// Copyright (c) 2012 Google Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// Do not include this header file directly. Use base/cef_atomicops.h
|
||||
// instead.
|
||||
|
||||
#ifndef CEF_INCLUDE_BASE_INTERNAL_CEF_ATOMICOPS_ARM64_GCC_H_
|
||||
#define CEF_INCLUDE_BASE_INTERNAL_CEF_ATOMICOPS_ARM64_GCC_H_
|
||||
|
||||
namespace base {
|
||||
namespace subtle {
|
||||
|
||||
inline void MemoryBarrier() {
|
||||
__asm__ __volatile__ ("dmb ish" ::: "memory"); // NOLINT
|
||||
}
|
||||
|
||||
// NoBarrier versions of the operation include "memory" in the clobber list.
|
||||
// This is not required for direct usage of the NoBarrier versions of the
|
||||
// operations. However this is required for correctness when they are used as
|
||||
// part of the Acquire or Release versions, to ensure that nothing from outside
|
||||
// the call is reordered between the operation and the memory barrier. This does
|
||||
// not change the code generated, so has no or minimal impact on the
|
||||
// NoBarrier operations.
|
||||
|
||||
inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
|
||||
Atomic32 old_value,
|
||||
Atomic32 new_value) {
|
||||
Atomic32 prev;
|
||||
int32_t temp;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"0: \n\t"
|
||||
"ldxr %w[prev], %[ptr] \n\t" // Load the previous value.
|
||||
"cmp %w[prev], %w[old_value] \n\t"
|
||||
"bne 1f \n\t"
|
||||
"stxr %w[temp], %w[new_value], %[ptr] \n\t" // Try to store the new value.
|
||||
"cbnz %w[temp], 0b \n\t" // Retry if it did not work.
|
||||
"1: \n\t"
|
||||
: [prev]"=&r" (prev),
|
||||
[temp]"=&r" (temp),
|
||||
[ptr]"+Q" (*ptr)
|
||||
: [old_value]"IJr" (old_value),
|
||||
[new_value]"r" (new_value)
|
||||
: "cc", "memory"
|
||||
); // NOLINT
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
|
||||
Atomic32 new_value) {
|
||||
Atomic32 result;
|
||||
int32_t temp;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"0: \n\t"
|
||||
"ldxr %w[result], %[ptr] \n\t" // Load the previous value.
|
||||
"stxr %w[temp], %w[new_value], %[ptr] \n\t" // Try to store the new value.
|
||||
"cbnz %w[temp], 0b \n\t" // Retry if it did not work.
|
||||
: [result]"=&r" (result),
|
||||
[temp]"=&r" (temp),
|
||||
[ptr]"+Q" (*ptr)
|
||||
: [new_value]"r" (new_value)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 increment) {
|
||||
Atomic32 result;
|
||||
int32_t temp;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"0: \n\t"
|
||||
"ldxr %w[result], %[ptr] \n\t" // Load the previous value.
|
||||
"add %w[result], %w[result], %w[increment]\n\t"
|
||||
"stxr %w[temp], %w[result], %[ptr] \n\t" // Try to store the result.
|
||||
"cbnz %w[temp], 0b \n\t" // Retry on failure.
|
||||
: [result]"=&r" (result),
|
||||
[temp]"=&r" (temp),
|
||||
[ptr]"+Q" (*ptr)
|
||||
: [increment]"IJr" (increment)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 increment) {
|
||||
Atomic32 result;
|
||||
|
||||
MemoryBarrier();
|
||||
result = NoBarrier_AtomicIncrement(ptr, increment);
|
||||
MemoryBarrier();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
|
||||
Atomic32 old_value,
|
||||
Atomic32 new_value) {
|
||||
Atomic32 prev;
|
||||
|
||||
prev = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
MemoryBarrier();
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
|
||||
Atomic32 old_value,
|
||||
Atomic32 new_value) {
|
||||
Atomic32 prev;
|
||||
|
||||
MemoryBarrier();
|
||||
prev = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||
*ptr = value;
|
||||
}
|
||||
|
||||
inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||
*ptr = value;
|
||||
MemoryBarrier();
|
||||
}
|
||||
|
||||
inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"stlr %w[value], %[ptr] \n\t"
|
||||
: [ptr]"=Q" (*ptr)
|
||||
: [value]"r" (value)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
|
||||
Atomic32 value;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"ldar %w[value], %[ptr] \n\t"
|
||||
: [value]"=r" (value)
|
||||
: [ptr]"Q" (*ptr)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
|
||||
MemoryBarrier();
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
// 64-bit versions of the operations.
|
||||
// See the 32-bit versions for comments.
|
||||
|
||||
inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
|
||||
Atomic64 old_value,
|
||||
Atomic64 new_value) {
|
||||
Atomic64 prev;
|
||||
int32_t temp;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"0: \n\t"
|
||||
"ldxr %[prev], %[ptr] \n\t"
|
||||
"cmp %[prev], %[old_value] \n\t"
|
||||
"bne 1f \n\t"
|
||||
"stxr %w[temp], %[new_value], %[ptr] \n\t"
|
||||
"cbnz %w[temp], 0b \n\t"
|
||||
"1: \n\t"
|
||||
: [prev]"=&r" (prev),
|
||||
[temp]"=&r" (temp),
|
||||
[ptr]"+Q" (*ptr)
|
||||
: [old_value]"IJr" (old_value),
|
||||
[new_value]"r" (new_value)
|
||||
: "cc", "memory"
|
||||
); // NOLINT
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
|
||||
Atomic64 new_value) {
|
||||
Atomic64 result;
|
||||
int32_t temp;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"0: \n\t"
|
||||
"ldxr %[result], %[ptr] \n\t"
|
||||
"stxr %w[temp], %[new_value], %[ptr] \n\t"
|
||||
"cbnz %w[temp], 0b \n\t"
|
||||
: [result]"=&r" (result),
|
||||
[temp]"=&r" (temp),
|
||||
[ptr]"+Q" (*ptr)
|
||||
: [new_value]"r" (new_value)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
Atomic64 increment) {
|
||||
Atomic64 result;
|
||||
int32_t temp;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"0: \n\t"
|
||||
"ldxr %[result], %[ptr] \n\t"
|
||||
"add %[result], %[result], %[increment] \n\t"
|
||||
"stxr %w[temp], %[result], %[ptr] \n\t"
|
||||
"cbnz %w[temp], 0b \n\t"
|
||||
: [result]"=&r" (result),
|
||||
[temp]"=&r" (temp),
|
||||
[ptr]"+Q" (*ptr)
|
||||
: [increment]"IJr" (increment)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
Atomic64 increment) {
|
||||
Atomic64 result;
|
||||
|
||||
MemoryBarrier();
|
||||
result = NoBarrier_AtomicIncrement(ptr, increment);
|
||||
MemoryBarrier();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
|
||||
Atomic64 old_value,
|
||||
Atomic64 new_value) {
|
||||
Atomic64 prev;
|
||||
|
||||
prev = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
MemoryBarrier();
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
|
||||
Atomic64 old_value,
|
||||
Atomic64 new_value) {
|
||||
Atomic64 prev;
|
||||
|
||||
MemoryBarrier();
|
||||
prev = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
||||
inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
|
||||
*ptr = value;
|
||||
}
|
||||
|
||||
inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
|
||||
*ptr = value;
|
||||
MemoryBarrier();
|
||||
}
|
||||
|
||||
inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"stlr %x[value], %[ptr] \n\t"
|
||||
: [ptr]"=Q" (*ptr)
|
||||
: [value]"r" (value)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
}
|
||||
|
||||
inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
|
||||
Atomic64 value;
|
||||
|
||||
__asm__ __volatile__ ( // NOLINT
|
||||
"ldar %x[value], %[ptr] \n\t"
|
||||
: [value]"=r" (value)
|
||||
: [ptr]"Q" (*ptr)
|
||||
: "memory"
|
||||
); // NOLINT
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
|
||||
MemoryBarrier();
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
} } // namespace base::subtle
|
||||
|
||||
#endif // CEF_INCLUDE_BASE_INTERNAL_CEF_ATOMICOPS_ARM64_GCC_H_
|
||||
|
197
include/base/internal/cef_atomicops_arm64_msvc.h
Normal file
197
include/base/internal/cef_atomicops_arm64_msvc.h
Normal file
@@ -0,0 +1,197 @@
|
||||
// Copyright (c) 2008 Google Inc. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// Do not include this header file directly. Use base/cef_atomicops.h
|
||||
// instead.
|
||||
|
||||
#ifndef CEF_INCLUDE_BASE_INTERNAL_CEF_ATOMICOPS_ARM64_MSVC_H_
|
||||
#define CEF_INCLUDE_BASE_INTERNAL_CEF_ATOMICOPS_ARM64_MSVC_H_
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <intrin.h>
|
||||
|
||||
#include "include/base/cef_macros.h"
|
||||
|
||||
namespace base {
|
||||
namespace subtle {
|
||||
|
||||
inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
|
||||
Atomic32 old_value,
|
||||
Atomic32 new_value) {
|
||||
LONG result = _InterlockedCompareExchange(
|
||||
reinterpret_cast<volatile LONG*>(ptr), static_cast<LONG>(new_value),
|
||||
static_cast<LONG>(old_value));
|
||||
return static_cast<Atomic32>(result);
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
|
||||
Atomic32 new_value) {
|
||||
LONG result = _InterlockedExchange(reinterpret_cast<volatile LONG*>(ptr),
|
||||
static_cast<LONG>(new_value));
|
||||
return static_cast<Atomic32>(result);
|
||||
}
|
||||
|
||||
inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 increment) {
|
||||
return _InterlockedExchangeAdd(reinterpret_cast<volatile LONG*>(ptr),
|
||||
static_cast<LONG>(increment)) +
|
||||
increment;
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 increment) {
|
||||
return Barrier_AtomicIncrement(ptr, increment);
|
||||
}
|
||||
|
||||
#if !(defined(_MSC_VER) && _MSC_VER >= 1400)
|
||||
#error "We require at least vs2005 for MemoryBarrier"
|
||||
#endif
|
||||
|
||||
inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
|
||||
Atomic32 old_value,
|
||||
Atomic32 new_value) {
|
||||
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
}
|
||||
|
||||
inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
|
||||
Atomic32 old_value,
|
||||
Atomic32 new_value) {
|
||||
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
}
|
||||
|
||||
inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||
*ptr = value;
|
||||
}
|
||||
|
||||
inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||
NoBarrier_AtomicExchange(ptr, value);
|
||||
// acts as a barrier in this implementation
|
||||
}
|
||||
|
||||
inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||
*ptr = value;
|
||||
// See comments in Atomic64 version of Release_Store() below.
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
|
||||
Atomic32 value = *ptr;
|
||||
return value;
|
||||
}
|
||||
|
||||
inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
|
||||
MemoryBarrier();
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
#if defined(_WIN64)
|
||||
|
||||
// 64-bit low-level operations on 64-bit platform.
|
||||
|
||||
COMPILE_ASSERT(sizeof(Atomic64) == sizeof(PVOID), atomic_word_is_atomic);
|
||||
|
||||
inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
|
||||
Atomic64 old_value,
|
||||
Atomic64 new_value) {
|
||||
PVOID result = InterlockedCompareExchangePointer(
|
||||
reinterpret_cast<volatile PVOID*>(ptr),
|
||||
reinterpret_cast<PVOID>(new_value), reinterpret_cast<PVOID>(old_value));
|
||||
return reinterpret_cast<Atomic64>(result);
|
||||
}
|
||||
|
||||
inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
|
||||
Atomic64 new_value) {
|
||||
PVOID result =
|
||||
InterlockedExchangePointer(reinterpret_cast<volatile PVOID*>(ptr),
|
||||
reinterpret_cast<PVOID>(new_value));
|
||||
return reinterpret_cast<Atomic64>(result);
|
||||
}
|
||||
|
||||
inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
Atomic64 increment) {
|
||||
return InterlockedExchangeAdd64(reinterpret_cast<volatile LONGLONG*>(ptr),
|
||||
static_cast<LONGLONG>(increment)) +
|
||||
increment;
|
||||
}
|
||||
|
||||
inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
Atomic64 increment) {
|
||||
return Barrier_AtomicIncrement(ptr, increment);
|
||||
}
|
||||
|
||||
inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
|
||||
*ptr = value;
|
||||
}
|
||||
|
||||
inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
|
||||
NoBarrier_AtomicExchange(ptr, value);
|
||||
// acts as a barrier in this implementation
|
||||
}
|
||||
|
||||
inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
|
||||
*ptr = value;
|
||||
}
|
||||
|
||||
inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
|
||||
Atomic64 value = *ptr;
|
||||
return value;
|
||||
}
|
||||
|
||||
inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
|
||||
MemoryBarrier();
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
|
||||
Atomic64 old_value,
|
||||
Atomic64 new_value) {
|
||||
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
}
|
||||
|
||||
inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
|
||||
Atomic64 old_value,
|
||||
Atomic64 new_value) {
|
||||
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
}
|
||||
|
||||
#endif // defined(_WIN64)
|
||||
|
||||
} // namespace base::subtle
|
||||
} // namespace base
|
||||
|
||||
#endif // CEF_INCLUDE_BASE_INTERNAL_CEF_ATOMICOPS_ARM64_MSVC_H_
|
||||
|
@@ -103,7 +103,8 @@ inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
|
||||
// reloop = 0
|
||||
// if (prev_value != old_value)
|
||||
// reloop = STREX(ptr, new_value)
|
||||
__asm__ __volatile__(" ldrex %0, [%3]\n"
|
||||
__asm__ __volatile__(
|
||||
" ldrex %0, [%3]\n"
|
||||
" mov %1, #0\n"
|
||||
" cmp %0, %4\n"
|
||||
#ifdef __thumb2__
|
||||
@@ -143,7 +144,8 @@ inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
// value += increment
|
||||
// reloop = STREX(ptr, value)
|
||||
//
|
||||
__asm__ __volatile__(" ldrex %0, [%3]\n"
|
||||
__asm__ __volatile__(
|
||||
" ldrex %0, [%3]\n"
|
||||
" add %0, %0, %4\n"
|
||||
" strex %1, %0, [%3]\n"
|
||||
: "=&r"(value), "=&r"(reloop), "+m"(*ptr)
|
||||
@@ -171,7 +173,8 @@ inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
|
||||
do {
|
||||
// old_value = LDREX(ptr)
|
||||
// reloop = STREX(ptr, new_value)
|
||||
__asm__ __volatile__(" ldrex %0, [%3]\n"
|
||||
__asm__ __volatile__(
|
||||
" ldrex %0, [%3]\n"
|
||||
" strex %1, %4, [%3]\n"
|
||||
: "=&r"(old_value), "=&r"(reloop), "+m"(*ptr)
|
||||
: "r"(ptr), "r"(new_value)
|
||||
@@ -301,7 +304,9 @@ inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
|
||||
*ptr = value;
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { return *ptr; }
|
||||
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
|
||||
return *ptr;
|
||||
}
|
||||
|
||||
inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
|
||||
Atomic32 value = *ptr;
|
||||
|
@@ -52,26 +52,26 @@ namespace subtle {
|
||||
inline AtomicWord NoBarrier_CompareAndSwap(volatile AtomicWord* ptr,
|
||||
AtomicWord old_value,
|
||||
AtomicWord new_value) {
|
||||
return NoBarrier_CompareAndSwap(
|
||||
reinterpret_cast<volatile Atomic32*>(ptr), old_value, new_value);
|
||||
return NoBarrier_CompareAndSwap(reinterpret_cast<volatile Atomic32*>(ptr),
|
||||
old_value, new_value);
|
||||
}
|
||||
|
||||
inline AtomicWord NoBarrier_AtomicExchange(volatile AtomicWord* ptr,
|
||||
AtomicWord new_value) {
|
||||
return NoBarrier_AtomicExchange(
|
||||
reinterpret_cast<volatile Atomic32*>(ptr), new_value);
|
||||
return NoBarrier_AtomicExchange(reinterpret_cast<volatile Atomic32*>(ptr),
|
||||
new_value);
|
||||
}
|
||||
|
||||
inline AtomicWord NoBarrier_AtomicIncrement(volatile AtomicWord* ptr,
|
||||
AtomicWord increment) {
|
||||
return NoBarrier_AtomicIncrement(
|
||||
reinterpret_cast<volatile Atomic32*>(ptr), increment);
|
||||
return NoBarrier_AtomicIncrement(reinterpret_cast<volatile Atomic32*>(ptr),
|
||||
increment);
|
||||
}
|
||||
|
||||
inline AtomicWord Barrier_AtomicIncrement(volatile AtomicWord* ptr,
|
||||
AtomicWord increment) {
|
||||
return Barrier_AtomicIncrement(
|
||||
reinterpret_cast<volatile Atomic32*>(ptr), increment);
|
||||
return Barrier_AtomicIncrement(reinterpret_cast<volatile Atomic32*>(ptr),
|
||||
increment);
|
||||
}
|
||||
|
||||
inline AtomicWord Acquire_CompareAndSwap(volatile AtomicWord* ptr,
|
||||
@@ -89,23 +89,21 @@ inline AtomicWord Release_CompareAndSwap(volatile AtomicWord* ptr,
|
||||
}
|
||||
|
||||
inline void NoBarrier_Store(volatile AtomicWord* ptr, AtomicWord value) {
|
||||
NoBarrier_Store(
|
||||
reinterpret_cast<volatile Atomic32*>(ptr), value);
|
||||
NoBarrier_Store(reinterpret_cast<volatile Atomic32*>(ptr), value);
|
||||
}
|
||||
|
||||
inline void Acquire_Store(volatile AtomicWord* ptr, AtomicWord value) {
|
||||
return base::subtle::Acquire_Store(
|
||||
reinterpret_cast<volatile Atomic32*>(ptr), value);
|
||||
return base::subtle::Acquire_Store(reinterpret_cast<volatile Atomic32*>(ptr),
|
||||
value);
|
||||
}
|
||||
|
||||
inline void Release_Store(volatile AtomicWord* ptr, AtomicWord value) {
|
||||
return base::subtle::Release_Store(
|
||||
reinterpret_cast<volatile Atomic32*>(ptr), value);
|
||||
return base::subtle::Release_Store(reinterpret_cast<volatile Atomic32*>(ptr),
|
||||
value);
|
||||
}
|
||||
|
||||
inline AtomicWord NoBarrier_Load(volatile const AtomicWord* ptr) {
|
||||
return NoBarrier_Load(
|
||||
reinterpret_cast<volatile const Atomic32*>(ptr));
|
||||
return NoBarrier_Load(reinterpret_cast<volatile const Atomic32*>(ptr));
|
||||
}
|
||||
|
||||
inline AtomicWord Acquire_Load(volatile const AtomicWord* ptr) {
|
||||
|
@@ -41,8 +41,7 @@ struct AtomicOps_x86CPUFeatureStruct {
|
||||
bool has_amd_lock_mb_bug; // Processor has AMD memory-barrier bug; do lfence
|
||||
// after acquire compare-and-swap.
|
||||
};
|
||||
extern struct AtomicOps_x86CPUFeatureStruct
|
||||
AtomicOps_Internalx86CPUFeatures;
|
||||
extern struct AtomicOps_x86CPUFeatureStruct AtomicOps_Internalx86CPUFeatures;
|
||||
|
||||
#define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory")
|
||||
|
||||
@@ -76,7 +75,8 @@ inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 temp = increment;
|
||||
__asm__ __volatile__("lock; xaddl %0,%1"
|
||||
: "+r"(temp), "+m"(*ptr)
|
||||
: : "memory");
|
||||
:
|
||||
: "memory");
|
||||
// temp now holds the old value of *ptr
|
||||
return temp + increment;
|
||||
}
|
||||
@@ -86,7 +86,8 @@ inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 temp = increment;
|
||||
__asm__ __volatile__("lock; xaddl %0,%1"
|
||||
: "+r"(temp), "+m"(*ptr)
|
||||
: : "memory");
|
||||
:
|
||||
: "memory");
|
||||
// temp now holds the old value of *ptr
|
||||
if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) {
|
||||
__asm__ __volatile__("lfence" : : : "memory");
|
||||
@@ -174,7 +175,8 @@ inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
Atomic64 temp = increment;
|
||||
__asm__ __volatile__("lock; xaddq %0,%1"
|
||||
: "+r"(temp), "+m"(*ptr)
|
||||
: : "memory");
|
||||
:
|
||||
: "memory");
|
||||
// temp now contains the previous value of *ptr
|
||||
return temp + increment;
|
||||
}
|
||||
@@ -184,7 +186,8 @@ inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
Atomic64 temp = increment;
|
||||
__asm__ __volatile__("lock; xaddq %0,%1"
|
||||
: "+r"(temp), "+m"(*ptr)
|
||||
: : "memory");
|
||||
:
|
||||
: "memory");
|
||||
// temp now contains the previous value of *ptr
|
||||
if (AtomicOps_Internalx86CPUFeatures.has_amd_lock_mb_bug) {
|
||||
__asm__ __volatile__("lfence" : : : "memory");
|
||||
|
@@ -55,25 +55,23 @@ inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
|
||||
Atomic32 old_value,
|
||||
Atomic32 new_value) {
|
||||
LONG result = _InterlockedCompareExchange(
|
||||
reinterpret_cast<volatile LONG*>(ptr),
|
||||
static_cast<LONG>(new_value),
|
||||
reinterpret_cast<volatile LONG*>(ptr), static_cast<LONG>(new_value),
|
||||
static_cast<LONG>(old_value));
|
||||
return static_cast<Atomic32>(result);
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
|
||||
Atomic32 new_value) {
|
||||
LONG result = _InterlockedExchange(
|
||||
reinterpret_cast<volatile LONG*>(ptr),
|
||||
LONG result = _InterlockedExchange(reinterpret_cast<volatile LONG*>(ptr),
|
||||
static_cast<LONG>(new_value));
|
||||
return static_cast<Atomic32>(result);
|
||||
}
|
||||
|
||||
inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
Atomic32 increment) {
|
||||
return _InterlockedExchangeAdd(
|
||||
reinterpret_cast<volatile LONG*>(ptr),
|
||||
static_cast<LONG>(increment)) + increment;
|
||||
return _InterlockedExchangeAdd(reinterpret_cast<volatile LONG*>(ptr),
|
||||
static_cast<LONG>(increment)) +
|
||||
increment;
|
||||
}
|
||||
|
||||
inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
|
||||
@@ -151,17 +149,17 @@ inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
|
||||
|
||||
inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
|
||||
Atomic64 new_value) {
|
||||
PVOID result = InterlockedExchangePointer(
|
||||
reinterpret_cast<volatile PVOID*>(ptr),
|
||||
PVOID result =
|
||||
InterlockedExchangePointer(reinterpret_cast<volatile PVOID*>(ptr),
|
||||
reinterpret_cast<PVOID>(new_value));
|
||||
return reinterpret_cast<Atomic64>(result);
|
||||
}
|
||||
|
||||
inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
Atomic64 increment) {
|
||||
return InterlockedExchangeAdd64(
|
||||
reinterpret_cast<volatile LONGLONG*>(ptr),
|
||||
static_cast<LONGLONG>(increment)) + increment;
|
||||
return InterlockedExchangeAdd64(reinterpret_cast<volatile LONGLONG*>(ptr),
|
||||
static_cast<LONGLONG>(increment)) +
|
||||
increment;
|
||||
}
|
||||
|
||||
inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
|
||||
@@ -215,7 +213,6 @@ inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
|
||||
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
||||
}
|
||||
|
||||
|
||||
#endif // defined(_WIN64)
|
||||
|
||||
} // namespace base::subtle
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -38,7 +38,8 @@
|
||||
// In the x64 architecture in Windows, __fastcall, __stdcall, etc, are all
|
||||
// the same as __cdecl which would turn the following specializations into
|
||||
// multiple definitions.
|
||||
#if !defined(ARCH_CPU_X86_64)
|
||||
#if defined(ARCH_CPU_X86_FAMILY)
|
||||
#if defined(ARCH_CPU_32_BITS)
|
||||
|
||||
namespace base {
|
||||
namespace cef_internal {
|
||||
@@ -52,13 +53,9 @@ class RunnableAdapter<R(__stdcall *)()> {
|
||||
public:
|
||||
typedef R(RunType)();
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall *function)())
|
||||
: function_(function) {
|
||||
}
|
||||
explicit RunnableAdapter(R(__stdcall* function)()) : function_(function) {}
|
||||
|
||||
R Run() {
|
||||
return function_();
|
||||
}
|
||||
R Run() { return function_(); }
|
||||
|
||||
private:
|
||||
R(__stdcall* function_)();
|
||||
@@ -70,13 +67,9 @@ class RunnableAdapter<R(__fastcall *)()> {
|
||||
public:
|
||||
typedef R(RunType)();
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall *function)())
|
||||
: function_(function) {
|
||||
}
|
||||
explicit RunnableAdapter(R(__fastcall* function)()) : function_(function) {}
|
||||
|
||||
R Run() {
|
||||
return function_();
|
||||
}
|
||||
R Run() { return function_(); }
|
||||
|
||||
private:
|
||||
R(__fastcall* function_)();
|
||||
@@ -88,9 +81,7 @@ class RunnableAdapter<R(__stdcall *)(A1)> {
|
||||
public:
|
||||
typedef R(RunType)(A1);
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall *function)(A1))
|
||||
: function_(function) {
|
||||
}
|
||||
explicit RunnableAdapter(R(__stdcall* function)(A1)) : function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1) {
|
||||
return function_(a1);
|
||||
@@ -106,9 +97,7 @@ class RunnableAdapter<R(__fastcall *)(A1)> {
|
||||
public:
|
||||
typedef R(RunType)(A1);
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall *function)(A1))
|
||||
: function_(function) {
|
||||
}
|
||||
explicit RunnableAdapter(R(__fastcall* function)(A1)) : function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1) {
|
||||
return function_(a1);
|
||||
@@ -125,8 +114,7 @@ class RunnableAdapter<R(__stdcall *)(A1, A2)> {
|
||||
typedef R(RunType)(A1, A2);
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall* function)(A1, A2))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2) {
|
||||
@@ -144,8 +132,7 @@ class RunnableAdapter<R(__fastcall *)(A1, A2)> {
|
||||
typedef R(RunType)(A1, A2);
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall* function)(A1, A2))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2) {
|
||||
@@ -163,8 +150,7 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3)> {
|
||||
typedef R(RunType)(A1, A2, A3);
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -183,8 +169,7 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3)> {
|
||||
typedef R(RunType)(A1, A2, A3);
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -203,8 +188,7 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4)> {
|
||||
typedef R(RunType)(A1, A2, A3, A4);
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -224,8 +208,7 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4)> {
|
||||
typedef R(RunType)(A1, A2, A3, A4);
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -239,15 +222,18 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4)> {
|
||||
};
|
||||
|
||||
// __stdcall Function: Arity 5.
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5>
|
||||
class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5)> {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5);
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -262,15 +248,18 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4, A5)> {
|
||||
};
|
||||
|
||||
// __fastcall Function: Arity 5.
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5>
|
||||
class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5)> {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5);
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -285,15 +274,19 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4, A5)> {
|
||||
};
|
||||
|
||||
// __stdcall Function: Arity 6.
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
typename A5, typename A6>
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6>
|
||||
class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5, A6)> {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5, A6);
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5, A6))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -309,15 +302,19 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4, A5, A6)> {
|
||||
};
|
||||
|
||||
// __fastcall Function: Arity 6.
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
typename A5, typename A6>
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6>
|
||||
class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5, A6)> {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5, A6);
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5, A6))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -333,15 +330,20 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4, A5, A6)> {
|
||||
};
|
||||
|
||||
// __stdcall Function: Arity 7.
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
typename A5, typename A6, typename A7>
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6,
|
||||
typename A7>
|
||||
class RunnableAdapter<R(__stdcall*)(A1, A2, A3, A4, A5, A6, A7)> {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7);
|
||||
|
||||
explicit RunnableAdapter(R(__stdcall* function)(A1, A2, A3, A4, A5, A6, A7))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -358,15 +360,20 @@ class RunnableAdapter<R(__stdcall *)(A1, A2, A3, A4, A5, A6, A7)> {
|
||||
};
|
||||
|
||||
// __fastcall Function: Arity 7.
|
||||
template <typename R, typename A1, typename A2, typename A3, typename A4,
|
||||
typename A5, typename A6, typename A7>
|
||||
template <typename R,
|
||||
typename A1,
|
||||
typename A2,
|
||||
typename A3,
|
||||
typename A4,
|
||||
typename A5,
|
||||
typename A6,
|
||||
typename A7>
|
||||
class RunnableAdapter<R(__fastcall*)(A1, A2, A3, A4, A5, A6, A7)> {
|
||||
public:
|
||||
typedef R(RunType)(A1, A2, A3, A4, A5, A6, A7);
|
||||
|
||||
explicit RunnableAdapter(R(__fastcall* function)(A1, A2, A3, A4, A5, A6, A7))
|
||||
: function_(function) {
|
||||
}
|
||||
: function_(function) {}
|
||||
|
||||
R Run(typename CallbackParamTraits<A1>::ForwardType a1,
|
||||
typename CallbackParamTraits<A2>::ForwardType a2,
|
||||
@@ -385,6 +392,7 @@ class RunnableAdapter<R(__fastcall *)(A1, A2, A3, A4, A5, A6, A7)> {
|
||||
} // namespace cef_internal
|
||||
} // namespace base
|
||||
|
||||
#endif // !defined(ARCH_CPU_X86_64)
|
||||
#endif // defined(ARCH_CPU_32_BITS)
|
||||
#endif // defined(ARCH_CPU_X86_FAMILY)
|
||||
|
||||
#endif // CEF_INCLUDE_BASE_INTERNAL_CEF_BIND_INTERNAL_WIN_H_
|
||||
|
@@ -115,15 +115,16 @@ class CallbackBase {
|
||||
// A helper template to determine if given type is non-const move-only-type,
|
||||
// i.e. if a value of the given type should be passed via .Pass() in a
|
||||
// destructive way.
|
||||
template <typename T> struct IsMoveOnlyType {
|
||||
template <typename T>
|
||||
struct IsMoveOnlyType {
|
||||
template <typename U>
|
||||
static YesType Test(const typename U::MoveOnlyTypeForCPP03*);
|
||||
|
||||
template <typename U>
|
||||
static NoType Test(...);
|
||||
|
||||
static const bool value = sizeof(Test<T>(0)) == sizeof(YesType) &&
|
||||
!is_const<T>::value;
|
||||
static const bool value =
|
||||
sizeof(Test<T>(0)) == sizeof(YesType) && !is_const<T>::value;
|
||||
};
|
||||
|
||||
// This is a typetraits object that's used to take an argument type, and
|
||||
|
8
include/base/internal/cef_net_error_list.h
Normal file
8
include/base/internal/cef_net_error_list.h
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright (c) 2019 The Chromium Embedded Framework Authors. All rights
|
||||
// reserved. Use of this source code is governed by a BSD-style license that
|
||||
// can be found in the LICENSE file.
|
||||
//
|
||||
// Include net error codes from the Chromium source location. When creating a
|
||||
// CEF binary distribution this file will be replaced with the Chromium version.
|
||||
|
||||
#include "net/base/net_error_list.h"
|
@@ -51,9 +51,7 @@ namespace cef_internal {
|
||||
template <typename T>
|
||||
struct NeedsScopedRefptrButGetsRawPtr {
|
||||
#if defined(OS_WIN)
|
||||
enum {
|
||||
value = base::false_type::value
|
||||
};
|
||||
enum { value = base::false_type::value };
|
||||
#else
|
||||
enum {
|
||||
// Human readable translation: you needed to be a scoped_refptr if you are a
|
||||
@@ -83,68 +81,97 @@ struct ParamsUseScopedRefptrCorrectly<Tuple1<A> > {
|
||||
|
||||
template <typename A, typename B>
|
||||
struct ParamsUseScopedRefptrCorrectly<Tuple2<A, B>> {
|
||||
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value) };
|
||||
enum {
|
||||
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value)
|
||||
};
|
||||
};
|
||||
|
||||
template <typename A, typename B, typename C>
|
||||
struct ParamsUseScopedRefptrCorrectly<Tuple3<A, B, C>> {
|
||||
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
enum {
|
||||
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<C>::value) };
|
||||
NeedsScopedRefptrButGetsRawPtr<C>::value)
|
||||
};
|
||||
};
|
||||
|
||||
template <typename A, typename B, typename C, typename D>
|
||||
struct ParamsUseScopedRefptrCorrectly<Tuple4<A, B, C, D>> {
|
||||
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
enum {
|
||||
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<C>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<D>::value) };
|
||||
NeedsScopedRefptrButGetsRawPtr<D>::value)
|
||||
};
|
||||
};
|
||||
|
||||
template <typename A, typename B, typename C, typename D, typename E>
|
||||
struct ParamsUseScopedRefptrCorrectly<Tuple5<A, B, C, D, E>> {
|
||||
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
enum {
|
||||
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<C>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<D>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<E>::value) };
|
||||
NeedsScopedRefptrButGetsRawPtr<E>::value)
|
||||
};
|
||||
};
|
||||
|
||||
template <typename A, typename B, typename C, typename D, typename E,
|
||||
template <typename A,
|
||||
typename B,
|
||||
typename C,
|
||||
typename D,
|
||||
typename E,
|
||||
typename F>
|
||||
struct ParamsUseScopedRefptrCorrectly<Tuple6<A, B, C, D, E, F>> {
|
||||
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
enum {
|
||||
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<C>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<D>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<E>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<F>::value) };
|
||||
NeedsScopedRefptrButGetsRawPtr<F>::value)
|
||||
};
|
||||
};
|
||||
|
||||
template <typename A, typename B, typename C, typename D, typename E,
|
||||
typename F, typename G>
|
||||
template <typename A,
|
||||
typename B,
|
||||
typename C,
|
||||
typename D,
|
||||
typename E,
|
||||
typename F,
|
||||
typename G>
|
||||
struct ParamsUseScopedRefptrCorrectly<Tuple7<A, B, C, D, E, F, G>> {
|
||||
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
enum {
|
||||
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<C>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<D>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<E>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<F>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<G>::value) };
|
||||
NeedsScopedRefptrButGetsRawPtr<G>::value)
|
||||
};
|
||||
};
|
||||
|
||||
template <typename A, typename B, typename C, typename D, typename E,
|
||||
typename F, typename G, typename H>
|
||||
template <typename A,
|
||||
typename B,
|
||||
typename C,
|
||||
typename D,
|
||||
typename E,
|
||||
typename F,
|
||||
typename G,
|
||||
typename H>
|
||||
struct ParamsUseScopedRefptrCorrectly<Tuple8<A, B, C, D, E, F, G, H>> {
|
||||
enum { value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
enum {
|
||||
value = !(NeedsScopedRefptrButGetsRawPtr<A>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<B>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<C>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<D>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<E>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<F>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<G>::value ||
|
||||
NeedsScopedRefptrButGetsRawPtr<H>::value) };
|
||||
NeedsScopedRefptrButGetsRawPtr<H>::value)
|
||||
};
|
||||
};
|
||||
|
||||
} // namespace cef_internal
|
||||
|
81
include/capi/cef_accessibility_handler_capi.h
Normal file
81
include/capi/cef_accessibility_handler_capi.h
Normal file
@@ -0,0 +1,81 @@
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool and should not edited
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=00d5124d346e3f3cc3f53d67bcb766d1d798bf12$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_values_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
///
|
||||
// Implement this structure to receive accessibility notification when
|
||||
// accessibility events have been registered. The functions of this structure
|
||||
// will be called on the UI thread.
|
||||
///
|
||||
typedef struct _cef_accessibility_handler_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called after renderer process sends accessibility tree changes to the
|
||||
// browser process.
|
||||
///
|
||||
void(CEF_CALLBACK* on_accessibility_tree_change)(
|
||||
struct _cef_accessibility_handler_t* self,
|
||||
struct _cef_value_t* value);
|
||||
|
||||
///
|
||||
// Called after renderer process sends accessibility location changes to the
|
||||
// browser process.
|
||||
///
|
||||
void(CEF_CALLBACK* on_accessibility_location_change)(
|
||||
struct _cef_accessibility_handler_t* self,
|
||||
struct _cef_value_t* value);
|
||||
} cef_accessibility_handler_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_ACCESSIBILITY_HANDLER_CAPI_H_
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=04cfae434fe901644c1c78f1c30c0921518cc666$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_APP_CAPI_H_
|
||||
@@ -73,7 +75,8 @@ typedef struct _cef_app_t {
|
||||
// in undefined behavior including crashes.
|
||||
///
|
||||
void(CEF_CALLBACK* on_before_command_line_processing)(
|
||||
struct _cef_app_t* self, const cef_string_t* process_type,
|
||||
struct _cef_app_t* self,
|
||||
const cef_string_t* process_type,
|
||||
struct _cef_command_line_t* command_line);
|
||||
|
||||
///
|
||||
@@ -82,7 +85,8 @@ typedef struct _cef_app_t {
|
||||
// each process and the registered schemes should be the same across all
|
||||
// processes.
|
||||
///
|
||||
void (CEF_CALLBACK *on_register_custom_schemes)(struct _cef_app_t* self,
|
||||
void(CEF_CALLBACK* on_register_custom_schemes)(
|
||||
struct _cef_app_t* self,
|
||||
struct _cef_scheme_registrar_t* registrar);
|
||||
|
||||
///
|
||||
@@ -109,7 +113,6 @@ typedef struct _cef_app_t {
|
||||
CEF_CALLBACK* get_render_process_handler)(struct _cef_app_t* self);
|
||||
} cef_app_t;
|
||||
|
||||
|
||||
///
|
||||
// This function should be called from the application entry point function to
|
||||
// execute a secondary process. It can be used to run secondary processes from
|
||||
@@ -123,7 +126,8 @@ typedef struct _cef_app_t {
|
||||
// cef_sandbox_win.h for details).
|
||||
///
|
||||
CEF_EXPORT int cef_execute_process(const struct _cef_main_args_t* args,
|
||||
cef_app_t* application, void* windows_sandbox_info);
|
||||
cef_app_t* application,
|
||||
void* windows_sandbox_info);
|
||||
|
||||
///
|
||||
// This function should be called on the main application thread to initialize
|
||||
@@ -133,7 +137,8 @@ CEF_EXPORT int cef_execute_process(const struct _cef_main_args_t* args,
|
||||
// be NULL (see cef_sandbox_win.h for details).
|
||||
///
|
||||
CEF_EXPORT int cef_initialize(const struct _cef_main_args_t* args,
|
||||
const struct _cef_settings_t* settings, cef_app_t* application,
|
||||
const struct _cef_settings_t* settings,
|
||||
cef_app_t* application,
|
||||
void* windows_sandbox_info);
|
||||
|
||||
///
|
||||
|
121
include/capi/cef_audio_handler_capi.h
Normal file
121
include/capi/cef_audio_handler_capi.h
Normal file
@@ -0,0 +1,121 @@
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool and should not edited
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=430877d950508a545d0baa18c8c8c0d2d183fec4$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_AUDIO_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_AUDIO_HANDLER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_browser_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
///
|
||||
// Implement this structure to handle audio events.
|
||||
///
|
||||
typedef struct _cef_audio_handler_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called on the UI thread to allow configuration of audio stream parameters.
|
||||
// Return true (1) to proceed with audio stream capture, or false (0) to
|
||||
// cancel it. All members of |params| can optionally be configured here, but
|
||||
// they are also pre-filled with some sensible defaults.
|
||||
///
|
||||
int(CEF_CALLBACK* get_audio_parameters)(struct _cef_audio_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
cef_audio_parameters_t* params);
|
||||
|
||||
///
|
||||
// Called on a browser audio capture thread when the browser starts streaming
|
||||
// audio. OnAudioSteamStopped will always be called after
|
||||
// OnAudioStreamStarted; both functions may be called multiple times for the
|
||||
// same browser. |params| contains the audio parameters like sample rate and
|
||||
// channel layout. |channels| is the number of channels.
|
||||
///
|
||||
void(CEF_CALLBACK* on_audio_stream_started)(
|
||||
struct _cef_audio_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_audio_parameters_t* params,
|
||||
int channels);
|
||||
|
||||
///
|
||||
// Called on the audio stream thread when a PCM packet is received for the
|
||||
// stream. |data| is an array representing the raw PCM data as a floating
|
||||
// point type, i.e. 4-byte value(s). |frames| is the number of frames in the
|
||||
// PCM packet. |pts| is the presentation timestamp (in milliseconds since the
|
||||
// Unix Epoch) and represents the time at which the decompressed packet should
|
||||
// be presented to the user. Based on |frames| and the |channel_layout| value
|
||||
// passed to OnAudioStreamStarted you can calculate the size of the |data|
|
||||
// array in bytes.
|
||||
///
|
||||
void(CEF_CALLBACK* on_audio_stream_packet)(struct _cef_audio_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const float** data,
|
||||
int frames,
|
||||
int64 pts);
|
||||
|
||||
///
|
||||
// Called on the UI thread when the stream has stopped. OnAudioSteamStopped
|
||||
// will always be called after OnAudioStreamStarted; both functions may be
|
||||
// called multiple times for the same stream.
|
||||
///
|
||||
void(CEF_CALLBACK* on_audio_stream_stopped)(struct _cef_audio_handler_t* self,
|
||||
struct _cef_browser_t* browser);
|
||||
|
||||
///
|
||||
// Called on the UI or audio stream thread when an error occurred. During the
|
||||
// stream creation phase this callback will be called on the UI thread while
|
||||
// in the capturing phase it will be called on the audio stream thread. The
|
||||
// stream will be stopped immediately.
|
||||
///
|
||||
void(CEF_CALLBACK* on_audio_stream_error)(struct _cef_audio_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* message);
|
||||
} cef_audio_handler_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_AUDIO_HANDLER_CAPI_H_
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=58be0e24b46373bbdad28031891396ea246f446c$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_AUTH_CALLBACK_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Callback structure used for asynchronous continuation of authentication
|
||||
// requests.
|
||||
@@ -59,7 +60,8 @@ typedef struct _cef_auth_callback_t {
|
||||
// Continue the authentication request.
|
||||
///
|
||||
void(CEF_CALLBACK* cont)(struct _cef_auth_callback_t* self,
|
||||
const cef_string_t* username, const cef_string_t* password);
|
||||
const cef_string_t* username,
|
||||
const cef_string_t* password);
|
||||
|
||||
///
|
||||
// Cancel the authentication request.
|
||||
@@ -67,7 +69,6 @@ typedef struct _cef_auth_callback_t {
|
||||
void(CEF_CALLBACK* cancel)(struct _cef_auth_callback_t* self);
|
||||
} cef_auth_callback_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -27,7 +27,6 @@
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_BASE_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_BASE_CAPI_H_
|
||||
|
||||
@@ -70,8 +69,12 @@ typedef struct _cef_base_ref_counted_t {
|
||||
// Returns true (1) if the current reference count is 1.
|
||||
///
|
||||
int(CEF_CALLBACK* has_one_ref)(struct _cef_base_ref_counted_t* self);
|
||||
} cef_base_ref_counted_t;
|
||||
|
||||
///
|
||||
// Returns true (1) if the current reference count is at least 1.
|
||||
///
|
||||
int(CEF_CALLBACK* has_at_least_one_ref)(struct _cef_base_ref_counted_t* self);
|
||||
} cef_base_ref_counted_t;
|
||||
|
||||
///
|
||||
// All scoped framework structures must include this structure first.
|
||||
@@ -89,16 +92,14 @@ typedef struct _cef_base_scoped_t {
|
||||
|
||||
} cef_base_scoped_t;
|
||||
|
||||
|
||||
// Check that the structure |s|, which is defined with a size_t member at the
|
||||
// top, is large enough to contain the specified member |f|.
|
||||
#define CEF_MEMBER_EXISTS(s, f) \
|
||||
((intptr_t)&((s)->f) - (intptr_t)(s) + sizeof((s)->f) <= \
|
||||
*reinterpret_cast<size_t*>(s))
|
||||
((intptr_t) & \
|
||||
((s)->f) - (intptr_t)(s) + sizeof((s)->f) <= *reinterpret_cast<size_t*>(s))
|
||||
|
||||
#define CEF_MEMBER_MISSING(s, f) (!CEF_MEMBER_EXISTS(s, f) || !((s)->f))
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,17 +33,20 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=965eb2e55afec0a4618a7acd9478b9c1215be29d$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_BROWSER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_devtools_message_observer_capi.h"
|
||||
#include "include/capi/cef_drag_data_capi.h"
|
||||
#include "include/capi/cef_frame_capi.h"
|
||||
#include "include/capi/cef_image_capi.h"
|
||||
#include "include/capi/cef_navigation_entry_capi.h"
|
||||
#include "include/capi/cef_process_message_capi.h"
|
||||
#include "include/capi/cef_registration_capi.h"
|
||||
#include "include/capi/cef_request_context_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -113,7 +116,8 @@ typedef struct _cef_browser_t {
|
||||
void(CEF_CALLBACK* stop_load)(struct _cef_browser_t* self);
|
||||
|
||||
///
|
||||
// Returns the globally unique identifier for this browser.
|
||||
// Returns the globally unique identifier for this browser. This value is also
|
||||
// used as the tabId for extension APIs.
|
||||
///
|
||||
int(CEF_CALLBACK* get_identifier)(struct _cef_browser_t* self);
|
||||
|
||||
@@ -150,7 +154,8 @@ typedef struct _cef_browser_t {
|
||||
// Returns the frame with the specified identifier, or NULL if not found.
|
||||
///
|
||||
struct _cef_frame_t*(CEF_CALLBACK* get_frame_byident)(
|
||||
struct _cef_browser_t* self, int64 identifier);
|
||||
struct _cef_browser_t* self,
|
||||
int64 identifier);
|
||||
|
||||
///
|
||||
// Returns the frame with the specified name, or NULL if not found.
|
||||
@@ -167,24 +172,16 @@ typedef struct _cef_browser_t {
|
||||
// Returns the identifiers of all existing frames.
|
||||
///
|
||||
void(CEF_CALLBACK* get_frame_identifiers)(struct _cef_browser_t* self,
|
||||
size_t* identifiersCount, int64* identifiers);
|
||||
size_t* identifiersCount,
|
||||
int64* identifiers);
|
||||
|
||||
///
|
||||
// Returns the names of all existing frames.
|
||||
///
|
||||
void(CEF_CALLBACK* get_frame_names)(struct _cef_browser_t* self,
|
||||
cef_string_list_t names);
|
||||
|
||||
///
|
||||
// Send a message to the specified |target_process|. Returns true (1) if the
|
||||
// message was sent successfully.
|
||||
///
|
||||
int (CEF_CALLBACK *send_process_message)(struct _cef_browser_t* self,
|
||||
cef_process_id_t target_process,
|
||||
struct _cef_process_message_t* message);
|
||||
} cef_browser_t;
|
||||
|
||||
|
||||
///
|
||||
// Callback structure for cef_browser_host_t::RunFileDialog. The functions of
|
||||
// this structure will be called on the browser process UI thread.
|
||||
@@ -203,11 +200,11 @@ typedef struct _cef_run_file_dialog_callback_t {
|
||||
// dialog mode. If the selection was cancelled |file_paths| will be NULL.
|
||||
///
|
||||
void(CEF_CALLBACK* on_file_dialog_dismissed)(
|
||||
struct _cef_run_file_dialog_callback_t* self, int selected_accept_filter,
|
||||
struct _cef_run_file_dialog_callback_t* self,
|
||||
int selected_accept_filter,
|
||||
cef_string_list_t file_paths);
|
||||
} cef_run_file_dialog_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Callback structure for cef_browser_host_t::GetNavigationEntries. The
|
||||
// functions of this structure will be called on the browser process UI thread.
|
||||
@@ -226,11 +223,12 @@ typedef struct _cef_navigation_entry_visitor_t {
|
||||
// the total number of entries.
|
||||
///
|
||||
int(CEF_CALLBACK* visit)(struct _cef_navigation_entry_visitor_t* self,
|
||||
struct _cef_navigation_entry_t* entry, int current, int index,
|
||||
struct _cef_navigation_entry_t* entry,
|
||||
int current,
|
||||
int index,
|
||||
int total);
|
||||
} cef_navigation_entry_visitor_t;
|
||||
|
||||
|
||||
///
|
||||
// Callback structure for cef_browser_host_t::PrintToPDF. The functions of this
|
||||
// structure will be called on the browser process UI thread.
|
||||
@@ -247,11 +245,11 @@ typedef struct _cef_pdf_print_callback_t {
|
||||
// successfully or false (0) otherwise.
|
||||
///
|
||||
void(CEF_CALLBACK* on_pdf_print_finished)(
|
||||
struct _cef_pdf_print_callback_t* self, const cef_string_t* path,
|
||||
struct _cef_pdf_print_callback_t* self,
|
||||
const cef_string_t* path,
|
||||
int ok);
|
||||
} cef_pdf_print_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Callback structure for cef_browser_host_t::DownloadImage. The functions of
|
||||
// this structure will be called on the browser process UI thread.
|
||||
@@ -270,11 +268,11 @@ typedef struct _cef_download_image_callback_t {
|
||||
///
|
||||
void(CEF_CALLBACK* on_download_image_finished)(
|
||||
struct _cef_download_image_callback_t* self,
|
||||
const cef_string_t* image_url, int http_status_code,
|
||||
const cef_string_t* image_url,
|
||||
int http_status_code,
|
||||
struct _cef_image_t* image);
|
||||
} cef_download_image_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent the browser process aspects of a browser window.
|
||||
// The functions of this structure can only be called in the browser process.
|
||||
@@ -385,9 +383,12 @@ typedef struct _cef_browser_host_t {
|
||||
// dismissed or immediately if another dialog is already pending. The dialog
|
||||
// will be initiated asynchronously on the UI thread.
|
||||
///
|
||||
void (CEF_CALLBACK *run_file_dialog)(struct _cef_browser_host_t* self,
|
||||
cef_file_dialog_mode_t mode, const cef_string_t* title,
|
||||
const cef_string_t* default_file_path, cef_string_list_t accept_filters,
|
||||
void(CEF_CALLBACK* run_file_dialog)(
|
||||
struct _cef_browser_host_t* self,
|
||||
cef_file_dialog_mode_t mode,
|
||||
const cef_string_t* title,
|
||||
const cef_string_t* default_file_path,
|
||||
cef_string_list_t accept_filters,
|
||||
int selected_accept_filter,
|
||||
struct _cef_run_file_dialog_callback_t* callback);
|
||||
|
||||
@@ -409,9 +410,13 @@ typedef struct _cef_browser_host_t {
|
||||
// unlimited. If |bypass_cache| is true (1) then |image_url| is requested from
|
||||
// the server even if it is present in the browser cache.
|
||||
///
|
||||
void (CEF_CALLBACK *download_image)(struct _cef_browser_host_t* self,
|
||||
const cef_string_t* image_url, int is_favicon, uint32 max_image_size,
|
||||
int bypass_cache, struct _cef_download_image_callback_t* callback);
|
||||
void(CEF_CALLBACK* download_image)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const cef_string_t* image_url,
|
||||
int is_favicon,
|
||||
uint32 max_image_size,
|
||||
int bypass_cache,
|
||||
struct _cef_download_image_callback_t* callback);
|
||||
|
||||
///
|
||||
// Print the current browser contents.
|
||||
@@ -424,21 +429,28 @@ typedef struct _cef_browser_host_t {
|
||||
// |path| when done. For PDF printing to work on Linux you must implement the
|
||||
// cef_print_handler_t::GetPdfPaperSize function.
|
||||
///
|
||||
void (CEF_CALLBACK *print_to_pdf)(struct _cef_browser_host_t* self,
|
||||
void(CEF_CALLBACK* print_to_pdf)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const cef_string_t* path,
|
||||
const struct _cef_pdf_print_settings_t* settings,
|
||||
struct _cef_pdf_print_callback_t* callback);
|
||||
|
||||
///
|
||||
// Search for |searchText|. |identifier| can be used to have multiple searches
|
||||
// running simultaniously. |forward| indicates whether to search forward or
|
||||
// backward within the page. |matchCase| indicates whether the search should
|
||||
// be case-sensitive. |findNext| indicates whether this is the first request
|
||||
// or a follow-up. The cef_find_handler_t instance, if any, returned via
|
||||
// cef_client_t::GetFindHandler will be called to report find results.
|
||||
// Search for |searchText|. |identifier| must be a unique ID and these IDs
|
||||
// must strictly increase so that newer requests always have greater IDs than
|
||||
// older requests. If |identifier| is zero or less than the previous ID value
|
||||
// then it will be automatically assigned a new valid ID. |forward| indicates
|
||||
// whether to search forward or backward within the page. |matchCase|
|
||||
// indicates whether the search should be case-sensitive. |findNext| indicates
|
||||
// whether this is the first request or a follow-up. The cef_find_handler_t
|
||||
// instance, if any, returned via cef_client_t::GetFindHandler will be called
|
||||
// to report find results.
|
||||
///
|
||||
void (CEF_CALLBACK *find)(struct _cef_browser_host_t* self, int identifier,
|
||||
const cef_string_t* searchText, int forward, int matchCase,
|
||||
void(CEF_CALLBACK* find)(struct _cef_browser_host_t* self,
|
||||
int identifier,
|
||||
const cef_string_t* searchText,
|
||||
int forward,
|
||||
int matchCase,
|
||||
int findNext);
|
||||
|
||||
///
|
||||
@@ -456,7 +468,8 @@ typedef struct _cef_browser_host_t {
|
||||
// inspected. The |windowInfo| parameter will be ignored if this browser is
|
||||
// wrapped in a cef_browser_view_t.
|
||||
///
|
||||
void (CEF_CALLBACK *show_dev_tools)(struct _cef_browser_host_t* self,
|
||||
void(CEF_CALLBACK* show_dev_tools)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const struct _cef_window_info_t* windowInfo,
|
||||
struct _cef_client_t* client,
|
||||
const struct _cef_browser_settings_t* settings,
|
||||
@@ -473,26 +486,81 @@ typedef struct _cef_browser_host_t {
|
||||
///
|
||||
int(CEF_CALLBACK* has_dev_tools)(struct _cef_browser_host_t* self);
|
||||
|
||||
///
|
||||
// Send a function call message over the DevTools protocol. |message| must be
|
||||
// a UTF8-encoded JSON dictionary that contains "id" (int), "function"
|
||||
// (string) and "params" (dictionary, optional) values. See the DevTools
|
||||
// protocol documentation at https://chromedevtools.github.io/devtools-
|
||||
// protocol/ for details of supported functions and the expected "params"
|
||||
// dictionary contents. |message| will be copied if necessary. This function
|
||||
// will return true (1) if called on the UI thread and the message was
|
||||
// successfully submitted for validation, otherwise false (0). Validation will
|
||||
// be applied asynchronously and any messages that fail due to formatting
|
||||
// errors or missing parameters may be discarded without notification. Prefer
|
||||
// ExecuteDevToolsMethod if a more structured approach to message formatting
|
||||
// is desired.
|
||||
//
|
||||
// Every valid function call will result in an asynchronous function result or
|
||||
// error message that references the sent message "id". Event messages are
|
||||
// received while notifications are enabled (for example, between function
|
||||
// calls for "Page.enable" and "Page.disable"). All received messages will be
|
||||
// delivered to the observer(s) registered with AddDevToolsMessageObserver.
|
||||
// See cef_dev_tools_message_observer_t::OnDevToolsMessage documentation for
|
||||
// details of received message contents.
|
||||
//
|
||||
// Usage of the SendDevToolsMessage, ExecuteDevToolsMethod and
|
||||
// AddDevToolsMessageObserver functions does not require an active DevTools
|
||||
// front-end or remote-debugging session. Other active DevTools sessions will
|
||||
// continue to function independently. However, any modification of global
|
||||
// browser state by one session may not be reflected in the UI of other
|
||||
// sessions.
|
||||
//
|
||||
// Communication with the DevTools front-end (when displayed) can be logged
|
||||
// for development purposes by passing the `--devtools-protocol-log-
|
||||
// file=<path>` command-line flag.
|
||||
///
|
||||
int(CEF_CALLBACK* send_dev_tools_message)(struct _cef_browser_host_t* self,
|
||||
const void* message,
|
||||
size_t message_size);
|
||||
|
||||
///
|
||||
// Execute a function call over the DevTools protocol. This is a more
|
||||
// structured version of SendDevToolsMessage. |message_id| is an incremental
|
||||
// number that uniquely identifies the message (pass 0 to have the next number
|
||||
// assigned automatically based on previous values). |function| is the
|
||||
// function name. |params| are the function parameters, which may be NULL. See
|
||||
// the DevTools protocol documentation (linked above) for details of supported
|
||||
// functions and the expected |params| dictionary contents. This function will
|
||||
// return the assigned message ID if called on the UI thread and the message
|
||||
// was successfully submitted for validation, otherwise 0. See the
|
||||
// SendDevToolsMessage documentation for additional usage information.
|
||||
///
|
||||
int(CEF_CALLBACK* execute_dev_tools_method)(
|
||||
struct _cef_browser_host_t* self,
|
||||
int message_id,
|
||||
const cef_string_t* method,
|
||||
struct _cef_dictionary_value_t* params);
|
||||
|
||||
///
|
||||
// Add an observer for DevTools protocol messages (function results and
|
||||
// events). The observer will remain registered until the returned
|
||||
// Registration object is destroyed. See the SendDevToolsMessage documentation
|
||||
// for additional usage information.
|
||||
///
|
||||
struct _cef_registration_t*(CEF_CALLBACK* add_dev_tools_message_observer)(
|
||||
struct _cef_browser_host_t* self,
|
||||
struct _cef_dev_tools_message_observer_t* observer);
|
||||
|
||||
///
|
||||
// Retrieve a snapshot of current navigation entries as values sent to the
|
||||
// specified visitor. If |current_only| is true (1) only the current
|
||||
// navigation entry will be sent, otherwise all navigation entries will be
|
||||
// sent.
|
||||
///
|
||||
void (CEF_CALLBACK *get_navigation_entries)(struct _cef_browser_host_t* self,
|
||||
struct _cef_navigation_entry_visitor_t* visitor, int current_only);
|
||||
|
||||
///
|
||||
// Set whether mouse cursor change is disabled.
|
||||
///
|
||||
void (CEF_CALLBACK *set_mouse_cursor_change_disabled)(
|
||||
struct _cef_browser_host_t* self, int disabled);
|
||||
|
||||
///
|
||||
// Returns true (1) if mouse cursor change is disabled.
|
||||
///
|
||||
int (CEF_CALLBACK *is_mouse_cursor_change_disabled)(
|
||||
struct _cef_browser_host_t* self);
|
||||
void(CEF_CALLBACK* get_navigation_entries)(
|
||||
struct _cef_browser_host_t* self,
|
||||
struct _cef_navigation_entry_visitor_t* visitor,
|
||||
int current_only);
|
||||
|
||||
///
|
||||
// If a misspelled word is currently selected in an editable node calling this
|
||||
@@ -547,6 +615,13 @@ typedef struct _cef_browser_host_t {
|
||||
void(CEF_CALLBACK* invalidate)(struct _cef_browser_host_t* self,
|
||||
cef_paint_element_type_t type);
|
||||
|
||||
///
|
||||
// Issue a BeginFrame request to Chromium. Only valid when
|
||||
// cef_window_tInfo::external_begin_frame_enabled is set to true (1).
|
||||
///
|
||||
void(CEF_CALLBACK* send_external_begin_frame)(
|
||||
struct _cef_browser_host_t* self);
|
||||
|
||||
///
|
||||
// Send a key event to the browser.
|
||||
///
|
||||
@@ -557,16 +632,21 @@ typedef struct _cef_browser_host_t {
|
||||
// Send a mouse click event to the browser. The |x| and |y| coordinates are
|
||||
// relative to the upper-left corner of the view.
|
||||
///
|
||||
void (CEF_CALLBACK *send_mouse_click_event)(struct _cef_browser_host_t* self,
|
||||
const struct _cef_mouse_event_t* event, cef_mouse_button_type_t type,
|
||||
int mouseUp, int clickCount);
|
||||
void(CEF_CALLBACK* send_mouse_click_event)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const struct _cef_mouse_event_t* event,
|
||||
cef_mouse_button_type_t type,
|
||||
int mouseUp,
|
||||
int clickCount);
|
||||
|
||||
///
|
||||
// Send a mouse move event to the browser. The |x| and |y| coordinates are
|
||||
// relative to the upper-left corner of the view.
|
||||
///
|
||||
void (CEF_CALLBACK *send_mouse_move_event)(struct _cef_browser_host_t* self,
|
||||
const struct _cef_mouse_event_t* event, int mouseLeave);
|
||||
void(CEF_CALLBACK* send_mouse_move_event)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const struct _cef_mouse_event_t* event,
|
||||
int mouseLeave);
|
||||
|
||||
///
|
||||
// Send a mouse wheel event to the browser. The |x| and |y| coordinates are
|
||||
@@ -575,8 +655,17 @@ typedef struct _cef_browser_host_t {
|
||||
// In order to scroll inside select popups with window rendering disabled
|
||||
// cef_render_handler_t::GetScreenPoint should be implemented properly.
|
||||
///
|
||||
void (CEF_CALLBACK *send_mouse_wheel_event)(struct _cef_browser_host_t* self,
|
||||
const struct _cef_mouse_event_t* event, int deltaX, int deltaY);
|
||||
void(CEF_CALLBACK* send_mouse_wheel_event)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const struct _cef_mouse_event_t* event,
|
||||
int deltaX,
|
||||
int deltaY);
|
||||
|
||||
///
|
||||
// Send a touch event to the browser for a windowless browser.
|
||||
///
|
||||
void(CEF_CALLBACK* send_touch_event)(struct _cef_browser_host_t* self,
|
||||
const struct _cef_touch_event_t* event);
|
||||
|
||||
///
|
||||
// Send a focus event to the browser.
|
||||
@@ -587,8 +676,7 @@ typedef struct _cef_browser_host_t {
|
||||
///
|
||||
// Send a capture lost event to the browser.
|
||||
///
|
||||
void (CEF_CALLBACK *send_capture_lost_event)(
|
||||
struct _cef_browser_host_t* self);
|
||||
void(CEF_CALLBACK* send_capture_lost_event)(struct _cef_browser_host_t* self);
|
||||
|
||||
///
|
||||
// Notify the browser that the window hosting it is about to be moved or
|
||||
@@ -615,7 +703,8 @@ typedef struct _cef_browser_host_t {
|
||||
// set at browser creation via cef_browser_tSettings.windowless_frame_rate.
|
||||
///
|
||||
void(CEF_CALLBACK* set_windowless_frame_rate)(
|
||||
struct _cef_browser_host_t* self, int frame_rate);
|
||||
struct _cef_browser_host_t* self,
|
||||
int frame_rate);
|
||||
|
||||
///
|
||||
// Begins a new composition or updates the existing composition. Blink has a
|
||||
@@ -640,8 +729,10 @@ typedef struct _cef_browser_host_t {
|
||||
//
|
||||
// This function is only used when window rendering is disabled.
|
||||
///
|
||||
void (CEF_CALLBACK *ime_set_composition)(struct _cef_browser_host_t* self,
|
||||
const cef_string_t* text, size_t underlinesCount,
|
||||
void(CEF_CALLBACK* ime_set_composition)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const cef_string_t* text,
|
||||
size_t underlinesCount,
|
||||
cef_composition_underline_t const* underlines,
|
||||
const cef_range_t* replacement_range,
|
||||
const cef_range_t* selection_range);
|
||||
@@ -656,7 +747,8 @@ typedef struct _cef_browser_host_t {
|
||||
// used when window rendering is disabled.
|
||||
///
|
||||
void(CEF_CALLBACK* ime_commit_text)(struct _cef_browser_host_t* self,
|
||||
const cef_string_t* text, const cef_range_t* replacement_range,
|
||||
const cef_string_t* text,
|
||||
const cef_range_t* replacement_range,
|
||||
int relative_cursor_pos);
|
||||
|
||||
///
|
||||
@@ -666,7 +758,8 @@ typedef struct _cef_browser_host_t {
|
||||
// function is only used when window rendering is disabled.
|
||||
///
|
||||
void(CEF_CALLBACK* ime_finish_composing_text)(
|
||||
struct _cef_browser_host_t* self, int keep_selection);
|
||||
struct _cef_browser_host_t* self,
|
||||
int keep_selection);
|
||||
|
||||
///
|
||||
// Cancels the existing composition and discards the composition node contents
|
||||
@@ -684,7 +777,8 @@ typedef struct _cef_browser_host_t {
|
||||
// cef_render_handler_t::StartDragging). This function is only used when
|
||||
// window rendering is disabled.
|
||||
///
|
||||
void (CEF_CALLBACK *drag_target_drag_enter)(struct _cef_browser_host_t* self,
|
||||
void(CEF_CALLBACK* drag_target_drag_enter)(
|
||||
struct _cef_browser_host_t* self,
|
||||
struct _cef_drag_data_t* drag_data,
|
||||
const struct _cef_mouse_event_t* event,
|
||||
cef_drag_operations_mask_t allowed_ops);
|
||||
@@ -695,7 +789,8 @@ typedef struct _cef_browser_host_t {
|
||||
// DragTargetDragLeave/DragTargetDrop). This function is only used when window
|
||||
// rendering is disabled.
|
||||
///
|
||||
void (CEF_CALLBACK *drag_target_drag_over)(struct _cef_browser_host_t* self,
|
||||
void(CEF_CALLBACK* drag_target_drag_over)(
|
||||
struct _cef_browser_host_t* self,
|
||||
const struct _cef_mouse_event_t* event,
|
||||
cef_drag_operations_mask_t allowed_ops);
|
||||
|
||||
@@ -726,7 +821,9 @@ typedef struct _cef_browser_host_t {
|
||||
// disabled.
|
||||
///
|
||||
void(CEF_CALLBACK* drag_source_ended_at)(struct _cef_browser_host_t* self,
|
||||
int x, int y, cef_drag_operations_mask_t op);
|
||||
int x,
|
||||
int y,
|
||||
cef_drag_operations_mask_t op);
|
||||
|
||||
///
|
||||
// Call this function when the drag operation started by a
|
||||
@@ -745,32 +842,106 @@ typedef struct _cef_browser_host_t {
|
||||
///
|
||||
struct _cef_navigation_entry_t*(CEF_CALLBACK* get_visible_navigation_entry)(
|
||||
struct _cef_browser_host_t* self);
|
||||
} cef_browser_host_t;
|
||||
|
||||
///
|
||||
// Set accessibility state for all frames. |accessibility_state| may be
|
||||
// default, enabled or disabled. If |accessibility_state| is STATE_DEFAULT
|
||||
// then accessibility will be disabled by default and the state may be further
|
||||
// controlled with the "force-renderer-accessibility" and "disable-renderer-
|
||||
// accessibility" command-line switches. If |accessibility_state| is
|
||||
// STATE_ENABLED then accessibility will be enabled. If |accessibility_state|
|
||||
// is STATE_DISABLED then accessibility will be completely disabled.
|
||||
//
|
||||
// For windowed browsers accessibility will be enabled in Complete mode (which
|
||||
// corresponds to kAccessibilityModeComplete in Chromium). In this mode all
|
||||
// platform accessibility objects will be created and managed by Chromium's
|
||||
// internal implementation. The client needs only to detect the screen reader
|
||||
// and call this function appropriately. For example, on macOS the client can
|
||||
// handle the @"AXEnhancedUserStructure" accessibility attribute to detect
|
||||
// VoiceOver state changes and on Windows the client can handle WM_GETOBJECT
|
||||
// with OBJID_CLIENT to detect accessibility readers.
|
||||
//
|
||||
// For windowless browsers accessibility will be enabled in TreeOnly mode
|
||||
// (which corresponds to kAccessibilityModeWebContentsOnly in Chromium). In
|
||||
// this mode renderer accessibility is enabled, the full tree is computed, and
|
||||
// events are passed to CefAccessibiltyHandler, but platform accessibility
|
||||
// objects are not created. The client may implement platform accessibility
|
||||
// objects using CefAccessibiltyHandler callbacks if desired.
|
||||
///
|
||||
void(CEF_CALLBACK* set_accessibility_state)(struct _cef_browser_host_t* self,
|
||||
cef_state_t accessibility_state);
|
||||
|
||||
///
|
||||
// Enable notifications of auto resize via
|
||||
// cef_display_handler_t::OnAutoResize. Notifications are disabled by default.
|
||||
// |min_size| and |max_size| define the range of allowed sizes.
|
||||
///
|
||||
void(CEF_CALLBACK* set_auto_resize_enabled)(struct _cef_browser_host_t* self,
|
||||
int enabled,
|
||||
const cef_size_t* min_size,
|
||||
const cef_size_t* max_size);
|
||||
|
||||
///
|
||||
// Returns the extension hosted in this browser or NULL if no extension is
|
||||
// hosted. See cef_request_context_t::LoadExtension for details.
|
||||
///
|
||||
struct _cef_extension_t*(CEF_CALLBACK* get_extension)(
|
||||
struct _cef_browser_host_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if this browser is hosting an extension background script.
|
||||
// Background hosts do not have a window and are not displayable. See
|
||||
// cef_request_context_t::LoadExtension for details.
|
||||
///
|
||||
int(CEF_CALLBACK* is_background_host)(struct _cef_browser_host_t* self);
|
||||
|
||||
///
|
||||
// Set whether the browser's audio is muted.
|
||||
///
|
||||
void(CEF_CALLBACK* set_audio_muted)(struct _cef_browser_host_t* self,
|
||||
int mute);
|
||||
|
||||
///
|
||||
// Returns true (1) if the browser's audio is muted. This function can only
|
||||
// be called on the UI thread.
|
||||
///
|
||||
int(CEF_CALLBACK* is_audio_muted)(struct _cef_browser_host_t* self);
|
||||
} cef_browser_host_t;
|
||||
|
||||
///
|
||||
// Create a new browser window using the window parameters specified by
|
||||
// |windowInfo|. All values will be copied internally and the actual window will
|
||||
// be created on the UI thread. If |request_context| is NULL the global request
|
||||
// context will be used. This function can be called on any browser process
|
||||
// thread and will not block.
|
||||
// thread and will not block. The optional |extra_info| parameter provides an
|
||||
// opportunity to specify extra information specific to the created browser that
|
||||
// will be passed to cef_render_process_handler_t::on_browser_created() in the
|
||||
// render process.
|
||||
///
|
||||
CEF_EXPORT int cef_browser_host_create_browser(
|
||||
const cef_window_info_t* windowInfo, struct _cef_client_t* client,
|
||||
const cef_string_t* url, const struct _cef_browser_settings_t* settings,
|
||||
const cef_window_info_t* windowInfo,
|
||||
struct _cef_client_t* client,
|
||||
const cef_string_t* url,
|
||||
const struct _cef_browser_settings_t* settings,
|
||||
struct _cef_dictionary_value_t* extra_info,
|
||||
struct _cef_request_context_t* request_context);
|
||||
|
||||
///
|
||||
// Create a new browser window using the window parameters specified by
|
||||
// |windowInfo|. If |request_context| is NULL the global request context will be
|
||||
// used. This function can only be called on the browser process UI thread.
|
||||
// used. This function can only be called on the browser process UI thread. The
|
||||
// optional |extra_info| parameter provides an opportunity to specify extra
|
||||
// information specific to the created browser that will be passed to
|
||||
// cef_render_process_handler_t::on_browser_created() in the render process.
|
||||
///
|
||||
CEF_EXPORT cef_browser_t* cef_browser_host_create_browser_sync(
|
||||
const cef_window_info_t* windowInfo, struct _cef_client_t* client,
|
||||
const cef_string_t* url, const struct _cef_browser_settings_t* settings,
|
||||
const cef_window_info_t* windowInfo,
|
||||
struct _cef_client_t* client,
|
||||
const cef_string_t* url,
|
||||
const struct _cef_browser_settings_t* settings,
|
||||
struct _cef_dictionary_value_t* extra_info,
|
||||
struct _cef_request_context_t* request_context);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,12 +33,15 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=d56cbf83d6faefa9f716c7308bf7007dad98697d$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_BROWSER_PROCESS_HANDLER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_client_capi.h"
|
||||
#include "include/capi/cef_command_line_capi.h"
|
||||
#include "include/capi/cef_print_handler_capi.h"
|
||||
#include "include/capi/cef_values_capi.h"
|
||||
@@ -47,7 +50,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure used to implement browser process callbacks. The functions of this
|
||||
// structure will be called on the browser process main thread unless otherwise
|
||||
@@ -59,6 +61,25 @@ typedef struct _cef_browser_process_handler_t {
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called on the browser process UI thread to retrieve the list of schemes
|
||||
// that should support cookies. If |include_defaults| is true (1) the default
|
||||
// schemes ("http", "https", "ws" and "wss") will also be supported. Providing
|
||||
// an NULL |schemes| value and setting |include_defaults| to false (0) will
|
||||
// disable all loading and saving of cookies.
|
||||
//
|
||||
// This state will apply to the cef_cookie_manager_t associated with the
|
||||
// global cef_request_context_t. It will also be used as the initial state for
|
||||
// any new cef_request_context_ts created by the client. After creating a new
|
||||
// cef_request_context_t the cef_cookie_manager_t::SetSupportedSchemes
|
||||
// function may be called on the associated cef_cookie_manager_t to futher
|
||||
// override these values.
|
||||
///
|
||||
void(CEF_CALLBACK* get_cookieable_schemes)(
|
||||
struct _cef_browser_process_handler_t* self,
|
||||
cef_string_list_t schemes,
|
||||
int* include_defaults);
|
||||
|
||||
///
|
||||
// Called on the browser process UI thread immediately after the CEF context
|
||||
// has been initialized.
|
||||
@@ -77,17 +98,6 @@ typedef struct _cef_browser_process_handler_t {
|
||||
struct _cef_browser_process_handler_t* self,
|
||||
struct _cef_command_line_t* command_line);
|
||||
|
||||
///
|
||||
// Called on the browser process IO thread after the main thread has been
|
||||
// created for a new render process. Provides an opportunity to specify extra
|
||||
// information that will be passed to
|
||||
// cef_render_process_handler_t::on_render_thread_created() in the render
|
||||
// process. Do not keep a reference to |extra_info| outside of this function.
|
||||
///
|
||||
void (CEF_CALLBACK *on_render_process_thread_created)(
|
||||
struct _cef_browser_process_handler_t* self,
|
||||
struct _cef_list_value_t* extra_info);
|
||||
|
||||
///
|
||||
// Return the handler for printing on Linux. If a print handler is not
|
||||
// provided then printing will not be supported on the Linux platform.
|
||||
@@ -109,9 +119,19 @@ typedef struct _cef_browser_process_handler_t {
|
||||
// cancelled.
|
||||
///
|
||||
void(CEF_CALLBACK* on_schedule_message_pump_work)(
|
||||
struct _cef_browser_process_handler_t* self, int64 delay_ms);
|
||||
} cef_browser_process_handler_t;
|
||||
struct _cef_browser_process_handler_t* self,
|
||||
int64 delay_ms);
|
||||
|
||||
///
|
||||
// Return the default client for use with a newly created browser window. If
|
||||
// null is returned the browser will be unmanaged (no callbacks will be
|
||||
// executed for that browser) and application shutdown will be blocked until
|
||||
// the browser window is closed manually. This function is currently only used
|
||||
// with the chrome runtime.
|
||||
///
|
||||
struct _cef_client_t*(CEF_CALLBACK* get_default_client)(
|
||||
struct _cef_browser_process_handler_t* self);
|
||||
} cef_browser_process_handler_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=5c540e617cf2782876defad365e85cd43932ffce$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_CALLBACK_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Generic callback structure used for asynchronous continuation.
|
||||
///
|
||||
@@ -65,7 +66,6 @@ typedef struct _cef_callback_t {
|
||||
void(CEF_CALLBACK* cancel)(struct _cef_callback_t* self);
|
||||
} cef_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Generic callback structure used for asynchronous completion.
|
||||
///
|
||||
@@ -81,7 +81,6 @@ typedef struct _cef_completion_callback_t {
|
||||
void(CEF_CALLBACK* on_complete)(struct _cef_completion_callback_t* self);
|
||||
} cef_completion_callback_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,11 +33,14 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=8d4cb3e0bbf230804c93898daa4a8b2866a2c1ce$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_CLIENT_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_audio_handler_capi.h"
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_context_menu_handler_capi.h"
|
||||
#include "include/capi/cef_dialog_handler_capi.h"
|
||||
@@ -46,7 +49,6 @@
|
||||
#include "include/capi/cef_drag_handler_capi.h"
|
||||
#include "include/capi/cef_find_handler_capi.h"
|
||||
#include "include/capi/cef_focus_handler_capi.h"
|
||||
#include "include/capi/cef_geolocation_handler_capi.h"
|
||||
#include "include/capi/cef_jsdialog_handler_capi.h"
|
||||
#include "include/capi/cef_keyboard_handler_capi.h"
|
||||
#include "include/capi/cef_life_span_handler_capi.h"
|
||||
@@ -59,7 +61,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to provide handler implementations.
|
||||
///
|
||||
@@ -69,6 +70,12 @@ typedef struct _cef_client_t {
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Return the handler for audio rendering events.
|
||||
///
|
||||
struct _cef_audio_handler_t*(CEF_CALLBACK* get_audio_handler)(
|
||||
struct _cef_client_t* self);
|
||||
|
||||
///
|
||||
// Return the handler for context menus. If no handler is provided the default
|
||||
// implementation will be used.
|
||||
@@ -114,13 +121,6 @@ typedef struct _cef_client_t {
|
||||
struct _cef_focus_handler_t*(CEF_CALLBACK* get_focus_handler)(
|
||||
struct _cef_client_t* self);
|
||||
|
||||
///
|
||||
// Return the handler for geolocation permissions requests. If no handler is
|
||||
// provided geolocation access will be denied by default.
|
||||
///
|
||||
struct _cef_geolocation_handler_t* (CEF_CALLBACK *get_geolocation_handler)(
|
||||
struct _cef_client_t* self);
|
||||
|
||||
///
|
||||
// Return the handler for JavaScript dialogs. If no handler is provided the
|
||||
// default implementation will be used.
|
||||
@@ -163,12 +163,14 @@ typedef struct _cef_client_t {
|
||||
// (1) if the message was handled or false (0) otherwise. Do not keep a
|
||||
// reference to or attempt to access the message outside of this callback.
|
||||
///
|
||||
int (CEF_CALLBACK *on_process_message_received)(struct _cef_client_t* self,
|
||||
struct _cef_browser_t* browser, cef_process_id_t source_process,
|
||||
int(CEF_CALLBACK* on_process_message_received)(
|
||||
struct _cef_client_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
cef_process_id_t source_process,
|
||||
struct _cef_process_message_t* message);
|
||||
} cef_client_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=72ba5fe0cc6fe8081ec7b2b556e9022d1c6e8c61$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_COMMAND_LINE_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure used to create and/or parse command line arguments. Arguments with
|
||||
// '--', '-' and, on Windows, '/' prefixes are considered switches. Switches
|
||||
@@ -85,7 +86,8 @@ typedef struct _cef_command_line_t {
|
||||
// supported on non-Windows platforms.
|
||||
///
|
||||
void(CEF_CALLBACK* init_from_argv)(struct _cef_command_line_t* self,
|
||||
int argc, const char* const* argv);
|
||||
int argc,
|
||||
const char* const* argv);
|
||||
|
||||
///
|
||||
// Initialize the command line with the string returned by calling
|
||||
@@ -145,7 +147,8 @@ typedef struct _cef_command_line_t {
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_switch_value)(
|
||||
struct _cef_command_line_t* self, const cef_string_t* name);
|
||||
struct _cef_command_line_t* self,
|
||||
const cef_string_t* name);
|
||||
|
||||
///
|
||||
// Returns the map of switch names and values. If a switch has no value an
|
||||
@@ -164,8 +167,8 @@ typedef struct _cef_command_line_t {
|
||||
///
|
||||
// Add a switch with the specified value to the end of the command line.
|
||||
///
|
||||
void (CEF_CALLBACK *append_switch_with_value)(
|
||||
struct _cef_command_line_t* self, const cef_string_t* name,
|
||||
void(CEF_CALLBACK* append_switch_with_value)(struct _cef_command_line_t* self,
|
||||
const cef_string_t* name,
|
||||
const cef_string_t* value);
|
||||
|
||||
///
|
||||
@@ -193,7 +196,6 @@ typedef struct _cef_command_line_t {
|
||||
const cef_string_t* wrapper);
|
||||
} cef_command_line_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new cef_command_line_t instance.
|
||||
///
|
||||
@@ -205,7 +207,6 @@ CEF_EXPORT cef_command_line_t* cef_command_line_create();
|
||||
///
|
||||
CEF_EXPORT cef_command_line_t* cef_command_line_get_global();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=fcb0328c54e5f629c24bfd232d75c31c372ab6ac$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_CONTEXT_MENU_HANDLER_CAPI_H_
|
||||
@@ -63,7 +65,8 @@ typedef struct _cef_run_context_menu_callback_t {
|
||||
// |event_flags|.
|
||||
///
|
||||
void(CEF_CALLBACK* cont)(struct _cef_run_context_menu_callback_t* self,
|
||||
int command_id, cef_event_flags_t event_flags);
|
||||
int command_id,
|
||||
cef_event_flags_t event_flags);
|
||||
|
||||
///
|
||||
// Cancel context menu display.
|
||||
@@ -71,7 +74,6 @@ typedef struct _cef_run_context_menu_callback_t {
|
||||
void(CEF_CALLBACK* cancel)(struct _cef_run_context_menu_callback_t* self);
|
||||
} cef_run_context_menu_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle context menu events. The functions of this
|
||||
// structure will be called on the UI thread.
|
||||
@@ -90,8 +92,10 @@ typedef struct _cef_context_menu_handler_t {
|
||||
// |model| outside of this callback.
|
||||
///
|
||||
void(CEF_CALLBACK* on_before_context_menu)(
|
||||
struct _cef_context_menu_handler_t* self, struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame, struct _cef_context_menu_params_t* params,
|
||||
struct _cef_context_menu_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_context_menu_params_t* params,
|
||||
struct _cef_menu_model_t* model);
|
||||
|
||||
///
|
||||
@@ -102,8 +106,10 @@ typedef struct _cef_context_menu_handler_t {
|
||||
// selected command ID. For default display return false (0). Do not keep
|
||||
// references to |params| or |model| outside of this callback.
|
||||
///
|
||||
int (CEF_CALLBACK *run_context_menu)(struct _cef_context_menu_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
int(CEF_CALLBACK* run_context_menu)(
|
||||
struct _cef_context_menu_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_context_menu_params_t* params,
|
||||
struct _cef_menu_model_t* model,
|
||||
struct _cef_run_context_menu_callback_t* callback);
|
||||
@@ -118,20 +124,23 @@ typedef struct _cef_context_menu_handler_t {
|
||||
// this callback.
|
||||
///
|
||||
int(CEF_CALLBACK* on_context_menu_command)(
|
||||
struct _cef_context_menu_handler_t* self, struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame, struct _cef_context_menu_params_t* params,
|
||||
int command_id, cef_event_flags_t event_flags);
|
||||
struct _cef_context_menu_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_context_menu_params_t* params,
|
||||
int command_id,
|
||||
cef_event_flags_t event_flags);
|
||||
|
||||
///
|
||||
// Called when the context menu is dismissed irregardless of whether the menu
|
||||
// was NULL or a command was selected.
|
||||
///
|
||||
void(CEF_CALLBACK* on_context_menu_dismissed)(
|
||||
struct _cef_context_menu_handler_t* self, struct _cef_browser_t* browser,
|
||||
struct _cef_context_menu_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame);
|
||||
} cef_context_menu_handler_t;
|
||||
|
||||
|
||||
///
|
||||
// Provides information about the context menu state. The ethods of this
|
||||
// structure can only be accessed on browser process the UI thread.
|
||||
@@ -257,7 +266,8 @@ typedef struct _cef_context_menu_params_t {
|
||||
// is one.
|
||||
///
|
||||
int(CEF_CALLBACK* get_dictionary_suggestions)(
|
||||
struct _cef_context_menu_params_t* self, cef_string_list_t suggestions);
|
||||
struct _cef_context_menu_params_t* self,
|
||||
cef_string_list_t suggestions);
|
||||
|
||||
///
|
||||
// Returns true (1) if the context menu was invoked on an editable node.
|
||||
@@ -291,7 +301,6 @@ typedef struct _cef_context_menu_params_t {
|
||||
int(CEF_CALLBACK* is_pepper_menu)(struct _cef_context_menu_params_t* self);
|
||||
} cef_context_menu_params_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=2f5721138da26a9d7cce300a635b58dae9f51a4a$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_COOKIE_CAPI_H_
|
||||
@@ -60,16 +62,22 @@ typedef struct _cef_cookie_manager_t {
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Set the schemes supported by this manager. The default schemes ("http",
|
||||
// "https", "ws" and "wss") will always be supported. If |callback| is non-
|
||||
// NULL it will be executed asnychronously on the IO thread after the change
|
||||
// has been applied. Must be called before any cookies are accessed.
|
||||
// Set the schemes supported by this manager. If |include_defaults| is true
|
||||
// (1) the default schemes ("http", "https", "ws" and "wss") will also be
|
||||
// supported. Calling this function with an NULL |schemes| value and
|
||||
// |include_defaults| set to false (0) will disable all loading and saving of
|
||||
// cookies for this manager. If |callback| is non-NULL it will be executed
|
||||
// asnychronously on the UI thread after the change has been applied. Must be
|
||||
// called before any cookies are accessed.
|
||||
///
|
||||
void (CEF_CALLBACK *set_supported_schemes)(struct _cef_cookie_manager_t* self,
|
||||
cef_string_list_t schemes, struct _cef_completion_callback_t* callback);
|
||||
void(CEF_CALLBACK* set_supported_schemes)(
|
||||
struct _cef_cookie_manager_t* self,
|
||||
cef_string_list_t schemes,
|
||||
int include_defaults,
|
||||
struct _cef_completion_callback_t* callback);
|
||||
|
||||
///
|
||||
// Visit all cookies on the IO thread. The returned cookies are ordered by
|
||||
// Visit all cookies on the UI thread. The returned cookies are ordered by
|
||||
// longest path, then by earliest creation date. Returns false (0) if cookies
|
||||
// cannot be accessed.
|
||||
///
|
||||
@@ -77,14 +85,15 @@ typedef struct _cef_cookie_manager_t {
|
||||
struct _cef_cookie_visitor_t* visitor);
|
||||
|
||||
///
|
||||
// Visit a subset of cookies on the IO thread. The results are filtered by the
|
||||
// Visit a subset of cookies on the UI thread. The results are filtered by the
|
||||
// given url scheme, host, domain and path. If |includeHttpOnly| is true (1)
|
||||
// HTTP-only cookies will also be included in the results. The returned
|
||||
// cookies are ordered by longest path, then by earliest creation date.
|
||||
// Returns false (0) if cookies cannot be accessed.
|
||||
///
|
||||
int(CEF_CALLBACK* visit_url_cookies)(struct _cef_cookie_manager_t* self,
|
||||
const cef_string_t* url, int includeHttpOnly,
|
||||
const cef_string_t* url,
|
||||
int includeHttpOnly,
|
||||
struct _cef_cookie_visitor_t* visitor);
|
||||
|
||||
///
|
||||
@@ -93,11 +102,12 @@ typedef struct _cef_cookie_manager_t {
|
||||
// check for disallowed characters (e.g. the ';' character is disallowed
|
||||
// within the cookie value attribute) and fail without setting the cookie if
|
||||
// such characters are found. If |callback| is non-NULL it will be executed
|
||||
// asnychronously on the IO thread after the cookie has been set. Returns
|
||||
// asnychronously on the UI thread after the cookie has been set. Returns
|
||||
// false (0) if an invalid URL is specified or if cookies cannot be accessed.
|
||||
///
|
||||
int(CEF_CALLBACK* set_cookie)(struct _cef_cookie_manager_t* self,
|
||||
const cef_string_t* url, const struct _cef_cookie_t* cookie,
|
||||
const cef_string_t* url,
|
||||
const struct _cef_cookie_t* cookie,
|
||||
struct _cef_set_cookie_callback_t* callback);
|
||||
|
||||
///
|
||||
@@ -106,67 +116,40 @@ typedef struct _cef_cookie_manager_t {
|
||||
// both will be deleted. If only |url| is specified all host cookies (but not
|
||||
// domain cookies) irrespective of path will be deleted. If |url| is NULL all
|
||||
// cookies for all hosts and domains will be deleted. If |callback| is non-
|
||||
// NULL it will be executed asnychronously on the IO thread after the cookies
|
||||
// NULL it will be executed asnychronously on the UI thread after the cookies
|
||||
// have been deleted. Returns false (0) if a non-NULL invalid URL is specified
|
||||
// or if cookies cannot be accessed. Cookies can alternately be deleted using
|
||||
// the Visit*Cookies() functions.
|
||||
///
|
||||
int (CEF_CALLBACK *delete_cookies)(struct _cef_cookie_manager_t* self,
|
||||
const cef_string_t* url, const cef_string_t* cookie_name,
|
||||
int(CEF_CALLBACK* delete_cookies)(
|
||||
struct _cef_cookie_manager_t* self,
|
||||
const cef_string_t* url,
|
||||
const cef_string_t* cookie_name,
|
||||
struct _cef_delete_cookies_callback_t* callback);
|
||||
|
||||
///
|
||||
// Sets the directory path that will be used for storing cookie data. If
|
||||
// |path| is NULL data will be stored in memory only. Otherwise, data will be
|
||||
// stored at the specified |path|. To persist session cookies (cookies without
|
||||
// an expiry date or validity interval) set |persist_session_cookies| to true
|
||||
// (1). Session cookies are generally intended to be transient and most Web
|
||||
// browsers do not persist them. If |callback| is non-NULL it will be executed
|
||||
// asnychronously on the IO thread after the manager's storage has been
|
||||
// initialized. Returns false (0) if cookies cannot be accessed.
|
||||
///
|
||||
int (CEF_CALLBACK *set_storage_path)(struct _cef_cookie_manager_t* self,
|
||||
const cef_string_t* path, int persist_session_cookies,
|
||||
struct _cef_completion_callback_t* callback);
|
||||
|
||||
///
|
||||
// Flush the backing store (if any) to disk. If |callback| is non-NULL it will
|
||||
// be executed asnychronously on the IO thread after the flush is complete.
|
||||
// be executed asnychronously on the UI thread after the flush is complete.
|
||||
// Returns false (0) if cookies cannot be accessed.
|
||||
///
|
||||
int(CEF_CALLBACK* flush_store)(struct _cef_cookie_manager_t* self,
|
||||
struct _cef_completion_callback_t* callback);
|
||||
} cef_cookie_manager_t;
|
||||
|
||||
|
||||
///
|
||||
// Returns the global cookie manager. By default data will be stored at
|
||||
// CefSettings.cache_path if specified or in memory otherwise. If |callback| is
|
||||
// non-NULL it will be executed asnychronously on the IO thread after the
|
||||
// non-NULL it will be executed asnychronously on the UI thread after the
|
||||
// manager's storage has been initialized. Using this function is equivalent to
|
||||
// calling cef_request_tContext::cef_request_context_get_global_context()->get_d
|
||||
// efault_cookie_manager().
|
||||
// calling cef_request_context_t::cef_request_context_get_global_context()->GetD
|
||||
// efaultCookieManager().
|
||||
///
|
||||
CEF_EXPORT cef_cookie_manager_t* cef_cookie_manager_get_global_manager(
|
||||
struct _cef_completion_callback_t* callback);
|
||||
|
||||
///
|
||||
// Creates a new cookie manager. If |path| is NULL data will be stored in memory
|
||||
// only. Otherwise, data will be stored at the specified |path|. To persist
|
||||
// session cookies (cookies without an expiry date or validity interval) set
|
||||
// |persist_session_cookies| to true (1). Session cookies are generally intended
|
||||
// to be transient and most Web browsers do not persist them. If |callback| is
|
||||
// non-NULL it will be executed asnychronously on the IO thread after the
|
||||
// manager's storage has been initialized.
|
||||
///
|
||||
CEF_EXPORT cef_cookie_manager_t* cef_cookie_manager_create_manager(
|
||||
const cef_string_t* path, int persist_session_cookies,
|
||||
struct _cef_completion_callback_t* callback);
|
||||
|
||||
|
||||
///
|
||||
// Structure to implement for visiting cookie values. The functions of this
|
||||
// structure will always be called on the IO thread.
|
||||
// structure will always be called on the UI thread.
|
||||
///
|
||||
typedef struct _cef_cookie_visitor_t {
|
||||
///
|
||||
@@ -182,11 +165,12 @@ typedef struct _cef_cookie_visitor_t {
|
||||
// called if no cookies are found.
|
||||
///
|
||||
int(CEF_CALLBACK* visit)(struct _cef_cookie_visitor_t* self,
|
||||
const struct _cef_cookie_t* cookie, int count, int total,
|
||||
const struct _cef_cookie_t* cookie,
|
||||
int count,
|
||||
int total,
|
||||
int* deleteCookie);
|
||||
} cef_cookie_visitor_t;
|
||||
|
||||
|
||||
///
|
||||
// Structure to implement to be notified of asynchronous completion via
|
||||
// cef_cookie_manager_t::set_cookie().
|
||||
@@ -205,7 +189,6 @@ typedef struct _cef_set_cookie_callback_t {
|
||||
int success);
|
||||
} cef_set_cookie_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Structure to implement to be notified of asynchronous completion via
|
||||
// cef_cookie_manager_t::delete_cookies().
|
||||
@@ -218,13 +201,12 @@ typedef struct _cef_delete_cookies_callback_t {
|
||||
|
||||
///
|
||||
// Method that will be called upon completion. |num_deleted| will be the
|
||||
// number of cookies that were deleted or -1 if unknown.
|
||||
// number of cookies that were deleted.
|
||||
///
|
||||
void(CEF_CALLBACK* on_complete)(struct _cef_delete_cookies_callback_t* self,
|
||||
int num_deleted);
|
||||
} cef_delete_cookies_callback_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=2b24c7d99c59c669719b822f5ea19763d140b001$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_CRASH_UTIL_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Crash reporting is configured using an INI-style config file named
|
||||
// "crash_reporter.cfg". On Windows and Linux this file must be placed next to
|
||||
@@ -128,14 +129,12 @@ extern "C" {
|
||||
//
|
||||
// CrashKeys section:
|
||||
//
|
||||
// Any number of crash keys can be specified for use by the application. Crash
|
||||
// key values will be truncated based on the specified size (small = 63 bytes,
|
||||
// medium = 252 bytes, large = 1008 bytes). The value of crash keys can be set
|
||||
// from any thread or process using the CefSetCrashKeyValue function. These
|
||||
// key/value pairs will be sent to the crash server along with the crash dump
|
||||
// file. Medium and large values will be chunked for submission. For example, if
|
||||
// your key is named "mykey" then the value will be broken into ordered chunks
|
||||
// and submitted using keys named "mykey-1", "mykey-2", etc.
|
||||
// A maximum of 26 crash keys of each size can be specified for use by the
|
||||
// application. Crash key values will be truncated based on the specified size
|
||||
// (small = 64 bytes, medium = 256 bytes, large = 1024 bytes). The value of
|
||||
// crash keys can be set from any thread or process using the
|
||||
// CefSetCrashKeyValue function. These key/value pairs will be sent to the crash
|
||||
// server along with the crash dump file.
|
||||
///
|
||||
CEF_EXPORT int cef_crash_reporting_enabled();
|
||||
|
||||
|
147
include/capi/cef_devtools_message_observer_capi.h
Normal file
147
include/capi/cef_devtools_message_observer_capi.h
Normal file
@@ -0,0 +1,147 @@
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool and should not edited
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=86906c2e971fea7e479738f59bbf85d71ce31953$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DEVTOOLS_MESSAGE_OBSERVER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DEVTOOLS_MESSAGE_OBSERVER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _cef_browser_t;
|
||||
|
||||
///
|
||||
// Callback structure for cef_browser_host_t::AddDevToolsMessageObserver. The
|
||||
// functions of this structure will be called on the browser process UI thread.
|
||||
///
|
||||
typedef struct _cef_dev_tools_message_observer_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Method that will be called on receipt of a DevTools protocol message.
|
||||
// |browser| is the originating browser instance. |message| is a UTF8-encoded
|
||||
// JSON dictionary representing either a function result or an event.
|
||||
// |message| is only valid for the scope of this callback and should be copied
|
||||
// if necessary. Return true (1) if the message was handled or false (0) if
|
||||
// the message should be further processed and passed to the
|
||||
// OnDevToolsMethodResult or OnDevToolsEvent functions as appropriate.
|
||||
//
|
||||
// Method result dictionaries include an "id" (int) value that identifies the
|
||||
// orginating function call sent from cef_browser_host_t::SendDevToolsMessage,
|
||||
// and optionally either a "result" (dictionary) or "error" (dictionary)
|
||||
// value. The "error" dictionary will contain "code" (int) and "message"
|
||||
// (string) values. Event dictionaries include a "function" (string) value and
|
||||
// optionally a "params" (dictionary) value. See the DevTools protocol
|
||||
// documentation at https://chromedevtools.github.io/devtools-protocol/ for
|
||||
// details of supported function calls and the expected "result" or "params"
|
||||
// dictionary contents. JSON dictionaries can be parsed using the CefParseJSON
|
||||
// function if desired, however be aware of performance considerations when
|
||||
// parsing large messages (some of which may exceed 1MB in size).
|
||||
///
|
||||
int(CEF_CALLBACK* on_dev_tools_message)(
|
||||
struct _cef_dev_tools_message_observer_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const void* message,
|
||||
size_t message_size);
|
||||
|
||||
///
|
||||
// Method that will be called after attempted execution of a DevTools protocol
|
||||
// function. |browser| is the originating browser instance. |message_id| is
|
||||
// the "id" value that identifies the originating function call message. If
|
||||
// the function succeeded |success| will be true (1) and |result| will be the
|
||||
// UTF8-encoded JSON "result" dictionary value (which may be NULL). If the
|
||||
// function failed |success| will be false (0) and |result| will be the
|
||||
// UTF8-encoded JSON "error" dictionary value. |result| is only valid for the
|
||||
// scope of this callback and should be copied if necessary. See the
|
||||
// OnDevToolsMessage documentation for additional details on |result|
|
||||
// contents.
|
||||
///
|
||||
void(CEF_CALLBACK* on_dev_tools_method_result)(
|
||||
struct _cef_dev_tools_message_observer_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
int message_id,
|
||||
int success,
|
||||
const void* result,
|
||||
size_t result_size);
|
||||
|
||||
///
|
||||
// Method that will be called on receipt of a DevTools protocol event.
|
||||
// |browser| is the originating browser instance. |function| is the "function"
|
||||
// value. |params| is the UTF8-encoded JSON "params" dictionary value (which
|
||||
// may be NULL). |params| is only valid for the scope of this callback and
|
||||
// should be copied if necessary. See the OnDevToolsMessage documentation for
|
||||
// additional details on |params| contents.
|
||||
///
|
||||
void(CEF_CALLBACK* on_dev_tools_event)(
|
||||
struct _cef_dev_tools_message_observer_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* method,
|
||||
const void* params,
|
||||
size_t params_size);
|
||||
|
||||
///
|
||||
// Method that will be called when the DevTools agent has attached. |browser|
|
||||
// is the originating browser instance. This will generally occur in response
|
||||
// to the first message sent while the agent is detached.
|
||||
///
|
||||
void(CEF_CALLBACK* on_dev_tools_agent_attached)(
|
||||
struct _cef_dev_tools_message_observer_t* self,
|
||||
struct _cef_browser_t* browser);
|
||||
|
||||
///
|
||||
// Method that will be called when the DevTools agent has detached. |browser|
|
||||
// is the originating browser instance. Any function results that were pending
|
||||
// before the agent became detached will not be delivered, and any active
|
||||
// event subscriptions will be canceled.
|
||||
///
|
||||
void(CEF_CALLBACK* on_dev_tools_agent_detached)(
|
||||
struct _cef_dev_tools_message_observer_t* self,
|
||||
struct _cef_browser_t* browser);
|
||||
} cef_dev_tools_message_observer_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_DEVTOOLS_MESSAGE_OBSERVER_CAPI_H_
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=3253c217564ae9a85a1e971298c32a35e4cad136$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DIALOG_HANDLER_CAPI_H_
|
||||
@@ -45,7 +47,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Callback structure for asynchronous continuation of file dialog requests.
|
||||
///
|
||||
@@ -63,7 +64,8 @@ typedef struct _cef_file_dialog_callback_t {
|
||||
// value is treated the same as calling cancel().
|
||||
///
|
||||
void(CEF_CALLBACK* cont)(struct _cef_file_dialog_callback_t* self,
|
||||
int selected_accept_filter, cef_string_list_t file_paths);
|
||||
int selected_accept_filter,
|
||||
cef_string_list_t file_paths);
|
||||
|
||||
///
|
||||
// Cancel the file selection.
|
||||
@@ -71,7 +73,6 @@ typedef struct _cef_file_dialog_callback_t {
|
||||
void(CEF_CALLBACK* cancel)(struct _cef_file_dialog_callback_t* self);
|
||||
} cef_file_dialog_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle dialog events. The functions of this
|
||||
// structure will be called on the browser process UI thread.
|
||||
@@ -97,14 +98,17 @@ typedef struct _cef_dialog_handler_t {
|
||||
// return true (1) and execute |callback| either inline or at a later time. To
|
||||
// display the default dialog return false (0).
|
||||
///
|
||||
int (CEF_CALLBACK *on_file_dialog)(struct _cef_dialog_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_file_dialog_mode_t mode,
|
||||
const cef_string_t* title, const cef_string_t* default_file_path,
|
||||
cef_string_list_t accept_filters, int selected_accept_filter,
|
||||
int(CEF_CALLBACK* on_file_dialog)(
|
||||
struct _cef_dialog_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
cef_file_dialog_mode_t mode,
|
||||
const cef_string_t* title,
|
||||
const cef_string_t* default_file_path,
|
||||
cef_string_list_t accept_filters,
|
||||
int selected_accept_filter,
|
||||
struct _cef_file_dialog_callback_t* callback);
|
||||
} cef_dialog_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=eada7e92085d96497f4e69f3e8a7e8aa6746b175$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DISPLAY_HANDLER_CAPI_H_
|
||||
@@ -46,7 +48,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to browser display state.
|
||||
// The functions of this structure will be called on the UI thread.
|
||||
@@ -61,20 +62,23 @@ typedef struct _cef_display_handler_t {
|
||||
// Called when a frame's address has changed.
|
||||
///
|
||||
void(CEF_CALLBACK* on_address_change)(struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
const cef_string_t* url);
|
||||
|
||||
///
|
||||
// Called when the page title changes.
|
||||
///
|
||||
void(CEF_CALLBACK* on_title_change)(struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser, const cef_string_t* title);
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* title);
|
||||
|
||||
///
|
||||
// Called when the page icon changes.
|
||||
///
|
||||
void(CEF_CALLBACK* on_favicon_urlchange)(struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_string_list_t icon_urls);
|
||||
struct _cef_browser_t* browser,
|
||||
cef_string_list_t icon_urls);
|
||||
|
||||
///
|
||||
// Called when web content in the page has toggled fullscreen mode. If
|
||||
@@ -84,7 +88,8 @@ typedef struct _cef_display_handler_t {
|
||||
// responsible for resizing the browser if desired.
|
||||
///
|
||||
void(CEF_CALLBACK* on_fullscreen_mode_change)(
|
||||
struct _cef_display_handler_t* self, struct _cef_browser_t* browser,
|
||||
struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
int fullscreen);
|
||||
|
||||
///
|
||||
@@ -96,24 +101,60 @@ typedef struct _cef_display_handler_t {
|
||||
// for drawing tooltips and the return value is ignored.
|
||||
///
|
||||
int(CEF_CALLBACK* on_tooltip)(struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_string_t* text);
|
||||
struct _cef_browser_t* browser,
|
||||
cef_string_t* text);
|
||||
|
||||
///
|
||||
// Called when the browser receives a status message. |value| contains the
|
||||
// text that will be displayed in the status message.
|
||||
///
|
||||
void(CEF_CALLBACK* on_status_message)(struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser, const cef_string_t* value);
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* value);
|
||||
|
||||
///
|
||||
// Called to display a console message. Return true (1) to stop the message
|
||||
// from being output to the console.
|
||||
///
|
||||
int(CEF_CALLBACK* on_console_message)(struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser, const cef_string_t* message,
|
||||
const cef_string_t* source, int line);
|
||||
} cef_display_handler_t;
|
||||
struct _cef_browser_t* browser,
|
||||
cef_log_severity_t level,
|
||||
const cef_string_t* message,
|
||||
const cef_string_t* source,
|
||||
int line);
|
||||
|
||||
///
|
||||
// Called when auto-resize is enabled via
|
||||
// cef_browser_host_t::SetAutoResizeEnabled and the contents have auto-
|
||||
// resized. |new_size| will be the desired size in view coordinates. Return
|
||||
// true (1) if the resize was handled or false (0) for default handling.
|
||||
///
|
||||
int(CEF_CALLBACK* on_auto_resize)(struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_size_t* new_size);
|
||||
|
||||
///
|
||||
// Called when the overall page loading progress has changed. |progress|
|
||||
// ranges from 0.0 to 1.0.
|
||||
///
|
||||
void(CEF_CALLBACK* on_loading_progress_change)(
|
||||
struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
double progress);
|
||||
|
||||
///
|
||||
// Called when the browser's cursor has changed. If |type| is CT_CUSTOM then
|
||||
// |custom_cursor_info| will be populated with the custom cursor information.
|
||||
// Return true (1) if the cursor change was handled or false (0) for default
|
||||
// handling.
|
||||
///
|
||||
int(CEF_CALLBACK* on_cursor_change)(
|
||||
struct _cef_display_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
cef_cursor_handle_t cursor,
|
||||
cef_cursor_type_t type,
|
||||
const struct _cef_cursor_info_t* custom_cursor_info);
|
||||
} cef_display_handler_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=055c506e7950abba3ec1c12adbbb1a9989cf5ac5$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DOM_CAPI_H_
|
||||
@@ -68,7 +70,6 @@ typedef struct _cef_domvisitor_t {
|
||||
struct _cef_domdocument_t* document);
|
||||
} cef_domvisitor_t;
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent a DOM document. The functions of this structure
|
||||
// should only be called on the render process main thread thread.
|
||||
@@ -114,7 +115,8 @@ typedef struct _cef_domdocument_t {
|
||||
// Returns the document element with the specified ID value.
|
||||
///
|
||||
struct _cef_domnode_t*(CEF_CALLBACK* get_element_by_id)(
|
||||
struct _cef_domdocument_t* self, const cef_string_t* id);
|
||||
struct _cef_domdocument_t* self,
|
||||
const cef_string_t* id);
|
||||
|
||||
///
|
||||
// Returns the node that currently has keyboard focus.
|
||||
@@ -165,10 +167,10 @@ typedef struct _cef_domdocument_t {
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_complete_url)(
|
||||
struct _cef_domdocument_t* self, const cef_string_t* partialURL);
|
||||
struct _cef_domdocument_t* self,
|
||||
const cef_string_t* partialURL);
|
||||
} cef_domdocument_t;
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent a DOM node. The functions of this structure
|
||||
// should only be called on the render process main thread.
|
||||
@@ -252,8 +254,7 @@ typedef struct _cef_domnode_t {
|
||||
///
|
||||
// Returns the parent node.
|
||||
///
|
||||
struct _cef_domnode_t* (CEF_CALLBACK *get_parent)(
|
||||
struct _cef_domnode_t* self);
|
||||
struct _cef_domnode_t*(CEF_CALLBACK* get_parent)(struct _cef_domnode_t* self);
|
||||
|
||||
///
|
||||
// Returns the previous sibling node.
|
||||
@@ -284,7 +285,6 @@ typedef struct _cef_domnode_t {
|
||||
struct _cef_domnode_t*(CEF_CALLBACK* get_last_child)(
|
||||
struct _cef_domnode_t* self);
|
||||
|
||||
|
||||
// The following functions are valid only for element nodes.
|
||||
|
||||
///
|
||||
@@ -310,7 +310,8 @@ typedef struct _cef_domnode_t {
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_element_attribute)(
|
||||
struct _cef_domnode_t* self, const cef_string_t* attrName);
|
||||
struct _cef_domnode_t* self,
|
||||
const cef_string_t* attrName);
|
||||
|
||||
///
|
||||
// Returns a map of all element attributes.
|
||||
@@ -323,7 +324,8 @@ typedef struct _cef_domnode_t {
|
||||
// on success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_element_attribute)(struct _cef_domnode_t* self,
|
||||
const cef_string_t* attrName, const cef_string_t* value);
|
||||
const cef_string_t* attrName,
|
||||
const cef_string_t* value);
|
||||
|
||||
///
|
||||
// Returns the inner text of the element.
|
||||
@@ -338,7 +340,6 @@ typedef struct _cef_domnode_t {
|
||||
cef_rect_t(CEF_CALLBACK* get_element_bounds)(struct _cef_domnode_t* self);
|
||||
} cef_domnode_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=3399f17cc69d8fbd5c09f63f81680aa1f68454f0$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DOWNLOAD_HANDLER_CAPI_H_
|
||||
@@ -46,7 +48,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Callback structure used to asynchronously continue a download.
|
||||
///
|
||||
@@ -63,10 +64,10 @@ typedef struct _cef_before_download_callback_t {
|
||||
// (1) if you do wish to show the default "Save As" dialog.
|
||||
///
|
||||
void(CEF_CALLBACK* cont)(struct _cef_before_download_callback_t* self,
|
||||
const cef_string_t* download_path, int show_dialog);
|
||||
const cef_string_t* download_path,
|
||||
int show_dialog);
|
||||
} cef_before_download_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Callback structure used to asynchronously cancel a download.
|
||||
///
|
||||
@@ -92,7 +93,6 @@ typedef struct _cef_download_item_callback_t {
|
||||
void(CEF_CALLBACK* resume)(struct _cef_download_item_callback_t* self);
|
||||
} cef_download_item_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Structure used to handle file downloads. The functions of this structure will
|
||||
// called on the browser process UI thread.
|
||||
@@ -110,7 +110,8 @@ typedef struct _cef_download_handler_t {
|
||||
// download if desired. Do not keep a reference to |download_item| outside of
|
||||
// this function.
|
||||
///
|
||||
void (CEF_CALLBACK *on_before_download)(struct _cef_download_handler_t* self,
|
||||
void(CEF_CALLBACK* on_before_download)(
|
||||
struct _cef_download_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_download_item_t* download_item,
|
||||
const cef_string_t* suggested_name,
|
||||
@@ -123,13 +124,13 @@ typedef struct _cef_download_handler_t {
|
||||
// download if desired. Do not keep a reference to |download_item| outside of
|
||||
// this function.
|
||||
///
|
||||
void (CEF_CALLBACK *on_download_updated)(struct _cef_download_handler_t* self,
|
||||
void(CEF_CALLBACK* on_download_updated)(
|
||||
struct _cef_download_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_download_item_t* download_item,
|
||||
struct _cef_download_item_callback_t* callback);
|
||||
} cef_download_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=d6366977af5e2a3a71b4f57042208ff7ed524c6c$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DOWNLOAD_ITEM_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent a download item.
|
||||
///
|
||||
@@ -154,7 +155,6 @@ typedef struct _cef_download_item_t {
|
||||
struct _cef_download_item_t* self);
|
||||
} cef_download_item_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,19 +33,21 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=6c8c654be3e69d872b3cfa6bdfb1adf615bff3ac$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DRAG_DATA_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_image_capi.h"
|
||||
#include "include/capi/cef_stream_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent drag data. The functions of this structure may be
|
||||
// called on any thread.
|
||||
@@ -194,16 +196,31 @@ typedef struct _cef_drag_data_t {
|
||||
// Add a file that is being dragged into the webview.
|
||||
///
|
||||
void(CEF_CALLBACK* add_file)(struct _cef_drag_data_t* self,
|
||||
const cef_string_t* path, const cef_string_t* display_name);
|
||||
} cef_drag_data_t;
|
||||
const cef_string_t* path,
|
||||
const cef_string_t* display_name);
|
||||
|
||||
///
|
||||
// Get the image representation of drag data. May return NULL if no image
|
||||
// representation is available.
|
||||
///
|
||||
struct _cef_image_t*(CEF_CALLBACK* get_image)(struct _cef_drag_data_t* self);
|
||||
|
||||
///
|
||||
// Get the image hotspot (drag start location relative to image dimensions).
|
||||
///
|
||||
cef_point_t(CEF_CALLBACK* get_image_hotspot)(struct _cef_drag_data_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if an image representation of drag data is available.
|
||||
///
|
||||
int(CEF_CALLBACK* has_image)(struct _cef_drag_data_t* self);
|
||||
} cef_drag_data_t;
|
||||
|
||||
///
|
||||
// Create a new cef_drag_data_t object.
|
||||
///
|
||||
CEF_EXPORT cef_drag_data_t* cef_drag_data_create();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=78022908355fbf836799545e67ce2e4663b85fdf$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_DRAG_HANDLER_CAPI_H_
|
||||
@@ -41,12 +43,12 @@
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_browser_capi.h"
|
||||
#include "include/capi/cef_drag_data_capi.h"
|
||||
#include "include/capi/cef_frame_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to dragging. The functions
|
||||
// of this structure will be called on the UI thread.
|
||||
@@ -64,7 +66,8 @@ typedef struct _cef_drag_handler_t {
|
||||
// to cancel the drag event.
|
||||
///
|
||||
int(CEF_CALLBACK* on_drag_enter)(struct _cef_drag_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_drag_data_t* dragData,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_drag_data_t* dragData,
|
||||
cef_drag_operations_mask_t mask);
|
||||
|
||||
///
|
||||
@@ -75,11 +78,13 @@ typedef struct _cef_drag_handler_t {
|
||||
// this function will be called with an NULL vector.
|
||||
///
|
||||
void(CEF_CALLBACK* on_draggable_regions_changed)(
|
||||
struct _cef_drag_handler_t* self, struct _cef_browser_t* browser,
|
||||
size_t regionsCount, cef_draggable_region_t const* regions);
|
||||
struct _cef_drag_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
size_t regionsCount,
|
||||
cef_draggable_region_t const* regions);
|
||||
} cef_drag_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
130
include/capi/cef_extension_capi.h
Normal file
130
include/capi/cef_extension_capi.h
Normal file
@@ -0,0 +1,130 @@
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool and should not edited
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=b50087959cb679e4132f0fccfd23f01f76079018$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_values_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _cef_extension_handler_t;
|
||||
struct _cef_request_context_t;
|
||||
|
||||
///
|
||||
// Object representing an extension. Methods may be called on any thread unless
|
||||
// otherwise indicated.
|
||||
///
|
||||
typedef struct _cef_extension_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Returns the unique extension identifier. This is calculated based on the
|
||||
// extension public key, if available, or on the extension path. See
|
||||
// https://developer.chrome.com/extensions/manifest/key for details.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_identifier)(
|
||||
struct _cef_extension_t* self);
|
||||
|
||||
///
|
||||
// Returns the absolute path to the extension directory on disk. This value
|
||||
// will be prefixed with PK_DIR_RESOURCES if a relative path was passed to
|
||||
// cef_request_context_t::LoadExtension.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_path)(struct _cef_extension_t* self);
|
||||
|
||||
///
|
||||
// Returns the extension manifest contents as a cef_dictionary_value_t object.
|
||||
// See https://developer.chrome.com/extensions/manifest for details.
|
||||
///
|
||||
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_manifest)(
|
||||
struct _cef_extension_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if this object is the same extension as |that| object.
|
||||
// Extensions are considered the same if identifier, path and loader context
|
||||
// match.
|
||||
///
|
||||
int(CEF_CALLBACK* is_same)(struct _cef_extension_t* self,
|
||||
struct _cef_extension_t* that);
|
||||
|
||||
///
|
||||
// Returns the handler for this extension. Will return NULL for internal
|
||||
// extensions or if no handler was passed to
|
||||
// cef_request_context_t::LoadExtension.
|
||||
///
|
||||
struct _cef_extension_handler_t*(CEF_CALLBACK* get_handler)(
|
||||
struct _cef_extension_t* self);
|
||||
|
||||
///
|
||||
// Returns the request context that loaded this extension. Will return NULL
|
||||
// for internal extensions or if the extension has been unloaded. See the
|
||||
// cef_request_context_t::LoadExtension documentation for more information
|
||||
// about loader contexts. Must be called on the browser process UI thread.
|
||||
///
|
||||
struct _cef_request_context_t*(CEF_CALLBACK* get_loader_context)(
|
||||
struct _cef_extension_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if this extension is currently loaded. Must be called on
|
||||
// the browser process UI thread.
|
||||
///
|
||||
int(CEF_CALLBACK* is_loaded)(struct _cef_extension_t* self);
|
||||
|
||||
///
|
||||
// Unload this extension if it is not an internal extension and is currently
|
||||
// loaded. Will result in a call to
|
||||
// cef_extension_handler_t::OnExtensionUnloaded on success.
|
||||
///
|
||||
void(CEF_CALLBACK* unload)(struct _cef_extension_t* self);
|
||||
} cef_extension_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_EXTENSION_CAPI_H_
|
210
include/capi/cef_extension_handler_capi.h
Normal file
210
include/capi/cef_extension_handler_capi.h
Normal file
@@ -0,0 +1,210 @@
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool and should not edited
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=a13b5b607d5a2108fac5fe75f5ebd2ede7eaef6a$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_browser_capi.h"
|
||||
#include "include/capi/cef_extension_capi.h"
|
||||
#include "include/capi/cef_stream_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _cef_client_t;
|
||||
|
||||
///
|
||||
// Callback structure used for asynchronous continuation of
|
||||
// cef_extension_handler_t::GetExtensionResource.
|
||||
///
|
||||
typedef struct _cef_get_extension_resource_callback_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Continue the request. Read the resource contents from |stream|.
|
||||
///
|
||||
void(CEF_CALLBACK* cont)(struct _cef_get_extension_resource_callback_t* self,
|
||||
struct _cef_stream_reader_t* stream);
|
||||
|
||||
///
|
||||
// Cancel the request.
|
||||
///
|
||||
void(CEF_CALLBACK* cancel)(
|
||||
struct _cef_get_extension_resource_callback_t* self);
|
||||
} cef_get_extension_resource_callback_t;
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to browser extensions. The
|
||||
// functions of this structure will be called on the UI thread. See
|
||||
// cef_request_context_t::LoadExtension for information about extension loading.
|
||||
///
|
||||
typedef struct _cef_extension_handler_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called if the cef_request_context_t::LoadExtension request fails. |result|
|
||||
// will be the error code.
|
||||
///
|
||||
void(CEF_CALLBACK* on_extension_load_failed)(
|
||||
struct _cef_extension_handler_t* self,
|
||||
cef_errorcode_t result);
|
||||
|
||||
///
|
||||
// Called if the cef_request_context_t::LoadExtension request succeeds.
|
||||
// |extension| is the loaded extension.
|
||||
///
|
||||
void(CEF_CALLBACK* on_extension_loaded)(struct _cef_extension_handler_t* self,
|
||||
struct _cef_extension_t* extension);
|
||||
|
||||
///
|
||||
// Called after the cef_extension_t::Unload request has completed.
|
||||
///
|
||||
void(CEF_CALLBACK* on_extension_unloaded)(
|
||||
struct _cef_extension_handler_t* self,
|
||||
struct _cef_extension_t* extension);
|
||||
|
||||
///
|
||||
// Called when an extension needs a browser to host a background script
|
||||
// specified via the "background" manifest key. The browser will have no
|
||||
// visible window and cannot be displayed. |extension| is the extension that
|
||||
// is loading the background script. |url| is an internally generated
|
||||
// reference to an HTML page that will be used to load the background script
|
||||
// via a <script> src attribute. To allow creation of the browser optionally
|
||||
// modify |client| and |settings| and return false (0). To cancel creation of
|
||||
// the browser (and consequently cancel load of the background script) return
|
||||
// true (1). Successful creation will be indicated by a call to
|
||||
// cef_life_span_handler_t::OnAfterCreated, and
|
||||
// cef_browser_host_t::IsBackgroundHost will return true (1) for the resulting
|
||||
// browser. See https://developer.chrome.com/extensions/event_pages for more
|
||||
// information about extension background script usage.
|
||||
///
|
||||
int(CEF_CALLBACK* on_before_background_browser)(
|
||||
struct _cef_extension_handler_t* self,
|
||||
struct _cef_extension_t* extension,
|
||||
const cef_string_t* url,
|
||||
struct _cef_client_t** client,
|
||||
struct _cef_browser_settings_t* settings);
|
||||
|
||||
///
|
||||
// Called when an extension API (e.g. chrome.tabs.create) requests creation of
|
||||
// a new browser. |extension| and |browser| are the source of the API call.
|
||||
// |active_browser| may optionally be specified via the windowId property or
|
||||
// returned via the get_active_browser() callback and provides the default
|
||||
// |client| and |settings| values for the new browser. |index| is the position
|
||||
// value optionally specified via the index property. |url| is the URL that
|
||||
// will be loaded in the browser. |active| is true (1) if the new browser
|
||||
// should be active when opened. To allow creation of the browser optionally
|
||||
// modify |windowInfo|, |client| and |settings| and return false (0). To
|
||||
// cancel creation of the browser return true (1). Successful creation will be
|
||||
// indicated by a call to cef_life_span_handler_t::OnAfterCreated. Any
|
||||
// modifications to |windowInfo| will be ignored if |active_browser| is
|
||||
// wrapped in a cef_browser_view_t.
|
||||
///
|
||||
int(CEF_CALLBACK* on_before_browser)(
|
||||
struct _cef_extension_handler_t* self,
|
||||
struct _cef_extension_t* extension,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_browser_t* active_browser,
|
||||
int index,
|
||||
const cef_string_t* url,
|
||||
int active,
|
||||
struct _cef_window_info_t* windowInfo,
|
||||
struct _cef_client_t** client,
|
||||
struct _cef_browser_settings_t* settings);
|
||||
|
||||
///
|
||||
// Called when no tabId is specified to an extension API call that accepts a
|
||||
// tabId parameter (e.g. chrome.tabs.*). |extension| and |browser| are the
|
||||
// source of the API call. Return the browser that will be acted on by the API
|
||||
// call or return NULL to act on |browser|. The returned browser must share
|
||||
// the same cef_request_context_t as |browser|. Incognito browsers should not
|
||||
// be considered unless the source extension has incognito access enabled, in
|
||||
// which case |include_incognito| will be true (1).
|
||||
///
|
||||
struct _cef_browser_t*(CEF_CALLBACK* get_active_browser)(
|
||||
struct _cef_extension_handler_t* self,
|
||||
struct _cef_extension_t* extension,
|
||||
struct _cef_browser_t* browser,
|
||||
int include_incognito);
|
||||
|
||||
///
|
||||
// Called when the tabId associated with |target_browser| is specified to an
|
||||
// extension API call that accepts a tabId parameter (e.g. chrome.tabs.*).
|
||||
// |extension| and |browser| are the source of the API call. Return true (1)
|
||||
// to allow access of false (0) to deny access. Access to incognito browsers
|
||||
// should not be allowed unless the source extension has incognito access
|
||||
// enabled, in which case |include_incognito| will be true (1).
|
||||
///
|
||||
int(CEF_CALLBACK* can_access_browser)(struct _cef_extension_handler_t* self,
|
||||
struct _cef_extension_t* extension,
|
||||
struct _cef_browser_t* browser,
|
||||
int include_incognito,
|
||||
struct _cef_browser_t* target_browser);
|
||||
|
||||
///
|
||||
// Called to retrieve an extension resource that would normally be loaded from
|
||||
// disk (e.g. if a file parameter is specified to chrome.tabs.executeScript).
|
||||
// |extension| and |browser| are the source of the resource request. |file| is
|
||||
// the requested relative file path. To handle the resource request return
|
||||
// true (1) and execute |callback| either synchronously or asynchronously. For
|
||||
// the default behavior which reads the resource from the extension directory
|
||||
// on disk return false (0). Localization substitutions will not be applied to
|
||||
// resources handled via this function.
|
||||
///
|
||||
int(CEF_CALLBACK* get_extension_resource)(
|
||||
struct _cef_extension_handler_t* self,
|
||||
struct _cef_extension_t* extension,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* file,
|
||||
struct _cef_get_extension_resource_callback_t* callback);
|
||||
} cef_extension_handler_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_EXTENSION_HANDLER_CAPI_H_
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=c930140791b9e7d4238110e24fe17b9566a34ec9$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Creates a directory and all parent directories if they don't already exist.
|
||||
// Returns true (1) on successful creation or if the directory already exists.
|
||||
@@ -82,7 +83,8 @@ CEF_EXPORT int cef_create_new_temp_directory(const cef_string_t* prefix,
|
||||
// or IO threads is not allowed.
|
||||
///
|
||||
CEF_EXPORT int cef_create_temp_directory_in_directory(
|
||||
const cef_string_t* base_dir, const cef_string_t* prefix,
|
||||
const cef_string_t* base_dir,
|
||||
const cef_string_t* prefix,
|
||||
cef_string_t* new_dir);
|
||||
|
||||
///
|
||||
@@ -109,7 +111,18 @@ CEF_EXPORT int cef_delete_file(const cef_string_t* path, int recursive);
|
||||
// or IO threads is not allowed.
|
||||
///
|
||||
CEF_EXPORT int cef_zip_directory(const cef_string_t* src_dir,
|
||||
const cef_string_t* dest_file, int include_hidden_files);
|
||||
const cef_string_t* dest_file,
|
||||
int include_hidden_files);
|
||||
|
||||
///
|
||||
// Loads the existing "Certificate Revocation Lists" file that is managed by
|
||||
// Google Chrome. This file can generally be found in Chrome's User Data
|
||||
// directory (e.g. "C:\Users\[User]\AppData\Local\Google\Chrome\User Data\" on
|
||||
// Windows) and is updated periodically by Chrome's component updater service.
|
||||
// Must be called in the browser process after the context has been initialized.
|
||||
// See https://dev.chromium.org/Home/chromium-security/crlsets for background.
|
||||
///
|
||||
CEF_EXPORT void cef_load_crlsets_file(const cef_string_t* path);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=2aa57426a91e10985a5e92830bc3bcd9287708d4$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_FIND_HANDLER_CAPI_H_
|
||||
@@ -45,7 +47,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to find results. The
|
||||
// functions of this structure will be called on the UI thread.
|
||||
@@ -65,12 +66,14 @@ typedef struct _cef_find_handler_t {
|
||||
// this is the last find notification.
|
||||
///
|
||||
void(CEF_CALLBACK* on_find_result)(struct _cef_find_handler_t* self,
|
||||
struct _cef_browser_t* browser, int identifier, int count,
|
||||
const cef_rect_t* selectionRect, int activeMatchOrdinal,
|
||||
struct _cef_browser_t* browser,
|
||||
int identifier,
|
||||
int count,
|
||||
const cef_rect_t* selectionRect,
|
||||
int activeMatchOrdinal,
|
||||
int finalUpdate);
|
||||
} cef_find_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=091dd994f37070e9d7c27d0e2f7411ea9cf068f5$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_FOCUS_HANDLER_CAPI_H_
|
||||
@@ -47,7 +49,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to focus. The functions of
|
||||
// this structure will be called on the UI thread.
|
||||
@@ -65,7 +66,8 @@ typedef struct _cef_focus_handler_t {
|
||||
// false (0) if the browser is giving focus to the previous component.
|
||||
///
|
||||
void(CEF_CALLBACK* on_take_focus)(struct _cef_focus_handler_t* self,
|
||||
struct _cef_browser_t* browser, int next);
|
||||
struct _cef_browser_t* browser,
|
||||
int next);
|
||||
|
||||
///
|
||||
// Called when the browser component is requesting focus. |source| indicates
|
||||
@@ -73,7 +75,8 @@ typedef struct _cef_focus_handler_t {
|
||||
// focus to be set or true (1) to cancel setting the focus.
|
||||
///
|
||||
int(CEF_CALLBACK* on_set_focus)(struct _cef_focus_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_focus_source_t source);
|
||||
struct _cef_browser_t* browser,
|
||||
cef_focus_source_t source);
|
||||
|
||||
///
|
||||
// Called when the browser component has received focus.
|
||||
@@ -82,7 +85,6 @@ typedef struct _cef_focus_handler_t {
|
||||
struct _cef_browser_t* browser);
|
||||
} cef_focus_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=d8f114b44d02d96b5da0ec399c99091b9ceb6871$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_FRAME_CAPI_H_
|
||||
@@ -40,6 +42,7 @@
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_dom_capi.h"
|
||||
#include "include/capi/cef_process_message_capi.h"
|
||||
#include "include/capi/cef_request_capi.h"
|
||||
#include "include/capi/cef_stream_capi.h"
|
||||
#include "include/capi/cef_string_visitor_capi.h"
|
||||
@@ -49,6 +52,8 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
struct _cef_browser_t;
|
||||
struct _cef_urlrequest_client_t;
|
||||
struct _cef_urlrequest_t;
|
||||
struct _cef_v8context_t;
|
||||
|
||||
///
|
||||
@@ -126,6 +131,10 @@ typedef struct _cef_frame_t {
|
||||
|
||||
///
|
||||
// Load the request represented by the |request| object.
|
||||
//
|
||||
// WARNING: This function will fail with "bad IPC message" reason
|
||||
// INVALID_INITIATOR_ORIGIN (213) unless you first navigate to the request
|
||||
// origin using some other mechanism (LoadURL, link click, etc).
|
||||
///
|
||||
void(CEF_CALLBACK* load_request)(struct _cef_frame_t* self,
|
||||
struct _cef_request_t* request);
|
||||
@@ -136,14 +145,6 @@ typedef struct _cef_frame_t {
|
||||
void(CEF_CALLBACK* load_url)(struct _cef_frame_t* self,
|
||||
const cef_string_t* url);
|
||||
|
||||
///
|
||||
// Load the contents of |string_val| with the specified dummy |url|. |url|
|
||||
// should have a standard scheme (for example, http scheme) or behaviors like
|
||||
// link clicks and web security restrictions may not behave as expected.
|
||||
///
|
||||
void (CEF_CALLBACK *load_string)(struct _cef_frame_t* self,
|
||||
const cef_string_t* string_val, const cef_string_t* url);
|
||||
|
||||
///
|
||||
// Execute a string of JavaScript code in this frame. The |script_url|
|
||||
// parameter is the URL where the script in question can be found, if any. The
|
||||
@@ -152,7 +153,8 @@ typedef struct _cef_frame_t {
|
||||
// reporting.
|
||||
///
|
||||
void(CEF_CALLBACK* execute_java_script)(struct _cef_frame_t* self,
|
||||
const cef_string_t* code, const cef_string_t* script_url,
|
||||
const cef_string_t* code,
|
||||
const cef_string_t* script_url,
|
||||
int start_line);
|
||||
|
||||
///
|
||||
@@ -211,8 +213,45 @@ typedef struct _cef_frame_t {
|
||||
///
|
||||
void(CEF_CALLBACK* visit_dom)(struct _cef_frame_t* self,
|
||||
struct _cef_domvisitor_t* visitor);
|
||||
} cef_frame_t;
|
||||
|
||||
///
|
||||
// Create a new URL request that will be treated as originating from this
|
||||
// frame and the associated browser. This request may be intercepted by the
|
||||
// client via cef_resource_request_handler_t or cef_scheme_handler_factory_t.
|
||||
// Use cef_urlrequest_t::Create instead if you do not want the request to have
|
||||
// this association, in which case it may be handled differently (see
|
||||
// documentation on that function). Requests may originate from both the
|
||||
// browser process and the render process.
|
||||
//
|
||||
// For requests originating from the browser process:
|
||||
// - POST data may only contain a single element of type PDE_TYPE_FILE or
|
||||
// PDE_TYPE_BYTES.
|
||||
// For requests originating from the render process:
|
||||
// - POST data may only contain a single element of type PDE_TYPE_BYTES.
|
||||
// - If the response contains Content-Disposition or Mime-Type header values
|
||||
// that would not normally be rendered then the response may receive
|
||||
// special handling inside the browser (for example, via the file download
|
||||
// code path instead of the URL request code path).
|
||||
//
|
||||
// The |request| object will be marked as read-only after calling this
|
||||
// function.
|
||||
///
|
||||
struct _cef_urlrequest_t*(CEF_CALLBACK* create_urlrequest)(
|
||||
struct _cef_frame_t* self,
|
||||
struct _cef_request_t* request,
|
||||
struct _cef_urlrequest_client_t* client);
|
||||
|
||||
///
|
||||
// Send a message to the specified |target_process|. Message delivery is not
|
||||
// guaranteed in all cases (for example, if the browser is closing,
|
||||
// navigating, or if the target process crashes). Send an ACK message back
|
||||
// from the target process if confirmation is required.
|
||||
///
|
||||
void(CEF_CALLBACK* send_process_message)(
|
||||
struct _cef_frame_t* self,
|
||||
cef_process_id_t target_process,
|
||||
struct _cef_process_message_t* message);
|
||||
} cef_frame_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=5afa8e95e6e7bddbd3c442e99b4c2843efb18c49$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_IMAGE_CAPI_H_
|
||||
@@ -45,14 +47,13 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Container for a single image represented at different scale factors. All
|
||||
// image representations should be the same size in density independent pixel
|
||||
// (DIP) units. For example, if the image at scale factor 1.0 is 100x100 pixels
|
||||
// then the image at scale factor 2.0 should be 200x200 pixels -- both images
|
||||
// will display with a DIP size of 100x100 units. The functions of this
|
||||
// structure must be called on the browser process UI thread.
|
||||
// structure can be called on any browser process thread.
|
||||
///
|
||||
typedef struct _cef_image_t {
|
||||
///
|
||||
@@ -79,9 +80,13 @@ typedef struct _cef_image_t {
|
||||
// pixel data and should be |pixel_width| x |pixel_height| x 4 bytes in size.
|
||||
// |color_type| and |alpha_type| values specify the pixel format.
|
||||
///
|
||||
int (CEF_CALLBACK *add_bitmap)(struct _cef_image_t* self, float scale_factor,
|
||||
int pixel_width, int pixel_height, cef_color_type_t color_type,
|
||||
cef_alpha_type_t alpha_type, const void* pixel_data,
|
||||
int(CEF_CALLBACK* add_bitmap)(struct _cef_image_t* self,
|
||||
float scale_factor,
|
||||
int pixel_width,
|
||||
int pixel_height,
|
||||
cef_color_type_t color_type,
|
||||
cef_alpha_type_t alpha_type,
|
||||
const void* pixel_data,
|
||||
size_t pixel_data_size);
|
||||
|
||||
///
|
||||
@@ -89,16 +94,20 @@ typedef struct _cef_image_t {
|
||||
// data of size |png_data_size|. Any alpha transparency in the PNG data will
|
||||
// be maintained.
|
||||
///
|
||||
int (CEF_CALLBACK *add_png)(struct _cef_image_t* self, float scale_factor,
|
||||
const void* png_data, size_t png_data_size);
|
||||
int(CEF_CALLBACK* add_png)(struct _cef_image_t* self,
|
||||
float scale_factor,
|
||||
const void* png_data,
|
||||
size_t png_data_size);
|
||||
|
||||
///
|
||||
// Create a JPEG image representation for |scale_factor|. |jpeg_data| is the
|
||||
// image data of size |jpeg_data_size|. The JPEG format does not support
|
||||
// transparency so the alpha byte will be set to 0xFF for all pixels.
|
||||
///
|
||||
int (CEF_CALLBACK *add_jpeg)(struct _cef_image_t* self, float scale_factor,
|
||||
const void* jpeg_data, size_t jpeg_data_size);
|
||||
int(CEF_CALLBACK* add_jpeg)(struct _cef_image_t* self,
|
||||
float scale_factor,
|
||||
const void* jpeg_data,
|
||||
size_t jpeg_data_size);
|
||||
|
||||
///
|
||||
// Returns the image width in density independent pixel (DIP) units.
|
||||
@@ -130,7 +139,9 @@ typedef struct _cef_image_t {
|
||||
// size in pixel coordinates. Returns true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* get_representation_info)(struct _cef_image_t* self,
|
||||
float scale_factor, float* actual_scale_factor, int* pixel_width,
|
||||
float scale_factor,
|
||||
float* actual_scale_factor,
|
||||
int* pixel_width,
|
||||
int* pixel_height);
|
||||
|
||||
///
|
||||
@@ -142,9 +153,12 @@ typedef struct _cef_image_t {
|
||||
// on failure.
|
||||
///
|
||||
struct _cef_binary_value_t*(CEF_CALLBACK* get_as_bitmap)(
|
||||
struct _cef_image_t* self, float scale_factor,
|
||||
cef_color_type_t color_type, cef_alpha_type_t alpha_type,
|
||||
int* pixel_width, int* pixel_height);
|
||||
struct _cef_image_t* self,
|
||||
float scale_factor,
|
||||
cef_color_type_t color_type,
|
||||
cef_alpha_type_t alpha_type,
|
||||
int* pixel_width,
|
||||
int* pixel_height);
|
||||
|
||||
///
|
||||
// Returns the PNG representation that most closely matches |scale_factor|. If
|
||||
@@ -155,8 +169,11 @@ typedef struct _cef_image_t {
|
||||
// failure.
|
||||
///
|
||||
struct _cef_binary_value_t*(CEF_CALLBACK* get_as_png)(
|
||||
struct _cef_image_t* self, float scale_factor, int with_transparency,
|
||||
int* pixel_width, int* pixel_height);
|
||||
struct _cef_image_t* self,
|
||||
float scale_factor,
|
||||
int with_transparency,
|
||||
int* pixel_width,
|
||||
int* pixel_height);
|
||||
|
||||
///
|
||||
// Returns the JPEG representation that most closely matches |scale_factor|.
|
||||
@@ -168,18 +185,19 @@ typedef struct _cef_image_t {
|
||||
// failure.
|
||||
///
|
||||
struct _cef_binary_value_t*(CEF_CALLBACK* get_as_jpeg)(
|
||||
struct _cef_image_t* self, float scale_factor, int quality,
|
||||
int* pixel_width, int* pixel_height);
|
||||
struct _cef_image_t* self,
|
||||
float scale_factor,
|
||||
int quality,
|
||||
int* pixel_width,
|
||||
int* pixel_height);
|
||||
} cef_image_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new cef_image_t. It will initially be NULL. Use the Add*() functions
|
||||
// to add representations at different scale factors.
|
||||
///
|
||||
CEF_EXPORT cef_image_t* cef_image_create();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=e68da1a5db612699b7b727edea2bb629f5d67103$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_JSDIALOG_HANDLER_CAPI_H_
|
||||
@@ -45,7 +47,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Callback structure used for asynchronous continuation of JavaScript dialog
|
||||
// requests.
|
||||
@@ -60,11 +61,11 @@ typedef struct _cef_jsdialog_callback_t {
|
||||
// Continue the JS dialog request. Set |success| to true (1) if the OK button
|
||||
// was pressed. The |user_input| value should be specified for prompt dialogs.
|
||||
///
|
||||
void (CEF_CALLBACK *cont)(struct _cef_jsdialog_callback_t* self, int success,
|
||||
void(CEF_CALLBACK* cont)(struct _cef_jsdialog_callback_t* self,
|
||||
int success,
|
||||
const cef_string_t* user_input);
|
||||
} cef_jsdialog_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to JavaScript dialogs. The
|
||||
// functions of this structure will be called on the UI thread.
|
||||
@@ -93,10 +94,13 @@ typedef struct _cef_jsdialog_handler_t {
|
||||
// dismissed.
|
||||
///
|
||||
int(CEF_CALLBACK* on_jsdialog)(struct _cef_jsdialog_handler_t* self,
|
||||
struct _cef_browser_t* browser, const cef_string_t* origin_url,
|
||||
cef_jsdialog_type_t dialog_type, const cef_string_t* message_text,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* origin_url,
|
||||
cef_jsdialog_type_t dialog_type,
|
||||
const cef_string_t* message_text,
|
||||
const cef_string_t* default_prompt_text,
|
||||
struct _cef_jsdialog_callback_t* callback, int* suppress_message);
|
||||
struct _cef_jsdialog_callback_t* callback,
|
||||
int* suppress_message);
|
||||
|
||||
///
|
||||
// Called to run a dialog asking the user if they want to leave a page. Return
|
||||
@@ -107,8 +111,10 @@ typedef struct _cef_jsdialog_handler_t {
|
||||
// dialog is dismissed.
|
||||
///
|
||||
int(CEF_CALLBACK* on_before_unload_dialog)(
|
||||
struct _cef_jsdialog_handler_t* self, struct _cef_browser_t* browser,
|
||||
const cef_string_t* message_text, int is_reload,
|
||||
struct _cef_jsdialog_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* message_text,
|
||||
int is_reload,
|
||||
struct _cef_jsdialog_callback_t* callback);
|
||||
|
||||
///
|
||||
@@ -117,7 +123,8 @@ typedef struct _cef_jsdialog_handler_t {
|
||||
// dialogs are currently pending.
|
||||
///
|
||||
void(CEF_CALLBACK* on_reset_dialog_state)(
|
||||
struct _cef_jsdialog_handler_t* self, struct _cef_browser_t* browser);
|
||||
struct _cef_jsdialog_handler_t* self,
|
||||
struct _cef_browser_t* browser);
|
||||
|
||||
///
|
||||
// Called when the default implementation dialog is closed.
|
||||
@@ -126,7 +133,6 @@ typedef struct _cef_jsdialog_handler_t {
|
||||
struct _cef_browser_t* browser);
|
||||
} cef_jsdialog_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=70108de432674485dee079e541e0dacd6a437961$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_KEYBOARD_HANDLER_CAPI_H_
|
||||
@@ -45,7 +47,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to keyboard input. The
|
||||
// functions of this structure will be called on the UI thread.
|
||||
@@ -64,8 +65,10 @@ typedef struct _cef_keyboard_handler_t {
|
||||
// shortcut set |is_keyboard_shortcut| to true (1) and return false (0).
|
||||
///
|
||||
int(CEF_CALLBACK* on_pre_key_event)(struct _cef_keyboard_handler_t* self,
|
||||
struct _cef_browser_t* browser, const struct _cef_key_event_t* event,
|
||||
cef_event_handle_t os_event, int* is_keyboard_shortcut);
|
||||
struct _cef_browser_t* browser,
|
||||
const struct _cef_key_event_t* event,
|
||||
cef_event_handle_t os_event,
|
||||
int* is_keyboard_shortcut);
|
||||
|
||||
///
|
||||
// Called after the renderer and JavaScript in the page has had a chance to
|
||||
@@ -74,11 +77,11 @@ typedef struct _cef_keyboard_handler_t {
|
||||
// if the keyboard event was handled or false (0) otherwise.
|
||||
///
|
||||
int(CEF_CALLBACK* on_key_event)(struct _cef_keyboard_handler_t* self,
|
||||
struct _cef_browser_t* browser, const struct _cef_key_event_t* event,
|
||||
struct _cef_browser_t* browser,
|
||||
const struct _cef_key_event_t* event,
|
||||
cef_event_handle_t os_event);
|
||||
} cef_keyboard_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=d6e91d55d41f729dca94ba5766f57849f29d0796$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_LIFE_SPAN_HANDLER_CAPI_H_
|
||||
@@ -59,7 +61,7 @@ typedef struct _cef_life_span_handler_t {
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called on the IO thread before a new popup browser is created. The
|
||||
// Called on the UI thread before a new popup browser is created. The
|
||||
// |browser| and |frame| values represent the source of the popup request. The
|
||||
// |target_url| and |target_frame_name| values indicate where the popup
|
||||
// browser should navigate and may be NULL if not specified with the request.
|
||||
@@ -76,15 +78,27 @@ typedef struct _cef_life_span_handler_t {
|
||||
// is set to false (0) the new browser will not be scriptable and may not be
|
||||
// hosted in the same renderer process as the source browser. Any
|
||||
// modifications to |windowInfo| will be ignored if the parent browser is
|
||||
// wrapped in a cef_browser_view_t.
|
||||
// wrapped in a cef_browser_view_t. Popup browser creation will be canceled if
|
||||
// the parent browser is destroyed before the popup browser creation completes
|
||||
// (indicated by a call to OnAfterCreated for the popup browser). The
|
||||
// |extra_info| parameter provides an opportunity to specify extra information
|
||||
// specific to the created popup browser that will be passed to
|
||||
// cef_render_process_handler_t::on_browser_created() in the render process.
|
||||
///
|
||||
int (CEF_CALLBACK *on_before_popup)(struct _cef_life_span_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
const cef_string_t* target_url, const cef_string_t* target_frame_name,
|
||||
cef_window_open_disposition_t target_disposition, int user_gesture,
|
||||
int(CEF_CALLBACK* on_before_popup)(
|
||||
struct _cef_life_span_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
const cef_string_t* target_url,
|
||||
const cef_string_t* target_frame_name,
|
||||
cef_window_open_disposition_t target_disposition,
|
||||
int user_gesture,
|
||||
const struct _cef_popup_features_t* popupFeatures,
|
||||
struct _cef_window_info_t* windowInfo, struct _cef_client_t** client,
|
||||
struct _cef_browser_settings_t* settings, int* no_javascript_access);
|
||||
struct _cef_window_info_t* windowInfo,
|
||||
struct _cef_client_t** client,
|
||||
struct _cef_browser_settings_t* settings,
|
||||
struct _cef_dictionary_value_t** extra_info,
|
||||
int* no_javascript_access);
|
||||
|
||||
///
|
||||
// Called after a new browser is created. This callback will be the first
|
||||
@@ -188,15 +202,18 @@ typedef struct _cef_life_span_handler_t {
|
||||
///
|
||||
// Called just before a browser is destroyed. Release all references to the
|
||||
// browser object and do not attempt to execute any functions on the browser
|
||||
// object after this callback returns. This callback will be the last
|
||||
// notification that references |browser|. See do_close() documentation for
|
||||
// additional usage information.
|
||||
// object (other than GetIdentifier or IsSame) after this callback returns.
|
||||
// This callback will be the last notification that references |browser| on
|
||||
// the UI thread. Any in-progress network requests associated with |browser|
|
||||
// will be aborted when the browser is destroyed, and
|
||||
// cef_resource_request_handler_t callbacks related to those requests may
|
||||
// still arrive on the IO thread after this function is called. See do_close()
|
||||
// documentation for additional usage information.
|
||||
///
|
||||
void(CEF_CALLBACK* on_before_close)(struct _cef_life_span_handler_t* self,
|
||||
struct _cef_browser_t* browser);
|
||||
} cef_life_span_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=fa3cb1461b9d363c6c7d961f9e291c2fe736170e$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_LOAD_HANDLER_CAPI_H_
|
||||
@@ -46,7 +48,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to browser load status. The
|
||||
// functions of this structure will be called on the browser process UI thread
|
||||
@@ -66,22 +67,26 @@ typedef struct _cef_load_handler_t {
|
||||
// calls to OnLoadError and/or OnLoadEnd.
|
||||
///
|
||||
void(CEF_CALLBACK* on_loading_state_change)(struct _cef_load_handler_t* self,
|
||||
struct _cef_browser_t* browser, int isLoading, int canGoBack,
|
||||
struct _cef_browser_t* browser,
|
||||
int isLoading,
|
||||
int canGoBack,
|
||||
int canGoForward);
|
||||
|
||||
///
|
||||
// Called when the browser begins loading a frame. The |frame| value will
|
||||
// never be NULL -- call the is_main() function to check if this frame is the
|
||||
// main frame. |transition_type| provides information about the source of the
|
||||
// navigation and an accurate value is only available in the browser process.
|
||||
// Multiple frames may be loading at the same time. Sub-frames may start or
|
||||
// continue loading after the main frame load has ended. This function will
|
||||
// always be called for all frames irrespective of whether the request
|
||||
// completes successfully. For notification of overall browser load status use
|
||||
// OnLoadingStateChange instead.
|
||||
// Called after a navigation has been committed and before the browser begins
|
||||
// loading contents in the frame. The |frame| value will never be NULL -- call
|
||||
// the is_main() function to check if this frame is the main frame.
|
||||
// |transition_type| provides information about the source of the navigation
|
||||
// and an accurate value is only available in the browser process. Multiple
|
||||
// frames may be loading at the same time. Sub-frames may start or continue
|
||||
// loading after the main frame load has ended. This function will not be
|
||||
// called for same page navigations (fragments, history state, etc.) or for
|
||||
// navigations that fail or are canceled before commit. For notification of
|
||||
// overall browser load status use OnLoadingStateChange instead.
|
||||
///
|
||||
void(CEF_CALLBACK* on_load_start)(struct _cef_load_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
cef_transition_type_t transition_type);
|
||||
|
||||
///
|
||||
@@ -89,27 +94,31 @@ typedef struct _cef_load_handler_t {
|
||||
// never be NULL -- call the is_main() function to check if this frame is the
|
||||
// main frame. Multiple frames may be loading at the same time. Sub-frames may
|
||||
// start or continue loading after the main frame load has ended. This
|
||||
// function will always be called for all frames irrespective of whether the
|
||||
// request completes successfully. For notification of overall browser load
|
||||
// status use OnLoadingStateChange instead.
|
||||
// function will not be called for same page navigations (fragments, history
|
||||
// state, etc.) or for navigations that fail or are canceled before commit.
|
||||
// For notification of overall browser load status use OnLoadingStateChange
|
||||
// instead.
|
||||
///
|
||||
void(CEF_CALLBACK* on_load_end)(struct _cef_load_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
int httpStatusCode);
|
||||
|
||||
///
|
||||
// Called when the resource load for a navigation fails or is canceled.
|
||||
// |errorCode| is the error code number, |errorText| is the error text and
|
||||
// |failedUrl| is the URL that failed to load. See net\base\net_error_list.h
|
||||
// for complete descriptions of the error codes.
|
||||
// Called when a navigation fails or is canceled. This function may be called
|
||||
// by itself if before commit or in combination with OnLoadStart/OnLoadEnd if
|
||||
// after commit. |errorCode| is the error code number, |errorText| is the
|
||||
// error text and |failedUrl| is the URL that failed to load. See
|
||||
// net\base\net_error_list.h for complete descriptions of the error codes.
|
||||
///
|
||||
void(CEF_CALLBACK* on_load_error)(struct _cef_load_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
cef_errorcode_t errorCode, const cef_string_t* errorText,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
cef_errorcode_t errorCode,
|
||||
const cef_string_t* errorText,
|
||||
const cef_string_t* failedUrl);
|
||||
} cef_load_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
345
include/capi/cef_media_router_capi.h
Normal file
345
include/capi/cef_media_router_capi.h
Normal file
@@ -0,0 +1,345 @@
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||
// Framework nor the names of its contributors may be used to endorse
|
||||
// or promote products derived from this software without specific prior
|
||||
// written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//
|
||||
// ---------------------------------------------------------------------------
|
||||
//
|
||||
// This file was generated by the CEF translator tool and should not edited
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=4f4a0d76efaf87055ebf5e784f5d1b69fafdabc2$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_MEDIA_ROUTER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_MEDIA_ROUTER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_registration_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _cef_media_observer_t;
|
||||
struct _cef_media_route_create_callback_t;
|
||||
struct _cef_media_route_t;
|
||||
struct _cef_media_sink_device_info_callback_t;
|
||||
struct _cef_media_sink_t;
|
||||
struct _cef_media_source_t;
|
||||
|
||||
///
|
||||
// Supports discovery of and communication with media devices on the local
|
||||
// network via the Cast and DIAL protocols. The functions of this structure may
|
||||
// be called on any browser process thread unless otherwise indicated.
|
||||
///
|
||||
typedef struct _cef_media_router_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Add an observer for MediaRouter events. The observer will remain registered
|
||||
// until the returned Registration object is destroyed.
|
||||
///
|
||||
struct _cef_registration_t*(CEF_CALLBACK* add_observer)(
|
||||
struct _cef_media_router_t* self,
|
||||
struct _cef_media_observer_t* observer);
|
||||
|
||||
///
|
||||
// Returns a MediaSource object for the specified media source URN. Supported
|
||||
// URN schemes include "cast:" and "dial:", and will be already known by the
|
||||
// client application (e.g. "cast:<appId>?clientId=<clientId>").
|
||||
///
|
||||
struct _cef_media_source_t*(CEF_CALLBACK* get_source)(
|
||||
struct _cef_media_router_t* self,
|
||||
const cef_string_t* urn);
|
||||
|
||||
///
|
||||
// Trigger an asynchronous call to cef_media_observer_t::OnSinks on all
|
||||
// registered observers.
|
||||
///
|
||||
void(CEF_CALLBACK* notify_current_sinks)(struct _cef_media_router_t* self);
|
||||
|
||||
///
|
||||
// Create a new route between |source| and |sink|. Source and sink must be
|
||||
// valid, compatible (as reported by cef_media_sink_t::IsCompatibleWith), and
|
||||
// a route between them must not already exist. |callback| will be executed on
|
||||
// success or failure. If route creation succeeds it will also trigger an
|
||||
// asynchronous call to cef_media_observer_t::OnRoutes on all registered
|
||||
// observers.
|
||||
///
|
||||
void(CEF_CALLBACK* create_route)(
|
||||
struct _cef_media_router_t* self,
|
||||
struct _cef_media_source_t* source,
|
||||
struct _cef_media_sink_t* sink,
|
||||
struct _cef_media_route_create_callback_t* callback);
|
||||
|
||||
///
|
||||
// Trigger an asynchronous call to cef_media_observer_t::OnRoutes on all
|
||||
// registered observers.
|
||||
///
|
||||
void(CEF_CALLBACK* notify_current_routes)(struct _cef_media_router_t* self);
|
||||
} cef_media_router_t;
|
||||
|
||||
///
|
||||
// Returns the MediaRouter object associated with the global request context.
|
||||
// Equivalent to calling cef_request_context_t::cef_request_context_get_global_c
|
||||
// ontext()->get_media_router().
|
||||
///
|
||||
CEF_EXPORT cef_media_router_t* cef_media_router_get_global();
|
||||
|
||||
///
|
||||
// Implemented by the client to observe MediaRouter events and registered via
|
||||
// cef_media_router_t::AddObserver. The functions of this structure will be
|
||||
// called on the browser process UI thread.
|
||||
///
|
||||
typedef struct _cef_media_observer_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// The list of available media sinks has changed or
|
||||
// cef_media_router_t::NotifyCurrentSinks was called.
|
||||
///
|
||||
void(CEF_CALLBACK* on_sinks)(struct _cef_media_observer_t* self,
|
||||
size_t sinksCount,
|
||||
struct _cef_media_sink_t* const* sinks);
|
||||
|
||||
///
|
||||
// The list of available media routes has changed or
|
||||
// cef_media_router_t::NotifyCurrentRoutes was called.
|
||||
///
|
||||
void(CEF_CALLBACK* on_routes)(struct _cef_media_observer_t* self,
|
||||
size_t routesCount,
|
||||
struct _cef_media_route_t* const* routes);
|
||||
|
||||
///
|
||||
// The connection state of |route| has changed.
|
||||
///
|
||||
void(CEF_CALLBACK* on_route_state_changed)(
|
||||
struct _cef_media_observer_t* self,
|
||||
struct _cef_media_route_t* route,
|
||||
cef_media_route_connection_state_t state);
|
||||
|
||||
///
|
||||
// A message was recieved over |route|. |message| is only valid for the scope
|
||||
// of this callback and should be copied if necessary.
|
||||
///
|
||||
void(CEF_CALLBACK* on_route_message_received)(
|
||||
struct _cef_media_observer_t* self,
|
||||
struct _cef_media_route_t* route,
|
||||
const void* message,
|
||||
size_t message_size);
|
||||
} cef_media_observer_t;
|
||||
|
||||
///
|
||||
// Represents the route between a media source and sink. Instances of this
|
||||
// object are created via cef_media_router_t::CreateRoute and retrieved via
|
||||
// cef_media_observer_t::OnRoutes. Contains the status and metadata of a routing
|
||||
// operation. The functions of this structure may be called on any browser
|
||||
// process thread unless otherwise indicated.
|
||||
///
|
||||
typedef struct _cef_media_route_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Returns the ID for this route.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_id)(struct _cef_media_route_t* self);
|
||||
|
||||
///
|
||||
// Returns the source associated with this route.
|
||||
///
|
||||
struct _cef_media_source_t*(CEF_CALLBACK* get_source)(
|
||||
struct _cef_media_route_t* self);
|
||||
|
||||
///
|
||||
// Returns the sink associated with this route.
|
||||
///
|
||||
struct _cef_media_sink_t*(CEF_CALLBACK* get_sink)(
|
||||
struct _cef_media_route_t* self);
|
||||
|
||||
///
|
||||
// Send a message over this route. |message| will be copied if necessary.
|
||||
///
|
||||
void(CEF_CALLBACK* send_route_message)(struct _cef_media_route_t* self,
|
||||
const void* message,
|
||||
size_t message_size);
|
||||
|
||||
///
|
||||
// Terminate this route. Will result in an asynchronous call to
|
||||
// cef_media_observer_t::OnRoutes on all registered observers.
|
||||
///
|
||||
void(CEF_CALLBACK* terminate)(struct _cef_media_route_t* self);
|
||||
} cef_media_route_t;
|
||||
|
||||
///
|
||||
// Callback structure for cef_media_router_t::CreateRoute. The functions of this
|
||||
// structure will be called on the browser process UI thread.
|
||||
///
|
||||
typedef struct _cef_media_route_create_callback_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Method that will be executed when the route creation has finished. |result|
|
||||
// will be CEF_MRCR_OK if the route creation succeeded. |error| will be a
|
||||
// description of the error if the route creation failed. |route| is the
|
||||
// resulting route, or NULL if the route creation failed.
|
||||
///
|
||||
void(CEF_CALLBACK* on_media_route_create_finished)(
|
||||
struct _cef_media_route_create_callback_t* self,
|
||||
cef_media_route_create_result_t result,
|
||||
const cef_string_t* error,
|
||||
struct _cef_media_route_t* route);
|
||||
} cef_media_route_create_callback_t;
|
||||
|
||||
///
|
||||
// Represents a sink to which media can be routed. Instances of this object are
|
||||
// retrieved via cef_media_observer_t::OnSinks. The functions of this structure
|
||||
// may be called on any browser process thread unless otherwise indicated.
|
||||
///
|
||||
typedef struct _cef_media_sink_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Returns the ID for this sink.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_id)(struct _cef_media_sink_t* self);
|
||||
|
||||
///
|
||||
// Returns the name of this sink.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_name)(struct _cef_media_sink_t* self);
|
||||
|
||||
///
|
||||
// Returns the description of this sink.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_description)(
|
||||
struct _cef_media_sink_t* self);
|
||||
|
||||
///
|
||||
// Returns the icon type for this sink.
|
||||
///
|
||||
cef_media_sink_icon_type_t(CEF_CALLBACK* get_icon_type)(
|
||||
struct _cef_media_sink_t* self);
|
||||
|
||||
///
|
||||
// Asynchronously retrieves device info.
|
||||
///
|
||||
void(CEF_CALLBACK* get_device_info)(
|
||||
struct _cef_media_sink_t* self,
|
||||
struct _cef_media_sink_device_info_callback_t* callback);
|
||||
|
||||
///
|
||||
// Returns true (1) if this sink accepts content via Cast.
|
||||
///
|
||||
int(CEF_CALLBACK* is_cast_sink)(struct _cef_media_sink_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if this sink accepts content via DIAL.
|
||||
///
|
||||
int(CEF_CALLBACK* is_dial_sink)(struct _cef_media_sink_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if this sink is compatible with |source|.
|
||||
///
|
||||
int(CEF_CALLBACK* is_compatible_with)(struct _cef_media_sink_t* self,
|
||||
struct _cef_media_source_t* source);
|
||||
} cef_media_sink_t;
|
||||
|
||||
///
|
||||
// Callback structure for cef_media_sink_t::GetDeviceInfo. The functions of this
|
||||
// structure will be called on the browser process UI thread.
|
||||
///
|
||||
typedef struct _cef_media_sink_device_info_callback_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Method that will be executed asyncronously once device information has been
|
||||
// retrieved.
|
||||
///
|
||||
void(CEF_CALLBACK* on_media_sink_device_info)(
|
||||
struct _cef_media_sink_device_info_callback_t* self,
|
||||
const struct _cef_media_sink_device_info_t* device_info);
|
||||
} cef_media_sink_device_info_callback_t;
|
||||
|
||||
///
|
||||
// Represents a source from which media can be routed. Instances of this object
|
||||
// are retrieved via cef_media_router_t::GetSource. The functions of this
|
||||
// structure may be called on any browser process thread unless otherwise
|
||||
// indicated.
|
||||
///
|
||||
typedef struct _cef_media_source_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Returns the ID (media source URN or URL) for this source.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_id)(struct _cef_media_source_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if this source outputs its content via Cast.
|
||||
///
|
||||
int(CEF_CALLBACK* is_cast_source)(struct _cef_media_source_t* self);
|
||||
|
||||
///
|
||||
// Returns true (1) if this source outputs its content via DIAL.
|
||||
///
|
||||
int(CEF_CALLBACK* is_dial_source)(struct _cef_media_source_t* self);
|
||||
} cef_media_source_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_MEDIA_ROUTER_CAPI_H_
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=cce24dba079162b10f359769eea176c4009b5ce5$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_MENU_MODEL_CAPI_H_
|
||||
@@ -45,7 +47,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Supports creation and modification of menus. See cef_menu_id_t for the
|
||||
// command ids that have default implementations. All user-defined command ids
|
||||
@@ -81,27 +82,32 @@ typedef struct _cef_menu_model_t {
|
||||
///
|
||||
// Add an item to the menu. Returns true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *add_item)(struct _cef_menu_model_t* self, int command_id,
|
||||
int(CEF_CALLBACK* add_item)(struct _cef_menu_model_t* self,
|
||||
int command_id,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
// Add a check item to the menu. Returns true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* add_check_item)(struct _cef_menu_model_t* self,
|
||||
int command_id, const cef_string_t* label);
|
||||
int command_id,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
// Add a radio item to the menu. Only a single item with the specified
|
||||
// |group_id| can be checked at a time. Returns true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* add_radio_item)(struct _cef_menu_model_t* self,
|
||||
int command_id, const cef_string_t* label, int group_id);
|
||||
int command_id,
|
||||
const cef_string_t* label,
|
||||
int group_id);
|
||||
|
||||
///
|
||||
// Add a sub-menu to the menu. The new sub-menu is returned.
|
||||
///
|
||||
struct _cef_menu_model_t*(CEF_CALLBACK* add_sub_menu)(
|
||||
struct _cef_menu_model_t* self, int command_id,
|
||||
struct _cef_menu_model_t* self,
|
||||
int command_id,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
@@ -115,15 +121,19 @@ typedef struct _cef_menu_model_t {
|
||||
// Insert an item in the menu at the specified |index|. Returns true (1) on
|
||||
// success.
|
||||
///
|
||||
int (CEF_CALLBACK *insert_item_at)(struct _cef_menu_model_t* self, int index,
|
||||
int command_id, const cef_string_t* label);
|
||||
int(CEF_CALLBACK* insert_item_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
int command_id,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
// Insert a check item in the menu at the specified |index|. Returns true (1)
|
||||
// on success.
|
||||
///
|
||||
int(CEF_CALLBACK* insert_check_item_at)(struct _cef_menu_model_t* self,
|
||||
int index, int command_id, const cef_string_t* label);
|
||||
int index,
|
||||
int command_id,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
// Insert a radio item in the menu at the specified |index|. Only a single
|
||||
@@ -131,14 +141,19 @@ typedef struct _cef_menu_model_t {
|
||||
// (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* insert_radio_item_at)(struct _cef_menu_model_t* self,
|
||||
int index, int command_id, const cef_string_t* label, int group_id);
|
||||
int index,
|
||||
int command_id,
|
||||
const cef_string_t* label,
|
||||
int group_id);
|
||||
|
||||
///
|
||||
// Insert a sub-menu in the menu at the specified |index|. The new sub-menu is
|
||||
// returned.
|
||||
///
|
||||
struct _cef_menu_model_t*(CEF_CALLBACK* insert_sub_menu_at)(
|
||||
struct _cef_menu_model_t* self, int index, int command_id,
|
||||
struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
int command_id,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
@@ -170,33 +185,36 @@ typedef struct _cef_menu_model_t {
|
||||
// Sets the command id at the specified |index|. Returns true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_command_id_at)(struct _cef_menu_model_t* self,
|
||||
int index, int command_id);
|
||||
int index,
|
||||
int command_id);
|
||||
|
||||
///
|
||||
// Returns the label for the specified |command_id| or NULL if not found.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t (CEF_CALLBACK *get_label)(
|
||||
struct _cef_menu_model_t* self, int command_id);
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_label)(struct _cef_menu_model_t* self,
|
||||
int command_id);
|
||||
|
||||
///
|
||||
// Returns the label at the specified |index| or NULL if not found due to
|
||||
// invalid range or the index being a separator.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t (CEF_CALLBACK *get_label_at)(
|
||||
struct _cef_menu_model_t* self, int index);
|
||||
cef_string_userfree_t(
|
||||
CEF_CALLBACK* get_label_at)(struct _cef_menu_model_t* self, int index);
|
||||
|
||||
///
|
||||
// Sets the label for the specified |command_id|. Returns true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_label)(struct _cef_menu_model_t* self, int command_id,
|
||||
int(CEF_CALLBACK* set_label)(struct _cef_menu_model_t* self,
|
||||
int command_id,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
// Set the label at the specified |index|. Returns true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_label_at)(struct _cef_menu_model_t* self, int index,
|
||||
int(CEF_CALLBACK* set_label_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
const cef_string_t* label);
|
||||
|
||||
///
|
||||
@@ -208,8 +226,8 @@ typedef struct _cef_menu_model_t {
|
||||
///
|
||||
// Returns the item type at the specified |index|.
|
||||
///
|
||||
cef_menu_item_type_t (CEF_CALLBACK *get_type_at)(
|
||||
struct _cef_menu_model_t* self, int index);
|
||||
cef_menu_item_type_t(
|
||||
CEF_CALLBACK* get_type_at)(struct _cef_menu_model_t* self, int index);
|
||||
|
||||
///
|
||||
// Returns the group id for the specified |command_id| or -1 if invalid.
|
||||
@@ -220,39 +238,40 @@ typedef struct _cef_menu_model_t {
|
||||
///
|
||||
// Returns the group id at the specified |index| or -1 if invalid.
|
||||
///
|
||||
int (CEF_CALLBACK *get_group_id_at)(struct _cef_menu_model_t* self,
|
||||
int index);
|
||||
int(CEF_CALLBACK* get_group_id_at)(struct _cef_menu_model_t* self, int index);
|
||||
|
||||
///
|
||||
// Sets the group id for the specified |command_id|. Returns true (1) on
|
||||
// success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_group_id)(struct _cef_menu_model_t* self,
|
||||
int command_id, int group_id);
|
||||
int command_id,
|
||||
int group_id);
|
||||
|
||||
///
|
||||
// Sets the group id at the specified |index|. Returns true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_group_id_at)(struct _cef_menu_model_t* self, int index,
|
||||
int(CEF_CALLBACK* set_group_id_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
int group_id);
|
||||
|
||||
///
|
||||
// Returns the submenu for the specified |command_id| or NULL if invalid.
|
||||
///
|
||||
struct _cef_menu_model_t*(CEF_CALLBACK* get_sub_menu)(
|
||||
struct _cef_menu_model_t* self, int command_id);
|
||||
struct _cef_menu_model_t* self,
|
||||
int command_id);
|
||||
|
||||
///
|
||||
// Returns the submenu at the specified |index| or NULL if invalid.
|
||||
///
|
||||
struct _cef_menu_model_t* (CEF_CALLBACK *get_sub_menu_at)(
|
||||
struct _cef_menu_model_t* self, int index);
|
||||
struct _cef_menu_model_t*(
|
||||
CEF_CALLBACK* get_sub_menu_at)(struct _cef_menu_model_t* self, int index);
|
||||
|
||||
///
|
||||
// Returns true (1) if the specified |command_id| is visible.
|
||||
///
|
||||
int (CEF_CALLBACK *is_visible)(struct _cef_menu_model_t* self,
|
||||
int command_id);
|
||||
int(CEF_CALLBACK* is_visible)(struct _cef_menu_model_t* self, int command_id);
|
||||
|
||||
///
|
||||
// Returns true (1) if the specified |index| is visible.
|
||||
@@ -264,20 +283,21 @@ typedef struct _cef_menu_model_t {
|
||||
// success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_visible)(struct _cef_menu_model_t* self,
|
||||
int command_id, int visible);
|
||||
int command_id,
|
||||
int visible);
|
||||
|
||||
///
|
||||
// Change the visibility at the specified |index|. Returns true (1) on
|
||||
// success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_visible_at)(struct _cef_menu_model_t* self, int index,
|
||||
int(CEF_CALLBACK* set_visible_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
int visible);
|
||||
|
||||
///
|
||||
// Returns true (1) if the specified |command_id| is enabled.
|
||||
///
|
||||
int (CEF_CALLBACK *is_enabled)(struct _cef_menu_model_t* self,
|
||||
int command_id);
|
||||
int(CEF_CALLBACK* is_enabled)(struct _cef_menu_model_t* self, int command_id);
|
||||
|
||||
///
|
||||
// Returns true (1) if the specified |index| is enabled.
|
||||
@@ -289,21 +309,22 @@ typedef struct _cef_menu_model_t {
|
||||
// on success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_enabled)(struct _cef_menu_model_t* self,
|
||||
int command_id, int enabled);
|
||||
int command_id,
|
||||
int enabled);
|
||||
|
||||
///
|
||||
// Change the enabled status at the specified |index|. Returns true (1) on
|
||||
// success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_enabled_at)(struct _cef_menu_model_t* self, int index,
|
||||
int(CEF_CALLBACK* set_enabled_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
int enabled);
|
||||
|
||||
///
|
||||
// Returns true (1) if the specified |command_id| is checked. Only applies to
|
||||
// check and radio items.
|
||||
///
|
||||
int (CEF_CALLBACK *is_checked)(struct _cef_menu_model_t* self,
|
||||
int command_id);
|
||||
int(CEF_CALLBACK* is_checked)(struct _cef_menu_model_t* self, int command_id);
|
||||
|
||||
///
|
||||
// Returns true (1) if the specified |index| is checked. Only applies to check
|
||||
@@ -316,13 +337,15 @@ typedef struct _cef_menu_model_t {
|
||||
// Returns true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_checked)(struct _cef_menu_model_t* self,
|
||||
int command_id, int checked);
|
||||
int command_id,
|
||||
int checked);
|
||||
|
||||
///
|
||||
// Check the specified |index|. Only applies to check and radio items. Returns
|
||||
// true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_checked_at)(struct _cef_menu_model_t* self, int index,
|
||||
int(CEF_CALLBACK* set_checked_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
int checked);
|
||||
|
||||
///
|
||||
@@ -344,7 +367,10 @@ typedef struct _cef_menu_model_t {
|
||||
// be any virtual key or character value. Returns true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_accelerator)(struct _cef_menu_model_t* self,
|
||||
int command_id, int key_code, int shift_pressed, int ctrl_pressed,
|
||||
int command_id,
|
||||
int key_code,
|
||||
int shift_pressed,
|
||||
int ctrl_pressed,
|
||||
int alt_pressed);
|
||||
|
||||
///
|
||||
@@ -352,7 +378,10 @@ typedef struct _cef_menu_model_t {
|
||||
// any virtual key or character value. Returns true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* set_accelerator_at)(struct _cef_menu_model_t* self,
|
||||
int index, int key_code, int shift_pressed, int ctrl_pressed,
|
||||
int index,
|
||||
int key_code,
|
||||
int shift_pressed,
|
||||
int ctrl_pressed,
|
||||
int alt_pressed);
|
||||
|
||||
///
|
||||
@@ -374,7 +403,10 @@ typedef struct _cef_menu_model_t {
|
||||
// true (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* get_accelerator)(struct _cef_menu_model_t* self,
|
||||
int command_id, int* key_code, int* shift_pressed, int* ctrl_pressed,
|
||||
int command_id,
|
||||
int* key_code,
|
||||
int* shift_pressed,
|
||||
int* ctrl_pressed,
|
||||
int* alt_pressed);
|
||||
|
||||
///
|
||||
@@ -382,7 +414,10 @@ typedef struct _cef_menu_model_t {
|
||||
// (1) on success.
|
||||
///
|
||||
int(CEF_CALLBACK* get_accelerator_at)(struct _cef_menu_model_t* self,
|
||||
int index, int* key_code, int* shift_pressed, int* ctrl_pressed,
|
||||
int index,
|
||||
int* key_code,
|
||||
int* shift_pressed,
|
||||
int* ctrl_pressed,
|
||||
int* alt_pressed);
|
||||
|
||||
///
|
||||
@@ -391,8 +426,10 @@ typedef struct _cef_menu_model_t {
|
||||
// color or default color is set for |color_type| then the system color will
|
||||
// be used. Returns true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_color)(struct _cef_menu_model_t* self, int command_id,
|
||||
cef_menu_color_type_t color_type, cef_color_t color);
|
||||
int(CEF_CALLBACK* set_color)(struct _cef_menu_model_t* self,
|
||||
int command_id,
|
||||
cef_menu_color_type_t color_type,
|
||||
cef_color_t color);
|
||||
|
||||
///
|
||||
// Set the explicit color for |command_id| and |index| to |color|. Specify a
|
||||
@@ -401,16 +438,20 @@ typedef struct _cef_menu_model_t {
|
||||
// set. If no explicit color or default color is set for |color_type| then the
|
||||
// system color will be used. Returns true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *set_color_at)(struct _cef_menu_model_t* self, int index,
|
||||
cef_menu_color_type_t color_type, cef_color_t color);
|
||||
int(CEF_CALLBACK* set_color_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
cef_menu_color_type_t color_type,
|
||||
cef_color_t color);
|
||||
|
||||
///
|
||||
// Returns in |color| the color that was explicitly set for |command_id| and
|
||||
// |color_type|. If a color was not set then 0 will be returned in |color|.
|
||||
// Returns true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *get_color)(struct _cef_menu_model_t* self, int command_id,
|
||||
cef_menu_color_type_t color_type, cef_color_t* color);
|
||||
int(CEF_CALLBACK* get_color)(struct _cef_menu_model_t* self,
|
||||
int command_id,
|
||||
cef_menu_color_type_t color_type,
|
||||
cef_color_t* color);
|
||||
|
||||
///
|
||||
// Returns in |color| the color that was explicitly set for |command_id| and
|
||||
@@ -418,8 +459,10 @@ typedef struct _cef_menu_model_t {
|
||||
// |color|. If a color was not set then 0 will be returned in |color|. Returns
|
||||
// true (1) on success.
|
||||
///
|
||||
int (CEF_CALLBACK *get_color_at)(struct _cef_menu_model_t* self, int index,
|
||||
cef_menu_color_type_t color_type, cef_color_t* color);
|
||||
int(CEF_CALLBACK* get_color_at)(struct _cef_menu_model_t* self,
|
||||
int index,
|
||||
cef_menu_color_type_t color_type,
|
||||
cef_color_t* color);
|
||||
|
||||
///
|
||||
// Sets the font list for the specified |command_id|. If |font_list| is NULL
|
||||
@@ -434,7 +477,8 @@ typedef struct _cef_menu_model_t {
|
||||
// Bold Italic 14px" - "Arial, 14px"
|
||||
///
|
||||
int(CEF_CALLBACK* set_font_list)(struct _cef_menu_model_t* self,
|
||||
int command_id, const cef_string_t* font_list);
|
||||
int command_id,
|
||||
const cef_string_t* font_list);
|
||||
|
||||
///
|
||||
// Sets the font list for the specified |index|. Specify an |index| value of
|
||||
@@ -450,17 +494,16 @@ typedef struct _cef_menu_model_t {
|
||||
// Bold Italic 14px" - "Arial, 14px"
|
||||
///
|
||||
int(CEF_CALLBACK* set_font_list_at)(struct _cef_menu_model_t* self,
|
||||
int index, const cef_string_t* font_list);
|
||||
int index,
|
||||
const cef_string_t* font_list);
|
||||
} cef_menu_model_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new MenuModel with the specified |delegate|.
|
||||
///
|
||||
CEF_EXPORT cef_menu_model_t* cef_menu_model_create(
|
||||
struct _cef_menu_model_delegate_t* delegate);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=071ec8a0e17d3b33acbf36c7ccc26d0995657cf3$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_MENU_MODEL_DELEGATE_CAPI_H_
|
||||
@@ -62,7 +64,8 @@ typedef struct _cef_menu_model_delegate_t {
|
||||
// |event_flags|.
|
||||
///
|
||||
void(CEF_CALLBACK* execute_command)(struct _cef_menu_model_delegate_t* self,
|
||||
struct _cef_menu_model_t* menu_model, int command_id,
|
||||
struct _cef_menu_model_t* menu_model,
|
||||
int command_id,
|
||||
cef_event_flags_t event_flags);
|
||||
|
||||
///
|
||||
@@ -71,7 +74,8 @@ typedef struct _cef_menu_model_delegate_t {
|
||||
///
|
||||
void(CEF_CALLBACK* mouse_outside_menu)(
|
||||
struct _cef_menu_model_delegate_t* self,
|
||||
struct _cef_menu_model_t* menu_model, const cef_point_t* screen_point);
|
||||
struct _cef_menu_model_t* menu_model,
|
||||
const cef_point_t* screen_point);
|
||||
|
||||
///
|
||||
// Called on unhandled open submenu keyboard commands. |is_rtl| will be true
|
||||
@@ -79,7 +83,8 @@ typedef struct _cef_menu_model_delegate_t {
|
||||
///
|
||||
void(CEF_CALLBACK* unhandled_open_submenu)(
|
||||
struct _cef_menu_model_delegate_t* self,
|
||||
struct _cef_menu_model_t* menu_model, int is_rtl);
|
||||
struct _cef_menu_model_t* menu_model,
|
||||
int is_rtl);
|
||||
|
||||
///
|
||||
// Called on unhandled close submenu keyboard commands. |is_rtl| will be true
|
||||
@@ -87,7 +92,8 @@ typedef struct _cef_menu_model_delegate_t {
|
||||
///
|
||||
void(CEF_CALLBACK* unhandled_close_submenu)(
|
||||
struct _cef_menu_model_delegate_t* self,
|
||||
struct _cef_menu_model_t* menu_model, int is_rtl);
|
||||
struct _cef_menu_model_t* menu_model,
|
||||
int is_rtl);
|
||||
|
||||
///
|
||||
// The menu is about to show.
|
||||
@@ -106,10 +112,10 @@ typedef struct _cef_menu_model_delegate_t {
|
||||
// modified.
|
||||
///
|
||||
int(CEF_CALLBACK* format_label)(struct _cef_menu_model_delegate_t* self,
|
||||
struct _cef_menu_model_t* menu_model, cef_string_t* label);
|
||||
struct _cef_menu_model_t* menu_model,
|
||||
cef_string_t* label);
|
||||
} cef_menu_model_delegate_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=c6252024911652a4881d753aeeeb2615e6be3904$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_NAVIGATION_ENTRY_CAPI_H_
|
||||
@@ -45,7 +47,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent an entry in navigation history.
|
||||
///
|
||||
@@ -115,8 +116,7 @@ typedef struct _cef_navigation_entry_t {
|
||||
// response. May be 0 if the response has not yet been received or if the
|
||||
// navigation has not yet completed.
|
||||
///
|
||||
int (CEF_CALLBACK *get_http_status_code)(
|
||||
struct _cef_navigation_entry_t* self);
|
||||
int(CEF_CALLBACK* get_http_status_code)(struct _cef_navigation_entry_t* self);
|
||||
|
||||
///
|
||||
// Returns the SSL information for this navigation entry.
|
||||
@@ -125,7 +125,6 @@ typedef struct _cef_navigation_entry_t {
|
||||
struct _cef_navigation_entry_t* self);
|
||||
} cef_navigation_entry_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=8a26e2f8273298dcf44d6fbf32fd565f6aaa912c$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_ORIGIN_WHITELIST_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Add an entry to the cross-origin access whitelist.
|
||||
//
|
||||
@@ -82,16 +83,20 @@ extern "C" {
|
||||
// |source_origin| is invalid or the whitelist cannot be accessed.
|
||||
///
|
||||
CEF_EXPORT int cef_add_cross_origin_whitelist_entry(
|
||||
const cef_string_t* source_origin, const cef_string_t* target_protocol,
|
||||
const cef_string_t* target_domain, int allow_target_subdomains);
|
||||
const cef_string_t* source_origin,
|
||||
const cef_string_t* target_protocol,
|
||||
const cef_string_t* target_domain,
|
||||
int allow_target_subdomains);
|
||||
|
||||
///
|
||||
// Remove an entry from the cross-origin access whitelist. Returns false (0) if
|
||||
// |source_origin| is invalid or the whitelist cannot be accessed.
|
||||
///
|
||||
CEF_EXPORT int cef_remove_cross_origin_whitelist_entry(
|
||||
const cef_string_t* source_origin, const cef_string_t* target_protocol,
|
||||
const cef_string_t* target_domain, int allow_target_subdomains);
|
||||
const cef_string_t* source_origin,
|
||||
const cef_string_t* target_protocol,
|
||||
const cef_string_t* target_domain,
|
||||
int allow_target_subdomains);
|
||||
|
||||
///
|
||||
// Remove all entries from the cross-origin access whitelist. Returns false (0)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=19337a70a13352e70452be7fcc25ef2de4b1ae4c$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_PARSER_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Parse the specified |url| into its component parts. Returns false (0) if the
|
||||
// URL is NULL or invalid.
|
||||
@@ -71,16 +72,16 @@ CEF_EXPORT int cef_create_url(const struct _cef_urlparts_t* parts,
|
||||
// for URLs which will be parsed or sent to other applications.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
CEF_EXPORT cef_string_userfree_t cef_format_url_for_security_display(
|
||||
const cef_string_t* origin_url);
|
||||
CEF_EXPORT cef_string_userfree_t
|
||||
cef_format_url_for_security_display(const cef_string_t* origin_url);
|
||||
|
||||
///
|
||||
// Returns the mime type for the specified file extension or an NULL string if
|
||||
// unknown.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
CEF_EXPORT cef_string_userfree_t cef_get_mime_type(
|
||||
const cef_string_t* extension);
|
||||
CEF_EXPORT cef_string_userfree_t
|
||||
cef_get_mime_type(const cef_string_t* extension);
|
||||
|
||||
///
|
||||
// Get the extensions associated with the given mime type. This should be passed
|
||||
@@ -126,25 +127,38 @@ CEF_EXPORT cef_string_userfree_t cef_uriencode(const cef_string_t* text,
|
||||
// supports further customization the decoding process.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
CEF_EXPORT cef_string_userfree_t cef_uridecode(const cef_string_t* text,
|
||||
int convert_to_utf8, cef_uri_unescape_rule_t unescape_rule);
|
||||
CEF_EXPORT cef_string_userfree_t
|
||||
cef_uridecode(const cef_string_t* text,
|
||||
int convert_to_utf8,
|
||||
cef_uri_unescape_rule_t unescape_rule);
|
||||
|
||||
///
|
||||
// Parses the specified |json_string| and returns a dictionary or list
|
||||
// representation. If JSON parsing fails this function returns NULL.
|
||||
///
|
||||
CEF_EXPORT struct _cef_value_t* cef_parse_json(const cef_string_t* json_string,
|
||||
CEF_EXPORT struct _cef_value_t* cef_parse_json(
|
||||
const cef_string_t* json_string,
|
||||
cef_json_parser_options_t options);
|
||||
|
||||
///
|
||||
// Parses the specified UTF8-encoded |json| buffer of size |json_size| and
|
||||
// returns a dictionary or list representation. If JSON parsing fails this
|
||||
// function returns NULL.
|
||||
///
|
||||
CEF_EXPORT struct _cef_value_t* cef_parse_json_buffer(
|
||||
const void* json,
|
||||
size_t json_size,
|
||||
cef_json_parser_options_t options);
|
||||
|
||||
///
|
||||
// Parses the specified |json_string| and returns a dictionary or list
|
||||
// representation. If JSON parsing fails this function returns NULL and
|
||||
// populates |error_code_out| and |error_msg_out| with an error code and a
|
||||
// formatted error message respectively.
|
||||
// populates |error_msg_out| with a formatted error message.
|
||||
///
|
||||
CEF_EXPORT struct _cef_value_t* cef_parse_jsonand_return_error(
|
||||
const cef_string_t* json_string, cef_json_parser_options_t options,
|
||||
cef_json_parser_error_t* error_code_out, cef_string_t* error_msg_out);
|
||||
const cef_string_t* json_string,
|
||||
cef_json_parser_options_t options,
|
||||
cef_string_t* error_msg_out);
|
||||
|
||||
///
|
||||
// Generates a JSON string from the specified root |node| which should be a
|
||||
@@ -152,8 +166,8 @@ CEF_EXPORT struct _cef_value_t* cef_parse_jsonand_return_error(
|
||||
// requires exclusive access to |node| including any underlying data.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
CEF_EXPORT cef_string_userfree_t cef_write_json(struct _cef_value_t* node,
|
||||
cef_json_writer_options_t options);
|
||||
CEF_EXPORT cef_string_userfree_t
|
||||
cef_write_json(struct _cef_value_t* node, cef_json_writer_options_t options);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=1b218a91d7f3ba0e68f0c3be21a0df91e515d28a$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_PATH_UTIL_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Retrieve the path associated with the specified |key|. Returns true (1) on
|
||||
// success. Can be called on any thread in the browser process.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=b8d7be1399d3426a3f872b12bc1438e041a16308$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_PRINT_HANDLER_CAPI_H_
|
||||
@@ -46,7 +48,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Callback structure for asynchronous continuation of print dialog requests.
|
||||
///
|
||||
@@ -68,7 +69,6 @@ typedef struct _cef_print_dialog_callback_t {
|
||||
void(CEF_CALLBACK* cancel)(struct _cef_print_dialog_callback_t* self);
|
||||
} cef_print_dialog_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Callback structure for asynchronous continuation of print job requests.
|
||||
///
|
||||
@@ -84,10 +84,10 @@ typedef struct _cef_print_job_callback_t {
|
||||
void(CEF_CALLBACK* cont)(struct _cef_print_job_callback_t* self);
|
||||
} cef_print_job_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle printing on Linux. The functions of this
|
||||
// structure will be called on the browser process UI thread.
|
||||
// Implement this structure to handle printing on Linux. Each browser will have
|
||||
// only one print job in progress at a time. The functions of this structure
|
||||
// will be called on the browser process UI thread.
|
||||
///
|
||||
typedef struct _cef_print_handler_t {
|
||||
///
|
||||
@@ -110,15 +110,20 @@ typedef struct _cef_print_handler_t {
|
||||
// reference to |settings| outside of this callback.
|
||||
///
|
||||
void(CEF_CALLBACK* on_print_settings)(struct _cef_print_handler_t* self,
|
||||
struct _cef_print_settings_t* settings, int get_defaults);
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_print_settings_t* settings,
|
||||
int get_defaults);
|
||||
|
||||
///
|
||||
// Show the print dialog. Execute |callback| once the dialog is dismissed.
|
||||
// Return true (1) if the dialog will be displayed or false (0) to cancel the
|
||||
// printing immediately.
|
||||
///
|
||||
int (CEF_CALLBACK *on_print_dialog)(struct _cef_print_handler_t* self,
|
||||
int has_selection, struct _cef_print_dialog_callback_t* callback);
|
||||
int(CEF_CALLBACK* on_print_dialog)(
|
||||
struct _cef_print_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
int has_selection,
|
||||
struct _cef_print_dialog_callback_t* callback);
|
||||
|
||||
///
|
||||
// Send the print job to the printer. Execute |callback| once the job is
|
||||
@@ -126,23 +131,26 @@ typedef struct _cef_print_handler_t {
|
||||
// the job immediately.
|
||||
///
|
||||
int(CEF_CALLBACK* on_print_job)(struct _cef_print_handler_t* self,
|
||||
const cef_string_t* document_name, const cef_string_t* pdf_file_path,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* document_name,
|
||||
const cef_string_t* pdf_file_path,
|
||||
struct _cef_print_job_callback_t* callback);
|
||||
|
||||
///
|
||||
// Reset client state related to printing.
|
||||
///
|
||||
void (CEF_CALLBACK *on_print_reset)(struct _cef_print_handler_t* self);
|
||||
void(CEF_CALLBACK* on_print_reset)(struct _cef_print_handler_t* self,
|
||||
struct _cef_browser_t* browser);
|
||||
|
||||
///
|
||||
// Return the PDF paper size in device units. Used in combination with
|
||||
// cef_browser_host_t::print_to_pdf().
|
||||
///
|
||||
cef_size_t(CEF_CALLBACK* get_pdf_paper_size)(
|
||||
struct _cef_print_handler_t* self, int device_units_per_inch);
|
||||
struct _cef_print_handler_t* self,
|
||||
int device_units_per_inch);
|
||||
} cef_print_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=8f7d7993691e07f4a8a42d63522c751cfba3c168$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_PRINT_SETTINGS_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure representing print settings.
|
||||
///
|
||||
@@ -66,12 +67,6 @@ typedef struct _cef_print_settings_t {
|
||||
///
|
||||
int(CEF_CALLBACK* is_read_only)(struct _cef_print_settings_t* self);
|
||||
|
||||
///
|
||||
// Returns a writable copy of this object.
|
||||
///
|
||||
struct _cef_print_settings_t* (CEF_CALLBACK *copy)(
|
||||
struct _cef_print_settings_t* self);
|
||||
|
||||
///
|
||||
// Set the page orientation.
|
||||
///
|
||||
@@ -121,7 +116,8 @@ typedef struct _cef_print_settings_t {
|
||||
// Set the page ranges.
|
||||
///
|
||||
void(CEF_CALLBACK* set_page_ranges)(struct _cef_print_settings_t* self,
|
||||
size_t rangesCount, cef_range_t const* ranges);
|
||||
size_t rangesCount,
|
||||
cef_range_t const* ranges);
|
||||
|
||||
///
|
||||
// Returns the number of page ranges that currently exist.
|
||||
@@ -133,7 +129,8 @@ typedef struct _cef_print_settings_t {
|
||||
// Retrieve the page ranges.
|
||||
///
|
||||
void(CEF_CALLBACK* get_page_ranges)(struct _cef_print_settings_t* self,
|
||||
size_t* rangesCount, cef_range_t* ranges);
|
||||
size_t* rangesCount,
|
||||
cef_range_t* ranges);
|
||||
|
||||
///
|
||||
// Set whether only the selection will be printed.
|
||||
@@ -193,13 +190,11 @@ typedef struct _cef_print_settings_t {
|
||||
struct _cef_print_settings_t* self);
|
||||
} cef_print_settings_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new cef_print_settings_t object.
|
||||
///
|
||||
CEF_EXPORT cef_print_settings_t* cef_print_settings_create();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=79ec6d99ea47e1cf9b2cca0433704f205e14d3bd$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_PROCESS_MESSAGE_CAPI_H_
|
||||
@@ -45,7 +47,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure representing a message. Can be used on any process and thread.
|
||||
///
|
||||
@@ -87,14 +88,12 @@ typedef struct _cef_process_message_t {
|
||||
struct _cef_process_message_t* self);
|
||||
} cef_process_message_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new cef_process_message_t object with the specified name.
|
||||
///
|
||||
CEF_EXPORT cef_process_message_t* cef_process_message_create(
|
||||
const cef_string_t* name);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=75b16fd9d592c1d22b94d740e1deb61efe3afb97$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_PROCESS_UTIL_CAPI_H_
|
||||
@@ -44,7 +46,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Launches the process specified via |command_line|. Returns true (1) upon
|
||||
// success. Must be called on the browser process TID_PROCESS_LAUNCHER thread.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,73 +33,31 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=029e237cf80f94a25453bac5a9b1e0765bb56f37$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_GEOLOCATION_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_GEOLOCATION_HANDLER_CAPI_H_
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_REGISTRATION_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_REGISTRATION_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_browser_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Callback structure used for asynchronous continuation of geolocation
|
||||
// permission requests.
|
||||
// Generic callback structure used for managing the lifespan of a registration.
|
||||
///
|
||||
typedef struct _cef_geolocation_callback_t {
|
||||
typedef struct _cef_registration_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Call to allow or deny geolocation access.
|
||||
///
|
||||
void (CEF_CALLBACK *cont)(struct _cef_geolocation_callback_t* self,
|
||||
int allow);
|
||||
} cef_geolocation_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events related to geolocation permission
|
||||
// requests. The functions of this structure will be called on the browser
|
||||
// process UI thread.
|
||||
///
|
||||
typedef struct _cef_geolocation_handler_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called when a page requests permission to access geolocation information.
|
||||
// |requesting_url| is the URL requesting permission and |request_id| is the
|
||||
// unique ID for the permission request. Return true (1) and call
|
||||
// cef_geolocation_callback_t::cont() either in this function or at a later
|
||||
// time to continue or cancel the request. Return false (0) to cancel the
|
||||
// request immediately.
|
||||
///
|
||||
int (CEF_CALLBACK *on_request_geolocation_permission)(
|
||||
struct _cef_geolocation_handler_t* self, struct _cef_browser_t* browser,
|
||||
const cef_string_t* requesting_url, int request_id,
|
||||
struct _cef_geolocation_callback_t* callback);
|
||||
|
||||
///
|
||||
// Called when a geolocation access request is canceled. |request_id| is the
|
||||
// unique ID for the permission request.
|
||||
///
|
||||
void (CEF_CALLBACK *on_cancel_geolocation_permission)(
|
||||
struct _cef_geolocation_handler_t* self, struct _cef_browser_t* browser,
|
||||
int request_id);
|
||||
} cef_geolocation_handler_t;
|
||||
|
||||
} cef_registration_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_GEOLOCATION_HANDLER_CAPI_H_
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_REGISTRATION_CAPI_H_
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,11 +33,14 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=f9806cd79f33b6a762fff25edd4189ae42bc8fd2$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_RENDER_HANDLER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_accessibility_handler_capi.h"
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_browser_capi.h"
|
||||
#include "include/capi/cef_drag_data_capi.h"
|
||||
@@ -46,7 +49,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to handle events when window rendering is disabled.
|
||||
// The functions of this structure will be called on the UI thread.
|
||||
@@ -57,26 +59,39 @@ typedef struct _cef_render_handler_t {
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Return the handler for accessibility notifications. If no handler is
|
||||
// provided the default implementation will be used.
|
||||
///
|
||||
struct _cef_accessibility_handler_t*(CEF_CALLBACK* get_accessibility_handler)(
|
||||
struct _cef_render_handler_t* self);
|
||||
|
||||
///
|
||||
// Called to retrieve the root window rectangle in screen coordinates. Return
|
||||
// true (1) if the rectangle was provided.
|
||||
// true (1) if the rectangle was provided. If this function returns false (0)
|
||||
// the rectangle from GetViewRect will be used.
|
||||
///
|
||||
int(CEF_CALLBACK* get_root_screen_rect)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_rect_t* rect);
|
||||
struct _cef_browser_t* browser,
|
||||
cef_rect_t* rect);
|
||||
|
||||
///
|
||||
// Called to retrieve the view rectangle which is relative to screen
|
||||
// coordinates. Return true (1) if the rectangle was provided.
|
||||
// coordinates. This function must always provide a non-NULL rectangle.
|
||||
///
|
||||
int (CEF_CALLBACK *get_view_rect)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_rect_t* rect);
|
||||
void(CEF_CALLBACK* get_view_rect)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
cef_rect_t* rect);
|
||||
|
||||
///
|
||||
// Called to retrieve the translation from view coordinates to actual screen
|
||||
// coordinates. Return true (1) if the screen coordinates were provided.
|
||||
///
|
||||
int(CEF_CALLBACK* get_screen_point)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, int viewX, int viewY, int* screenX,
|
||||
struct _cef_browser_t* browser,
|
||||
int viewX,
|
||||
int viewY,
|
||||
int* screenX,
|
||||
int* screenY);
|
||||
|
||||
///
|
||||
@@ -89,21 +104,24 @@ typedef struct _cef_render_handler_t {
|
||||
// drawn correctly.
|
||||
///
|
||||
int(CEF_CALLBACK* get_screen_info)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_screen_info_t* screen_info);
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_screen_info_t* screen_info);
|
||||
|
||||
///
|
||||
// Called when the browser wants to show or hide the popup widget. The popup
|
||||
// should be shown if |show| is true (1) and hidden if |show| is false (0).
|
||||
///
|
||||
void(CEF_CALLBACK* on_popup_show)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, int show);
|
||||
struct _cef_browser_t* browser,
|
||||
int show);
|
||||
|
||||
///
|
||||
// Called when the browser wants to move or resize the popup widget. |rect|
|
||||
// contains the new location and size in view coordinates.
|
||||
///
|
||||
void(CEF_CALLBACK* on_popup_size)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, const cef_rect_t* rect);
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_rect_t* rect);
|
||||
|
||||
///
|
||||
// Called when an element should be painted. Pixel values passed to this
|
||||
@@ -113,21 +131,33 @@ typedef struct _cef_render_handler_t {
|
||||
// contains the pixel data for the whole image. |dirtyRects| contains the set
|
||||
// of rectangles in pixel coordinates that need to be repainted. |buffer| will
|
||||
// be |width|*|height|*4 bytes in size and represents a BGRA image with an
|
||||
// upper-left origin.
|
||||
// upper-left origin. This function is only called when
|
||||
// cef_window_tInfo::shared_texture_enabled is set to false (0).
|
||||
///
|
||||
void(CEF_CALLBACK* on_paint)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_paint_element_type_t type,
|
||||
size_t dirtyRectsCount, cef_rect_t const* dirtyRects, const void* buffer,
|
||||
int width, int height);
|
||||
struct _cef_browser_t* browser,
|
||||
cef_paint_element_type_t type,
|
||||
size_t dirtyRectsCount,
|
||||
cef_rect_t const* dirtyRects,
|
||||
const void* buffer,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
///
|
||||
// Called when the browser's cursor has changed. If |type| is CT_CUSTOM then
|
||||
// |custom_cursor_info| will be populated with the custom cursor information.
|
||||
// Called when an element has been rendered to the shared texture handle.
|
||||
// |type| indicates whether the element is the view or the popup widget.
|
||||
// |dirtyRects| contains the set of rectangles in pixel coordinates that need
|
||||
// to be repainted. |shared_handle| is the handle for a D3D11 Texture2D that
|
||||
// can be accessed via ID3D11Device using the OpenSharedResource function.
|
||||
// This function is only called when cef_window_tInfo::shared_texture_enabled
|
||||
// is set to true (1), and is currently only supported on Windows.
|
||||
///
|
||||
void (CEF_CALLBACK *on_cursor_change)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_cursor_handle_t cursor,
|
||||
cef_cursor_type_t type,
|
||||
const struct _cef_cursor_info_t* custom_cursor_info);
|
||||
void(CEF_CALLBACK* on_accelerated_paint)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
cef_paint_element_type_t type,
|
||||
size_t dirtyRectsCount,
|
||||
cef_rect_t const* dirtyRects,
|
||||
void* shared_handle);
|
||||
|
||||
///
|
||||
// Called when the user starts dragging content in the web view. Contextual
|
||||
@@ -144,8 +174,11 @@ typedef struct _cef_render_handler_t {
|
||||
// operation has ended.
|
||||
///
|
||||
int(CEF_CALLBACK* start_dragging)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_drag_data_t* drag_data,
|
||||
cef_drag_operations_mask_t allowed_ops, int x, int y);
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_drag_data_t* drag_data,
|
||||
cef_drag_operations_mask_t allowed_ops,
|
||||
int x,
|
||||
int y);
|
||||
|
||||
///
|
||||
// Called when the web view wants to update the mouse cursor during a drag &
|
||||
@@ -153,14 +186,17 @@ typedef struct _cef_render_handler_t {
|
||||
// copy, link).
|
||||
///
|
||||
void(CEF_CALLBACK* update_drag_cursor)(struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_drag_operations_mask_t operation);
|
||||
struct _cef_browser_t* browser,
|
||||
cef_drag_operations_mask_t operation);
|
||||
|
||||
///
|
||||
// Called when the scroll offset has changed.
|
||||
///
|
||||
void(CEF_CALLBACK* on_scroll_offset_changed)(
|
||||
struct _cef_render_handler_t* self, struct _cef_browser_t* browser,
|
||||
double x, double y);
|
||||
struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
double x,
|
||||
double y);
|
||||
|
||||
///
|
||||
// Called when the IME composition range has changed. |selected_range| is the
|
||||
@@ -168,11 +204,34 @@ typedef struct _cef_render_handler_t {
|
||||
// bounds of each character in view coordinates.
|
||||
///
|
||||
void(CEF_CALLBACK* on_ime_composition_range_changed)(
|
||||
struct _cef_render_handler_t* self, struct _cef_browser_t* browser,
|
||||
const cef_range_t* selected_range, size_t character_boundsCount,
|
||||
struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_range_t* selected_range,
|
||||
size_t character_boundsCount,
|
||||
cef_rect_t const* character_bounds);
|
||||
} cef_render_handler_t;
|
||||
|
||||
///
|
||||
// Called when text selection has changed for the specified |browser|.
|
||||
// |selected_text| is the currently selected text and |selected_range| is the
|
||||
// character range.
|
||||
///
|
||||
void(CEF_CALLBACK* on_text_selection_changed)(
|
||||
struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
const cef_string_t* selected_text,
|
||||
const cef_range_t* selected_range);
|
||||
|
||||
///
|
||||
// Called when an on-screen keyboard should be shown or hidden for the
|
||||
// specified |browser|. |input_mode| specifies what kind of keyboard should be
|
||||
// opened. If |input_mode| is CEF_TEXT_INPUT_MODE_NONE, any existing keyboard
|
||||
// for this browser should be hidden.
|
||||
///
|
||||
void(CEF_CALLBACK* on_virtual_keyboard_requested)(
|
||||
struct _cef_render_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
cef_text_input_mode_t input_mode);
|
||||
} cef_render_handler_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=8419eb3eba9dd372b019bd367d4f195433b21c9b$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_RENDER_PROCESS_HANDLER_CAPI_H_
|
||||
@@ -51,7 +53,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Structure used to implement render process callbacks. The functions of this
|
||||
// structure will be called on the render process main thread (TID_RENDERER)
|
||||
@@ -63,16 +64,6 @@ typedef struct _cef_render_process_handler_t {
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called after the render process main thread has been created. |extra_info|
|
||||
// is a read-only value originating from
|
||||
// cef_browser_process_handler_t::on_render_process_thread_created(). Do not
|
||||
// keep a reference to |extra_info| outside of this function.
|
||||
///
|
||||
void (CEF_CALLBACK *on_render_thread_created)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_list_value_t* extra_info);
|
||||
|
||||
///
|
||||
// Called after WebKit has been initialized.
|
||||
///
|
||||
@@ -82,11 +73,16 @@ typedef struct _cef_render_process_handler_t {
|
||||
///
|
||||
// Called after a browser has been created. When browsing cross-origin a new
|
||||
// browser will be created before the old browser with the same identifier is
|
||||
// destroyed.
|
||||
// destroyed. |extra_info| is a read-only value originating from
|
||||
// cef_browser_host_t::cef_browser_host_create_browser(),
|
||||
// cef_browser_host_t::cef_browser_host_create_browser_sync(),
|
||||
// cef_life_span_handler_t::on_before_popup() or
|
||||
// cef_browser_view_t::cef_browser_view_create().
|
||||
///
|
||||
void(CEF_CALLBACK* on_browser_created)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_browser_t* browser);
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_dictionary_value_t* extra_info);
|
||||
|
||||
///
|
||||
// Called before a browser is destroyed.
|
||||
@@ -101,17 +97,6 @@ typedef struct _cef_render_process_handler_t {
|
||||
struct _cef_load_handler_t*(CEF_CALLBACK* get_load_handler)(
|
||||
struct _cef_render_process_handler_t* self);
|
||||
|
||||
///
|
||||
// Called before browser navigation. Return true (1) to cancel the navigation
|
||||
// or false (0) to allow the navigation to proceed. The |request| object
|
||||
// cannot be modified in this callback.
|
||||
///
|
||||
int (CEF_CALLBACK *on_before_navigation)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_request_t* request, cef_navigation_type_t navigation_type,
|
||||
int is_redirect);
|
||||
|
||||
///
|
||||
// Called immediately after the V8 context for a frame has been created. To
|
||||
// retrieve the JavaScript 'window' object use the
|
||||
@@ -122,7 +107,8 @@ typedef struct _cef_render_process_handler_t {
|
||||
///
|
||||
void(CEF_CALLBACK* on_context_created)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_v8context_t* context);
|
||||
|
||||
///
|
||||
@@ -131,7 +117,8 @@ typedef struct _cef_render_process_handler_t {
|
||||
///
|
||||
void(CEF_CALLBACK* on_context_released)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_v8context_t* context);
|
||||
|
||||
///
|
||||
@@ -141,8 +128,10 @@ typedef struct _cef_render_process_handler_t {
|
||||
///
|
||||
void(CEF_CALLBACK* on_uncaught_exception)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_v8context_t* context, struct _cef_v8exception_t* exception,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_v8context_t* context,
|
||||
struct _cef_v8exception_t* exception,
|
||||
struct _cef_v8stack_trace_t* stackTrace);
|
||||
|
||||
///
|
||||
@@ -155,7 +144,8 @@ typedef struct _cef_render_process_handler_t {
|
||||
///
|
||||
void(CEF_CALLBACK* on_focused_node_changed)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_browser_t* browser, struct _cef_frame_t* frame,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_domnode_t* node);
|
||||
|
||||
///
|
||||
@@ -165,11 +155,12 @@ typedef struct _cef_render_process_handler_t {
|
||||
///
|
||||
int(CEF_CALLBACK* on_process_message_received)(
|
||||
struct _cef_render_process_handler_t* self,
|
||||
struct _cef_browser_t* browser, cef_process_id_t source_process,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
cef_process_id_t source_process,
|
||||
struct _cef_process_message_t* message);
|
||||
} cef_render_process_handler_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,9 +33,11 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=3efd81a4bfdfca579a77f14bd37b8192122ebda4$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_GEOLOCATION_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_GEOLOCATION_CAPI_H_
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CALLBACK_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_REQUEST_CALLBACK_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
@@ -44,36 +46,29 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to receive geolocation updates. The functions of
|
||||
// this structure will be called on the browser process UI thread.
|
||||
// Callback structure used for asynchronous continuation of url requests.
|
||||
///
|
||||
typedef struct _cef_get_geolocation_callback_t {
|
||||
typedef struct _cef_request_callback_t {
|
||||
///
|
||||
// Base structure.
|
||||
///
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called with the 'best available' location information or, if the location
|
||||
// update failed, with error information.
|
||||
// Continue the url request. If |allow| is true (1) the request will be
|
||||
// continued. Otherwise, the request will be canceled.
|
||||
///
|
||||
void (CEF_CALLBACK *on_location_update)(
|
||||
struct _cef_get_geolocation_callback_t* self,
|
||||
const struct _cef_geoposition_t* position);
|
||||
} cef_get_geolocation_callback_t;
|
||||
|
||||
void(CEF_CALLBACK* cont)(struct _cef_request_callback_t* self, int allow);
|
||||
|
||||
///
|
||||
// Request a one-time geolocation update. This function bypasses any user
|
||||
// permission checks so should only be used by code that is allowed to access
|
||||
// location information.
|
||||
// Cancel the url request.
|
||||
///
|
||||
CEF_EXPORT int cef_get_geolocation(cef_get_geolocation_callback_t* callback);
|
||||
void(CEF_CALLBACK* cancel)(struct _cef_request_callback_t* self);
|
||||
} cef_request_callback_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_GEOLOCATION_CAPI_H_
|
||||
#endif // CEF_INCLUDE_CAPI_CEF_REQUEST_CALLBACK_CAPI_H_
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=b3725b8fa4118936caacda69504dc597f3620d82$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_REQUEST_CAPI_H_
|
||||
@@ -93,7 +95,8 @@ typedef struct _cef_request_t {
|
||||
// ref component will be removed.
|
||||
///
|
||||
void(CEF_CALLBACK* set_referrer)(struct _cef_request_t* self,
|
||||
const cef_string_t* referrer_url, cef_referrer_policy_t policy);
|
||||
const cef_string_t* referrer_url,
|
||||
cef_referrer_policy_t policy);
|
||||
|
||||
///
|
||||
// Get the referrer URL.
|
||||
@@ -133,11 +136,34 @@ typedef struct _cef_request_t {
|
||||
void(CEF_CALLBACK* set_header_map)(struct _cef_request_t* self,
|
||||
cef_string_multimap_t headerMap);
|
||||
|
||||
///
|
||||
// Returns the first header value for |name| or an NULL string if not found.
|
||||
// Will not return the Referer value if any. Use GetHeaderMap instead if
|
||||
// |name| might have multiple values.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
cef_string_userfree_t(CEF_CALLBACK* get_header_by_name)(
|
||||
struct _cef_request_t* self,
|
||||
const cef_string_t* name);
|
||||
|
||||
///
|
||||
// Set the header |name| to |value|. If |overwrite| is true (1) any existing
|
||||
// values will be replaced with the new value. If |overwrite| is false (0) any
|
||||
// existing values will not be overwritten. The Referer value cannot be set
|
||||
// using this function.
|
||||
///
|
||||
void(CEF_CALLBACK* set_header_by_name)(struct _cef_request_t* self,
|
||||
const cef_string_t* name,
|
||||
const cef_string_t* value,
|
||||
int overwrite);
|
||||
|
||||
///
|
||||
// Set all values at one time.
|
||||
///
|
||||
void (CEF_CALLBACK *set)(struct _cef_request_t* self, const cef_string_t* url,
|
||||
const cef_string_t* method, struct _cef_post_data_t* postData,
|
||||
void(CEF_CALLBACK* set)(struct _cef_request_t* self,
|
||||
const cef_string_t* url,
|
||||
const cef_string_t* method,
|
||||
struct _cef_post_data_t* postData,
|
||||
cef_string_multimap_t headerMap);
|
||||
|
||||
///
|
||||
@@ -153,7 +179,7 @@ typedef struct _cef_request_t {
|
||||
void(CEF_CALLBACK* set_flags)(struct _cef_request_t* self, int flags);
|
||||
|
||||
///
|
||||
// Set the URL to the first party for cookies used in combination with
|
||||
// Get the URL to the first party for cookies used in combination with
|
||||
// cef_urlrequest_t.
|
||||
///
|
||||
// The resulting string must be freed by calling cef_string_userfree_free().
|
||||
@@ -161,7 +187,7 @@ typedef struct _cef_request_t {
|
||||
struct _cef_request_t* self);
|
||||
|
||||
///
|
||||
// Get the URL to the first party for cookies used in combination with
|
||||
// Set the URL to the first party for cookies used in combination with
|
||||
// cef_urlrequest_t.
|
||||
///
|
||||
void(CEF_CALLBACK* set_first_party_for_cookies)(struct _cef_request_t* self,
|
||||
@@ -184,19 +210,17 @@ typedef struct _cef_request_t {
|
||||
|
||||
///
|
||||
// Returns the globally unique identifier for this request or 0 if not
|
||||
// specified. Can be used by cef_request_tHandler implementations in the
|
||||
// browser process to track a single request across multiple callbacks.
|
||||
// specified. Can be used by cef_resource_request_handler_t implementations in
|
||||
// the browser process to track a single request across multiple callbacks.
|
||||
///
|
||||
uint64(CEF_CALLBACK* get_identifier)(struct _cef_request_t* self);
|
||||
} cef_request_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new cef_request_t object.
|
||||
///
|
||||
CEF_EXPORT cef_request_t* cef_request_create();
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent post data for a web request. The functions of
|
||||
// this structure may be called on any thread.
|
||||
@@ -229,7 +253,8 @@ typedef struct _cef_post_data_t {
|
||||
// Retrieve the post data elements.
|
||||
///
|
||||
void(CEF_CALLBACK* get_elements)(struct _cef_post_data_t* self,
|
||||
size_t* elementsCount, struct _cef_post_data_element_t** elements);
|
||||
size_t* elementsCount,
|
||||
struct _cef_post_data_element_t** elements);
|
||||
|
||||
///
|
||||
// Remove the specified post data element. Returns true (1) if the removal
|
||||
@@ -250,13 +275,11 @@ typedef struct _cef_post_data_t {
|
||||
void(CEF_CALLBACK* remove_elements)(struct _cef_post_data_t* self);
|
||||
} cef_post_data_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new cef_post_data_t object.
|
||||
///
|
||||
CEF_EXPORT cef_post_data_t* cef_post_data_create();
|
||||
|
||||
|
||||
///
|
||||
// Structure used to represent a single element in the request post data. The
|
||||
// functions of this structure may be called on any thread.
|
||||
@@ -288,7 +311,8 @@ typedef struct _cef_post_data_element_t {
|
||||
// copied.
|
||||
///
|
||||
void(CEF_CALLBACK* set_to_bytes)(struct _cef_post_data_element_t* self,
|
||||
size_t size, const void* bytes);
|
||||
size_t size,
|
||||
const void* bytes);
|
||||
|
||||
///
|
||||
// Return the type of this post data element.
|
||||
@@ -313,16 +337,15 @@ typedef struct _cef_post_data_element_t {
|
||||
// actually read.
|
||||
///
|
||||
size_t(CEF_CALLBACK* get_bytes)(struct _cef_post_data_element_t* self,
|
||||
size_t size, void* bytes);
|
||||
size_t size,
|
||||
void* bytes);
|
||||
} cef_post_data_element_t;
|
||||
|
||||
|
||||
///
|
||||
// Create a new cef_post_data_element_t object.
|
||||
///
|
||||
CEF_EXPORT cef_post_data_element_t* cef_post_data_element_create();
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,6 +33,8 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=7ce0953f069204a4dd2037c4a05ac9454c5e66a6$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_CAPI_H_
|
||||
@@ -40,17 +42,20 @@
|
||||
|
||||
#include "include/capi/cef_callback_capi.h"
|
||||
#include "include/capi/cef_cookie_capi.h"
|
||||
#include "include/capi/cef_request_context_handler_capi.h"
|
||||
#include "include/capi/cef_extension_capi.h"
|
||||
#include "include/capi/cef_extension_handler_capi.h"
|
||||
#include "include/capi/cef_media_router_capi.h"
|
||||
#include "include/capi/cef_values_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _cef_request_context_handler_t;
|
||||
struct _cef_scheme_handler_factory_t;
|
||||
|
||||
///
|
||||
// Callback structure for cef_request_tContext::ResolveHost.
|
||||
// Callback structure for cef_request_context_t::ResolveHost.
|
||||
///
|
||||
typedef struct _cef_resolve_callback_t {
|
||||
///
|
||||
@@ -59,16 +64,15 @@ typedef struct _cef_resolve_callback_t {
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called after the ResolveHost request has completed. |result| will be the
|
||||
// result code. |resolved_ips| will be the list of resolved IP addresses or
|
||||
// NULL if the resolution failed.
|
||||
// Called on the UI thread after the ResolveHost request has completed.
|
||||
// |result| will be the result code. |resolved_ips| will be the list of
|
||||
// resolved IP addresses or NULL if the resolution failed.
|
||||
///
|
||||
void (CEF_CALLBACK *on_resolve_completed)(
|
||||
struct _cef_resolve_callback_t* self, cef_errorcode_t result,
|
||||
void(CEF_CALLBACK* on_resolve_completed)(struct _cef_resolve_callback_t* self,
|
||||
cef_errorcode_t result,
|
||||
cef_string_list_t resolved_ips);
|
||||
} cef_resolve_callback_t;
|
||||
|
||||
|
||||
///
|
||||
// A request context provides request handling for a set of related browser or
|
||||
// URL request objects. A request context can be specified when creating a new
|
||||
@@ -127,14 +131,11 @@ typedef struct _cef_request_context_t {
|
||||
struct _cef_request_context_t* self);
|
||||
|
||||
///
|
||||
// Returns the default cookie manager for this object. This will be the global
|
||||
// cookie manager if this object is the global request context. Otherwise,
|
||||
// this will be the default cookie manager used when this request context does
|
||||
// not receive a value via cef_request_tContextHandler::get_cookie_manager().
|
||||
// If |callback| is non-NULL it will be executed asnychronously on the IO
|
||||
// thread after the manager's storage has been initialized.
|
||||
// Returns the cookie manager for this object. If |callback| is non-NULL it
|
||||
// will be executed asnychronously on the IO thread after the manager's
|
||||
// storage has been initialized.
|
||||
///
|
||||
struct _cef_cookie_manager_t* (CEF_CALLBACK *get_default_cookie_manager)(
|
||||
struct _cef_cookie_manager_t*(CEF_CALLBACK* get_cookie_manager)(
|
||||
struct _cef_request_context_t* self,
|
||||
struct _cef_completion_callback_t* callback);
|
||||
|
||||
@@ -152,7 +153,8 @@ typedef struct _cef_request_context_t {
|
||||
// may be called on any thread in the browser process.
|
||||
///
|
||||
int(CEF_CALLBACK* register_scheme_handler_factory)(
|
||||
struct _cef_request_context_t* self, const cef_string_t* scheme_name,
|
||||
struct _cef_request_context_t* self,
|
||||
const cef_string_t* scheme_name,
|
||||
const cef_string_t* domain_name,
|
||||
struct _cef_scheme_handler_factory_t* factory);
|
||||
|
||||
@@ -167,11 +169,12 @@ typedef struct _cef_request_context_t {
|
||||
// Tells all renderer processes associated with this context to throw away
|
||||
// their plugin list cache. If |reload_pages| is true (1) they will also
|
||||
// reload all pages with plugins.
|
||||
// cef_request_tContextHandler::OnBeforePluginLoad may be called to rebuild
|
||||
// cef_request_context_handler_t::OnBeforePluginLoad may be called to rebuild
|
||||
// the plugin list cache.
|
||||
///
|
||||
void(CEF_CALLBACK* purge_plugin_list_cache)(
|
||||
struct _cef_request_context_t* self, int reload_pages);
|
||||
struct _cef_request_context_t* self,
|
||||
int reload_pages);
|
||||
|
||||
///
|
||||
// Returns true (1) if a preference with the specified |name| exists. This
|
||||
@@ -188,7 +191,8 @@ typedef struct _cef_request_context_t {
|
||||
// called on the browser process UI thread.
|
||||
///
|
||||
struct _cef_value_t*(CEF_CALLBACK* get_preference)(
|
||||
struct _cef_request_context_t* self, const cef_string_t* name);
|
||||
struct _cef_request_context_t* self,
|
||||
const cef_string_t* name);
|
||||
|
||||
///
|
||||
// Returns all preferences as a dictionary. If |include_defaults| is true (1)
|
||||
@@ -199,7 +203,8 @@ typedef struct _cef_request_context_t {
|
||||
// thread.
|
||||
///
|
||||
struct _cef_dictionary_value_t*(CEF_CALLBACK* get_all_preferences)(
|
||||
struct _cef_request_context_t* self, int include_defaults);
|
||||
struct _cef_request_context_t* self,
|
||||
int include_defaults);
|
||||
|
||||
///
|
||||
// Returns true (1) if the preference with the specified |name| can be
|
||||
@@ -218,12 +223,13 @@ typedef struct _cef_request_context_t {
|
||||
// problem. This function must be called on the browser process UI thread.
|
||||
///
|
||||
int(CEF_CALLBACK* set_preference)(struct _cef_request_context_t* self,
|
||||
const cef_string_t* name, struct _cef_value_t* value,
|
||||
const cef_string_t* name,
|
||||
struct _cef_value_t* value,
|
||||
cef_string_t* error);
|
||||
|
||||
///
|
||||
// Clears all certificate exceptions that were added as part of handling
|
||||
// cef_request_tHandler::on_certificate_error(). If you call this it is
|
||||
// cef_request_handler_t::on_certificate_error(). If you call this it is
|
||||
// recommended that you also call close_all_connections() or you risk not
|
||||
// being prompted again for server certificates if you reconnect quickly. If
|
||||
// |callback| is non-NULL it will be executed on the UI thread after
|
||||
@@ -233,6 +239,15 @@ typedef struct _cef_request_context_t {
|
||||
struct _cef_request_context_t* self,
|
||||
struct _cef_completion_callback_t* callback);
|
||||
|
||||
///
|
||||
// Clears all HTTP authentication credentials that were added as part of
|
||||
// handling GetAuthCredentials. If |callback| is non-NULL it will be executed
|
||||
// on the UI thread after completion.
|
||||
///
|
||||
void(CEF_CALLBACK* clear_http_auth_credentials)(
|
||||
struct _cef_request_context_t* self,
|
||||
struct _cef_completion_callback_t* callback);
|
||||
|
||||
///
|
||||
// Clears all active and idle connections that Chromium currently has. This is
|
||||
// only recommended if you have released all other CEF objects but don't yet
|
||||
@@ -248,20 +263,105 @@ typedef struct _cef_request_context_t {
|
||||
// |callback| will be executed on the UI thread after completion.
|
||||
///
|
||||
void(CEF_CALLBACK* resolve_host)(struct _cef_request_context_t* self,
|
||||
const cef_string_t* origin, struct _cef_resolve_callback_t* callback);
|
||||
const cef_string_t* origin,
|
||||
struct _cef_resolve_callback_t* callback);
|
||||
|
||||
///
|
||||
// Attempts to resolve |origin| to a list of associated IP addresses using
|
||||
// cached data. |resolved_ips| will be populated with the list of resolved IP
|
||||
// addresses or NULL if no cached data is available. Returns ERR_NONE on
|
||||
// success. This function must be called on the browser process IO thread.
|
||||
// Load an extension.
|
||||
//
|
||||
// If extension resources will be read from disk using the default load
|
||||
// implementation then |root_directory| should be the absolute path to the
|
||||
// extension resources directory and |manifest| should be NULL. If extension
|
||||
// resources will be provided by the client (e.g. via cef_request_handler_t
|
||||
// and/or cef_extension_handler_t) then |root_directory| should be a path
|
||||
// component unique to the extension (if not absolute this will be internally
|
||||
// prefixed with the PK_DIR_RESOURCES path) and |manifest| should contain the
|
||||
// contents that would otherwise be read from the "manifest.json" file on
|
||||
// disk.
|
||||
//
|
||||
// The loaded extension will be accessible in all contexts sharing the same
|
||||
// storage (HasExtension returns true (1)). However, only the context on which
|
||||
// this function was called is considered the loader (DidLoadExtension returns
|
||||
// true (1)) and only the loader will receive cef_request_context_handler_t
|
||||
// callbacks for the extension.
|
||||
//
|
||||
// cef_extension_handler_t::OnExtensionLoaded will be called on load success
|
||||
// or cef_extension_handler_t::OnExtensionLoadFailed will be called on load
|
||||
// failure.
|
||||
//
|
||||
// If the extension specifies a background script via the "background"
|
||||
// manifest key then cef_extension_handler_t::OnBeforeBackgroundBrowser will
|
||||
// be called to create the background browser. See that function for
|
||||
// additional information about background scripts.
|
||||
//
|
||||
// For visible extension views the client application should evaluate the
|
||||
// manifest to determine the correct extension URL to load and then pass that
|
||||
// URL to the cef_browser_host_t::CreateBrowser* function after the extension
|
||||
// has loaded. For example, the client can look for the "browser_action"
|
||||
// manifest key as documented at
|
||||
// https://developer.chrome.com/extensions/browserAction. Extension URLs take
|
||||
// the form "chrome-extension://<extension_id>/<path>".
|
||||
//
|
||||
// Browsers that host extensions differ from normal browsers as follows:
|
||||
// - Can access chrome.* JavaScript APIs if allowed by the manifest. Visit
|
||||
// chrome://extensions-support for the list of extension APIs currently
|
||||
// supported by CEF.
|
||||
// - Main frame navigation to non-extension content is blocked.
|
||||
// - Pinch-zooming is disabled.
|
||||
// - CefBrowserHost::GetExtension returns the hosted extension.
|
||||
// - CefBrowserHost::IsBackgroundHost returns true for background hosts.
|
||||
//
|
||||
// See https://developer.chrome.com/extensions for extension implementation
|
||||
// and usage documentation.
|
||||
///
|
||||
cef_errorcode_t (CEF_CALLBACK *resolve_host_cached)(
|
||||
struct _cef_request_context_t* self, const cef_string_t* origin,
|
||||
cef_string_list_t resolved_ips);
|
||||
void(CEF_CALLBACK* load_extension)(struct _cef_request_context_t* self,
|
||||
const cef_string_t* root_directory,
|
||||
struct _cef_dictionary_value_t* manifest,
|
||||
struct _cef_extension_handler_t* handler);
|
||||
|
||||
///
|
||||
// Returns true (1) if this context was used to load the extension identified
|
||||
// by |extension_id|. Other contexts sharing the same storage will also have
|
||||
// access to the extension (see HasExtension). This function must be called on
|
||||
// the browser process UI thread.
|
||||
///
|
||||
int(CEF_CALLBACK* did_load_extension)(struct _cef_request_context_t* self,
|
||||
const cef_string_t* extension_id);
|
||||
|
||||
///
|
||||
// Returns true (1) if this context has access to the extension identified by
|
||||
// |extension_id|. This may not be the context that was used to load the
|
||||
// extension (see DidLoadExtension). This function must be called on the
|
||||
// browser process UI thread.
|
||||
///
|
||||
int(CEF_CALLBACK* has_extension)(struct _cef_request_context_t* self,
|
||||
const cef_string_t* extension_id);
|
||||
|
||||
///
|
||||
// Retrieve the list of all extensions that this context has access to (see
|
||||
// HasExtension). |extension_ids| will be populated with the list of extension
|
||||
// ID values. Returns true (1) on success. This function must be called on the
|
||||
// browser process UI thread.
|
||||
///
|
||||
int(CEF_CALLBACK* get_extensions)(struct _cef_request_context_t* self,
|
||||
cef_string_list_t extension_ids);
|
||||
|
||||
///
|
||||
// Returns the extension matching |extension_id| or NULL if no matching
|
||||
// extension is accessible in this context (see HasExtension). This function
|
||||
// must be called on the browser process UI thread.
|
||||
///
|
||||
struct _cef_extension_t*(CEF_CALLBACK* get_extension)(
|
||||
struct _cef_request_context_t* self,
|
||||
const cef_string_t* extension_id);
|
||||
|
||||
///
|
||||
// Returns the MediaRouter object associated with this context.
|
||||
///
|
||||
struct _cef_media_router_t*(CEF_CALLBACK* get_media_router)(
|
||||
struct _cef_request_context_t* self);
|
||||
} cef_request_context_t;
|
||||
|
||||
|
||||
///
|
||||
// Returns the global context object.
|
||||
///
|
||||
@@ -283,7 +383,6 @@ CEF_EXPORT cef_request_context_t* cef_create_context_shared(
|
||||
cef_request_context_t* other,
|
||||
struct _cef_request_context_handler_t* handler);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
|
||||
// Copyright (c) 2020 Marshall A. Greenblatt. All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
@@ -33,20 +33,24 @@
|
||||
// by hand. See the translator.README.txt file in the tools directory for
|
||||
// more information.
|
||||
//
|
||||
// $hash=e758d8c53334b91bce818cc6e9f84915778d7827$
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_
|
||||
#define CEF_INCLUDE_CAPI_CEF_REQUEST_CONTEXT_HANDLER_CAPI_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/capi/cef_base_capi.h"
|
||||
#include "include/capi/cef_cookie_capi.h"
|
||||
#include "include/capi/cef_browser_capi.h"
|
||||
#include "include/capi/cef_frame_capi.h"
|
||||
#include "include/capi/cef_request_capi.h"
|
||||
#include "include/capi/cef_resource_request_handler_capi.h"
|
||||
#include "include/capi/cef_web_plugin_capi.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
///
|
||||
// Implement this structure to provide handler implementations. The handler
|
||||
// instance will not be released until all objects related to the context have
|
||||
@@ -59,12 +63,12 @@ typedef struct _cef_request_context_handler_t {
|
||||
cef_base_ref_counted_t base;
|
||||
|
||||
///
|
||||
// Called on the browser process IO thread to retrieve the cookie manager. If
|
||||
// this function returns NULL the default cookie manager retrievable via
|
||||
// cef_request_tContext::get_default_cookie_manager() will be used.
|
||||
// Called on the browser process UI thread immediately after the request
|
||||
// context has been initialized.
|
||||
///
|
||||
struct _cef_cookie_manager_t* (CEF_CALLBACK *get_cookie_manager)(
|
||||
struct _cef_request_context_handler_t* self);
|
||||
void(CEF_CALLBACK* on_request_context_initialized)(
|
||||
struct _cef_request_context_handler_t* self,
|
||||
struct _cef_request_context_t* request_context);
|
||||
|
||||
///
|
||||
// Called on multiple browser process threads before a plugin instance is
|
||||
@@ -83,16 +87,46 @@ typedef struct _cef_request_context_handler_t {
|
||||
// |plugin_policy| to PLUGIN_POLICY_DISABLED may be cached when
|
||||
// |top_origin_url| is NULL. To purge the plugin list cache and potentially
|
||||
// trigger new calls to this function call
|
||||
// cef_request_tContext::PurgePluginListCache.
|
||||
// cef_request_context_t::PurgePluginListCache.
|
||||
///
|
||||
int(CEF_CALLBACK* on_before_plugin_load)(
|
||||
struct _cef_request_context_handler_t* self,
|
||||
const cef_string_t* mime_type, const cef_string_t* plugin_url,
|
||||
int is_main_frame, const cef_string_t* top_origin_url,
|
||||
const cef_string_t* mime_type,
|
||||
const cef_string_t* plugin_url,
|
||||
int is_main_frame,
|
||||
const cef_string_t* top_origin_url,
|
||||
struct _cef_web_plugin_info_t* plugin_info,
|
||||
cef_plugin_policy_t* plugin_policy);
|
||||
} cef_request_context_handler_t;
|
||||
|
||||
///
|
||||
// Called on the browser process IO thread before a resource request is
|
||||
// initiated. The |browser| and |frame| values represent the source of the
|
||||
// request, and may be NULL for requests originating from service workers or
|
||||
// cef_urlrequest_t. |request| represents the request contents and cannot be
|
||||
// modified in this callback. |is_navigation| will be true (1) if the resource
|
||||
// request is a navigation. |is_download| will be true (1) if the resource
|
||||
// request is a download. |request_initiator| is the origin (scheme + domain)
|
||||
// of the page that initiated the request. Set |disable_default_handling| to
|
||||
// true (1) to disable default handling of the request, in which case it will
|
||||
// need to be handled via cef_resource_request_handler_t::GetResourceHandler
|
||||
// or it will be canceled. To allow the resource load to proceed with default
|
||||
// handling return NULL. To specify a handler for the resource return a
|
||||
// cef_resource_request_handler_t object. This function will not be called if
|
||||
// the client associated with |browser| returns a non-NULL value from
|
||||
// cef_request_handler_t::GetResourceRequestHandler for the same request
|
||||
// (identified by cef_request_t::GetIdentifier).
|
||||
///
|
||||
struct _cef_resource_request_handler_t*(
|
||||
CEF_CALLBACK* get_resource_request_handler)(
|
||||
struct _cef_request_context_handler_t* self,
|
||||
struct _cef_browser_t* browser,
|
||||
struct _cef_frame_t* frame,
|
||||
struct _cef_request_t* request,
|
||||
int is_navigation,
|
||||
int is_download,
|
||||
const cef_string_t* request_initiator,
|
||||
int* disable_default_handling);
|
||||
} cef_request_context_handler_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user