ما هو تطبيق 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: Web Interface Definition Language. يندرج WebIDL التالي ضمن تعريف HTMLImageElement في معيار HTML.

[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 لمجموعة Mandelbrot.

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

قد تتساءل عما إذا كان 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.

الخطوات التالية

اطّلِع على ما هي نوايا Blink؟.