الإصدار التجريبي من Chrome 135

تاريخ النشر: 5 آذار (مارس) 2025

تنطبق التغييرات التالية على أحدث إصدار من الإصدار التمهيدي ل Chrome على أجهزة Android وChromeOS وLinux وmacOS وWindows، ما لم يُذكر خلاف ذلك. يمكنك الاطّلاع على مزيد من المعلومات عن الميزات المدرَجة هنا من خلال الروابط المقدَّمة أو من القائمة على ChromeStatus.com. يُرجى العِلم أنّ الإصدار 135 من Chrome هو إصدار تجريبي اعتبارًا من 5 آذار (مارس) 2025. يمكنك تنزيل الإصدار الأحدث من الإصدار على Google.com لأجهزة الكمبيوتر المكتبي أو على متجر Google Play على أجهزة Android.

CSS وواجهة المستخدم

يضيف هذا الإصدار ثلاثة عشر ميزة جديدة لتنسيق CSS وواجهة المستخدم.

موضع الرابط الذي تم حفظه في ذاكرة التخزين المؤقت لميزة "تمرير الصفحة"

إضافة إمكانية استخدام مفهوم موضع التمرير remembered offset عندما يحتوي عنصر مُحدَّد الموضع على عنصر تثبيت تلقائي، ويتم ربطه بهذا العنصر المثبَّت عند أحد أطرافه، وبجانب الكتلة الأصلية التي تحتوي عليه عند الطرف الآخر، سيتم أخذ عنصر التمرير المُعدَّل في الاعتبار عند تحديد حجم العنصر. ويعني ذلك أنّه يمكنك استخدام كل المساحة المرئية (باستخدام position-area) للعنصر المرتبط عند تمرير المستند بقيمة محدّدة لموضع التمرير. لتجنُّب تعديل التنسيق (تغيير حجم العنصر) في كل مرة يتم فيها الانتقال للأسفل أو للأعلى في المستند، يستخدم المتصفّح إزاحة التمرير التي تم تذكرها بدلاً من استخدام إزاحة التمرير الحالية دائمًا. يتم تعديل إزاحة التمرير المحفوظة في نقطة إعادة احتساب المرجع، وهي إما الموضع الذي يتم فيه عرض العنصر الذي تم ضبط موضع له في البداية، أو عند اختيار خيار موضع مختلف (position-try-fallbacks).

عدم تفاعل خدمة مقارنة الأسعار (CSS)

يؤثّر جعل العنصر غير تفاعلي في ما إذا كان يمكن التركيز عليه أو تعديله أو اختياره أو البحث عنه باستخدام ميزة "البحث في الصفحة". ويؤثر ذلك أيضًا في ما إذا كان العنصر مرئيًا في ملف ملف ملف تسهيل الاستخدام. تحدّد السمة interactivity ما إذا كان العنصر وعناصره الفرعية في الشجرة المنبسطة (بما في ذلك سلاسل النصوص) غير نشطة أم لا. تقبل السمة interactivity إحدى القيمتَين التاليتَين: auto أو inert.

خصائص الزيادة المنطقية

تتيح لك سمتا CSS overflow-inline وoverflow-block ضبط overflow في اتجاهَي "العنصر المضمّن" و"العنصر المجمّع" بالنسبة إلى وضع الكتابة. في وضع الكتابة الافقي، يتم ربط الحرف overflow-inline بالحرف overflow-x، وفي وضع الكتابة العمودي، يتم ربطه بالحرف overflow-y.

تحسب الدالتان ​abs() وsign() ​دوالّ مختلفة ذات صلة بعلامة وسيطتهما.

سمة dynamic-range-limit

السماح للصفحة بتحديد الحد الأقصى للسطوع في محتوى النطاق العالي الديناميكية

دالة shape()

تسمح دالة shape() بأشكال حرة متجاوبة في الخاصية clip-path. يتيح لك تحديد سلسلة من الأوامر، ما يعادل الأوامر الواردة في path(). ومع ذلك، تقبل الأوامر الوحدات المتوافقة مع مختلف الأجهزة (مثل % أو vw)، بالإضافة إلى أي قيم CSS، مثل السمات المخصّصة.

العنصر الصوري ::column

عنصر زائف ::column، يسمح بتطبيق مجموعة محدودة من الأنماط على المقاطع التي تم إنشاؤها على وجه التحديد، يقتصر ذلك على الأنماط التي لا تؤثر في التنسيق، وبالتالي يمكن تطبيقها بعد التنسيق.

