سيرفو ٠٫٧٫٠: ٥٢٧ كوميت سبتمبر — progress ومستطيلات مدوّرة

Servo 0.7.0 يجمع ٥٢٧ كوميت من سبتمبر: عنصر <progress>، roundRect، دوال CSS جديدة، تحسينات WebGL2، وeager eval في كونسول الـ DevTools.

يوم ٥ نوفمبر ٢٠٢٦ فريق Servo نشر على المدونة الرسمية تدوينة «September in Servo»، وإعلان واضح: Servo 0.7.0 بيحمل كل تغييرات شهر سبتمبر — ٥٢٧ كوميت.

مش رقم صغير. ده يعني دورة شهر كاملة من توافق الويب، الـ embedding API، الأمان، والأداء اتشحنت في إصدار واحد تقدر تجرّبه وتبني عليه.

ليه Servo يهمك أصلًا؟

Servo محرّك ويب مفتوح المصدر مكتوب بـ Rust، هدفه يوفّر بديل خفيف وعالي الأداء لـ embedding تقنيات الويب جوّه التطبيقات — مش بالضرورة يكون «متصفّح كامل زي Chrome» من أول يوم، لكن يكون محرّك تقدر تضمّه وتتحكّم فيه.

كل ما يقرب من مواصفات الويب الحديثة (CSS، Canvas، WebGL، APIs)، كل ما يبقى خيار أوضح لمشاريع WebView مخصّصة، أدوات داخلية، أو تجارب سطح مكتب/موبايل مبنية على الويب.

إيه اللي نزل في 0.7.0؟

من البوست الرسمي، أبرز ما اتشحن:

عناصر وخصائص ويب جديدة

  • عنصر <progress>
  • الخاصية user-select
  • الـ pseudoclass :checked
  • خاصية font-width
  • دالة CSS alpha()
  • CSS typed arithmetic

وده غير دفعة DOM APIs جديدة (من parentRule وbaseURL لحد getComposedRanges() على Selection، ودعم أوسع لعناصر SVG نصّية، وخوارزمية MLKEM768-X25519 في WebCrypto).

Canvas: مستطيلات مدوّرة

اتضاف roundRect() على CanvasRenderingContext2D — يعني رسم مستطيل بزوايا مدوّرة بقي API أصلي، مش لازم تلضق مسارات يدوي كل مرة.

DevTools أسرع في التجربة

كونسول أدوات المطوّر بقى يعمل eager evaluation لمدخلات الـ JavaScript. النتيجة: فيدباك أسرع وأنت بتجرّب تعبيرات جوّه الصفحة — حاجة بتحسّسها يوميًا لو بتشخّص سلوك المحرّك.

WebGL2 بيتقوّى

البوست ذكر «مجموعة كبيرة» من تحسينات التوافق لـ WebGL2 خلف الـ pref dom_webgl2_enabled. مش قائمة كاملة في الملخّص ده، لكن الاتجاه واضح: الرسوميات الحديثة مش جانبية في خارطة الطريق.

أمن واستقرار مش ثانويين

Servo رقّى إلى:

  • SpiderMonkey v153.3
  • mozangle v0.7

الاتنين فيهم إصلاحات أمنية اتبلغ عنها upstream. وكمان في إصلاحات panics و hangs (من WebRTC لـ SharedWorker لحد about:crash نفسه)، وتقليل تخصيصات الذاكرة وتحسينات أداء متعددة.

لو بتفكّر في embedding للإنتاج أو لبيئة حساسة، الترقيات الأمنية دي مش «حاشية» — دي جزء من سبب تتابع الإصدارات.

توافق حقيقي: demos بتشتغل

الفريق ذكر أمثلة عملية:

  • ديمو egui.rs شغال كما هو متوقع مع --pref dom._webegui_enabled (حسب نص البوست)
  • لعبة Candy Crush بقت قابلة للعب

وده مؤشّر أهم من قائمة features لوحدها: صفحات وألعاب حقيقية بتتحرك.

شغّال تحت الضوّ (Work in progress)

البوست مش بيخبي اللي لسه تحت pref:

  • شجرة الـ accessibility بقت أدق (حدود للعناصر الـ inline، أقل شغل عند تغيّر الـ DOM، وdisplay: none كـ hidden)
  • محرّرات WYSIWYG المعتمدة على contenteditable تقدّمت؛ مع dom_exec_command_enabled كتير منها بقى قابل للاستخدام
  • Closed captions / WebVTT لسه في تقدّم (أحداث cue، ترتيب الـ tracks، تعافي من أخطاء الـ parse)
  • IndexedDB، Sanitizer API، وWeb Animations ورا prefs واضحة

يعني: في حاجات جاهزة في 0.7.0، وفي حاجات لازم تشغّلها بوعي وتختبرها قبل ما تعتمد عليها.

رأيي كمطور

Servo مش هيمسح Chromium بكرة. لكن كـ محرّك embedding مفتوح المصدر بيتقدّم بسرعة واضحة: شهر واحد = مئات الكوميتس، وميزات محسوسة (progress، roundRect، CSS أحدث، WebGL2، كونسول أذكى)، مع ترقيات أمنية صريحة.

لو شغّال على:

  • WebView مخصّص
  • أداة سطح مكتب بتعرض HTML/CSS
  • أو بتحب تتابع محرّكات ويب خارج الثلاثي الكلاسيكي

…الإصدار ده وقت مناسب إنك تبني Servo، تشغّل الـ demos، وتبلّغ عن المواقع اللي بتكسر — الفريق طالب كده صراحة على Zulip وGitHub.

أسبوع معرض القاهرة للتكنولوجيا قريب. لو رايح، قولنا هتحضر إيه — وهل Servo على رادارك كخيار embedding ولا لسه Chromium/WebKit بس؟

المصادر

  • Servo
  • Rust
  • WebEngine
  • OpenSource
  • CSS
  • WebGL