ماذا يحدث في إضافات Chrome؟

إيمي ستيم
إيمي Steam

كان عام 2023 حافلاً حتى الآن بعالم إضافات Chrome. لقد ساعدتنا ملاحظاتك القيّمة في تحسين منصة الإضافات ومستنداتنا. نواصل أيضًا التعاون مع مورِّدي المتصفِّحات الآخرين في مجموعة منتدى WebExtensions بحيث تعمل واجهات برمجة التطبيقات للإضافات بشكلٍ أكثر اتساقًا في جميع المتصفِّحات.

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

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

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

أهمّ الميزات

المستندات خارج الشاشة

تم تقديم Offscreen API في Chrome 109. ويسمح هذا الإصدار للإضافات المستنِدة إلى إصدار Manifest V3 بالتعامل مع حالات الاستخدام التي تتطلّب التفاعل مع نافذة أو DOM، والتي لا يمكن تنفيذها في مشغّل خدمة الإضافات. وقدّم Chrome 114 أيضًا سببَين إضافيَين خارج الشاشة: 'WORKERS' في الحالات التي يحتاج فيها المستند إلى إنتاج عامّ و'LOCAL_STORAGE' للمساعدة في نقل البيانات من window.localStorage إلى chrome.storage API.

بدءًا من الإصدار 115 من Chrome، يمكنك تقديم أسباب متعددة عند إنشاء مستند خارج الشاشة. يتيح لك هذا تنفيذ مهمتين مرتبطتين في نفس المستند.

واجهة برمجة تطبيقات اللوحة الجانبية الجديدة 🎉

في السابق، كانت الطريقة الوحيدة لإنشاء الأشرطة الجانبية في الإضافات هي إدخال عنصر جديد بالنصوص البرمجية للمحتوى في كل صفحة. في الإصدار 114 من Chrome، تم إطلاق Side Panel API. يمكنك الآن تطوير تجربة شريط جانبي مصاحب للمستخدمين بطريقة أكثر وضوحًا. تعرَّف على مزيد من المعلومات حول كيفية إتاحة تجربة استخدام أفضل للمستخدمين من خلال Side Panel API.

إضافة معجم تعرض تعريف كلمة محددة
إضافة قاموس اللوحة الجانبية: يمكنك الاطّلاع على الرمز في مستودع chrome-extensions- sample.

مشغِّلو الخدمات الأكثر فعالية

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

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

  • Action API: بدءًا من Chrome 110، يمكنك تخصيص نص الشارة باستخدام setBadgeTextColor() وgetBadgeTextColor(). ويسمح لك تطبيق isEnabled() أيضًا بالتحقّق مما إذا كان الإجراء مفعَّلاً لعلامة التبويب الحالية.
  • Commands API: تم إصلاح الخطأ الذي أدى إلى توقُّف اختصارات الإضافات، الموضَّحة في البيان ضمن "commands._execute_action"، أثناء التحويل إلى الإصدار MV3، في Chrome 111.
  • واجهة برمجة تطبيقات التنزيل: تم نقل واجهة المستخدم التلقائية لعمليات التنزيل في Chrome من رف في أسفل الجانب الأيسر إلى المربّع المتعدد الاستخدامات. لإيقاف هذا السلوك، يمكنك استخدام downloads.setUiOptions() التي تحل محل setShelfEnabled().
  • واجهة برمجة التطبيقات للسجلّ: يعرض chrome.history.getVisits() وchrome.history.search() أيضًا البيانات من الأجهزة الأخرى التي تمت مزامنتها مع قاعدة بيانات السجلّ المحلي. وقد يؤدي ذلك إلى زيادة إدخالات السجلّ وارتفاع عدد الزيارات. تمت إضافة isLocal إلى VisitItem في الإصدار 115 من Chrome (الإصدار الثابت في وقت لاحق من هذا الشهر) لإتاحة الفلترة حسب الزيارات المحلية فقط.
  • واجهة برمجة تطبيقات الهوية: تظهر نافذة المصادقة الآن كنافذة منبثقة بدلاً من شغل نافذة تطبيق كاملة. لمنح المزيد من التحكّم أثناء عملية إعادة توجيه JavaScript، أضفنا خيارَين جديدَين: abortOnLoadForNonInteractive وtimeoutMsForNonInteractive.
  • Storage API: في Chrome 112، تمت زيادة حجم مساحة التخزين chrome.session إلى 10 ميغابايت. بعد ذلك، تم تغيير حجم مساحة التخزين chrome.local ليطابق الإصدار 114 من Chrome.

يتوفر قريبًا...

