الإيقاف والإزالة في إصدار Chrome 58

جو ميدلي
جو ميدلي

في كل إصدار تقريبًا من Chrome، نشهد عددًا كبيرًا من التحديثات والتحسينات للمنتج وأدائه وإمكانات "منصة الويب" أيضًا. توضّح هذه المقالة عمليات الإيقاف النهائي وعمليات الإزالة في الإصدار 58 من Chrome، والذي سيكون في مرحلة تجريبية اعتبارًا من 16 آذار (مارس). تخضع هذه القائمة للتغيير في أي وقت.

يتوقف الماوس على Android عن تنشيط أحداث اللمس.

قبل استخدام Chrome 57، كانت أحداث الماوس المنخفضة المستوى في نظام التشغيل Android في Chrome تتّبع بشكل أساسي مسار حدث تم تصميمه للتفاعلات باللمس. على سبيل المثال، تؤدي حركة سحب بالماوس أثناء الضغط على زر الماوس إلى إنشاء MotionEvents، ويتم تسليمها من خلال View.onTouchEvent.

ولكن نظرًا لأن أحداث اللمس لا تتيح التمرير، فإن تحريك الماوس يتبع مسارًا منفصلاً. كان للتصميم، العديد من الآثار الجانبية، بما في ذلك تفاعلات الماوس التي تؤدي إلى تنشيط TouchEvents، وظهور جميع أزرار الماوس كأزرار ماوس يسرى، ومنع MouseEvents من خلال استخدام TouchEvents.

وبدءًا من الإصدار 58 من Chrome، سينفّذ الماوس في إصدار Android M أو الإصدارات الأحدث ما يلي:

  • لم يعُد يتم تنشيط "TouchEvents".
  • أطلق تسلسلاً متّسقًا من MouseEvents باستخدام الأزرار المناسبة والخصائص الأخرى.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إزالة المطابقة غير الحساسة لحالة الأحرف لسمة usemap

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

وبالتالي، تم تعديل المواصفات لكي يتم تطبيق المطابقة الحساسة لحالة الأحرف. تم إيقاف السلوك القديم في الإصدار 57 من Chrome، وتمت إزالته الآن.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إزالة عمليات التنقل في الإطار العلوي الذي تم بدؤه في المحتوى الرئيسي إلى عناوين URL للبيانات

بسبب عدم درايتها بالمستخدمين غير التقنيين، نلاحظ بشكل متزايد استخدام مخطط data: في هجمات الانتحال والتصيّد الاحتيالي. ولمنع حدوث ذلك، نحظر صفحات الويب من تحميل عناوين URL باللغة data: في الإطار العلوي. ينطبق ذلك على علامات <a> وwindow.open وwindow.location والآليات المشابهة. سيظل مخطط data: متاحًا للموارد التي تم تحميلها أدناه بواسطة الصفحة.

ستتم إزالة هذه الميزة في الإصدار Chrome 60.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إزالة الأسماء المتوقفة نهائيًا لخصائص مسارات الحركة

تسمح خصائص CSS لمسارات الحركة للمؤلفين بتحريك أي كائن رسومي على طول المسار الذي يحدده المؤلف. ووفقًا للمواصفات، تم تنفيذ عدة خصائص في الإصدار Chrome 45. تم تغيير أسماء هذه الخصائص في المواصفات في منتصف عام 2016. نفّذ Chrome الأسماء الجديدة في Chrome 55 وChrome 56. وقد تم أيضًا تنفيذ تحذيرات بالإيقاف النهائي لوحدة التحكّم.

في الإصدار 58 من Chrome، تتم إزالة أسماء المواقع القديمة. نعرض أدناه السمات المتأثرة وأسمائها الجديدة.

الموقع الذي تمت إزالته الاسم الحالي
مسار الحركة مسار الإزاحة
إزاحة الحركة مسافة الإزاحة
تدوير الحركة تدوير-إزاحة
حركة إزاحة

نية الإزالة

إزالة EME من السياقات غير الآمنة

