ما هو تطبيق Blink؟

إحدى الميزات الخاصة للويب هي إمكانية تجميع العناصر. تتضمّن صفحات الويب مجموعة متنوّعة من الموارد المختلفة، التي قد تكون من مصادر متعدّدة.

يعمل Blink كمحرّك عرض للمتصفّحات المستندة إلى Chromium، بما في ذلك Chrome، Android WebView وMicrosoft Edge وOpera وBrave.

محرّك العرض هو مكوّن في متصفّح الويب يحوّل رموز HTML وCSS وJavaScript، بالإضافة إلى الصور والموارد الأخرى، إلى صفحات ويب يمكنك عرضها والتفاعل معها.

يبدأ Blink عملية العرض من خلال جمع كل الموارد الضرورية، مثل HTML وCSS وJavaScript والفيديوهات والصور. لاسترداد هذه الموارد، يدير Blink التفاعلات مع حزمة الشبكة في Chromium ونظام التشغيل الأساسي.

بمجرد تحميل CSS وHTML، يمكن لـ Blink تحويل هذا الرمز، في شكل نص، إلى تمثيل يمكنه التعامل معه. ويُطلق على هذه العملية اسم التحليل. يجب أيضًا تحليل JavaScript ثم تنفيذه.

بعد إكمال كل ذلك، يبدأ Blink العرض. العرض هو عملية تنسيق وعرض صفحات الويب التي تعرضها وتتفاعل معها.

يعرض المخطط التالي مراحل مسار مهام العرض، بما في ذلك المكوّنات والعمليات والموارد المتضمّنة في كل مرحلة. لدى Blink الكثير من العمل!

مسار عرض Blink، مع أسهم تشير إلى التقدّم خلال المراحل
يتضمّن مسار عرض Blink أداة تحميل الموارد وواجهات برمجة تطبيقات النصوص البرمجية وتحليل HTML/CSS. وتنتقل هذه العملية عبر مراحل متعدّدة نحو رسم وحدات البكسل على الشاشة.

عرض الرسومات

يستخدم Blink محرّك الرسومات Skia المفتوح المصدر للتفاعل مع أجهزة الرسومات الأساسية لجهاز كمبيوتر أو جهاز جوّال.

توفّر Skia واجهات برمجة تطبيقات شائعة تعمل على مجموعة متنوّعة من منصات الأجهزة والبرامج. ويعمل كمحرّك رسومات لمتصفّح Google Chrome والعديد من المنتجات الأخرى.

بدلاً من محاولة دعم أنظمة تشغيل وأجهزة مختلفة، مع مواكبة التغييرات في المنصة، تستخدم Skia مكتبات الرسومات، بما في ذلك OpenGL، Vulkan، و DirectX. تعتمد المكتبة التي تستخدمها Skia على المنصة التي يتم تشغيلها عليها، مثل Android على الأجهزة الجوّالة أو Windows على أجهزة الكمبيوتر المكتبي.

تحليل JavaScript وتنفيذه

لتحليل وتنفيذ رموز JavaScript وWebAssembly، يستخدم Blink المحرّك V8، وهو محرّك مفتوح المصدر تم تطويره من خلال مشاريع Chromium.

يتيح المحرّك V8 للمطوّر استخدام رموز JavaScript أو WebAssembly للوصول إلى إمكانات المتصفّح الأساسي. على سبيل المثال، لمعالجة نموذج كائن المستند، وهو التمثيل الداخلي لمستند ينشئه Blink من رمز HTML.

يعالج المحرّك V8 لغة JavaScript وفقًا لمعيار JavaScript ، المعروف باسم ECMAScript.

العرض وفقًا للمعايير

يعالج المحرّك V8 لغة JavaScript وفقًا لمعيار JavaScript، المعروف باسم ECMAScript. تم تصميم محرّكات العرض، مثل Blink، لتنفيذ معايير الويب بشكل متوافق. تسمح معايير الويب للمطوّرين والمستخدمين النهائيين بالتأكّد من أنّ صفحات الويب تعمل بشكل جيد، بغض النظر عن المتصفّح الذي يستخدمونه.

يتّبع Blink مواصفات ميزات المتصفّح واللغة المحدّدة في معايير الويب، بما في ذلك HTML و CSS و DOM.

HTML وDOM

يحدّد معيار HTML كيفية تنفيذ مهندسي المتصفّحات لعناصر HTML. تتضمّن مواصفات كل عنصر HTML قسمًا يحدّد واجهة DOM للعنصر. يوضّح هذا القسم كيفية تنفيذ JavaScript من قِبل المتصفّح، للسماح بالتفاعل مع العنصر بطريقة موحّدة على جميع الأجهزة والمنصات.

تتم كتابة مواصفات الواجهة بلغة WebIDL: لغة تعريف واجهة الويب. يُعدّ WebIDL التالي جزءًا من تعريف معيار HTML لـ HTMLImageElement.

