پرش به محتوای اصلی

سپتامبر در سرو: ، مستطیل های گرد و موارد دیگر

هکرنیوز۱۴۰۵ آبان ۱۴, پنجشنبه، ساعت ۱۸:۰۴حدود 11 دقیقه مطالعه

آدرس مقاله: https://servo.org/blog/2026/11/05/september-in-servo/ آدرس نظرات: https://news.ycombinator.com/item?id=50379576 امتیاز: 264 # نظرات: 72

به علاوه توابع جدید CSS و بهبودهای WEbGL2.

Servo 0.7.0 شامل تمام تغییراتی است که ما در ماه سپتامبر انجام دادیم و شامل 527 commit است!

کنسول ابزار توسعه اکنون مشتاقانه ورودی های JS را ارزیابی می کند و امکان بازخورد سریعتر را فراهم می کند (@freyacodes، #47527).

ما به SpiderMonkey v153.3 و mozangle v0.7 ارتقاء دادیم، که هر دو شامل رفع اشکالات امنیتی گزارش شده در بالادست (@sagudev، #48176، #47655، #48259)، هستند.

نسخه ی نمایشی egui.rs اکنون همانطور که انتظار می رود با --pref dom._webegpu_enabled کار می کند.

ما علاقه مندیم که بشنویم که وب سایت های مورد علاقه شما چقدر در سروو اجرا می شوند! گزارش موفقیت در این رشته Zulip یا این بحث Github و شکست در مسائل GitHub ما.

درخت دسترس‌پذیری ما (--pref accessibility_enabled) اکنون کران‌های هندسی را برای عناصر درون خطی گزارش می‌کند (@alice، #47905) و هنگام پاسخ به تغییرات DOM کار بسیار کمتری انجام می‌دهد (@alice، @mrobinson، #47690). علاوه بر این، عناصر دارای نمایشگر: هیچ کدام به عنوان پنهان گزارش نمی شوند (@alice، #47772).

ما بهبودهای انطباق زیادی برای اجرای WebGL2 خود داشتیم ( --pref dom_webgl2_enabled ) (@mxmgorin , #48423 , #48441 , #48470 , #48479 , #48495 , #48473 , #485).

پشتیبانی از ویرایشگرهای WSIWYG (که به شدت به contenteditable متکی هستند) بسیار خوب پیش می رود: ورودی های صفحه کلید اکنون با وجود --pref dom_exec_command_enabled متصل می شوند، بنابراین بسیاری از ویرایشگرها اکنون قابل استفاده هستند (به عنوان مثال).

شرح بسته برای عناصر ویدیو در حال پیشرفت است. آهنگ‌های متن اکنون ورود، خروج، و رویدادها را تغییر می‌دهند (@TimvdLippe، #47725). عناصر رسانه اکنون فهرست کامل مرتب‌شده آهنگ‌های نوشتاری را برمی‌گردانند (@TimvdLippe، #47785)، و افزودن نشانه‌ها به یک آهنگ متنی اکنون آن آهنگ را به درستی تنظیم می‌کند (@TimvdLippe، #48012). اشیاء آهنگ متنی اکنون ویژگی های عنصر <track> مرتبط را منعکس می کنند.

نشانی‌های اینترنتی آهنگ متنی در زمان درست واکشی می‌شوند (@TimvdLippe، #48325)، و نشانه‌های فعال به درستی محاسبه می‌شوند (@TimvdLippe، #48305)، در حالی که نشانه‌های آهنگ متنی طبق انتظار مرتب می‌شوند (@TimvdLippe، #48368). به‌علاوه، تجزیه WebVTT اکنون می‌تواند خطاها را بازیابی کند (@TimvdLippe، #48391).

Sanitizer API ( --pref dom_sanitizer_enabled ) اکنون ویژگی javascriptURLs (@skyz1، #47867) را می پذیرد.

IndexedDB به بهبود خود ادامه می‌دهد: اگر جداول نامرتبط حاوی نام‌های فهرست تکراری باشند، جدول‌ها دیگر خطا نمی‌کنند (-pref dom_indexeddb_enabled) (@leowatts، #47936). علاوه بر این، openCursor() و openKeyCursor() را در IDBIndex (@kuntal-devrat، #48281)، و همچنین advance() ، continue() و continuePrimaryKey() را در IDBCursor (@kuntal-devrat، #48400) پیاده سازی کردیم.

ما متدهای getTimeline() و setTimeline() را برای رابط Animation ( --pref dom_web_animations_enabled ) (@simonwuelker , #48122 ) پیاده سازی کردیم.

یک API جدید برای رویدادهایی وجود دارد که از ابزارهای دسترسی نشات می‌گیرند: Servo :: forward_accessibility_action (@alice، @mrobinson، #48512).

همچنین یک API برای پاک کردن سابقه جلسه وجود دارد: WebView :: clear_session_history (@Narfinger، #47483).

WebView :: set_throttled API حذف شده است (@mrobinson، #39923). هنگامی که یک WebView مخفی می شود، به طور خودکار throttling رخ می دهد و هنگامی که نشان داده می شود متوقف می شود.

متد WebViewDelegate :: notify_focus_changed به همراه روش‌های Servo فوکوس و محو کردن حذف شد (@mrobinson، #48364). هر زمان که WebView تمرکز سیستم را به دست آورد یا از دست داد، جاسازها باید WebView :: set_focused را فراخوانی کنند.

ویژگی webgl به ویژگی پیش‌فرض_web_features (@janeoa، #47866) اضافه شده است. اگر یک جاسازی نمی‌خواهد با پشتیبانی WebGL ارسال شود، اکنون باید ویژگی‌های پیش‌فرض را غیرفعال کنند.

حالت Multiprocess در زمان ساخت با ویژگی جدید Cargo multiprocess (@Narfinger، #47360) فعال می‌شود. برای حذف پشتیبانی از این ویژگی (کاهش اندازه باینری تا 2 مگابایت)، سروو را با ویژگی‌های پیش‌فرض غیرفعال بسازید.

دو اولویت جدید برای تنظیم رفتار جمع‌آوری زباله وجود دارد: js_mem_gc_malloc_threshold_base_mb و js_mem_gc_urgent_threshold_mb (@mxmgorin، #47999). اینها می‌توانند در دستگاه‌های دارای محدودیت حافظه کمک کنند، و اطلاعات بیشتر در منبع SpiderMonkey (پایه، فوری) در دسترس است.

هدف سازگاری JVM در اندروید به 11 افزایش یافت (@veyndan، #48414).

اکنون امکان کامپایل متقابل بیلد OpenHarmony از هاست ویندوز (@jschwe، #48392) وجود دارد.

رد کردن وعده‌های کنترل نشده به کنسول JS گزارش می‌شود (@TTyChud، #48486)، که محدود کردن مسائل سازگاری وب در Servo را آسان‌تر می‌کند.

OpenHarmony SDK به سطح API 23 (@Narfinger، #48505) به‌روزرسانی شد.

اکنون با فشار دادن Control+A (یا Command+A در macOS) تمام محتوای یک سند انتخاب می‌شود (@dzfrias، @mrobinson، #48025). دیگر امکان کپی متن در ورودی های رمز عبور وجود ندارد (@dzfrias، #48404).

JS مبدأ جاسازی (مثلا کنسول برنامه‌نویس یا APIهای تعبیه‌شده) همیشه اجرا می‌شود، حتی در اسنادی که اسکریپت‌نویسی را از طریق sandboxing یا CSP غیرفعال می‌کنند (@derdilla، #48394).

ما عملکرد را با حذف تخصیص‌های غیر ضروری بهبود دادیم (@Narfinger، @TimvdLippe، @yezhizhen، #47689، #47839، #47838، #47982، #48006، #48036، #48099، #48099، #48099. #48218، #48357، #48386، #48422، #48440، #48452، #48508)، از پیش تخصیص بیشتر هنگام ساخت بردارها (@jschwe، @Narfinger، @sagudev، @webbeef @2، 5، #4، 3، 6، 5، #44 #48398)، و اجتناب از IPC در حالت تک فرآیند (@leowatts، @Narfinger، @Uiniel، @TTyChud، #47691، #47718، #48002، #48073، #48476، #48435).

ما همچنین با کاهش تعاملات با GC (@TimvdLippe، @Narfinger، #47818، #48257، #48396)، و انجام کارهای کمتر هنگام اصلاح انتخاب‌ها (@SimonSapin، #47579)،، 4 ارسال رویدادها، 4 #bbeefcul7، 4. معیارهای فونت (@RichardTjokroutomo، #48238)، و فهرست‌بندی قاب‌های پنجره (@mrobinson، #47832).

We reduced memory usage in common cases by reusing buffers ( @Narfinger , #47751 ), clearing more page-specific data ( @Radeonares32 , @Narfinger , @jschwe , @mrobinson , @mxmgorin , #47651 , #47806 , #47805 , #48166 , #48295 , #48297، #48016)، ساختارهای داده فشرده سازی (@Narfinger، @webbeef، @SimonSapin، @mrobinson، #47776، #48039، #48050، #47742، #48301، 1، 6، #482، بیشتر، 6، 482. @jdm، #47998). ما همچنین یک نشت حافظه شامل عناصر <audio> و <video> را برطرف کردیم (@TTyChud، #48371).

ما تقویت تمایل رشته‌ها را در لینوکس روشن کردیم، که می‌تواند عملکرد برخی از معماری‌های CPU را بهبود بخشد (@jschwe، #47058).

ما در حال کار بر روی جلوگیری ایستا از تفنگی هستیم که می‌تواند منجر به چرخه‌های GC غیرقابل جمع‌آوری و نشت حافظه شود (@Gae24، @jdm، @lumiscosity، @SilvioPilato، @sahilnyk، @TTyChud، @kuntal-devrat، @MohamedAli08، 4، 4، 4، 4، 3، 4، 4، 4، 4، 4، 04، 3، 4، 4، 4، 4، 4، 4، 4، 4، 4، 04، 4، 4، 4، 4، 04، 4، 4، 4، 04، 4، 4، 4، 4، 4، 10، 4، 8، 4، 8، 4، 4، 10، 4، 4، 4، 4، 4، 10، 4، 4، 4، 10، 4، 4، 4، 10، 4 04 04) #48021، #48035، #48033، #48051، #48072، #48171، #48209، #48248، #48246، #48264، #48285، #4838 #4، #4، #4، #4، #4، #4، #4، #4، #4، #8 ، #48186، #48223، #48315، #47872، #47698، #47682، #47735، #47816، #47817، #47794، #47909، #4. #48022، #47955، #48058، #48228، #48247، #48261، #48280، #48302، #48316، #48328، #48346، #4835

5، #48262، #48377، #48304، #48378، #48388، #48432).

ما هراس را در WebRTC (@MunishMummadi، #4772)، execCommand() در Document (@TimvdLippe، #47784)، <video> (@calvaris، #46148)، <iframe> (@jdm، #4، #4، 48465@، #48465) و #48465. ), ancestorOrigins on Document (@mrobinson، #48009)، about:memory (@mxmgorin، #47686، #48001)، و پیکربندی‌های EGL 1.4 (@mxmgorin، #47803).

ما همچنین یک وحشت بسیار کنایه‌آمیز ایجاد شده توسط صفحه about:crash را که وقتی یک صفحه معمولی باعث ایجاد وحشت می‌شود بارگیری می‌شود (@mrobinson، #48055)

هنگامی که مقادیر اولیه به عنوان استثناء پرتاب می شوند، کنسول JS دیگر هنگ نمی کند (@FatCat560، #47629). هنگامی که صفحات خاصی از IntersectionObserver (@mxmgorin، #47693)، هنگام بستن یک زمینه مرور با دستورات WebDriver در حال انتظار (@yezhizhen، #48117، یا 48131، ‎#48131، و‎‎#48131،‎‎‎،‎ ‎@yezhizhen،‎#48131،‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ (@nicoburns، #48477).

about:memory پیشرفت‌های بیشتری داشت: ما حافظه بیشتری را برای رندر SVG (@Narfinger، @mrobinson، #47061)، WebAudio (@jdm، #47996)، اندازه‌گیری می‌کنیم و جهانی‌هایی را که به بیرون درز کرده‌اند (@jdm، #48237)، شناسایی می‌کنیم.

تصاویر CSS اکنون رویداد بارگذاری را به تاخیر می اندازند، که منجر به رفتار سازگارتر برای کاربران موتور که رندر بصری انجام می دهند (@TimvdLippe، #48199).

انتخاب های تعاملی در اسناد به بهبود ادامه داد! آنها اکنون می توانند درختان سایه را بپوشانند (@mrobinson، @SimonSapin، #47931، #47694، #47895)، و ارتفاع و موقعیت ثابتی داشته باشند (@mrobinson، #47937)، به‌علاوه ورودی‌های منوی زمینه جدیدی برای کپی و انتخاب همه (#8101@) وجود دارد. علاوه بر این، محتوای مبتنی بر تصویر زمانی را نشان می‌دهد که بخشی از یک انتخاب باشد (@mrobinson، #48149).

Window.open() به پرچم‌های جعبه ایمنی که از پنجره‌های بازشو جلوگیری می‌کنند احترام می‌گذارد (@mrobinson، #47653).

LargestContentfulPaint اکنون زمان بارگذاری را برای محتوای تصویر گزارش می‌کند (@shubhamg13، #48286)، فریم‌های متقاطع (@shubhamg13، #48094) را نادیده می‌گیرد، متن نامرئی را نادیده می‌گیرد (@shubhamg13، #48010)، و هنگامی که عناصر @3ham حذف می‌شوند، null را گزارش می‌کنند. #48125).

select() روی یک ورودی متن اکنون کنترل را متمرکز می کند (@dzfrias، @mrobinson، #48475).

سرور WebDriver ما اکنون مجوزهای تنظیم را خودکار می کند (@xbwwj، @yezhizhen، #47623)، در حالی که ارسال رویدادهای کلیک و عملکردهای صفحه کلید از تأخیر کمتری استفاده می کند (@yezhizhen، #48066).

پیام‌های خطای مفیدتری برای متدها در Document (@eachra-bawn، #47835) و رابط‌های مرتبط با CSS (@eachra-bawn، @jdm، #47746) وجود دارد.

ما وابستگی stylo خود را ارتقا دادیم که سازگاری با ()contrast-color، color-mix() , vertical-align , list-style , place-item , at-rule() , calc() , alpha() , attr() , content: attr() , و named-feature(7,8)ol را بهبود می بخشد. #47942).

همچنین باگ‌های مربوط به visibilityState در سند (@yezhizhen، #47908)، حاویNode() در Selection (@mrobinson، #47938)، setKeyframes در KeyframeEffect (@simonwuelker، #48103)، انتخاب‌ها هنگام فوکوس کردن یک ورودی متنی #4robin07 @. بستن و اتوماسیون (@kevlu93، #48351، #48347)، خروجی‌های PannerNode (@kevlu93، #48510)، ویژگی قطع‌شده در HTMLMediaElement (@TimvdLippe، #48403)، نگه‌دارنده‌های مکان در ورودی‌های متنی 7 #7، 7 #j، 7، 7 #4، 7# انیمیشن‌ها هنگام اصلاح شیت‌های سند (@SharanRP، #48000)، رنگ‌های گرادیان (@BudiArb، #48288)

)، ردیف‌های جدول چسبنده (@TTyChud، #48380)، ::حرف اول (@Loirooriol، #48307)، حالت بسته‌بندی متن (@mrobinson، #48469)، فونت‌های OTF (@wood-ghost، #47904، novqni، 6@5، و CSS #45481)، هدرها و ریدایرکت‌های Sec-Fetch (@TimvdLippe، #48203)، moveBefore() در Node (@mrobinson، #47692)، supports() در WebCrypto (@kkoyung، #47768، #44،7، #47891، #47895، #48410، #47545)، ویندوزهای متقاطع (@mrobinson، @jdm، #47632، #48411، #48038)، ریشه‌های about:blank و about:srcdoc (@mrobinson، #47630)، 3 رویداد keyson2، 4 @m، و رویدادهای keyson2، #4

ts (@SilvioPilato، #47823)، body() در Response (@TTyChud، #48409)، <details> با <summary> (@TimvdLippe، #48224)، ویرایش ورودی‌های مخفی (@dzfrias، ‎#481، خصیصه 486@) @mrobinson، #47912)، جعبه‌های کاملا در موقعیت (@mxmgorin، #48081)، محفظه‌های شبکه CSS با گره‌های کاملا در موقعیت (@nicoburns، #47519)، عملکردهای چرخ/اشاره‌گر WebDriver (@yezhizhen، #48143، #2، 4، 4، 4، 4، bloa 4، ‎#4، bloe) و blo.

یک تشکر ویژه از افراد زیر برای ارسال اولین پچ خود در سروو:

علاقه مند به کمک به ساخت یک مرورگر وب هستید؟ به فهرست منتخب ما از مسائلی که برای مشارکت‌کنندگان جدید خوب است نگاهی بیندازید!

باز هم از حمایت سخاوتمندانه شما متشکرم! ما اکنون 8144 دلار در ماه (+1٪ از ماه اوت) در کمک های مکرر دریافت می کنیم. این به ما کمک می‌کند تا هزینه سرورهای سریع CI و معیار، یکی از آخرین کارآموزان Outreachy، و تامین مالی کار نگهدارنده خود را پوشش دهیم که به افراد بیشتری کمک می‌کند در Servo مشارکت کنند.

Servo نیز در thanks.dev است و در حال حاضر 37 کاربر GitHub (+1 از اوت) که به Servo وابسته هستند، ما را در آنجا حمایت می کنند. اگر از کتابخانه‌های Servo مانند url، html5ever، انتخاب‌کننده‌ها یا cssparser استفاده می‌کنید، ثبت‌نام در thanks.dev می‌تواند راه خوبی برای شما (یا کارفرمایتان) باشد تا به جامعه پاسخ دهید.

ما اکنون سطوح حمایتی داریم که به شما یا سازمانتان امکان می دهد با تایید عمومی از حمایت شما به پروژه سروو کمک مالی کنید. اگر به این نوع حمایت مالی علاقه دارید، لطفا با ما در [email protected] تماس بگیرید.

استفاده از کمک های مالی به طور شفاف از طریق فرآیند درخواست بودجه عمومی کمیته راهبری فنی تصمیم گیری می شود و پیشنهادات فعال در سروو/پروژه شماره 187 پیگیری می شود. برای جزئیات بیشتر، به صفحه حمایت مالی ما سر بزنید.

خواندن متن کامل در هکرنیوزبه زبان اصلی، در سایت ناشر باز می‌شود
متن اصلی (انگلیسی)

September in Servo: , rounded rectangles, and more

Article URL: https://servo.org/blog/2026/11/05/september-in-servo/ Comments URL: https://news.ycombinator.com/item?id=50379576 Points: 264 # Comments: 72

همه‌ی اخبار فناوری