كان عام 2023 حافلاً في عالم إضافات Chrome. لقد ساعدتنا ملاحظاتك القيّمة في تحسين منصة الإضافات والمستندات. ونواصل أيضًا التعاون مع مورّدي متصفّحات آخرين في مجموعة WebExtensions Community لكي تعمل واجهات برمجة التطبيقات الخاصة بالإضافات بشكل أكثر اتساقًا في جميع المتصفّحات.
في هذه المشاركة، سنشارك معك بعض التغييرات التي عمل عليها فريق إضافات Chrome خلال النصف الأول من هذا العام والميزات القادمة التي سيتم طرحها في وقت لاحق من هذا الربع. لِنبدأ.
ميزات وواجهات برمجة تطبيقات إضافية جديدة
في هذا القسم، أريد تسليط الضوء على بعض عمليات إطلاق واجهات برمجة التطبيقات المهمة، ومراجعة التحسينات الأخرى التي تم إجراؤها على واجهات برمجة التطبيقات بشكل موجز، ومشاركة إصدارات واجهات برمجة التطبيقات القادمة.
أهم التفاصيل
المستندات التي تظهر خارج الشاشة
تم طرح Offscreen API في الإصدار 109 من Chrome. ويسمح هذا الإصدار الإضافات المستندة إلى Manifest V3 بمعالجة حالات الاستخدام التي تتطلّب التفاعل مع DOM أو النافذة، والتي لا يمكن تنفيذها في الخدمة العاملة للإضافة. وقد أدخل الإصدار 114 من Chrome سببَين إضافيَين للتشغيل في الخلفية: 'WORKERS'
للحالات التي يحتاج فيها المستند إلى إنشاء عامل و'LOCAL_STORAGE'
للمساعدة في نقل البيانات من window.localStorage
إلى واجهة برمجة التطبيقات chrome.storage
.
اعتبارًا من الإصدار 115 من Chrome، يمكنك تقديم أسباب متعددة عند إنشاء مستند خارج الشاشة. يتيح لك ذلك تنفيذ مهمتَين متعلّقتَين في المستند نفسه.
واجهة برمجة تطبيقات جديدة لللوحة الجانبية 🎉
في السابق، كانت الطريقة الوحيدة لإنشاء أشرطة جانبية في الإضافات هي إدخال عنصر جديد يحتوي على نصوص برمجية للمحتوى في كل صفحة. في الإصدار 114 من Chrome، تم إطلاق Side Panel API. يمكنك الآن تطوير تجربة جانبية سهلة الاستخدام للمستخدمين. اطّلِع على مزيد من المعلومات عن كيفية السماح لك من خلال Side Panel API بتصميم تجربة مستخدم رائعة.
مشغِّلو خدمات أكثر فعالية
تعيد جميع أحداث الإضافات الآن تشغيل موقّت الخمول الخاص بعامل خدمة الإضافات. في الإصدار 110 من Chrome، تمت إزالة الحد الأقصى لمدة الاستخدام الذي يبلغ خمس دقائق لعمال خدمة الإضافات. بالإضافة إلى ذلك، تؤدي الرسائل المرسَلة إلى التطبيقات الأصلية والرسائل داخل الإضافة إلى إعادة تشغيل موقّت الخمول. يمكنك الاطّلاع على مزيد من المعلومات حول هذا الموضوع في مقالة مراحل نشاط عامل خدمة الإضافة.
المزيد من عمليات إطلاق واجهات برمجة التطبيقات
- Action API: اعتبارًا من الإصدار 110 من Chrome، يمكنك تخصيص نص الشارة باستخدام
setBadgeTextColor
() وgetBadgeTextColor()
. يتيح لك الرمزisEnabled()
أيضًا التحقّق مما إذا كان الإجراء مفعّلاً لعلامة التبويب الحالية. - Commands API: تم إصلاح الخطأ الذي كان يؤدي إلى عدم الاحتفاظ باختصارات الإضافات، التي تم تحديدها في البيان ضمن
"commands._execute_action"
، أثناء التحويل إلى MV3، في الإصدار Chrome 111. - Downloads API: تم نقل واجهة مستخدم عمليات التنزيل التلقائية في Chrome من الرفّ في أسفل الصفحة إلى الجانب الأيمن من مربّع البحث الشامل. لإيقاف هذا السلوك، يمكنك استخدام
downloads.setUiOptions()
الذي يحلّ محلّsetShelfEnabled()
. - History API: تعرض
chrome.history.getVisits()
وchrome.history.search()
أيضًا بيانات من الأجهزة الأخرى التي تمت مزامنتها مع قاعدة بيانات السجلّ المحلي. وقد يؤدي ذلك إلى زيادة عدد الإدخالات في السجلّ وعدد الزيارات. تمت إضافةisLocal
إلىVisitItem
في الإصدار 115 من Chrome (من المتوقّع أن يتوفّر في الإصدار الثابت في وقت لاحق من هذا الشهر) للتمكن من الفلترة حسب الزيارات المحلية فقط. - Identity API: تظهر نافذة المصادقة الآن كنافذة منبثقة، بدلاً من أن تشغل نافذة التطبيق بالكامل. لمنح المزيد من التحكّم أثناء عملية عمليات إعادة التوجيه باستخدام JavaScript، أضفنا خيارَين جديدَين:
abortOnLoadForNonInteractive
وtimeoutMsForNonInteractive
. - Storage API: في الإصدار 112 من Chrome، تمّت زيادة مساحة التخزين في
chrome.session
إلى 10 ميغابايت. بعد ذلك، تم تغيير حجم مساحة التخزين فيchrome.local
ليطابق الحجم في الإصدار 114 من Chrome.
يتوفر قريبًا...
ستتضمّن إصدارات Chrome القادمة العديد من الميزات لتسهيل نقل الإضافات إلى الإصدار 3 من ملف البيان. للحصول على قائمة بالتغييرات القادمة المرتبطة بنقل البيانات إلى MV3، يُرجى الاطّلاع على صفحة المشاكل المعروفة. بالإضافة إلى ذلك، نخطّط لإضافة الميزات التالية:
- DeclarativeNetRequest API: ستتغيّر القيمة التلقائية للسمة isUrlFilterCaseSensitive إلى
false
. راجِع سلسلة محادثات WECG. - ستسمح واجهة برمجة التطبيقات File Handling API لإضافات ChromeOS بفتح الملفات باستخدام أنواع MIME وامتدادات ملفات محدّدة. هذه الميزة غير متاحة حاليًا للجميع.
- Runtime API: نحن بصدد طرح الإصدار
runtime.getContexts()
ليحلّ محلّ الإصدارextension.getViews()
الذي سيتم إيقافه نهائيًا. سيسمح ذلك للإضافات بتحديد ما إذا كانت صفحة إضافة مفتوحة، مثل اللوحة الجانبية أو المستند الذي لا يظهر على الشاشة. اطّلِع على اقتراح WECG. - خدمات Worker: نعمل على إضافة عمليات تنشيط قوية إلى واجهات برمجة تطبيقات Chrome التي تعرِض طلبًا للمستخدم:
permissions.request()
وdesktopCapture.chooseDesktopMedia()
وidentity.launchWebAuthFlow()
وmanagement.uninstall()
. - Side Panel API: نحن بصدد إطلاق
sidepanel.open()
، الذي سيفتح اللوحة الجانبية للإضافات آليًا استجابةً لإشارة المستخدم، مثل النقر على قائمة السياق. - TabCapture API: نعمل على إضافة إمكانية استدعاء
getMediaStreamId()
من عامل خدمة الإضافة والحصول على MediaStream من معرّف بث في مستند خارج الشاشة. راجِع تسجيل الصوت وتصوير الشاشة للاطّلاع على أمثلة.
يمكنك متابعة صفحة الميزات الجديدة في الإضافات للاطّلاع على هذه الإشعارات فور توفّرها في الإصدار التجريبي من Chrome.
ترقيات المستندات ومزيد من الإرشادات حول Manifest V3
لقد عملنا أيضًا جاهدين على تحسين تجربة التعلّم لدى المطوّرين. نشكرك على تخصيص وقتك لطرح الأسئلة على chromium-group والإبلاغ عن مشاكل في المستندات على developer.chrome.com.
أهم التفاصيل
- يوفّر قسم نقل البيانات إلى الإصدار 3 من ملف البيان الجديد طرقًا عملية لتحويل الإضافات التي تستخدم الإصدار 2 من ملف البيان إلى الإصدار 3.
- يوفّر دليل عمال خدمات الزراعة معلومات تفصيلية حول مواضيع عمال خدمات الزراعة. ويشمل ذلك كيفية تسجيلها وتعديلها، وشكل دورة حياتها، وطريقة عمل عمليات الاستيراد، وغير ذلك.
- يقدّم الدليل التعليمي معالجة الأحداث باستخدام مشغّلات الخدمات أساسيات مشغّلات الخدمات الإضافية. وتعمل هذه الأداة على إنشاء إضافة مربّع متعدد الاستخدامات تتيح لك الوصول سريعًا إلى صفحات مرجعية لواجهات برمجة التطبيقات الخاصة بالإضافة.
المزيد من التحديثات
- يوضّح مقالة استخدام "إحصاءات Google 4" كيفية تتبُّع استخدام النافذة المنبثقة للإضافات وأحداث الخدمة العاملة.
- توضِّح مقالة استخدام ميزة رصد الموقع الجغرافي كيفية الحصول على الموقع الجغرافي للإضافات باستخدام Offscreen API.
- يشرح القسم تسجيل الصوت وتسجيل الشاشة كيفية تسجيل الصوت والفيديو من علامات التبويب أو النوافذ أو الشاشات باستخدام واجهات برمجة التطبيقات
chrome.tabCapture
وnavigator.mediaDevices.getDisplayMedia()
. - أضفنا نصائح جديدة حول تصحيح الأخطاء إلى دليل تصحيح أخطاء الإضافات.
- لقد عدّلنا إرشادات التحذيرات بشأن الأذونات لتسهيل فهم آلية عمل التحذيرات بشأن الأذونات وكيفية تقديم تجربة أفضل للمستخدمين. هناك أيضًا طرق عملية للاطّلاع على التحذيرات التي سيراها المستخدم.
- أضاف فريقنا والمساهمون أيضًا نماذج جديدة لـ Manifest V3: WASM في الإضافات والعرض التوضيحي لواجهة برمجة التطبيقات Scripting API وكتب طبخ لواجهة برمجة التطبيقات Side Panel API ونماذج لواجهة برمجة التطبيقات DeclarativeNetRequest API. يمكنك استكشاف نماذج إضافية في مستودع نماذج GitHub.
يتوفر قريبًا...
- كيفية نقل الرمز البرمجي المستضاف عن بُعد إلى Manifest V3
- كيفية إجراء اختبارات مبرمَجة لإضافات Chrome
- إرشادات محسّنة حول طلبات الشبكة التعريفية
- تحسينات على الشرح المتعلق بنصوص المحتوى
💡 هل تعلم؟
قبل الختام، نريد مشاركة بعض الأدوات والإحصاءات المفيدة:
- بدأ Chrome العمل على إتاحة واجهة برمجة التطبيقات WebHID، ويمكنك استخدامها اعتبارًا من الإصدار 115 من Chrome (مع العِلم أنّ هذه الواجهة لا تزال قيد التطوير).
- يتيح Puppeteer الآن إجراء الاختبار في وضع التشغيل بلا واجهة مستخدم رسومية باستخدام
--headless=new
. يمكنك الاطّلاع على مزيد من المعلومات في مشاركة المدونة ترقية وضع Chrome بدون واجهة مستخدم. - باستخدام أداة اختبار تحديثات الإضافات، يمكنك التحقّق من التحذيرات التي يتم تشغيلها عند تغيير الأذونات في البيان. بهذه الطريقة، يمكنك تجربة عملية التحديث كما يفعل المستخدم. هذا مهم لأنّ بعض الأذونات قد تؤدي إلى إيقاف الإضافة إلى أن يمنح المستخدم الإذن بالوصول مرة أخرى.
يمكنني التواصل معك لتوضيح ذلك. 🙌
هذا العام، كان من دواعي سرور فريق الإضافات الاجتماع شخصيًا مع مطوّري الإضافات خلال أحداث Google I/O Connect. نحن نعمل على إنشاء مساحات جديدة للتواصل معك، مثل إطلاق مجموعات تركيز وفعاليات لقاءات.
في الوقت الحالي، يُرجى مواصلة طرح الأسئلة على chromium-groups، والمشاركة في WECG، والإبلاغ عن أي مشاكل في المستندات على مستودع GitHub على developer.chrome.com.
نشكرك مرة أخرى على مشاركتك في منتدى مطوّري الإضافات.