تعرض بعض استخدامات إضافات الوسائط المشفّرة (EME) عمليات تنفيذ إدارة الحقوق الرقمية التي ليست مفتوحة المصدر و/أو تتضمّن إمكانية الوصول إلى معرّفات فريدة ثابتة و/أو تعمل بدون وضع الحماية أو باستخدام إذن وصول مميّز. تزداد المخاطر الأمنية للمواقع الإلكترونية التي يتم الكشف عنها من خلال بروتوكول HTTP غير الآمن لأنّ هذه المواقع قد تهاجمها أي شخص على القناة. بالإضافة إلى ذلك، عندما تكون موافقة المستخدم مطلوبة، يمكن أن يستغل مثل هذا المهاجم القبول المستمر لموقع HTTP غير آمن.

تمت إزالة إتاحة السياقات غير الآمنة من مواصفات الإصدار 1 من EME ولا يُسمح باستخدامه في الاقتراح المقترَح كما أنّه غير متوقّع في الاقتراح النهائي اللاحق. لن يشمل ذلك الاقتراح المقترَح القادم أو الاقتراح النهائي اللاحق. تعرض واجهة برمجة التطبيقات رسالة إيقاف على المصادر غير الآمنة منذ إصدار Chrome 44 (أيار (مايو) 2015). وفي الإصدار 58 من Chrome، تمت إزالتها الآن. يأتي هذا التغيير في إطار جهودنا الأوسع نطاقًا لإزالة الميزات الفعّالة من المصادر غير الآمنة.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إزالة المتصل القديم لـ HTMLembedElement وHTMLObjectElement

يعني ذلك أن الواجهة تحتوي على متصل قديم يعني أنه يمكن استدعاء مثيل كدالة. في الوقت الحالي، يتيح HTMLEmbedElement وHTMLObjectElement هذه الوظيفة. في الإصدار 57 من Chrome، تم إيقاف هذه الإمكانية نهائيًا. بدءًا من Chrome 58، ينشئ الاتصال استثناءً.

من خلال هذا التغيير، يتماشى Chrome مع التغييرات الأخيرة في المواصفات. السلوك القديم غير متوافق مع Edge أو Safari، وستتم إزالته من Firefox.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إزالة رموز ChaCha20-Poly1305 العادية المسبقة

في عام 2013، نشر Chrome 31 مجموعات رموز بروتوكول أمان طبقة النقل (TLS) جديدة بناءً على خوارزميات ChaCha20 وPoly1305 للبروفيسور "دان بيرنشتاين". تم توحيد هذه التدابير في وقت لاحق من خلال إجراء تعديلات صغيرة في مجموعة مهندسي شبكة الإنترنت (IETF) باسم RFC 7539 وRFC 7905. تم شحن الإصدار الموحّد في أوائل عام 2016 من خلال Chrome 49. ونحن نعمل الآن على إزالة خيارات المنتج التي سبق أن تم إعدادها.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إلغاء إتاحة مطابقة الاسم الشائع في الشهادات

يصف RFC 2818 طريقتين لمطابقة اسم النطاق مع شهادة: استخدام الأسماء المتاحة ضمن الامتداد subjectAlternativeName، أو الرجوع إلى commonName في حال عدم توفّر الامتداد SAN. تم إيقاف الإجراء الاحتياطي لـ commonName نهائيًا في RFC 2818 (المنشور في عام 2000)، إلا أنّ الدعم ما زال في عدد من برامج بروتوكول أمان طبقة النقل (TLS)، وغالبًا ما يكون ذلك بشكل غير صحيح.

عند استخدام حقول subjectAlternativeName، لا يتضح لنا ما إذا كانت الشهادة تعبّر عن رابط لعنوان IP أو اسم نطاق، ويتم تعريفها بالكامل من حيث تفاعلها مع القيود المفروضة على الاسم. ومع ذلك، فإنّ commonName غير واضحة، ولهذا السبب، أصبح الدعم لها مصدرًا للأخطاء الأمنية في Chrome والمكتبات التي يستخدمها وفي منظومة TLS المتكاملة على نطاق واسع.

