عمليات الإيقاف والإزالة في Chrome 80

Joe Medley
Joe Medley

عدم السماح بـ XMLHTTPRequest() المتزامن في إغلاق الصفحة

لا يسمح Chrome الآن بالمكالمات المتزامنة إلى XMLHTTPRequest() أثناء الصفحة الإغلاق عند خروج المستخدم من الصفحة أو عند إغلاقها من قِبل المستخدم. ينطبق ذلك على beforeunload وunload وpagehide وvisibilitychange.

لضمان إرسال البيانات إلى الخادم عند إلغاء تحميل الصفحة، ننصحك sendBeacon() أو Fetch keep-alive. في الوقت الحالي، يمكن لمستخدمي المؤسسات استخدام يمكن للمطوّرين استخدام علامة سياسة AllowSyncXHRInPageDismissal ويمكن للمطوّرين استخدام المصدر علامة الفترة التجريبية allow-sync-xhr-in-page-dismissal للسماح بطلبات XHR المتزامنة أثناء إلغاء تحميل الصفحة هذا "إيقاف" مؤقت قياسها، ونتوقع لإزالة هذه العلامة في Chrome 88.

للحصول على تفاصيل حول هذا الأمر والبدائل، يُرجى الاطّلاع على عدم السماح بـ XMLHTTPRequest() المتزامن أثناء إغلاق الصفحة.

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

إيقاف دعم بروتوكول FTP نهائيًا

لا يدعم تنفيذ بروتوكول نقل الملفات (FTP) الحالي في Chrome الاتصالات (FTPS)، ولا الخوادم الوكيلة. استخدام بروتوكول نقل الملفات (FTP) في المتصفح منخفض بدرجة كافية أنّه لم يعد بالإمكان الاستثمار في تحسين عميل FTP الحالي. ضِمن بالإضافة إلى توفير المزيد من عملاء بروتوكول FTP على جميع الأنظمة الأساسية المتأثرة،

أزال الإصدار 72 من Chrome دعم استرجاع الموارد الفرعية للمستندات عبر بروتوكول نقل الملفات عرض موارد بروتوكول نقل الملفات ذات المستوى الأعلى. جارٍ الانتقال حاليًا إلى نتائج عناوين URL لبروتوكول FTP في عرض قائمة دليل أو عملية تنزيل حسب نوع المورد. أدى خطأ في Google Chrome 74 والإصدار الأحدث إلى توقف إمكانية الوصول إلى عناوين URL لبروتوكول FTP على خوادم HTTP الوكيلة. تمت إزالة الخادم الوكيل لبروتوكول FTP بالكامل في Google الإصدار 76 من Chrome

يتم فرض قيود على الإمكانات المتبقية لتنفيذ بروتوكول FTP في Google Chrome إما لعرض قائمة دليل أو تنزيل مورد عبر الاتصالات غير المشفرة.

تم ضبط المخطط الزمني للإيقاف النهائي بشكل مبدئي على النحو التالي:

Chrome 80 (ثابت في شباط (فبراير) 2020)

يكون بروتوكول FTP متوقفًا تلقائيًا لدى العملاء خارج المؤسسة، ولكن قد يكون مفعَّلاً. باستخدام --enable-ftp أو --enable-features=FtpProtocol علامات سطر الأوامر. بدلاً من ذلك، يمكن تفعيله باستخدام "#enable-ftp". في chrome://flags.

الإصدار 81 من Chrome (ثابت في آذار (مارس) 2020)

يتم إيقاف بروتوكول FTP بشكلٍ تلقائي في جميع عمليات تثبيت Chrome، ولكن قد يتم تفعيله. باستخدام --enable-ftp أو --enable-features=FtpProtocol علامات سطر الأوامر.

الإصدار 82 من Chrome (ثابت في نيسان (أبريل) 2020)

ستتم إزالة إمكانية استخدام بروتوكول FTP بالكامل.

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

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