::scroll-button() العناصر الزائفة

السماح بإنشاء أزرار تفاعلية للانتقال للأعلى أو للأسفل كعناصر زائفة على سبيل المثال:

.scroller {
  overflow: auto;
}

.scroller::scroll-button(inline-start) {
  content: "<";
}

.scroller::scroll-button(inline-end) {
  content: ">";
}

يجب أن تكون هذه العناصر قابلة للتركيز وأن تعمل كزر (بما في ذلك أنماط Universal Analytics). عند تفعيلها، يجب التمرير في الاتجاه المحدّد بمقدار معيّن. عندما لا يكون من الممكن الانتقال في هذا الاتجاه، يجب إيقافه (واستخدام الرمز:disabled) وإلا سيتم تفعيله (واستخدام الرمز :enabled). يتيح لك أداة الاختيار تحديد الأزرار في أربعة اتجاهات منطقية: block-start وblock-end وinline-start وinline-end، بالإضافة إلى أربعة اتجاهات جسدية: up وdown وleft وright.

::scroll-marker و::scroll-marker-group

تضيف ::scroll-marker و::scroll-marker-group للحاويات التي تتيح التنقّل في الصفحة. تتيح لك هذه العناصر الزائفة إنشاء مجموعة من العلامات التي يمكن التركيز عليها لجميع العناصر المرتبطة داخل حاوية التمرير.

تنسيق العناصر الزائفة المُدمجة

يتيح هذا الخيار وضع أسلوب للعناصر الزائفة التي تكون مدمجة داخل عناصر زائفة أخرى. حتى الآن، تتوفّر الميزة في ::before::marker و::after::marker، وستكون متاحة في ::column::scroll-marker في المستقبل.

لمنع تسرُّب سجلّ تصفّح المستخدِم، يتمّ تصميم عناصر الربط على أنّها :visited فقط إذا تمّ النقر عليها من مصدر الموقع الإلكتروني والإطار هذاَين من المستوى الأعلى من قبل. من خلال تنسيق الروابط التي تم النقر عليها في هذا الموقع الإلكتروني و الإطار من قبل فقط، أصبحت العديد من هجمات القناة الجانبية التي تم تطويرها للحصول على معلومات تنسيق روابط:visited قديمة، لأنّها لم تعُد توفّر للمواقع الإلكترونية معلومات جديدة عن المستخدمين.

هناك استثناء للروابط الذاتية، حيث يمكن أن يتم :visited تنسيق الروابط المؤدية إلى صفحات الموقع الإلكتروني حتى إذا لم يتم النقر عليها في :visited أصل الموقع الإلكتروني والإطار من المستوى الأعلى هذا من قبل. لا يتم تفعيل هذا الاستثناء إلا في اللقطات أو اللقطات الفرعية ذات المصدر نفسه في اللقطة ذات المستوى الأعلى. لا تزال مزايا الخصوصية متاحة لأنّ المواقع الإلكترونية تعرف من قبل الصفحات الفرعية التي زارها المستخدم، لذا لا يتم عرض أي معلومات جديدة. وقد تم تقديم هذا الطلب من قبل مستخدمي المنصة لتحسين تجربتهم.

الترميزات الوظيفية لتقدّم الاستقراء: دوال *progress() في CSS

تمثّل العلامات الوظيفية progress() وmedia-progress() وcontainer-progress() المسافة النسبية لقيمة معيّنة (قيمة التقدّم) من قيمة (قيمة بداية التقدّم) إلى قيمة أخرى (قيمة نهاية التقدّم). وتسمح هذه الدوال بتحديد نسبة التقدّم من الدوالّ الحسابية وميزات الوسائط وميزات الحاوية على التوالي.

safe-area-max-inset-* المتغيّرات

بالإضافة إلى متغيّرات بيئة safe-area-inset، يتيح Chrome الآن أيضًا استخدام صيغ max-area-safe-inset-* لهذه المتغيّرات. على عكس المكوّنات المُدمَجة الديناميكية، لا تتغيّر المكوّنات المُدمَجة القصوى وتمثّل الحد الأقصى للمكوّن المُدمَج للمساحة الآمنة.

هذه القيم ضرورية عند إنشاء تجارب ويب عالية الأداء من الحافة إلى الحافة.

واجهات برمجة التطبيقات على الويب

