نمای کلی اجرایی و اهمیت معماری
الکترون نسخه v45.0.0 نشاندهنده یک جهش بنیادی بزرگ برای توسعه برنامههای دسکتاپ چند پلتفرمی است و این فریمورک را با پشتههای پیشرفته وب و زمان اجرا هماهنگ میکند. در هسته خود، این انتشار کرومیوم 156.0.8078.48، نود جیاس v24.22.0 و V8 15.6 را معرفی میکند و APIهای پیشرفته پلتفرم وب، وصلههای امنیتی و بهینهسازیهای عملکردی را مستقیماً وارد زمانهای اجرای دسکتاپ میسازد. با همگامسازی با این موتورهای بالادستی، توسعهدهندگان الکترون بدون از دست دادن قابلیتهای یکپارچهسازی بومی عمیق که پلتفرم را تعریف میکنند، به ویژگیهای مدرن جاوا اسکریپت، مدلهای مهار CSS بهبودیافته و اولویتهای شبکه قوی دسترسی فوری پیدا میکنند.
از دیدگاه معماری، نسخه v45.0.0 توپولوژیهای فرآیند، محیطهای امنیتی و مرزهای پلتفرم را مجدداً ارزیابی میکند. از همه مهمتر، نگهدارندگان الکترون به طور رسمی بیلدهای ۳۲ بیتی (ویندوز ia32 و لینوکس armv7l) را منسوخ و حذف کردهاند و به طور رسمی اکوسیستم را به طور کامل به معماریهای ۶۴ بیتی (x64 و arm64) منتقل میکنند. این تغییر استراتژیک سربار نگهداری را کاهش میدهد، چیدمان حافظه را برای خطوط لوله پردازنده مدرن بهینه میکند و تضمین میکند که برنامههای دسکتاپ سازمانی منحصراً بر روی پایههای امن و با عملکرد بالا ساخته شوند. علاوه بر این، بازسازی گسترده در اسکریپتهای پیشبارگذاری سندباکس شده، تاخیر راهاندازی و حجم حافظه را به طور قابل توجهی کاهش میدهد و ثابت میکند که عملکرد و امنیت میتوانند به طور همزمان مقیاسپذیر باشند.
بهبودهای هسته و ارگونومی توسعهدهنده
ارگونومی توسعهدهنده در نسخه v45.0.0 از طریق توسعههای هدفمند API و بهبودهای رابط کاربری بومی، تقویت قابل توجهی دریافت میکند. در سیستمعامل مک، توسعهدهندگان اکنون میتوانند از ویژگی badge در MenuItem (پشتیبانیشده در macOS 14 به بالا) برای رندر کردن تعداد بومی یا بجهای متنی سفارشی مستقیماً در مجاورت برچسبهای منو استفاده کنند. علاوه بر این، یکپارچهسازی بومی از طریق app.configureWebAuthn() گسترش مییابد و امکان پشتیبانی یکپارچه از کلید عبور iCloud Keychain را در macOS از طریق ASAuthorizationController فراهم میکند. هنگامی که فعال شود، APIهای اعتباربخشی استاندارد مانند navigator.credentials.create() و .get() فوراً رابط کاربری مجاز کلید عبور بومی اپل را از طریق ASAuthorizationController فعال میکنند و شکاف بین برنامههای وب و جریانهای کاری هویت بومی پلتفرم را پر میکنند.
قابلیت مشاهده عملکرد و رفع اشکال نیز به نقاط عطف جدیدی میرسند. معرفی متغیر محیطی ELECTRON_DEBUG_DRAGGABLE_REGIONS به توسعهدهندگان اجازه میدهد تا نواحی پنجره قابل کشیدن را در برنامههای بستهبندینشده تجسم و ثبت کنند و به طور مستقیم نقاط درد سنتی مرتبط با توسعه نوار عنوان پنجره سفارشی را کاهش دهند. در سمت بکاند، پروفایل حافظه با ادغام یک منبع داده پروفایل پشته Perfetto در contentTracing به یک پارادایم مدرن تغییر میکند. همراه با اضافات جدید مانند webFrameMain.printToPDF() برای چاپ فریم ایزوله از فرآیند اصلی و ماژول آزمایشی localAIHandler در داخل UtilityProcess برای یکپارچهسازی Prompt API، الکترون نسخه v45.0.0 تیمهای مهندسی را مجهز میکند تا برنامههای دسکتاپ پیشرفته، آماده برای هوش مصنوعی و با قابلیت مشاهده عمیق بسازند.
ماتریس مقایسه معماری
| زیرسیستم / معیار | مبنای قبلی (قدیمی) | الکترون نسخه v45.0.0 | تأثیر معماری |
|---|---|---|---|
| کرومیوم زیرین | دوران کرومیوم ۱۵۲-۱۵۴ | کرومیوم 156.0.8078.48 |
دسترسی به APIهای مدرن وب، ویژگیهای CSS و وصلههای امنیتی حیاتی. |
| موتور زمان اجرا (نود) | نود v22.x / اوایل v24 | نود جیاس v24.22.0 |
بارگذاری ماژول بهبودیافته، عملکرد استریم و قابلیتهای V8 15.6. |
| تاخیر راهاندازی سندباکس | بستههای پیشفرض ارزیابیشده JS + ماژولهای سراسری | حذف ماژولها/عناصر سراسری سنگین از پیشبارگذاریهای تمیز | راهاندازی به طور قابل توجهی سریعتر رندر و اسکریپت پیشبارگذاری. |
| پلتفرمهای پشتیبانیشده | معماریهای ۳۲ بیتی و ۶۴ بیتی | فقط ۶۴ بیتی (x64, arm64) |
سربار بیلد قدیمی را حذف میکند؛ محیطهای سختافزاری مدرن را الزامی میکند. |
| ذخیرهسازی و APIهای امنیتی | safeStorage همگام (OSCrypt) |
مسیر مهاجرت ناهمگام | برنامهها را برای حذفهای آینده بکاند رمزنگاری بومی آماده میکند. |
تغییرات اساسی و نکات مهاجرت
الکترون نسخه v45.0.0 چندین تغییر اساسی حیاتی را معرفی میکند که نیازمند ممیزی دقیق در طول مهاجرت است. بارزترین مورد، راهاندازی رندر سندباکس شده است که با حذف ماژولهای events، timers و url در کنار عناصر سراسری Buffer، setImmediate و clearImmediate از اسکریپتهای پیشبارگذاری سندباکس شده، بهینهسازی شده است. برنامههایی که به این عناصر سراسری در پیشبارگذاریهای سندباکس شده متکی هستند، باید به صراحت پلیفیلها را بستهبندی کنند. علاوه بر این، رفتار ماژول سیستم文件 در داخل آرشیوهای ASAR تغییر کرده است: fs.open و روشهای مرتبط اکنون توصیفگرهایی را برمیگردانند که مستقیماً از آرشیو بدون ایجاد کپی فایل موقت خوانده میشوند. کدی که انتظار یک توصیفگر فایل خام را دارد (مانند افزونههای بومی یا stdio در child_process) با خطای EBADF ناموفق خواهد بود و عملیات نوشتن روی فایلهای ASAR اکنون خطای EACCES را پرتاب میکند.
مرزهای امنیت و مجوز نیز سفتوسختتر شدهاند. درخواستهای ضبط صفحه، پنجره و تب اکنون به جای media به عنوان display-capture به setPermissionRequestHandler هدایت میشوند. توسعهندگانی که هندلرهای مجوز آنها به صراحت media را در فهرست مجاز قرار دادهاند، باید منطق خود را بهروزرسانی کنند تا display-capture را شامل شود تا از رگرسیونهای اشتراکگذاری صفحه جلوگیری شود. علاوه بر این، متون همگام safeStorage اکنون رسماً پیش از حذف کامل در الکترون ۴۶ منسوخ شدهاند و از برنامهها میخواهند به جایگزینهای ناهمگام منتقل شوند. در نهایت، سختسازی امنیت ایجاد پنجره دیکته میکند که فرزندان window.open با حالتهای سندباکس ناهمسان اکنون در فرآیندهای ایزوله بدون دستگیرههای بازکننده اجرا میشوند مگر اینکه به صراحت از طریق setWindowOpenHandler لغو شوند.
راهنمای ارتقای گامبهگام
ارتقا به الکترون نسخه v45.0.0 مستقیماً نیازمند بهروزرسانیهای وابستگی ساختاریافته و بازسازی پایگاه کد برای در نظر گرفتن API
