mirror of
https://github.com/microsoft/vscode.git
synced 2026-10-28 13:26:52 +08:00
chore: bump electron@43.8.3 (#343490)
* chore: bump electron@43.8.3 * feat: re-enable HideCursorWhileTyping * fix: enable read only compile cache on posix * fix: flicker after moving window across displays * chore: bump distro * chore: bump .nvmrc * chore: bump remote node@24.22.1 * chore: bump distro * chore: update build * chore: bump distro * fix: select supported codecs for screen recordings Centralize approved media formats and filter recording candidates using MediaRecorder and playback support APIs. Prefer explicit H.264 in MP4 instead of allowing the recorder to default to unsupported VP9. * chore: bump distro
This commit is contained in:
14 files changed
+187
-148
No files matched your search
@@ -1,6 +1,6 @@
|
||||
disturl="https://electronjs.org/headers"
|
||||
target="43.7.7"
|
||||
ms_build_id="15743441"
|
||||
target="43.8.3"
|
||||
ms_build_id="15784459"
|
||||
runtime="electron"
|
||||
ignore-scripts=false
|
||||
build_from_source="true"
|
||||
|
||||
@@ -1,75 +1,75 @@
|
||||
b9b7d9ff132e9655a574f03edfb01add8d43a8b0d3a79320c226f6aa99c922ea *chromedriver-v43.7.7-darwin-arm64.zip
|
||||
f3b26877642739e6c668e6368daada33bb1dfcf4d5fec34143195e184e984569 *chromedriver-v43.7.7-darwin-x64.zip
|
||||
091707f83e4191f36848152d664c80c255572dfe36a042250ca94037c06959d2 *chromedriver-v43.7.7-linux-arm64.zip
|
||||
9c3dc509c12709522a22e3c4eb3270907050391fe05d89f68ab5ea689f9aa5b2 *chromedriver-v43.7.7-linux-armv7l.zip
|
||||
7ea6157ec70b065ef6a7f77fc1822dc6441f5702b0f99660e26cfca1897ecfa4 *chromedriver-v43.7.7-linux-x64.zip
|
||||
cad78ce6d3399821fde0cc5701109334409aace9b2c82ab8f4c0d3fffa152906 *chromedriver-v43.7.7-mas-arm64.zip
|
||||
42221fd4d828376802e644178717f1b0626bd1188d45199e958e17ab520ff9ee *chromedriver-v43.7.7-mas-x64.zip
|
||||
d2c67dad42cfdcf17fce6eac8bba81502c4b2d9cd90cc16f189b1da71dde8ca3 *chromedriver-v43.7.7-win32-arm64.zip
|
||||
79aedd7837ac32ec19f98677901def62d5cdbbe63d90fe5f25ca131f8609a843 *chromedriver-v43.7.7-win32-ia32.zip
|
||||
8b81ca5a4add14593548f5b4042a028e4c50758d61c5a244741ca6d07be3c95d *chromedriver-v43.7.7-win32-x64.zip
|
||||
aabd65bdb7a4fbd80c114af429392aa5a126382883c7c2e8f3ee11acf2e4ce08 *electron-api.json
|
||||
649e6c16d4650ec4f3037daa285b9f8e72b91742b43810bba80ca5e8bfb8cfe7 *electron-v43.7.7-darwin-arm64-dsym-snapshot.zip
|
||||
941f6adb5eb6dbce25db81158a8f19fd5b4b24bcc97ea5986bb901f822b93a54 *electron-v43.7.7-darwin-arm64-dsym.tar.xz
|
||||
34f7acfef1ff41f81b63895f010b866c1f39ac22e0d700445eb6e9ee595276c4 *electron-v43.7.7-darwin-arm64-symbols.zip
|
||||
9327d8ba5bc9e279d1a2f7da90235301c65a2e80eb4ad3bc5610d28d483340f9 *electron-v43.7.7-darwin-arm64.zip
|
||||
649e6c16d4650ec4f3037daa285b9f8e72b91742b43810bba80ca5e8bfb8cfe7 *electron-v43.7.7-darwin-x64-dsym-snapshot.zip
|
||||
2a0fc941390038cad45ef580cf65ee333f61f6e4504b9433447ed8fa3585e234 *electron-v43.7.7-darwin-x64-dsym.tar.xz
|
||||
6f003f93738843419063adba7dbac56ac1dcfc79dcbeee39d700c335d34d831a *electron-v43.7.7-darwin-x64-symbols.zip
|
||||
cbed66567d55db4a2bffad0bb6ee9795ca0037ad241039f7473fe75680d10905 *electron-v43.7.7-darwin-x64.zip
|
||||
ba871fb65de9fbfd71f9aaafc1ac278434f497ee921e9f27fee9e0a5000e9eef *electron-v43.7.7-linux-arm64-debug.zip
|
||||
d13b1f995845a5a138c35100944dc1264b98be3dd5540253640a66fc388d233d *electron-v43.7.7-linux-arm64-symbols.zip
|
||||
16071038a9677d0f00b11d3d0f0b7b4ea3250987727aa73aa563b87789f2d5ab *electron-v43.7.7-linux-arm64.zip
|
||||
bb2295977fc6d33adce9f62def5dfaa19de0e1bd29e5bbd366e0cc35d1a57a09 *electron-v43.7.7-linux-armv7l-debug.zip
|
||||
07c0739157f9674827c7d55976016972cff70e0876d68287bdf24fca54d778bd *electron-v43.7.7-linux-armv7l-symbols.zip
|
||||
088c2817c1b5928c5bea706cc60aa05ea328e6d1d8bd549fda75388a3552482a *electron-v43.7.7-linux-armv7l.zip
|
||||
0f20d65a6f671b1966de12d3f71c2d96a1a65e7ba8c1d534b60bc08c7f82b950 *electron-v43.7.7-linux-x64-debug.zip
|
||||
a5fb797b973514622f37154d5088132705ce86641f05e6b1e858269a86961868 *electron-v43.7.7-linux-x64-symbols.zip
|
||||
4d0a48398c444258dbcf2f5f83b49ca5bc53583130f354e0c299dad5b22b5271 *electron-v43.7.7-linux-x64.zip
|
||||
649e6c16d4650ec4f3037daa285b9f8e72b91742b43810bba80ca5e8bfb8cfe7 *electron-v43.7.7-mas-arm64-dsym-snapshot.zip
|
||||
dc850f562fbf669db1d9940d458c7ba9790392cff18d95ebaec1fe94a8d583ff *electron-v43.7.7-mas-arm64-dsym.tar.xz
|
||||
61cf1a0dc10498aff1d1eefa9a5b96350cba32734bdc9f7f40724f9aa17d03d9 *electron-v43.7.7-mas-arm64-symbols.zip
|
||||
987eebfdc29638b9066e5484b0dcb59e7096627edebad722c7649f8472f2c8a0 *electron-v43.7.7-mas-arm64.zip
|
||||
649e6c16d4650ec4f3037daa285b9f8e72b91742b43810bba80ca5e8bfb8cfe7 *electron-v43.7.7-mas-x64-dsym-snapshot.zip
|
||||
8caa427ef3e1dd3f1832a3b782ace268999afcf011540fe05a62c957917487ea *electron-v43.7.7-mas-x64-dsym.tar.xz
|
||||
91f67bf1b2deedf84355d98095a6060de69fb64c01caf223a35e0edef38aee55 *electron-v43.7.7-mas-x64-symbols.zip
|
||||
f5eaad26bda0bc133f8d0af0f3a77d2e16adf2572306bec611424c3bab876acf *electron-v43.7.7-mas-x64.zip
|
||||
b7aa250996ba4aadcbb115e951c6a46f19f246ee6178cffc6b115088189fc1d5 *electron-v43.7.7-win32-arm64-pdb.zip
|
||||
e63955e73f754a249db46a2c312fd904b6405018650d22b8a16037a9c10270e0 *electron-v43.7.7-win32-arm64-symbols.zip
|
||||
90386280bc7e4ac5d451e43e26a7c76ed1c8bcdc0206ec50762c7e4f09c59c28 *electron-v43.7.7-win32-arm64-toolchain-profile.zip
|
||||
d3751b5046350eee0cfd88e7709697c0ef05db93bb3435195c2d0cec50f0ad1f *electron-v43.7.7-win32-arm64.zip
|
||||
2e8d41b27d3c2394bfeb4ec00904d7049c8a7ccaa105e678179a983cdfb319db *electron-v43.7.7-win32-ia32-pdb.zip
|
||||
67ea48dcfdcca2f7b854fbe3689d56fe047ca9a2aee0808422ef313e0bc4b52a *electron-v43.7.7-win32-ia32-symbols.zip
|
||||
90386280bc7e4ac5d451e43e26a7c76ed1c8bcdc0206ec50762c7e4f09c59c28 *electron-v43.7.7-win32-ia32-toolchain-profile.zip
|
||||
a170eeedf4a216b3b0672b151294e7aef0b4fdc15ae5c207ea3f9f37c4a14c42 *electron-v43.7.7-win32-ia32.zip
|
||||
3b65b14be1594bba502283ae02e9af54b55b1894f3f6be961c608c9e80a74179 *electron-v43.7.7-win32-x64-pdb.zip
|
||||
37d27ae6956d20fde7fa1218453ad9514c106f17cf30634c452302a7453f189f *electron-v43.7.7-win32-x64-symbols.zip
|
||||
90386280bc7e4ac5d451e43e26a7c76ed1c8bcdc0206ec50762c7e4f09c59c28 *electron-v43.7.7-win32-x64-toolchain-profile.zip
|
||||
97dcb75065444ef031b9b6ea814ccd2109b97934fffb0c503a555d4737ca79cc *electron-v43.7.7-win32-x64.zip
|
||||
d78a11ef458b68672c35957f0252396a1fa19e73a8ca3b9178e2e75cd090453d *electron.d.ts
|
||||
9cd0907e7c7c652cc6f519c8e7d75cee26bed06394bb1d51fabdb9d3ada33c67 *ffmpeg-v43.7.7-darwin-arm64.zip
|
||||
fc2ecfa9bb7ab0131e073f138923ee58f01b88941e366a0be1bad821ed5386bd *ffmpeg-v43.7.7-darwin-x64.zip
|
||||
ed1d9f6af263524c00ff955f50bf289e19c881625384ff421c773ef2aeb8a82d *ffmpeg-v43.7.7-linux-arm64.zip
|
||||
001847bd19549781850fd6f69941a54f92356ed26bca02892e9642637215668d *ffmpeg-v43.7.7-linux-armv7l.zip
|
||||
6638429b92e6d213b78114923585526aff88dbe25f91ace7f2bd5228fac08de5 *ffmpeg-v43.7.7-linux-x64.zip
|
||||
cbbd298f4548e53200d6b0321bea708963e94acc699059721642183301752109 *ffmpeg-v43.7.7-mas-arm64.zip
|
||||
7943078d8e3ee924f1cad1354a29aa3aceaf0b7b7414df3a71924ea9c8906223 *ffmpeg-v43.7.7-mas-x64.zip
|
||||
c8ec52d6bbda2789c678211a76ffc6eaf1dc5faebe1269fc4d6aafa7fbc5510f *ffmpeg-v43.7.7-win32-arm64.zip
|
||||
37f7bf4b42615e880f971d8714f2b1f4629c06bd8bbd73c8993a8713f8d3628f *ffmpeg-v43.7.7-win32-ia32.zip
|
||||
df14da964d36f36c50030004bb5e93a3b5fac9e4ddd6dd4f0e4ecdd49456ee4f *ffmpeg-v43.7.7-win32-x64.zip
|
||||
1987f0c54ac21514090440f4dc981245cae34b71e95ddbeffd5bcb5da9a4982e *hunspell_dictionaries.zip
|
||||
cd2a8fc7973a60a60f1612d87528e07eb047fad61106f240f4e39bffe9b66969 *libcxx-objects-v43.7.7-linux-arm64.zip
|
||||
76dc80ad01bf2f0da658d5e58e256bcbcfc5b5e03d5ce25c3a43b9073d0e2a4f *libcxx-objects-v43.7.7-linux-armv7l.zip
|
||||
5df32a0f3b4e11575d619dfc30bd614238a616f87303142b37bcf62b6206047f *libcxx-objects-v43.7.7-linux-x64.zip
|
||||
f318b7480e1e9b6149cfa83dedee6027a381f4dc7a4b99af89dddbab4f6d0261 *libcxx_headers.zip
|
||||
600988a1000006cb10d8b88727c6877dfe3e0cbcb49baee317551d8131593c0c *libcxxabi_headers.zip
|
||||
080d43c0521b53dc9fffe91b17f9592518230aa0c819bac3e7a6aff484126895 *mksnapshot-v43.7.7-darwin-arm64.zip
|
||||
3a4cf3ca11eb4f98e66e9ef111f7be82d5d517851ef0882d71bf25ef3f5e4adb *mksnapshot-v43.7.7-darwin-x64.zip
|
||||
052aa030567fe51301f4ba7c52098583868296f0ea91fa1a78158f763bec1332 *mksnapshot-v43.7.7-linux-arm64-x64.zip
|
||||
de81d082e286d93e6c2baa6a2ce4b5ccf36dbf5fab512c1a8274e4ad1d6ba660 *mksnapshot-v43.7.7-linux-armv7l-x64.zip
|
||||
1a222e37532fb300237eedfc6eae2a836f9b8ccf988af64507c88178a9ad3a41 *mksnapshot-v43.7.7-linux-x64.zip
|
||||
4aaa40fcf9c283f9c3106523fcaff9301dac65b7d36434aa1970def061c82a20 *mksnapshot-v43.7.7-mas-arm64.zip
|
||||
2a46e79869eaaee734f7f70ef5650bdba3b72cce26a201c8f1a87e15364efd16 *mksnapshot-v43.7.7-mas-x64.zip
|
||||
8de088472502ed3a26b5a56b016849add2cc694eb2acc76e599d582c675ca8e1 *mksnapshot-v43.7.7-win32-arm64-x64.zip
|
||||
e73d7a9ada185a6182bdf6872f6c5a7ae22f18a1f7efdb9e4fcb7b21b21b0c53 *mksnapshot-v43.7.7-win32-ia32.zip
|
||||
4878c2cf511a54a3d38cab480b0f3a2699f84e0d0bdf80b7f300cfbe867ca8b5 *mksnapshot-v43.7.7-win32-x64.zip
|
||||
37e278ec348a0a97b45f36f9e4a43f6b1f57c6b70baa1e91ec895cac9e912547 *chromedriver-v43.8.3-darwin-arm64.zip
|
||||
e8a913dff24d2d3f3e5039fe74ef754ea642a3320282495ec8076e702612f69c *chromedriver-v43.8.3-darwin-x64.zip
|
||||
929cda53a3a544cb6a3b03e75e3d0ff9f44c077be89ce0a6c66287199cd51940 *chromedriver-v43.8.3-linux-arm64.zip
|
||||
4d35c68f3015b1b12c4cd58744df2e6ca66fd6ef901a76d66f3aaf88a1207d5e *chromedriver-v43.8.3-linux-armv7l.zip
|
||||
110d5bf9d1e03841cdc29ae5bb6f997913b02f34de4caeedddf7e2c7b20ee396 *chromedriver-v43.8.3-linux-x64.zip
|
||||
e8af5230efb24094df2a052abaa6df2cb47517c0739147d2ab4b2db4b4976da7 *chromedriver-v43.8.3-mas-arm64.zip
|
||||
db091ac128d83353323d6b2db4c2e5996aa141f0778ac2502ccf311280b23157 *chromedriver-v43.8.3-mas-x64.zip
|
||||
aa9b4b6a324f35dbc33c7b957ff6a69b810036e558cc9ce97f63b1ce606df6df *chromedriver-v43.8.3-win32-arm64.zip
|
||||
b5ce3044526d58dbfdf561005ba877d0cd9d9ed72888703d3dd1385122d318a8 *chromedriver-v43.8.3-win32-ia32.zip
|
||||
cd479d1d38d537e06b8af4a0e4fd3448da0e4ca8c57c05a7cdfa2549f8ce5da6 *chromedriver-v43.8.3-win32-x64.zip
|
||||
ceef77c3b2b2064ac52753e8e5224228850b4296e4b674e7b8fdefa07aa24955 *electron-api.json
|
||||
04de3d0c6e307b63db367d90bb4198d224de48a23c5101ce4e76e0de077062a9 *electron-v43.8.3-darwin-arm64-dsym-snapshot.zip
|
||||
311be758b60b62eebdcb52369296b9e66b2fcba021f0e2a9742a55ff4bc5da27 *electron-v43.8.3-darwin-arm64-dsym.tar.xz
|
||||
9767207cfe2d1aafa9a083d114715cfe0ec0db079b77d3923685a72135d21d1a *electron-v43.8.3-darwin-arm64-symbols.zip
|
||||
08e693ae36cfd230105aabe70c626b1a243c13534a529c35a80c1b87cb8da7b4 *electron-v43.8.3-darwin-arm64.zip
|
||||
04de3d0c6e307b63db367d90bb4198d224de48a23c5101ce4e76e0de077062a9 *electron-v43.8.3-darwin-x64-dsym-snapshot.zip
|
||||
3159f6d3b7535138d7dbfc064202d5228426114fd5fa6fda4d41ebe4e1d5418a *electron-v43.8.3-darwin-x64-dsym.tar.xz
|
||||
21919f67f27175d186cff9d5084136a81335bb727783d286f005327564b0cfe2 *electron-v43.8.3-darwin-x64-symbols.zip
|
||||
3e16ccaed7473a763e1a8cd16e8f17e796229d2a269b9c36bfbb6d93a6ba8443 *electron-v43.8.3-darwin-x64.zip
|
||||
c6784e7a93d961453c744f973de7ebcd1744075ed56a7cd45ddcc300f458f9a7 *electron-v43.8.3-linux-arm64-debug.zip
|
||||
716b81ba0fb9d6e0bfb7d8221985dcd80e67ada1b35b39020216d91f5df5f367 *electron-v43.8.3-linux-arm64-symbols.zip
|
||||
b814ab22abf0bce90fd2fffc1490efc94f388353bcdb2f744950744998fd97b1 *electron-v43.8.3-linux-arm64.zip
|
||||
9f4fdf88104c7559b7e92599a3f18d3a84239eefb6f3266fa033e06c88598b73 *electron-v43.8.3-linux-armv7l-debug.zip
|
||||
ba9e62897d7630fdb63a3c17818bbc810c6d84b3f70aa40c9efbde1e5a30791f *electron-v43.8.3-linux-armv7l-symbols.zip
|
||||
ce65b4ba52dabe1cf8e98933d057cb656b9b9c745ac0e1c859d331bc7a5da1ae *electron-v43.8.3-linux-armv7l.zip
|
||||
7287290dbe4d2b44ad264c5f9dd7b9b9361dd7c4c8620f002e2e506f74196631 *electron-v43.8.3-linux-x64-debug.zip
|
||||
188580f63d124ae219265043abe2040788fe97617de6a10fca93624eb1b622a6 *electron-v43.8.3-linux-x64-symbols.zip
|
||||
73d7d6fe120c998db75834c23c8ce7ce8390607c198b2e167a28acd7937bef22 *electron-v43.8.3-linux-x64.zip
|
||||
04de3d0c6e307b63db367d90bb4198d224de48a23c5101ce4e76e0de077062a9 *electron-v43.8.3-mas-arm64-dsym-snapshot.zip
|
||||
9043ab8c0f11fd3379966611dd760be6992846d407dbcfbffc55a9d217e1e26b *electron-v43.8.3-mas-arm64-dsym.tar.xz
|
||||
7dfa7950128c413edf7f6414feabf743ed2d8b6a4dca0dfeee2e61944222f7fa *electron-v43.8.3-mas-arm64-symbols.zip
|
||||
d5d19790e7fbb1de3680452ffd037c598be73bc21a3f12f19971cc4db33b1180 *electron-v43.8.3-mas-arm64.zip
|
||||
04de3d0c6e307b63db367d90bb4198d224de48a23c5101ce4e76e0de077062a9 *electron-v43.8.3-mas-x64-dsym-snapshot.zip
|
||||
63ab6fd4b8f07921df8104825643b66d447a7d7d767592fa2174cc7c79316875 *electron-v43.8.3-mas-x64-dsym.tar.xz
|
||||
57fff11078bda253be311124131a8c5e0ef4242ef16832ffea985a599abde877 *electron-v43.8.3-mas-x64-symbols.zip
|
||||
e84e2086c680c315da51968ad64624dc8918c3028223c899525965bab5d2bb00 *electron-v43.8.3-mas-x64.zip
|
||||
c0ff0bf2cd2849ba440f6cdad1b284300a2c826a5d82dce832ee9aa76d7890d3 *electron-v43.8.3-win32-arm64-pdb.zip
|
||||
719c20e7447008f22c2038160d40aa56ab801fa4ee9fca5046aed4e3e66e25a0 *electron-v43.8.3-win32-arm64-symbols.zip
|
||||
90386280bc7e4ac5d451e43e26a7c76ed1c8bcdc0206ec50762c7e4f09c59c28 *electron-v43.8.3-win32-arm64-toolchain-profile.zip
|
||||
2b3aceeb51107023e48fe5a8ccb361dd4a1af4171b23b7ff1af2d67f09cfd394 *electron-v43.8.3-win32-arm64.zip
|
||||
266ddf98e579231431804b5e09c675499168e050bd202b9f76aab03c769d25c4 *electron-v43.8.3-win32-ia32-pdb.zip
|
||||
8a66080bfc117c4c44571c7283bde9c6b8264e3150903c667b864ad64c58988a *electron-v43.8.3-win32-ia32-symbols.zip
|
||||
90386280bc7e4ac5d451e43e26a7c76ed1c8bcdc0206ec50762c7e4f09c59c28 *electron-v43.8.3-win32-ia32-toolchain-profile.zip
|
||||
476bc01495fad5c86cd4d66954f94c68ff7a79637a9da02f23eab7aebc430ab6 *electron-v43.8.3-win32-ia32.zip
|
||||
9e0ee6624d938a7d862ca95d77dfd1d0f2c29ba46e0b85a79a1160b39470d77a *electron-v43.8.3-win32-x64-pdb.zip
|
||||
3a3d0f9189c765c1c90980ca515029c993af55dcd3729d64eea620078f4cf7a0 *electron-v43.8.3-win32-x64-symbols.zip
|
||||
90386280bc7e4ac5d451e43e26a7c76ed1c8bcdc0206ec50762c7e4f09c59c28 *electron-v43.8.3-win32-x64-toolchain-profile.zip
|
||||
98efbd2d1c7bd44150c0aa800cd9ac5fefcefd2d44fd94958a95d6744d86c6de *electron-v43.8.3-win32-x64.zip
|
||||
782f47bd6013fa7d0c9640f2ce38b54759ba999ca3f5070711e5cd46e726869d *electron.d.ts
|
||||
64a19753539d044d60828de029eedf152d58bdd5ab3aafe39592b5355e765a3e *ffmpeg-v43.8.3-darwin-arm64.zip
|
||||
b30ec07e5a56697305e78bf1504325768258fa7cc4e420590ba8396c91a12232 *ffmpeg-v43.8.3-darwin-x64.zip
|
||||
b409154ef3cbbc0bdabec071bc8d8edecb07daf4a020e59e421a9fa35c741666 *ffmpeg-v43.8.3-linux-arm64.zip
|
||||
001847bd19549781850fd6f69941a54f92356ed26bca02892e9642637215668d *ffmpeg-v43.8.3-linux-armv7l.zip
|
||||
53e7f7ef20ab264ceec4280c865ca25bf33379433bc4413fd84282f46a2e1928 *ffmpeg-v43.8.3-linux-x64.zip
|
||||
72e5f94c9c5d79304bf142b935eed8b059686e966f4f6a7c718e5a94d32ffffc *ffmpeg-v43.8.3-mas-arm64.zip
|
||||
1e7768e7b01fa758a614db81359a35c3be1cc8d966c71b36fa600fcf9bcb9c0d *ffmpeg-v43.8.3-mas-x64.zip
|
||||
49d81f808b94554949688a31db15f5e7f020bdd250b5d1279824d26303559ae2 *ffmpeg-v43.8.3-win32-arm64.zip
|
||||
2bf9eb4cb5b9a229b2942cab9fcd8e51bd26d977a632c7346e0d9546eb428ac7 *ffmpeg-v43.8.3-win32-ia32.zip
|
||||
5879bbe130206e855a7e6c53c4180116d32acb2c0c358b3503957df9c92bb28f *ffmpeg-v43.8.3-win32-x64.zip
|
||||
c4112f9ffa2b4621ed6309117ba493cb05eeedf6d7210711fc08b7608aebdaaf *hunspell_dictionaries.zip
|
||||
d9330f8812c88b5438af463e4fdf3a299cd2e2d7f6fbb9b878626b9598f102f0 *libcxx-objects-v43.8.3-linux-arm64.zip
|
||||
d9bad76b10c9f60599a1dcbe08901d331346b56e2193f1d8a1e060485b29300d *libcxx-objects-v43.8.3-linux-armv7l.zip
|
||||
338abb02e91811cd6418cd89c95dd00c36eef4f93637f230a670f17711a0591f *libcxx-objects-v43.8.3-linux-x64.zip
|
||||
e26c81aef3401936f6464919f85504985d425e0b113b8433f734b0222d242c17 *libcxx_headers.zip
|
||||
ff0571d69ffac9b7a1d4f31d0b7bddb0962cb578967f7777557a1adfb46abfa5 *libcxxabi_headers.zip
|
||||
f38c7894642f934a04ef6812eb58c4980a33d300da4573fde616028a1a67d3c6 *mksnapshot-v43.8.3-darwin-arm64.zip
|
||||
482e5a656f9ad15e2c21b9560adadc321f61b4aa3a523516896862e91545db4d *mksnapshot-v43.8.3-darwin-x64.zip
|
||||
e7dac3123c49e2d4038db6391a9c1997823fbe5e0c20da176185d43000d670b1 *mksnapshot-v43.8.3-linux-arm64-x64.zip
|
||||
d8a01aede948b98ce0a198c64a73004f040672d2362b857309bd7d5a41b235ab *mksnapshot-v43.8.3-linux-armv7l-x64.zip
|
||||
e3865154e4aa6104da6b5100164d040c6dd1959604c3271b249e6fef56073ffa *mksnapshot-v43.8.3-linux-x64.zip
|
||||
bb694b3762731ac09b9839e79a0bfbcdc37e177b69c617c6663ef104f8a15b2f *mksnapshot-v43.8.3-mas-arm64.zip
|
||||
0660d896926ae1f96b4a06a42ce34572df7cf69bf95d85783840a26b35c20ba2 *mksnapshot-v43.8.3-mas-x64.zip
|
||||
3bf5b705289951eb456d835d120b041a80c7b478fc56ae6f3ff3dac28db24d39 *mksnapshot-v43.8.3-win32-arm64-x64.zip
|
||||
338da32ae94a25a2d050b1bbb7c2759bdf14c5f8a8d083435a1ad08d6577e136 *mksnapshot-v43.8.3-win32-ia32.zip
|
||||
79de2c43512dae5ca17c3d41bace607e4ab6b9ab138685b30b1a180a12b92275 *mksnapshot-v43.8.3-win32-x64.zip
|
||||
@@ -1,6 +1,7 @@
|
||||
bed7eea5325e1108f32ce5228ddd6a5f0f08a499ee42aa7442aea583702f6057 node-v24.21.0-darwin-arm64.tar.gz
|
||||
1462cb3b3046b815cf8ea436d3da450ec1a9f11dac7e5a46b0ada5305d7e8097 node-v24.21.0-darwin-x64.tar.gz
|
||||
724282c3b43aec998aa9527380465b45d229e021b58035f5f4f63095eabfe5d5 node-v24.21.0-linux-arm64.tar.gz
|
||||
6e1db87ef58b8819e5d5402eff1536491b18edd8eb7bee5ef7897876e88dc5ff node-v24.21.0-linux-x64.tar.gz
|
||||
dff59da18b6ffe1bf1ca99e1d2af4906080c481740619f5b5098c0fca28bd9b7 win-arm64/node.exe
|
||||
ba4e6d110e8c1592a1ecd390f6b05f3da124b13871a5be62b341a07a853c6c32 win-x64/node.exe
|
||||
89c682593d76cd44233fa53b1563264e7de9cbb189cad169135c5b4fadfbc0a7 node-v24.22.1-darwin-arm64.tar.gz
|
||||
d132557e7ee2b85af08b0c8c34338e65c6430f2238d01f727728ef42dc83b035 node-v24.22.1-darwin-x64.tar.gz
|
||||
33c37be234ba8bee041961047b19160f4d7d0f164e8e246f78bdd10feff148b3 node-v24.22.1-linux-arm64.tar.gz
|
||||
9b250d29d6ab8ae38dd23019e2c04a6d6b2916ab1dad721c5f6e1da2b2901c6a node-v24.22.1-linux-x64-musl.tar.gz
|
||||
eb6728e77c576a35162c122c45ccadf224d89ff00abc8dae46cc2897c6002d7c node-v24.22.1-linux-x64.tar.gz
|
||||
8bea91dc437fe01e7d92ef0efc6c9eaf654369aaba9b2d3e9841552ea7b95a00 win-arm64/node.exe
|
||||
d702daa815eabbff763c7d3808e235cf031cf2ca70211b56847bc72f51e240e5 win-x64/node.exe
|
||||
@@ -29,8 +29,7 @@ export function shouldGenerateNodeCompileCache(platform: string, arch: string, p
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: Re-enable POSIX caches once the runtime fixes portable caching with eager/read-only options.
|
||||
return platform === 'win32' && arch === 'x64';
|
||||
return platform === 'darwin' ? arch === 'arm64' : (platform === 'linux' || platform === 'win32') && arch === 'x64';
|
||||
}
|
||||
|
||||
export function getNodeCompileCachePaths(platform: string, outputDirectory: string, versionedResourcesFolder: string, product: INodeCompileCacheProduct): INodeCompileCachePaths {
|
||||
|
||||
+6
-6
@@ -516,12 +516,12 @@
|
||||
"git": {
|
||||
"name": "nodejs",
|
||||
"repositoryUrl": "https://github.com/nodejs/node",
|
||||
"commitHash": "955266bfdd854cd280dffd47548673914484e4c0",
|
||||
"tag": "24.21.0"
|
||||
"commitHash": "ce7aaf1cee78b8cf0ce17364260535c418d3ed26",
|
||||
"tag": "24.22.1"
|
||||
}
|
||||
},
|
||||
"isOnlyProductionDependency": true,
|
||||
"version": "24.21.0"
|
||||
"version": "24.22.1"
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
@@ -529,13 +529,13 @@
|
||||
"git": {
|
||||
"name": "electron",
|
||||
"repositoryUrl": "https://github.com/electron/electron",
|
||||
"commitHash": "ddb762f50fbd70384d0385302697e60ada549024",
|
||||
"tag": "43.7.7"
|
||||
"commitHash": "1c0ee213f150fc4a0d06304dcedabd9b2e8ce0f7",
|
||||
"tag": "43.8.3"
|
||||
}
|
||||
},
|
||||
"isOnlyProductionDependency": true,
|
||||
"license": "MIT",
|
||||
"version": "43.7.7"
|
||||
"version": "43.8.3"
|
||||
},
|
||||
{
|
||||
"component": {
|
||||
|
||||
@@ -1 +1 @@
|
||||
24.22.0
|
||||
24.22.1
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "code-oss-dev",
|
||||
"version": "1.144.0",
|
||||
"distro": "970f5d12c6d064fc72fdd155408d94172b7b2971",
|
||||
"distro": "521818f764541475ae887336c771834dbb3c71af",
|
||||
"author": {
|
||||
"name": "Microsoft Corporation"
|
||||
},
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
disturl="https://nodejs.org/dist"
|
||||
target="24.21.0"
|
||||
ms_build_id="474716"
|
||||
target="24.22.1"
|
||||
ms_build_id="488038"
|
||||
runtime="node"
|
||||
build_from_source="true"
|
||||
legacy-peer-deps="true"
|
||||
|
||||
+3
-3
@@ -361,15 +361,15 @@ function configureCommandlineSwitchesSync(cliArgs: NativeParsedArgs) {
|
||||
// `EarlyEstablishGpuChannel` - Refs https://issues.chromium.org/issues/40208065
|
||||
// `EstablishGpuChannelAsync` - Refs https://issues.chromium.org/issues/40208065
|
||||
// `GlobalShortcutsPortal` - Enables Electron's `globalShortcut` (system-wide keybindings) on Linux Wayland via the XDG global shortcuts portal (no-op elsewhere)
|
||||
// `UpdateCompositorMemoryPolicyOnScreenChange` - Recompute the compositor memory budget on display changes (https://chromium-review.googlesource.com/c/chromium/src/+/8594621)
|
||||
const featuresToEnable =
|
||||
`NetAdapterMaxBufSizeFeature:NetAdapterMaxBufSize/8192,DocumentPolicyIncludeJSCallStacksInCrashReports,EarlyEstablishGpuChannel,EstablishGpuChannelAsync${process.platform === 'linux' ? ',GlobalShortcutsPortal' : ''},${app.commandLine.getSwitchValue('enable-features')}`;
|
||||
`NetAdapterMaxBufSizeFeature:NetAdapterMaxBufSize/8192,DocumentPolicyIncludeJSCallStacksInCrashReports,EarlyEstablishGpuChannel,EstablishGpuChannelAsync,UpdateCompositorMemoryPolicyOnScreenChange${process.platform === 'linux' ? ',GlobalShortcutsPortal' : ''},${app.commandLine.getSwitchValue('enable-features')}`;
|
||||
app.commandLine.appendSwitch('enable-features', featuresToEnable);
|
||||
|
||||
// Following features are disabled from the runtime:
|
||||
// `CalculateNativeWinOcclusion` - Disable native window occlusion tracker (https://groups.google.com/a/chromium.org/g/embedder-dev/c/ZF3uHHyWLKw/m/VDN2hDXMAAAJ)
|
||||
// `HideCursorWhileTyping` - Disable hiding the cursor while typing (https://chromium-review.googlesource.com/c/chromium/src/+/7916752)
|
||||
const featuresToDisable =
|
||||
`CalculateNativeWinOcclusion,HideCursorWhileTyping,${app.commandLine.getSwitchValue('disable-features')}`;
|
||||
`CalculateNativeWinOcclusion,${app.commandLine.getSwitchValue('disable-features')}`;
|
||||
app.commandLine.appendSwitch('disable-features', featuresToDisable);
|
||||
|
||||
// Blink features to configure.
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Approved video codec/container candidates, ordered by recording preference.
|
||||
* Consumers must still query recording and playback support in the current runtime.
|
||||
*/
|
||||
export const supportedVideoFormats = [
|
||||
{ mimeType: 'video/mp4;codecs=avc1.42001E', label: 'MP4', extension: 'mp4' },
|
||||
{ mimeType: 'video/webm;codecs=vp8', label: 'WebM', extension: 'webm' },
|
||||
] as const;
|
||||
|
||||
/** Approved audio codec/container candidates; availability must be checked at runtime. */
|
||||
export const supportedAudioFormats = [
|
||||
{ mimeType: 'audio/ogg;codecs=vorbis', label: 'Ogg', extension: 'ogg' },
|
||||
{ mimeType: 'audio/webm;codecs=vorbis', label: 'WebM', extension: 'webm' },
|
||||
{ mimeType: 'audio/flac', label: 'FLAC', extension: 'flac' },
|
||||
{ mimeType: 'audio/mpeg', label: 'MP3', extension: 'mp3' },
|
||||
{ mimeType: 'audio/wav;codecs=1', label: 'WAV', extension: 'wav' },
|
||||
] as const;
|
||||
@@ -61,17 +61,6 @@ export function enableNodeCompileCache(kind: NodeCompileCacheKind): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: Re-enable POSIX caches once the runtime fixes portable caching with eager/read-only options.
|
||||
if (process.platform !== 'win32') {
|
||||
setNodeCompileCacheStatus({
|
||||
kind,
|
||||
status: 'disabled',
|
||||
configuredDirectory: cacheDirectory,
|
||||
isPackagedCacheEnabled: false
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
const isGeneratingCache = process.env['VSCODE_GENERATE_NODE_COMPILE_CACHE'] === '1';
|
||||
const runtimeCachePrefix = `${process.version}-${process.arch}-`;
|
||||
// eslint-disable-next-line local/code-no-sync-fs -- The cache must be validated before enableCompileCache and subsequent module imports; an async probe would miss compilation of those startup modules.
|
||||
|
||||
@@ -8,6 +8,7 @@ import { TimeoutTimer } from '../../../../base/common/async.js';
|
||||
import { Emitter, Event } from '../../../../base/common/event.js';
|
||||
import { CancellationError, isCancellationError } from '../../../../base/common/errors.js';
|
||||
import { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';
|
||||
import { supportedVideoFormats } from '../../../../base/common/media.js';
|
||||
import { isMacintosh } from '../../../../base/common/platform.js';
|
||||
import { localize } from '../../../../nls.js';
|
||||
import { ILogService } from '../../../../platform/log/common/log.js';
|
||||
@@ -96,19 +97,10 @@ export class NativeRecordingService extends Disposable implements IRecordingServ
|
||||
}
|
||||
|
||||
getSupportedFormats(): { mimeType: string; label: string; extension: string }[] {
|
||||
const formats: { mimeType: string; label: string; extension: string }[] = [];
|
||||
const MediaRecorder = this.getMediaRecorderConstructor();
|
||||
if (MediaRecorder) {
|
||||
if (this.isFormatSupported(MediaRecorder, 'video/mp4')) {
|
||||
formats.push({ mimeType: 'video/mp4', label: 'MP4', extension: 'mp4' });
|
||||
}
|
||||
if (this.isFormatSupported(MediaRecorder, 'video/webm;codecs=vp9')) {
|
||||
formats.push({ mimeType: 'video/webm;codecs=vp9', label: 'WebM', extension: 'webm' });
|
||||
} else if (this.isFormatSupported(MediaRecorder, 'video/webm')) {
|
||||
formats.push({ mimeType: 'video/webm', label: 'WebM', extension: 'webm' });
|
||||
}
|
||||
}
|
||||
return formats;
|
||||
return MediaRecorder
|
||||
? supportedVideoFormats.filter(format => this.isFormatSupported(MediaRecorder, format.mimeType))
|
||||
: [];
|
||||
}
|
||||
|
||||
async startRecording(preferredMimeType?: string): Promise<void> {
|
||||
@@ -142,7 +134,8 @@ export class NativeRecordingService extends Disposable implements IRecordingServ
|
||||
throw new Error(localize('recordingNoLiveTrack', "No live screen capture source is available. Try recording again."));
|
||||
}
|
||||
|
||||
const mimeType = preferredMimeType && this.isFormatSupported(MediaRecorder, preferredMimeType) ? preferredMimeType : supportedFormats[0].mimeType;
|
||||
const mimeType = supportedFormats.find(format => format.mimeType === preferredMimeType || format.mimeType.split(';')[0] === preferredMimeType)?.mimeType
|
||||
?? supportedFormats[0].mimeType;
|
||||
const recorder = this.mediaRecorder = new MediaRecorder(stream, { mimeType, videoBitsPerSecond: 2_500_000 });
|
||||
|
||||
recorder.ondataavailable = e => {
|
||||
|
||||
+60
-25
@@ -18,6 +18,8 @@ import { INativeHostService } from '../../../../../platform/native/common/native
|
||||
import { RecordingState } from '../../browser/recordingService.js';
|
||||
import { NativeRecordingService } from '../../electron-browser/nativeRecordingService.js';
|
||||
|
||||
const mp4RecordingMimeType = 'video/mp4;codecs=avc1.42001E';
|
||||
|
||||
class TestTrack extends mock<MediaStreamTrack>() {
|
||||
constructor(override readonly kind = 'video') { super(); }
|
||||
override readyState: MediaStreamTrackState = 'live';
|
||||
@@ -82,7 +84,7 @@ suite('NativeRecordingService', () => {
|
||||
const recorders: TestRecorder[] = [];
|
||||
const recorderCreated = new DeferredPromise<void>();
|
||||
class TestRecorder extends mock<MediaRecorder>() {
|
||||
static isTypeSupported(mimeType: string): boolean { return (options.formats ?? ['video/mp4', 'video/webm;codecs=vp9', 'video/webm']).includes(mimeType); }
|
||||
static isTypeSupported(mimeType: string): boolean { return (options.formats ?? [mp4RecordingMimeType]).includes(mimeType); }
|
||||
override state: 'inactive' | 'recording' | 'paused' = 'inactive';
|
||||
override readonly mimeType: string;
|
||||
override ondataavailable: MediaRecorder['ondataavailable'] = null;
|
||||
@@ -163,7 +165,7 @@ suite('NativeRecordingService', () => {
|
||||
override async requestScreenCaptureAccess(): Promise<boolean> { nativeCalls.push('request'); return true; }
|
||||
override async openExternal(url: string): Promise<boolean> { nativeCalls.push(url); return true; }
|
||||
}();
|
||||
const service = store.add(new TestNativeRecordingService(devices, TestRecorder, nativeHost, options.playableFormats ?? options.formats ?? ['video/mp4', 'video/webm;codecs=vp9', 'video/webm']));
|
||||
const service = store.add(new TestNativeRecordingService(devices, TestRecorder, nativeHost, options.playableFormats ?? options.formats ?? [mp4RecordingMimeType]));
|
||||
return { service, tracks, recorders, devices, nativeCalls, recorderCreated };
|
||||
}
|
||||
|
||||
@@ -206,27 +208,57 @@ suite('NativeRecordingService', () => {
|
||||
assert.deepStrictEqual(snapshot(service, tracks, recorders), idleSnapshot);
|
||||
});
|
||||
|
||||
for (const format of ['video/mp4', 'video/webm;codecs=vp9', 'video/webm']) {
|
||||
test(`records and explicitly stops ${format} without an external stop event`, async () => {
|
||||
const { service, tracks, recorders } = createService({ formats: [format] });
|
||||
const states: RecordingState[] = [];
|
||||
store.add(service.onDidChangeState(state => states.push(state)));
|
||||
await service.startRecording('video/mp4');
|
||||
const data = await service.stopRecording();
|
||||
assert.deepStrictEqual({
|
||||
...snapshot(service, tracks, recorders), states, mimeType: data?.mimeType, size: data?.sizeBytes, content: await data?.blob.text(),
|
||||
}, { ...idleSnapshot, states: [RecordingState.Recording, RecordingState.Idle], mimeType: format, size: 10, content: 'videovideo' });
|
||||
});
|
||||
}
|
||||
test('defaults to H.264 MP4 and explicitly stops without an external stop event', async () => {
|
||||
const { service, tracks, recorders } = createService();
|
||||
const states: RecordingState[] = [];
|
||||
store.add(service.onDidChangeState(state => states.push(state)));
|
||||
await service.startRecording();
|
||||
const data = await service.stopRecording();
|
||||
assert.deepStrictEqual({
|
||||
...snapshot(service, tracks, recorders), states, mimeType: data?.mimeType, size: data?.sizeBytes, content: await data?.blob.text(),
|
||||
}, { ...idleSnapshot, states: [RecordingState.Recording, RecordingState.Idle], mimeType: mp4RecordingMimeType, size: 10, content: 'videovideo' });
|
||||
});
|
||||
|
||||
test('honors a supported format preference', async () => {
|
||||
const { service } = createService();
|
||||
await service.startRecording('video/webm');
|
||||
assert.strictEqual((await service.stopRecording())?.mimeType, 'video/webm');
|
||||
await service.startRecording(mp4RecordingMimeType);
|
||||
assert.strictEqual((await service.stopRecording())?.mimeType, mp4RecordingMimeType);
|
||||
});
|
||||
|
||||
test('resolves a container preference to an explicitly supported codec', async () => {
|
||||
const { service } = createService({ formats: ['video/mp4', mp4RecordingMimeType] });
|
||||
await service.startRecording('video/mp4');
|
||||
assert.strictEqual((await service.stopRecording())?.mimeType, mp4RecordingMimeType);
|
||||
});
|
||||
|
||||
test('does not advertise an unspecified MP4 codec when H.264 recording is unavailable', () => {
|
||||
const { service } = createService({ formats: ['video/mp4'] });
|
||||
assert.deepStrictEqual({ supported: service.isSupported, formats: service.getSupportedFormats() }, {
|
||||
supported: false, formats: [],
|
||||
});
|
||||
});
|
||||
|
||||
test('does not select codecs outside the approved candidates', async () => {
|
||||
const { service } = createService({ formats: [mp4RecordingMimeType, 'video/mp4;codecs=vp9', 'video/webm;codecs=vp9'], playableFormats: [mp4RecordingMimeType] });
|
||||
await service.startRecording('video/mp4;codecs=vp9');
|
||||
assert.strictEqual((await service.stopRecording())?.mimeType, mp4RecordingMimeType);
|
||||
});
|
||||
|
||||
test('filters approved formats using both recording and playback support', () => {
|
||||
const vp8 = 'video/webm;codecs=vp8';
|
||||
const { service: recordableOnly } = createService({ formats: [mp4RecordingMimeType, vp8], playableFormats: [mp4RecordingMimeType] });
|
||||
const { service: playableOnly } = createService({ formats: [mp4RecordingMimeType], playableFormats: [mp4RecordingMimeType, vp8] });
|
||||
assert.deepStrictEqual({
|
||||
recordableOnly: recordableOnly.getSupportedFormats(),
|
||||
playableOnly: playableOnly.getSupportedFormats(),
|
||||
}, {
|
||||
recordableOnly: [{ mimeType: mp4RecordingMimeType, label: 'MP4', extension: 'mp4' }],
|
||||
playableOnly: [{ mimeType: mp4RecordingMimeType, label: 'MP4', extension: 'mp4' }],
|
||||
});
|
||||
});
|
||||
|
||||
test('only uses formats that can also be decoded', async () => {
|
||||
const { service } = createService({ playableFormats: ['video/mp4'] });
|
||||
const { service } = createService({ playableFormats: [mp4RecordingMimeType] });
|
||||
await service.startRecording('video/webm');
|
||||
const data = await service.stopRecording();
|
||||
const { service: unsupported } = createService({ playableFormats: [] });
|
||||
@@ -238,8 +270,8 @@ suite('NativeRecordingService', () => {
|
||||
unsupported: { isSupported: unsupported.isSupported, formats: unsupported.getSupportedFormats() },
|
||||
}, {
|
||||
supported: true,
|
||||
formats: [{ mimeType: 'video/mp4', label: 'MP4', extension: 'mp4' }],
|
||||
fallback: 'video/mp4',
|
||||
formats: [{ mimeType: mp4RecordingMimeType, label: 'MP4', extension: 'mp4' }],
|
||||
fallback: mp4RecordingMimeType,
|
||||
unsupported: { isSupported: false, formats: [] },
|
||||
});
|
||||
});
|
||||
@@ -438,9 +470,9 @@ suite('NativeRecordingService', () => {
|
||||
: ['request']);
|
||||
});
|
||||
|
||||
for (const mimeType of ['video/mp4', 'video/webm']) {
|
||||
// The video/webm case: WebM can't be opened on the shipped (feed) Electron that product builds test with (`PipelineStatus::DEMUXER_ERROR_COULD_NOT_OPEN: FFmpegDemuxer: open context failed`), so this is skipped until https://github.com/microsoft/vscode/issues/343345 is fixed.
|
||||
(mimeType === 'video/webm' ? test.skip : test)(`only advertises and round-trips playable ${mimeType} without OS capture`, async () => {
|
||||
for (const mimeType of ['video/mp4', 'video/webm;codecs=vp8']) {
|
||||
// TODO: Enable WebM/VP8 once the shipped FFmpeg supports WebM file demuxing: https://github.com/microsoft/vscode/issues/343345.
|
||||
(mimeType.startsWith('video/webm') ? test.skip : test)(`only advertises and round-trips playable ${mimeType} without OS capture`, async () => {
|
||||
const canvas = mainWindow.document.createElement('canvas');
|
||||
const video = mainWindow.document.createElement('video');
|
||||
canvas.width = 32;
|
||||
@@ -469,7 +501,7 @@ suite('NativeRecordingService', () => {
|
||||
override async getDisplayMedia(): Promise<MediaStream> { return stream; }
|
||||
}();
|
||||
const service = store.add(new TestNativeRecordingService(devices, ObservedMediaRecorder, new class extends mock<INativeHostService>() { }()));
|
||||
const candidates = mimeType === 'video/webm' ? ['video/webm;codecs=vp9', 'video/webm'] : [mimeType];
|
||||
const candidates = [mimeType === 'video/mp4' ? mp4RecordingMimeType : mimeType];
|
||||
const capabilities = candidates.map(candidate => ({
|
||||
mimeType: candidate,
|
||||
recordable: typeof MediaRecorder !== 'undefined' && MediaRecorder.isTypeSupported(candidate),
|
||||
@@ -481,9 +513,12 @@ suite('NativeRecordingService', () => {
|
||||
return;
|
||||
}
|
||||
assert.ok(capabilities.some(capability => capability.mimeType === format.mimeType && capability.recordable && capability.playable));
|
||||
await Promise.all([service.startRecording(format.mimeType), firstChunk.p]);
|
||||
await Promise.all([service.startRecording(mimeType === 'video/mp4' ? undefined : format.mimeType), firstChunk.p]);
|
||||
const data = await service.stopRecording();
|
||||
assert.ok(data?.sizeBytes);
|
||||
if (mimeType === 'video/mp4') {
|
||||
assert.match(data.mimeType, /^video\/mp4;codecs=avc1\./);
|
||||
}
|
||||
|
||||
const url = URL.createObjectURL(data.blob);
|
||||
store.add(toDisposable(() => {
|
||||
@@ -503,7 +538,7 @@ suite('NativeRecordingService', () => {
|
||||
await video.play();
|
||||
assert.deepStrictEqual({
|
||||
state: service.state, width: video.videoWidth, height: video.videoHeight, mimeType: data.mimeType.split(';')[0],
|
||||
}, { state: RecordingState.Idle, width: 32, height: 24, mimeType });
|
||||
}, { state: RecordingState.Idle, width: 32, height: 24, mimeType: mimeType.split(';')[0] });
|
||||
})?.timeout(10000); // `test.skip` returns nothing in this runner
|
||||
}
|
||||
});
|
||||
Reference in new issue
Block a user