إيقاف واجهات برمجة التطبيقات وإزالتها في Chrome 52

Joe Medley
Joe Medley

في كل إصدار من Chrome تقريبًا، نلاحظ عددًا كبيرًا من التحديثات والتحسينات على المنتج وأدائه وإمكانات Web Platform. توضّح هذه المقالة التغييرات في الإصدار 52 من Chrome، وهو إصدار تجريبي اعتبارًا من 9 حزيران (يونيو). تخضع هذه القائمة للتغيير في أي وقت.

إيقاف حدث MediaStream ended والسمة وonended

الملخّص: يتم إيقاف الحدث ended والسمة ended ومعالِج الحدث onended نهائيًا لأنّه تمّت إزالتهما من مواصفات تسجيل الوسائط وبثّها.

Intent to Remove | Chromestatus Tracker | Chromium Bug

لم يكن حدث ended أو معالِج الحدث onended جزءًا من مواصفات WebRTC لمدة ثلاث سنوات تقريبًا. على المطوّرين الذين يريدون مشاهدة الأحداث استخدام MediaStreamTracks بدلاً من MediaStreams.

من المتوقّع أن تتم إزالة هذه الميزة في الإصدار 53 من Chrome.

حظر النوافذ المنبثقة من إطارات iframe متعددة المصادر أثناء أحداث اللمس باستثناء أثناء إيماءة النقر

الملخّص: سيبدأ Chrome في حظر النوافذ المنبثقة وغيرها من العمليات الحسّاسة في أحداث اللمس التي لا تتوافق مع نقرة من داخل إطارات iframe من مصادر مختلفة.

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

لمواجهة هذه المشكلة، لن يُسمح بالنوافذ المنبثقة وغيرها من العمليات الحسّاسة في أحداث اللمس من إطارات iframe من مصادر متعددة. سيستمرّ الحدث touchend في التصرّف كالمعتاد.

إيقاف استخدام التحميل الزائد لدالة postMessage() نهائيًا

الملخّص: سيتم إيقاف إصدار غير ضروري وقليل الاستخدام من واجهة postMessage() نهائيًا، وهو postMessage(message, transferables, targetOrigin) على وجه التحديد.

Intent to Remove | Chromestatus Tracker | Chromium Bug

تُعدّ طريقة postMessage() طريقة للتواصل بأمان بين النصوص البرمجية للصفحات من مصادر مختلفة. يتيح WebKit/Blink ثلاثة إصدارات:

  • postMessage(message, targetOrigin)
  • postMessage(message, targetOrigin, transferables)
  • postMessage(message, transferables, targetOrigin)

العنصر الأخير في هذه القائمة هو نتيجة خطأ في تاريخ تطوير المواصفات وتنفيذها. وبما أنّه نادر الاستخدام، سيتم إيقافه نهائيًا وإزالته لاحقًا. وينطبق ذلك على كل من window.postMessage() وworker.postMessage().

من المتوقّع أن تتم إزالة هذه الميزة في الإصدار 54 من Chrome.

إزالة دعم X-Frame-Options في الإشارات

النصّ المختصر (TL;DR): للالتزام بالمواصفات وزيادة التوافق مع المتصفّحات الأخرى، تتم إزالة إمكانية استخدام علامة X-Frame-Options داخل علامة <meta>.

النية في الإزالة | خطأ في Chromium

يشير عنوان استجابة HTTP الذي يتضمّن X-Frame-Options إلى ما إذا كان بإمكان المتصفّح عرض صفحة في علامة <frame> أو <iframe> أو <object>. ويسمح ذلك للموقع الإلكتروني بتجنّب هجمات clickjacking لأنّه لا يمكن تضمين هذه الصفحات في مواقع إلكترونية أخرى. يحظّر الإصدار الحالي من مواصفات X-Frame-Options صراحةً وكلاء المستخدمين من السماح بهذا الحقل داخل علامة <meta>.

للالتزام بالمواصفات وزيادة التوافق مع المتصفّحات الأخرى، تتم إزالة إمكانية استخدام علامة X-Frame-Options داخل علامة <meta>.

إزالة حدث النقر على الزر غير الأساسي

النصّ المختصر: لم تعُد نقرات الماوس غير الأساسية تؤدي إلى بدء أحداث النقرات، ولكنّ MouseEvent.button لا يزال متاحًا.

Intent to Remove | Chromestatus Tracker | Chromium Bug

لجعل Chrome متوافقًا مع مواصفات UIEvents، سنزيل أحداث النقر على أزرار الماوس غير الأساسية. تختلف أزرار الماوس غير الأساسية حسب الجهاز. ويعني ذلك بشكل عام أي شيء آخر غير زر الماوس الأيمن أو الأيسر. يُرجى العِلم أنّه قد يظلّ بإمكانك استرداد الزرّ المحدّد الذي تم النقر عليه باستخدام السمة MouseEvent.button المُرسَلة إلى أحداث مثل mousedown أو mouseup.

إزالة requestAutocomplete()

كانت دالة requestAutocomplete() تسمح بملء النماذج عند الطلب من خلال ميزة الملء التلقائي في المتصفّح. وبعد مرور أكثر من عامَين، لا تتوفّر هذه الميزة إلا في Blink واستخدامها منخفض. لهذه الأسباب، تمت إزالة requestAutocomplete() في الإصدار 52 من Chrome.

السبب المؤدي إلى الإزالة