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:
Robo authored and GitHub committed 2026-10-23 11:26:29 +00:00
1 parent 747ecb44fa
commit d6e20fdc01
14 files changed
+187 -148

No files matched your search

+2 -2
View File
@@ -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 -1
View File
@@ -1 +1 @@
24.22.0
24.22.1
+75 -75
View File
@@ -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
+7 -6
View File
@@ -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
+1 -2
View File
@@ -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
View File
@@ -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
View File
@@ -1 +1 @@
24.22.0
24.22.1
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
"version": "1.144.0",
"distro": "970f5d12c6d064fc72fdd155408d94172b7b2971",
"distro": "521818f764541475ae887336c771834dbb3c71af",
"author": {
"name": "Microsoft Corporation"
},
+2 -2
View File
@@ -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
View File
@@ -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.
+22
View File
@@ -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;
-11
View File
@@ -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 => {
@@ -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
}
});