تم إصدار محرك المتصفح Servo 0.1.0 ومتصفح ServoShell التجريبي المصاحب له، وكلاهما مكتوب بلغة Rust. وقد تم إنشاء نسخ جاهزة للاستخدام لـ Linux, Android, macOS и Windowsبالإضافة إلى الإصدارات الفردية، أصبح Servo متاحًا الآن أيضًا كحزمة برمجية، مما يسمح باستخدام المحرك كمكتبة.
يُعدّ Servo 0.1.0 أول إصدار يحصل على دعم طويل الأمد (LTS). سيتم نشر فروع LTS جديدة كل ستة أشهر، بناءً على الإصدار الفرعي التالي. يستمر دعم إصدارات LTS لمدة تسعة أشهر، مع منح ثلاثة أشهر للترقية إلى فرع LTS الجديد. يختلف فرع LTS عن الإصدارات العادية في أنه ينشر تحديثات تتضمن إصلاحات للثغرات الأمنية في مكتبة Servo ومحرك JavaScript والتبعيات. من المتوقع أن يكون فرع LTS مفيدًا للمطورين الذين يدمجون Servo في مشاريعهم والذين لا يرغبون في الترقية إلى الإصدار الفرعي التالي وما قد يصاحبه من تغييرات في واجهة برمجة التطبيقات (API) شهريًا.
يعتمد إصدار Servo 0.1.0 LTS على الإصدار المؤقت 0.0.6 الذي تم إصداره قبل بضعة أيام، والذي قدم الميزات الجديدة التالية:
- يقوم عنصر HTML "button" بتنفيذ سمات "command" و "commandfor"، والتي يمكن استخدامها في الأزرار بدلاً من سمات "popovertargetaction" و "popovertarget" لتخصيص التفاعل مع القائمة التي يتم استدعاؤها عند النقر على الزر بشكل تصريحي.
- تمت إضافة مُحدِّد CSS ":modal" للسماح بتحديد أن مربع الحوار الذي تم إنشاؤه عبر عنصر ، هو صيغة مشروطة.
- تم تطبيق قاعدة CSS @property، مما يسمح لك بتسجيل خصائص CSS الخاصة بك.
- تمت إضافة خصائص CSS "alignment-baseline" و "baseline-shift" لمحاذاة النص عموديًا.
- تمت إضافة دعم لرأس "Content-Security-Policy: base-uri"، الذي يقيد عناوين URL التي يمكن استخدامها في عنصر HTML. .
- أضفنا دعمًا جزئيًا للتحميل الكسول للإطارات المضمنة (iframes)، مما يعني أن المحتوى خارج المنطقة المرئية لا يتم تحميله إلا عندما يقوم المستخدم بالتمرير إلى الموقع الذي يسبق العنصر مباشرةً. يتم تمكين التحميل الكسول باستخدام السمة "loading=lazy" في علامة iframe ( ).
- تمت إضافة دعم جزئي لخاصية CSS "transform-style: preserve-3d" لتحديد موضع العناصر الفرعية في الفضاء ثلاثي الأبعاد.
- تم تنفيذ أحداث pointermove و pointerdown و pointerup و pointercancel.
- يوفر خاصية تدوير الصور بناءً على بيانات EXIF الوصفية.
- تم تمكين استخدام متغير البيئة LANG لتحديد اللغة الافتراضية لعنوان "Accept-Language" وخاصية navigator.language.
- تمت إضافة أحداث مؤشر واجهة برمجة التطبيقات وتفعيل المستخدم.
- تم تنفيذ طرق import.meta.resolve() و formData() و toJSON() و createIndex() و deleteIndex() و index().
- يتضمن متصفح العرض التوضيحي لـ servoshell الآن صفحتي servo:preferences (واجهة المستخدم الرسومية) وservo:config (إعدادات نمط about:config للمعلمات الفردية) لتغيير الإعدادات. كما تمت إضافة دعم لإعادة تحميل الصفحة بالضغط على F5.

- في أدوات مطوري الويب، تمت إضافة دعم لتحرير سمات DOM في وضع الفحص، وتوفر وحدة تحكم الويب الآن معاينة للكائنات التي تم تمريرها عبر console.log()، ويسمح لك مصحح الأخطاء الآن بإيقاف تنفيذ البرنامج النصي مؤقتًا واستئنافه.
- تم توسيع واجهة برمجة التطبيقات (API) لتضمين محرك المتصفح في التطبيقات.
تم تطوير محرك Servo في الأصل بواسطة Mozilla، ولكن تم الاستحواذ عليه لاحقًا من قبل المنظمة Linux يدعم Servo عرض صفحات الويب متعددة الخيوط، ومعالجة عمليات DOM (نموذج كائن المستند) بالتوازي، واستخدام آليات البرمجة الآمنة التي توفرها لغة Rust. صُمم Servo من الصفر لدعم تقسيم كود DOM والعرض إلى مهام فرعية أصغر يمكن تنفيذها بالتوازي، مما يُحسّن من كفاءة استخدام موارد وحدة المعالجة المركزية متعددة النوى. يدمج Firefox بالفعل بعض أجزاء Servo، مثل محرك CSS متعدد الخيوط ونظام عرض WebRender.
المصدر: opennet.ru

