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