قد لا تستخدم الصفحات window.open() بعد الآن لفتح صفحة جديدة أثناء إلغاء التحميل. تشير رسالة الأشكال البيانية لقد حظرت أداة حظر النوافذ المنبثقة في Chrome هذا بالفعل، ولكن الآن يتم منع ذلك أو لم يتم تفعيل حاجب النوافذ المنبثقة.

يمكن للمؤسسات استخدام علامة السياسة AllowPopupsDuringPageUnload للسماح النوافذ المنبثقة أثناء إلغاء التحميل. ومن المتوقّع أن يزيل Chrome هذه العلامة في الإصدار Chrome 82.

نية الإزالة | أداة تتبُّع Chromestatus | خطأ Chromium

تمت إزالة تسلسل ImageBitmap ونقله غير نظيف المصدر

ستظهر الأخطاء الآن عندما يحاول نص برمجي إنشاء تسلسل أو نقل ImageBitmap غير نظيف المصدر. تُعد ImageBitmap غير نظيفة المصدر يحتوي على بيانات من صور من مصادر متعددة لم يتم التحقّق منها باستخدام منطق سياسة مشاركة الموارد المتعددة المصادر (CORS).

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

تتطلب معالجة البروتوكول الآن سياقًا آمنًا

الطريقتان registerProtocolHandler() وunregisterProtocolHandler() الآن تتطلب سياقًا آمنًا. تتيح هذه الطرق إعادة ضبط حالات العميل بحيث تسمح بنقل البيانات التي يحتمل أن تكون حساسة عبر الشبكة.

توفّر الطريقة registerProtocolHandler() لصفحة الويب آلية للتسجيل. نفسها لمعالجة بروتوكول بعد موافقة المستخدم. على سبيل المثال، قد يستند النموذج الأوّلي إلى تسجيل تطبيق بريد إلكتروني للتعامل مع المخطّط mailto:. المقابل تسمح طريقة unregisterProtocolHandler() للموقع الإلكتروني بالتخلي عن تسجيل معالجة البروتوكول.

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

تمت إزالة الإصدار 0 من مكونات الويب

تمت الآن إزالة الإصدار 0 من "مكوّنات الويب" من Chrome. تعد واجهات برمجة التطبيقات Web Components v1 API معيار النظام الأساسي للويب الذي تم شحنه في Chrome وSafari وFirefox و (قريبًا) الحافة. للحصول على إرشادات حول الترقية، يُرجى الاطّلاع على تحديث مكونات الويب: مزيد من الوقت للترقية إلى v1 APIs. تشير رسالة الأشكال البيانية تمت الآن إزالة الميزات التالية. يشمل هذا الإيقاف العناصر الواردة أدناه.

العناصر المخصصة

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

عمليات استيراد HTML

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

نموذج Shadow DOM

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

إزالة -webkit-pictureance:button للعناصر العشوائية

يتم تغيير -webkit-appearance:button للعمل مع <button> و<input> فقط. الأزرار. إذا تم تحديد button لعنصر غير متوافق، سيتضمّن هذا العنصر المظهر الافتراضي. تحتوي جميع الكلمات الرئيسية الأخرى البالغ عددها -webkit-appearance على هذا القيد.

نية الإزالة | حالة النظام الأساسي Chrome | خطأ Chromium

سياسة الإيقاف النهائي

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

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

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

يوفّر Chrome حاليًا عملية لإيقاف واجهات برمجة التطبيقات نهائيًا وإزالتها، وهي تشمل بشكل أساسي ما يلي:

  • أعلِن على القائمة البريدية blink-dev.
  • يمكنك ضبط التحذيرات وتحديد المقاييس الزمنية في "وحدة تحكُّم أدوات مطوري البرامج في Chrome" عند رصد استخدام في الصفحة.
  • يُرجى الانتظار ومراقبة المشكلة ثم إزالتها عند انخفاض الاستخدام.

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