إنّ مخاطر التوافق لإزالة commonName منخفضة. تم إيقاف المعيار RFC 2818 نهائيًا لمدة عقدَين تقريبًا، وتتطلّب المتطلبات الأساسية (التي يجب على جميع الجهات المصدقة عليها بشكل علني) توفُّر subjectAltName منذ عام 2012. يطلب Firefox حاليًا استخدام subjectAltName في أي شهادات موثوقة تم إصدارها علنًا منذ إصدار Firefox 48.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

تمت إزالة عناصر الواجهة regions وaddRegion() وremoveRegion() من مواصفات WebVTT وتمت إزالتها في الإصدار 58 من Chrome للامتثال لأحدث المواصفات. ولا نتوقع أن تتأثّر عملية الإزالة هذه، لأنّ الميزة لم تكن مفعّلة تلقائيًا (بمعنى أنّها كانت وراء إبلاغ). يمكن لمَن يحتاج إلى بديل استخدام السمة VTTCue.region التي تتم إضافتها في الإصدار 58 من Chrome.

Chromestatus Tracker | خطأ Chromium

WebAudio: إزالة واجهة AudioSourceNode

إنّ واجهة AudioSourceNode ليست جزءًا من مواصفات Web Audio، وهي غير قابلة للإنشاء ولا تتضمّن أي سمات، لذا لا تحتوي بشكل أساسي على وظائف يمكن للمطوّرين الوصول إليها. لذلك، تتم إزالته.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إزالة السمة الشاملة webkitdropzone

تم تقديم السمة العامة dropzone من خلال مواصفات السحب والإفلات بتنسيق HTML5 كطريقة تعريفية لتحديد استعداد عنصر HTML أن يكون هدفًا لعملية السحب والإفلات، وأنواع المحتوى التي يمكن إدراجها في العنصر، وعملية السحب والإفلات (نسخ/نقل/رابط).

تعذّر على السمة جذب الاهتمام بين مورِّدي المتصفِّح. لا يستخدم Blink وWebKit إلا شكلاً مبدوءًا للسمة webkitdropzone. وبما أنّه تمت إزالة السمة dropzone من المواصفات في أوائل آذار (مارس) 2017، ستتم إزالة الإصدار السابق من Chrome.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إيقاف الاستخدام غير الآمن للإشعارات

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

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إيقاف استخدام الإشعارات الواردة من إطارات iframe غير الآمنة

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

سيؤدي عدم السماح بالإشعارات في إطارات iframe أيضًا إلى مواءمة متطلبات إذن إرسال الإشعارات مع متطلبات إذن الإشعارات الفورية، ما يخفف على حدة الصعوبات التي يواجهها المطوّرون.

ويمكن للمطوّرين الذين يحتاجون إلى هذه الوظيفة فتح نافذة جديدة لطلب إذن إرسال الإشعارات.

وتتوفّر عملية الإزالة في إصدار 62 من Chrome.

هدف الإزالة | Chromestatus Tracker | خطأ Chromium

إزالة indexDB.webkitGetDatabaseNames()

لقد أضفنا هذه الميزة عندما كانت قاعدة البيانات المفهرسة جديدة نسبيًا في Chrome وكانت البادئة بشكل كبير. تعرض واجهة برمجة التطبيقات بشكل غير متزامن قائمة بأسماء قاعدة البيانات الحالية في الأصل، وهو ما يبدو معقولاً بما فيه الكفاية.

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

على المطوّرين الذين يحتاجون إلى هذه الوظيفة تطوير الحلول الخاصة بهم. تستخدم المكتبات مثل Dexie.js على سبيل المثال جدولاً عموميًا وهو في حد ذاته قاعدة بيانات أخرى لتتبع أسماء قواعد البيانات.

تمّت إزالة هذه الميزة في الإصدار 60 من متصفِّح Chrome.

هدف الإيقاف | Chromestatus Tracker | خطأ Chromium