الإيقاف النهائي وعمليات الإزالة في Chrome 99

تم إصدار الإصدار التجريبي من Chrome 99 في 3 شباط (فبراير) 2022، ومن المتوقّع أن يصبح الإصدار الثابت في أوائل آذار (مارس) 2022.

إزالة واجهة برمجة التطبيقات Battery Status API على المصادر غير الآمنة

لم تعُد واجهة برمجة تطبيقات "حالة البطارية" متوافقة مع المصادر غير الآمنة، مثل صفحات HTTP أو إطارات iframe التي تستخدم بروتوكول HTTPS المضمّنة في صفحات HTTP. تتيح واجهة برمجة التطبيقات Battery Status API لمطوّري الويب الوصول إلى مستوى شحن بطارية النظام وما إذا كان يتم شحنه أم لا، ضمن أمور أخرى. إنّه ميزة فعّالة ومستمرة لأكثر من عشر سنوات، وبالتالي تمّ تصميمها في الأصل بقيود أمان مختلفة.

إزالة مجموعة الخطوط -webkit-standard

هذا الإصدار من Chrome يزيل إمكانية استخدام القيمة font-family "-webkit-standard". هذه القيمة هي مجرد اسم مستعار للكلمة الرئيسية "-webkit-body"، ويتم عرضها فقط لأنها مكتسَبة من WebKit. تؤدي إزالة هذا إلى تحسين التوافق مع مواصفات CSS ومع Firefox.

إزالة قائمة لوحة الألعاب

تعرض الطريقة navigator.getGamepads() الآن مصفوفة من عناصر Gamepad بدلاً من GamepadList. لم يعُد GamepadList متاحًا في Chrome. وهذا يجعل Chrome متوافقًا مع المواصفات ومع Gecko وWebkit. للحصول على معلومات عن لوحات الألعاب بشكل عام، يمكنك الاطّلاع على تشغيل لعبة الديناصور في Chrome باستخدام جهاز التحكّم في الألعاب.

تحديث WebCodecs بما يتوافق مع المواصفات

أزال Chrome عنصرين بسبب التغييرات الأخيرة في مواصفات WebCodecs.

تستخدم الطريقة EncodedVideoChunkOutputCallback() قاموسًا EncodedVideoChunkMetadata. كان هناك عضو يُدعى "temporalLayerId" سابقًا في EncodedVideoChunkMetadata.temporalLayerId. وتماشيًا مع المواصفات، أصبح متوفرًا الآن على EncodedVideoChunkMetadata.SvcOutputMetadata.temporalLayerId.

تتطلّب المواصفات أن تتضمّن الدالة الإنشائية VideoFrame() وسيطة طابع زمني (VideoFrameInit.timestamp) لأنواع CanvasImageSource التي لا تتضمّن طابعًا زمنيًا ضمنيًا (على سبيل المثال، HTMLCanvasElement). في حال عدم تضمين الطابع الزمني، يجب أن يؤدي ذلك إلى ظهور TypeError، ولكن Chrome في السابق ضبط الطابع الزمني على صفر. قد يبدو ذلك مفيدًا، إلا أنّه قد يشكّل مشكلة في حال إرسال VideoFrame إلى VideoEncoder، حيث يتم استخدام الطوابع الزمنية لتوجيه التحكّم في معدل نقل البيانات.

سياسة الإيقاف

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

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

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

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

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

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