ستوفّر إصدارات Chrome القادمة العديد من الميزات لتسهيل نقل الإضافات إلى إصدار Manifest V3. للحصول على قائمة بالتغييرات القادمة المتعلّقة بنقل بيانات الإصدار MV3، يمكنك الاطّلاع على صفحة المشاكل المعروفة. بالإضافة إلى ذلك، نخطط لإضافة الميزات التالية:

  • DeclarativeNetRequest API: ستتغيّر القيمة التلقائية للسمة isUrlFilterCaseSensitive إلى false. يُرجى الاطّلاع على سلسلة محادثات WECG.
  • ستتيح File Handling API للإضافات في نظام التشغيل ChromeOS فتح الملفات بأنواع MIME وامتدادات ملفات محدّدة. هذه الميزة خلف علم في الوقت الحالي.
  • Runtime API: نحن بصدد طرح runtime.getContexts() لتحل محل extension.getViews()، والتي تم إيقافها نهائيًا. سيسمح ذلك للإضافات بتحديد ما إذا كانت صفحة الإضافات، مثل اللوحة الجانبية أو المستند خارج الشاشة، مفتوحة. يمكنك الاطّلاع على اقتراح WECG.
  • مشغِّلو الخدمات: نحن نعمل على إضافة إحالات ناجحة قوية إلى واجهات Chrome API التي تعرض رسالة مطالبة للمستخدم: permissions.request() وdesktopCapture.chooseDesktopMedia() وidentity.launchWebAuthFlow() وmanagement.uninstall().
  • Side Panel API: نحن بصدد إطلاق sidepanel.open()، والتي ستفتح اللوحة الجانبية للإضافة بشكل آلي استجابةً لإيماءة مستخدم، مثل نقرة على قائمة السياق.
  • TabCapture API: نعمل على إضافة إمكانية الاتصال بـ "getMediaStreamId()" من مشغّل خدمات الإضافات والحصول على مصدر بيانات MediaStream من معرّف مصدر البيانات في مستند خارج الشاشة. راجِع التسجيل الصوتي وتصوير الشاشة للحصول على أمثلة.

يُرجى متابعة الميزات الجديدة في الإضافات للاطّلاع على هذه الإشعارات فور توفُّرها في الإصدار التجريبي من Chrome.

عمليات الترقية إلى المستندات والمزيد من إرشادات الإصدار 3 من Manifest V3

نحن نعمل جاهدين أيضًا لتحسين التجربة التعليمية للمطوّرين. شكرًا جزيلاً لجميع من خصّصوا الوقت لطرح الأسئلة على chromium-group والإبلاغ عن مشاكل المستندات على developer.chrome.com.

أهمّ الميزات

  • يوفّر القسم الجديد نقل بيانات MV3 طرقًا عملية لتحويل الإضافات المستنِدة إلى إصدار Manifest V2 إلى إصدار Manifest V3.
  • يوفّر دليل عاملو خدمات الإضافات معلومات مفصّلة حول مواضيع العاملين في خدمات الإضافات. ويشمل ذلك طريقة تسجيلها وتعديلها، ومراحل نشاطها، وآلية عمل عمليات الاستيراد وغير ذلك.
  • يوضّح الدليل التعليمي التعامل مع الأحداث مع مشغِّلي الخدمات أساسيات العاملين في خدمات الإضافات. فهو يُنشئ إضافة مربّع متعدد الاستخدامات تتيح لك الوصول السريع إلى الصفحات المرجعية لواجهة برمجة التطبيقات للإضافات.

المزيد من آخر المعلومات

يتوفر قريبًا...

  • كيفية نقل رمز مُستضاف عن بُعد إلى إصدار Manifest V3
  • كيفية إجراء اختبارات مبرمَجة لإضافات Chrome
  • إرشادات محسَّنة بشأن "طلبات الإعلان الصافية"
  • تحسينات على تفسير النص البرمجي للمحتوى

💡 هل تعلم؟

قبل الختام، أردنا مشاركة بعض الأدوات والإحصاءات المفيدة:

  • بدأ Chrome العمل على دعم WebHID، ويمكنك تجربة واجهة برمجة التطبيقات اعتبارًا من Chrome 115 (ولكن يُرجى العلم أنها لا تزال قيد التطوير).
  • يتيح الملف Puppeteer الآن الاختبار في وضع التشغيل بلا واجهة مستخدم رسومية باستخدام --headless=new . يمكنك الاطّلاع على مزيد من المعلومات حول هذا الموضوع في مشاركة مدونة ترقية وضع التشغيل بلا واجهة مستخدم رسومية في Chrome.
  • باستخدام أداة اختبار تحديث الإضافات، يمكنك التحقّق من التحذيرات التي يتم تشغيلها عند تغيير الأذونات في البيان. بهذه الطريقة، يمكنك تجربة عملية التحديث كما يفعل المستخدم. وهذا الإجراء مهم لأنّ بعض الأذونات قد توقِف الإضافة إلى أن يمنح المستخدم إذنًا بالوصول مرة أخرى.

لنتواصل! 🙌

هذا العام، كان فريق الإضافات سعيدًا بلقاء مطوّري الإضافات شخصيًا خلال فعاليات Google I/O Connect. نعمل على إنشاء مساحات جديدة للتواصل معك، مثل إطلاق مجموعات البحث وفعاليات اللقاءات.

في الوقت الحالي، يُرجى مواصلة طرح الأسئلة على chromium-groups. ويمكنك أيضًا المشاركة في WECG والإبلاغ عن أي مشاكل متعلّقة بالمستندات على developer.chrome.com GitHub repo.

شكرًا لك مرة أخرى على انضمامك إلى منتدى مطوّري الإضافات.