إضافة إمكانية استخدام MediaStreamTrack إلى Web Speech API

إضافة إمكانية استخدام MediaStreamTrack إلى Web Speech API ‫Web Speech API هي واجهة برمجة تطبيقات قياسية لتطبيقات الويب تتيح للمطوّرين دمج ميزتَي التعرّف على الكلام وتحويله إلى نص في صفحات الويب. تستخدِم Web Speech API حاليًا الميكروفون التلقائي للمستخدم كمدخل صوتي. يتيح دعم MediaStreamTrack للمواقع الإلكترونية استخدام واجهة برمجة التطبيقات Web Speech API لترجمة مصادر الصوت الأخرى، بما في ذلك ملفّات الوسائط الصوتية المشغّلة عن بُعد.

تقسيم عناوين URL للكائنات الثنائية الكبيرة (BLOB): الاسترجاع والتنقّل

كمتابعة لميزة "تقسيم مساحة التخزين"، تُنفِّذ هذه الميزة تقسيمًا لإمكانية الوصول إلى عناوين URL لـ Blob باستخدام مفتاح التخزين (الموقع الإلكتروني من المستوى الأعلى ومصدر الإطار والقيمة المنطقية has-cross-site-ancestor)، باستثناء عمليات التنقّل من المستوى الأعلى التي ستظل مجزّأة حسب مصدر الإطار فقط.

require-sri-for لصنّاع المحتوى في مجال النصوص البرمجية

يمنحك التوجيه require-sri-for إمكانية التأكيد على أنّه يجب التحقّق من سلامة كل مورد من نوع معيّن. إذا تم محاولة تحميل مورد من هذا النوع بدون بيانات وصفية للسلامة، ستؤدي هذه المحاولة إلى تعذُّر تحميل المورد وسيتم إنشاء تقرير عن انتهاك بروتوكول CSP. يتناول هذا القصد قيمة "script" لهذا التوجيه.

إنشاء عميل مشغّل خدمات واكتساب وحدة تحكّم مشغّل الخدمات لإطار iframe في srcdoc

لا تُعدّ مستندات سياق Srcdoc حاليًا عملاء لعامل الخدمة ولا تخضع لعامل الخدمة الرئيسي. ويؤدي ذلك إلى حدوث بعض التناقضات (على سبيل المثال، يُبلغ "توقيت الموارد" عن عناوين URL التي تحمّلها هذه المستندات، ولكن لا يعترضها العامل الخدمي). يهدف ذلك إلى حلّ التناقضات من خلال إنشاء عملاء مشغّلي خدمات لإطارات iframe في srcdoc وجعلها تكتسب عنصر التحكّم في مشغّل الخدمات الخاص بالعنصر الرئيسي.

إرسال أحداث النقر إلى المؤشر الذي تمّت معالجته

في حال تمّ تسجيل مؤشر أثناء إرسال حدث pointerup، سيتمّ إرسال حدث click إلى الهدف المسجَّل بدلاً من أقرب سلف مشترك لحدثَي pointerdown وpointerup وفقًا لمواصفات حدث واجهة المستخدم. بالنسبة إلى المؤشرات غير المسجَّلة، يظلّ هدف click بدون تغيير.

Float16Array

تُضيف الصفيف من النوع Float16Array. يتم تقريب القيم الرقمية إلى IEEE fp16 عند الكتابة في نُسخ Float16Array.

دمج مُشغِّل التنقّل في مفتاح قسم ذاكرة التخزين المؤقت لبروتوكول HTTP

تم تعديل مخطّط مفاتيح التخزين المؤقت لبروتوكول HTTP في Chrome ليشمل قيمة is-cross-site-main-frame-navigation منطقية للحدّ من هجمات الكشف عن المعلومات على مستوى المواقع الإلكترونية المختلفة التي تنطوي على الانتقال إلى المستوى الأعلى. على وجه التحديد، سيؤدي ذلك إلى منع الهجمات على مستوى الموقع الإلكتروني التي يمكن فيها للمهاجم بدء عملية انتقال من المستوى الأعلى إلى صفحة معيّنة ثم الانتقال إلى مورد معروف أنّ الصفحة تحمّله من أجل استنتاج معلومات حسّاسة من خلال توقيت التحميل. ويؤدي هذا التغيير أيضًا إلى تحسين الخصوصية من خلال منع موقع إلكتروني ضار من استخدام عمليات التنقّل لاستنتاج ما إذا كان المستخدم قد زار موقعًا إلكترونيًا معيّنًا في السابق.