[Exposed=Window,
 LegacyFactoryFunction=Image(optional unsigned long width, optional unsigned
long height)]
interface HTMLImageElement : HTMLElement {
 [HTMLConstructor] constructor();

 [CEReactions] attribute DOMString alt;
 [CEReactions] attribute USVString src;
 [CEReactions] attribute USVString srcset;
 [CEReactions] attribute DOMString sizes;
 [CEReactions] attribute DOMString? crossOrigin;
 [CEReactions] attribute DOMString useMap;
 [CEReactions] attribute boolean isMap;
 [CEReactions] attribute unsigned long width;
 [CEReactions] attribute unsigned long height;
 readonly attribute unsigned long naturalWidth;
 readonly attribute unsigned long naturalHeight;
 readonly attribute boolean complete;
 readonly attribute USVString currentSrc;
 [CEReactions] attribute DOMString referrerPolicy;
 [CEReactions] attribute DOMString decoding;
 [CEReactions] attribute DOMString loading;
 [CEReactions] attribute DOMString fetchPriority;

 Promise<undefined> decode();

 // also has obsolete members
};

WebIDL هي طريقة موحّدة لوصف الواجهات الوظيفية، مثل تلك التي تشكّل معظم معايير الويب.

لتنفيذ ميزة، يضع المهندسون رمز WebIDL هذا في ملف، ويتم تحويله تلقائيًا من قِبل Blink لتوفير واجهة للمطوّرين لهذه الميزة. بعد تحديد الواجهة باستخدام WebIDL، يمكن للمهندسين إنشاء عمليات التنفيذ التي تستجيب لطلبات الواجهة.

html_image_element.idl في مصدر Chromium.

مكتبات الجهات الخارجية

يستخدم Blink عدة مكتبات تابعة لجهات خارجية. على سبيل المثال، WebGL لعرض الرسومات التفاعلية الثنائية والثلاثية الأبعاد.

مكتبات الجهات الخارجية في مصدر Chromium، بما في ذلك WebGL الذي يستخدمه Blink.

تم تحسين المكتبات، مثل WebGL، بشكل كبير وتم اختبارها بعناية. تمنح هذه المكتبات Blink إمكانية الوصول إلى الميزات والوظائف المهمة، بدون الحاجة إلى إعادة اختراع العجلة. يتم تحديد WebGL IDL، ويربط مهندسو Blink واجهة الويب هذه بالرموز والمكتبات على الخلفية التي تُستخدم لعرض العديد من العناصر المختلفة .

إذا أردت الاطّلاع على WebGL أثناء العمل، يمكنك الاطّلاع على تطبيق عرض الفراكتل Fractious الذي يستخدم WebGL.

‫Fractious هو عارض مستند إلى WebGL لمجموعة &quot;ماندلبرو&quot;.
الانتقال إلى العرض التوضيحي لتطبيق Fractious.

العرض من عدّة منصات

قد تتساءل عما إذا كان Chrome يستخدم Blink في كل مكان، على جميع أنظمة التشغيل والأجهزة.

على نظامَي التشغيل iOS وiPadOS، يستخدم Chrome WebKit كمحرّك عرض له. كان WebKit في الواقع نسخة معدّلة من مشروع آخر، KDE، الذي يعود تاريخه إلى عام 1998. في الواقع، استند كل من Safari وChromium في البداية إلى WebKit. اليوم، يستخدم Safari وجميع المتصفّحات في نظام Apple البيئي WebKit، وفقًا لمتطلبات App Store من Apple .

مع مرور الوقت، طوّرت مشاريع Chromium بنية برامج مختلفة متعددة العمليات، لأنّ الحفاظ على بنيتين منفصلتين في قاعدة رموز واحدة كان يصبح مشكلة.

بالإضافة إلى ذلك، أراد Chromium استخدام ميزات لم يتم تضمينها في WebKit. لذلك، بدءًا من الإصدار 28، قرّر مهندسو Chromium البدء في العمل على محرّك العرض الخاص بهم. وقد أنشأوا نسخة معدّلة من الرمز البرمجي من WebKit، وأطلقوا عليها اسم Blink. تشير الشائعات إلى أنّ Blink سُمّي على اسم العلامة المحبوبة (إلى حد ما) <blink> التي كانت متاحة في متصفّح Netscape Navigator لجعل النص يومض ويظهر ويختفي.

باختصار، يستخدم Chrome وMicrosoft Edge وOpera وVivaldi وArc وBrave والمتصفّحات والأُطر الأخرى المستندة إلى Chromium محرّك Blink. يستخدم Safari وبعض المتصفّحات الأخرى WebKit، بالإضافة إلى جميع المتصفّحات على نظامَي التشغيل iOS وiPadOS، بما في ذلك Chrome. يستخدم Firefox محرّك عرض يُسمى Gecko.