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

Joe Medley
Joe Medley

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

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

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

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

اعتبارًا من الإصدار 58 من Chrome، سيؤدي استخدام الماوس على نظام التشغيل Android M أو الإصدارات الأحدث إلى:

  • لم تعُد تُطلق TouchEvents.
  • شغِّل تسلسلًا متسقًا من MouseEvents باستخدام الأزرار المناسبة وغيرها من السمات.

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

إزالة عمليات التنقّل التي يبدأها المحتوى في أعلى الإطار إلى عناوين URL للبيانات

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

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

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

الموقع الذي تمّت إزالته الاسم الحالي
مسار الحركة offset-path
motion-offset offset-distance
motion-rotation offset-rotate
حركة offset

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

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

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

إزالة المُرسِل القديم لعنصرَي HTMLEmbedElement وHTMLObjectElement

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

إزالة التشفيرات غير المتوافقة مع المعايير ChaCha20-Poly1305

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

إزالة إمكانية مطابقة commonName في الشهادات

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

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

Chromestatus Tracker | Chromium Bug

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

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

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

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

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

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

أزِل indexedDB.webkitGetDatabaseNames()‎.

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

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

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

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

القرار بإيقاف الميزة نهائيًا | Chromestatus Tracker | خطأ في Chromium