منع التتبّع باستخدام سياسة HSTS

الحدّ من تتبُّع المستخدمين من قِبل جهات خارجية من خلال ذاكرة التخزين المؤقت لبروتوكول HSTS

لا تسمح هذه الميزة إلا بترقيات بروتوكول HSTS للتنقّلات ذات المستوى الأعلى، كما تحظر ترقيات بروتوكول HSTS لطلبات الموارد الفرعية. ويؤدي ذلك إلى جعل استخدام ذاكرة التخزين المؤقت لآلية HSTS لتتبُّع المستخدِمين على الإنترنت أمرًا غير ممكن على المواقع الإلكترونية التابعة لجهات خارجية.

أوامر المشغِّل: السمتَان command وcommandfor

تتيح لك السمتَان command وcommandfor في عناصر <button> تحديد السلوك للأزرار بطريقة أكثر سهولة ووضوحًا، مع تقليل الأخطاء وتبسيط مقدار JavaScript المطلوب للتفاعل. عند النقر على الأزرار التي تحتوي على سمتَي commandfor وcommand أو لمسها أو تفعيلها من خلال الضغط على مفتاح، سيتم إرسال CommandEvent إلى العنصر المُشار إليه باستخدام commandfor، مع بعض السلوكيات التلقائية، مثل فتح مربّعات الحوار والنوافذ المنبثقة.

إضافة رمز <link rel="facilitated-payment" href="..."> للإشارة إلى أنّه ينبغي على المتصفّح إرسال إشعار إلى عملاء الدفع المسجّلين بشأن دفعة قيد الانتظار

سمة NavigateEvent sourceElement

عندما يبدأ التنقّل من خلال عنصر (أي نقرة على رابط أو إرسال نموذج)، ستُعرِض الخاصية sourceElement في NavigateEvent العنصر الذي بدأ التنقّل.

تغيير اسم سبب NotRestoredReasons API

تعمل واجهة برمجة التطبيقات NotRestoredReasons API على تغيير بعض نصوص الأسباب لمواءمتها مع الأسماء الموحدة. قد يلاحظ المطوّرون الذين يراقبون هذه الأسباب تغييرًا في نصوص الأسباب.

Web Speech API على الجهاز

تضيف هذه الميزة ميزة التعرّف على الكلام على الجهاز إلى Web Speech API، مما يتيح للمواقع الإلكترونية التأكّد من عدم إرسال الملفات الصوتية أو الكلام المنسوخ إلى خدمة تابعة لجهة خارجية لمعالجتها. يمكن للمواقع الإلكترونية الاستعلام عن مدى توفّر ميزة التعرّف على الكلام على الجهاز فقط للغات معيّنة، وطلب تثبيت الملفات اللازمة لميزة التعرّف على الكلام على الجهاز فقط، والاختيار بين ميزة التعرّف على الكلام على الجهاز فقط أو ميزة التعرّف على الكلام المستندة إلى السحابة الإلكترونية حسب الحاجة.

عنوان URL الخاص بخادم Worker يتجاهل تغييرات history.pushState

تعديل خاصية عامل الخدمة Client.url لتجاهل تغييرات عنوان URL للمستند باستخدام history.pushState() وواجهات برمجة التطبيقات الأخرى المشابهة للسجلّ يُفترض أن يكون الحقل Client.url هو عنوان URL لإنشاء مستند HTML الذي يتجاهل هذه التغييرات.

إتاحة سمتَي rel وrelList لعنصر SVGAElement

تسمح واجهة SVGAElement في SVG 2.0 بالتلاعب بعناصر <a> على غرار عناصر الربط في HTML. إنّ توفير السمتَين rel وrelList يعزّز الأمان والخصوصية للمطوّرين. يضمن هذا المواءمة مع عناصر العلامات المرجعية في HTML الاتساق وسهولة الاستخدام في جميع تقنيات الويب.

الطوابع الزمنية للّقطات المشفَّرة باستخدام بروتوكول RTC

تتألف هذه الميزة من عرض بعض الطوابع الزمنية على الويب والتي تظهر في اللقطات المُشفَّرة باستخدام WebRTC والتي يتم نقلها عبر RTCPeerConnection. في ما يلي الطوابع الزمنية المعنيّة:

  • الطابع الزمني للالتقاط: الطابع الزمني الذي تم فيه التقاط اللقطة في الأصل
  • استلام الطابع الزمني: الطابع الزمني لوقت استلام لقطة

