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

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

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

إزالة سمة BluetoothDevice.uuids

تجري حاليًا إزالة السمة BluetoothDevice.uuids لتتوافق Web Bluetooth API مع المواصفات الحالية. يمكنك استرداد جميع خدمات GATT المسموح بها من خلال استدعاء device.getPrimaryServices().

خطأ في Chromium

إزالة عنصر إنشاء المفتاح

بدايةً من الإصدار 49 من Chrome، تتمثّل السلوك التلقائي في <keygen> في عرض السلسلة الفارغة، ما لم يتم منح إذن لهذه الصفحة. لا يتوافق IE/Edge مع <keygen> ولم يشار إلى إشارات عامة لإتاحة <keygen>. يمنع Firefox حاليًا استخدام <keygen> باستخدام إيماءة مستخدم، ولكنه يتيح علنًا إزالة هذه الإيماءة. سفينة Safari <keygen> ولم تعبّر عن آراء عامة حول دعمها المستمر. مع Chrome 57، تتم إزالة هذا العنصر.

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

إزالة واجهة برمجة التطبيقات البادئة لإدارة التخزين المؤقت لتوقيت الموارد

هناك طريقتان ومعالج أحداث، webkitClearResourceTimings() وwebkitSetResourceTimingBufferSize() وonwebkitresourcetimingbufferfull قديمة ومخصّصة للمورّدين. أصبحت الإصدارات العادية من واجهات برمجة التطبيقات هذه متوافقة مع الإصدار 46 من Chrome، وتم إيقاف الوظائف ذات البادئات نهائيًا في هذا الإصدار أيضًا. وقد تم تنفيذ هذه الميزات في الأصل في WebKit، إلا أن Safari لم يمكّنها. يتضمن كل من Firefox وIE 10 والإصدارات الأحدث وEdge فقط إصدارًا غير مسبوق من واجهة برمجة التطبيقات. وبالتالي، ستتم إزالة إصدارات واجهة برمجة التطبيقات.

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

إزالة ServiceWorkerMessageEvent لصالح استخدام MessageEvent

تم توسيع نطاق مواصفات HTML من MessageEvent للسماح بـ ServiceWorker كنوع للسمة source. تم تغيير client.postMessage() وإنشاء أحداث الرسائل المخصّصة لاستخدام MessageEvent بدلاً من ServiceWorkerMessageEvent. تمت إزالة ServiceWorkerMessageEvent.

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

إزالة الأسماء المستعارة العامة لقاعدة البيانات المفهرَسة المستندة إلى بادئة webkit

تم الكشف عن نقطة دخول IndexedDB ومنصات الإنشاء العالمية مع بادئات webkit في مكان ما حول Chrome 11. أُضيفت الإصدارات غير المسبَقة ببادئة إلى الإصدار 24 من Chrome، كما تم إيقاف الإصدارات السابقة في الإصدار Chrome 38. تتأثر الواجهات التالية:

  • webkitIndexedDB (نقطة الدخول الرئيسية)
  • webkitIDBKeyRange (دالة إنشائية عامة غير قابلة للاستدعاء، ولكنها تحتوي على طرق ثابتة مفيدة)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (أدوات إنشاء عامة غير قابلة للاستدعاء)

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

WebAudio: إزالة البادئة AudioContext وConnectedAudioContext

يدعم Chrome WebAudio منذ منتصف عام 2011، بما في ذلك AudioContext. تمت إضافة "OfflineAudioContext" في العام التالي. نظرًا لطول فترة دعم الواجهات القياسية وأهداف Google طويلة المدى المتمثلة في إزالة الميزات البادئة، تم إيقاف الإصدارات ذات البادئة من هذه الواجهات منذ أواخر عام 2014 وتتم إزالتها الآن.

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

إيقاف أو إزالة طريقة webkitCancelRequestAnimationFrame

الطريقة webkitCancelRequestAnimationFrame() هي واجهة برمجة تطبيقات قديمة وخاصة بالمورّدين، ولطالما كانت واجهة برمجة التطبيقات cancelAnimationFrame() القياسية متاحة في Chromium. وبالتالي، ستتم إزالة إصدار واجهة برمجة التطبيقات.

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

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

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

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

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

إيقاف FileReaderSync في مشغّلي الخدمة

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

في الوقت الحالي، يعرض متصفِّحا Firefox وChrome فقط "FileReaderSync" في مشغّلي الخدمة. هناك اتفاق مع Firefox في مناقشة المواصفات على ضرورة إصلاح هذه المشكلة. من المتوقَّع إجراء الإزالة في الإصدار 59 من Chrome.

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

إيقاف قائمة الاتصال القديمة في HTMLembedElement وHTMLObjectElement

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

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

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

إيقاف RTCRtcpMuxPolicy لـ "التفاوض"

يستخدم متصفِّح Chrome rtcpMuxPolicy لتحديد سياسته المفضّلة بشأن استخدام مضاعفة توجيه RTP/RTCP. في إصدار 57 من Chrome، غيّرنا الإعداد التلقائي rtcpMuxPolicy إلى "يتطلب" وأوقفنا نهائيًا "التفاوض" للأسباب التالية:

  • يستخدم RTCP (بروتوكول RTCP) غير المختلط موارد الشبكة الإضافية.
  • ستؤدي إزالة كلمة "negotcate" إلى تسهيل عرض واجهة برمجة التطبيقات، بما أنّ RtpSender/"Rtp Receiver" سيكون لديه عملية نقل واحدة فقط في أي وقت.

في Chrome 57، تم إيقاف "التفاوض" نهائيًا. ونعتقد أنّ هذا التغيير لن يؤثر بشكل جذري، لأنّ المستخدم سيتلقّى رسالة إيقاف الميزة وسيظل بإمكانك إنشاء RTCPeerConnection. وتتوفّر عملية الإزالة في إصدار Chrome 63.

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

إيقاف دعم بيانات الاعتماد المضمّنة في طلبات الموارد الفرعية

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

يمكن للمطوّرين تضمين الموارد التي لا تتطلّب مصادقة أساسية أو ملخصة، بالاعتماد على ملفات تعريف الارتباط وآليات إدارة الجلسات الأخرى.

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