يجب تعديل ProgressEvent لاستخدام النوع المزدوج لكل من "تم تحميله" و"العدد الإجمالي".

يحتوي العنصر ProgressEvent على السمتَين loaded وtotal اللتين تشيرَين إلى مستوى التقدّم، وأصبح نوعهما unsigned long long الآن. باستخدام هذه الميزة، يتم تغيير نوع كلتا السمتَين إلى double بدلاً من ذلك، ما يمنح المطوّر مزيدًا من التحكّم في القيمة. على سبيل المثال، يمكن للمطوّرين الآن إنشاء حدث ملفّق لتقدّم بقيمة total‏= 1 وloaded‏= 0 يزداد تدريجيًا ليصل إلى loaded‏= 1. يتوافق ذلك مع السلوك التلقائي لعنصر HTML <progress> في حال حذف السمة max.

واجهة برمجة التطبيقات fetchLater

fetchLater() API هي واجهة برمجة تطبيقات JavaScript لطلب جلب مؤجّل، وهو مفيدة بشكل خاص لنشر إشارات أكثر موثوقية في نهاية مدة عرض الصفحة. بعد استدعاء طلب مؤجَّل في مستند، يضيف المتصفّح الطلب إلى "قائمة الانتظار" في الحالة PENDING، وسيتم تنفيذه عند استيفاء أقرب شرط من الشروط التالية:

تم إتلاف المستند. بعد مرور وقت يحدّده المستخدم لأسباب تتعلّق بالخصوصية، سيتم محو كل الطلبات التي لم تكتمل عند دخول المستند إلى bfcache بغض النظر عن المدّة المتبقية. يقرر المتصفح أنّه حان وقت إرسال البيانات.

تعرض واجهة برمجة التطبيقات FetchLaterResult يحتوي على حقل منطقي activated يمكن تعديله لمعرفة ما إذا تم إرسال الطلب المؤجّل أم لا. عند إرسال الطلب بنجاح، سيتجاهل المتصفّح الاستجابة بالكامل، بما في ذلك النص والعناوين.

يُرجى العِلم أنّ وقت الإرسال الدقيق هو غير معروف من وجهة نظر مستخدِم واجهة برمجة التطبيقات.

عمليات التجربة والتقييم الجديدة

في الإصدار 135 من Chrome، يمكنك تفعيل الإصدارات التجريبية الجديدة التالية.

طلبات الاشتراك

تضيف هذه الميزة سمة interesttarget إلى عنصرَي <button> و<a>. تُضيف السمة interesttarget سلوكيات "الاهتمام" إلى العنصر، بحيث يتم بدء إجراءات على العنصر المستهدَف عندما "يُظهر المستخدِم اهتمامًا" بالعنصر. يمكن أن تشمل الإجراءات أشياء مثل عرض نافذة منبثقة. سيتولى وكيل المستخدم رصد الحالات التي "يُظهر فيها المستخدم اهتمامًا" بالعنصر، وذلك باستخدام طرق مثل تمرير مؤشر الماوس فوق العنصر أو الضغط على مفاتيح اختصار خاصة على لوحة المفاتيح أو الضغط مع الاستمرار على العنصر على شاشات اللمس. عند ظهور الاهتمام أو فقدانه، يتمّ تشغيل InterestEvent على الهدف، الذي يتضمّن إجراءات تلقائية في حال النوافذ المنبثقة، وهي عرض النافذة المنبثقة وإخفاؤها.

السلامة المستندة إلى التوقيع

توفّر هذه الميزة لمطوّري الويب آلية للتحقّق من مصدر الموارد التي يعتمدون عليها، ما يشكّل أساسًا تقنيًا للثقة في موارد الموقع الإلكتروني. باختصار: يمكن للخوادم توقيع الردود باستخدام ملف شخصي مفتاح Ed25519، ويمكن لمطوّري الويب أن يطلبوا من وكيل المستخدم التحقّق من التوقيع باستخدام مفتاح عام محدّد. ويشكّل ذلك إضافة مفيدة إلى عمليات التحقّق المستندة إلى عناوين URL التي تقدّمها "سياسة أمان المحتوى" من جهة، وعمليات التحقّق المستندة إلى المحتوى التي تقدّمها "سلامة الموارد الفرعية" من جهة أخرى.

عمليات الإيقاف النهائي والإزالة

يقدّم هذا الإصدار من Chrome الميزات التي سيتم إيقافها نهائيًا والمزايا التي سيتمّ إزالتها والمُدرَجة أدناه. يُرجى الانتقال إلى ChromeStatus.com للحصول على قوائم بالميزات التي سيتم إيقافها نهائيًا في المستقبل والميزات التي تم إيقافها نهائيًا في الوقت الحالي والميزات التي تم إيقافها نهائيًا في السابق.

يوقف هذا الإصدار من Chrome ميزة واحدة نهائيًا.

إيقاف الحصول على معلومات اللغة المحلية

إنّ واجهة برمجة التطبيقات Intl Locale Info API هي اقتراح من المرحلة 3 من ECMAScript TC39 لتحسين عنصر Intl.Locale من خلال عرض معلومات اللغة، مثل بيانات الأسبوع (أول يوم في الأسبوع، ويوم بدء عطلة نهاية الأسبوع، ويوم نهاية عطلة نهاية الأسبوع، والحد الأدنى لليوم في الأول أسبوع)، ودورة الساعة لاتجاه النص المستخدَمة في اللغة. طرح Chrome ميزة تنفيذ في الإصدار 99، ولكن تم تغيير الاقتراح لنقل عدة وظائف جلب إلى الدوالّ. نحتاج إلى إزالة وظائف الجلب التي سيتم إيقافها نهائيًا وإعادة إطلاق الدوال التي تمت تسميتها مجددًا.

يزيل هذا الإصدار من Chrome ثلاث ميزات.

إزالة طريقة navigator.xr.supportsSession التي تم إيقافها نهائيًا

تم استبدال navigator.xr.supportsSession في مواصفات WebXR بأسلوب navigator.xr.isSessionSupported في أيلول (سبتمبر) 2019 بعد تلقّي ملاحظات من TAG بشأن شكل واجهة برمجة التطبيقات. وتم وضع علامة على هذه الواجهة بأنّها متوقّفة نهائيًا في Chrome منذ ذلك الحين، ما يؤدي إلى ظهور تحذير في وحدة التحكّم يعيد توجيه المطوّرين إلى واجهة برمجة التطبيقات المعدّلة. إنّ معدّل استخدام المكالمة منخفض جدًا، وقد تم تأكيد أنّه تم تعديل جميع الإطارات الرئيسية التي يتم استخدامها لإنشاء محتوى WebXR لاستخدام المكالمة الأحدث.

إزالة الموقع NavigateEvent canTransition

في الإصدار 108 من Chrome، تم استبدال الطريقة transitionWhile() لسمة NavigateEvent والسمة canTransition بالسمة الجديدة intercept() والطريقة canIntercept. في ذلك الوقت، تمت إزالة الطريقة transitionWhile(). ومع ذلك، نسيّنا إزالة السمة canTransition، وبدلاً من ذلك، بقيناها كعنوان بديل لسمة canIntercept. في الإصدار 135 من Chrome، سنصلح هذا الخطأ ونزيل canTransition. يمكن استبدال أي استخدامات لـ canTransitionباستخدام canIntercept بدون أي تغيير في السلوك.

إزالة الحدّ الأقصى لعدد مكوّنات shader في مرحلة ما بين المراحل في WebGPU

تتم إزالة الحدّ الأقصى المسموح به maxInterStageShaderComponents لسببين:

  • التكرار مع maxInterStageShaderVariables: يخدم هذا الحدّ بالفعل هدفًا مشابهًا، وهو التحكّم في مقدار البيانات التي يتم تمريرها بين مراحلshader.
  • الاختلافات البسيطة: على الرغم من أنّ هناك اختلافات طفيفة في كيفية احتساب الحدّين القصوى، إلا أنّ هذه الاختلافات بسيطة ويمكن إدارتها بفعالية ضمن maxInterStageShaderVariables limit.
  • التبسيط: تؤدي إزالة maxInterStageShaderComponents إلى تبسيط واجهةshader وخفض تعقيدها على المطوّرين. بدلاً من إدارة حدودَين منفصلَين (ينطبق كلاهما في الوقت نفسه ولكن مع اختلافات طفيفة)، يمكنهم التركيز على maxInterStageShaderVariables الأكثر ملاءمةً وتكاملاً.