تجهيز إضافتك مع بدء اختبار قائمة إضافات جديدة

تاريخ النشر: 19 تشرين الثاني (نوفمبر) 2024

في مؤتمر Google I/O لعام 2024، شاركنا بعض التصاميم المبكرة للتغييرات القادمة على قائمة الإضافات، ما يمنح المستخدمين مزيدًا من التحكّم في المواقع الإلكترونية التي يمكن للإضافات الوصول إليها. سنبدأ قريبًا باختبار هذه التغييرات، بدءًا من نسبة صغيرة من المستخدمين في الإصدار Canary، ونأمل أن نطرحها على نطاق أوسع في المستقبل.

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

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

ما الذي سيتغيّر؟

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

تصميم قيد التطوير لقائمة الإضافات الجديدة
تصميم قيد التطوير لقائمة الإضافات الجديدة

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

إضافة طلب وصول إلى الموقع الإلكتروني

لقد صمّمنا واجهة برمجة تطبيقات جديدة لتكمل هذه التغييرات، وذلك بعد الحصول على ملاحظات مهمة من المطوّرين والمتصفّحات الأخرى في مجموعة منتدى WebExtensions.

إذا حجب مستخدم إمكانية الوصول إلى صفحة، يمكن للإضافة الآن طلب الوصول إليها باستخدام واجهة برمجة التطبيقات الجديدة permissions.addSiteAccessRequest. وعندما تفعل إحدى الإضافات ذلك، ستظهر للمستخدم رسالة "السماح" بجانب قطعة اللغز الخاصة بالإضافة في شريط الأدوات. في ما يلي أحد التصاميم التي نستكشفها:

طلب الوصول إلى موقع إلكتروني على example.com
طلب الوصول إلى الموقع الإلكتروني على example.com

عندما ينقر المستخدم على "السماح" في قائمة الإضافات، يتم منح الإضافة إذن وصول دائمًا إلى المضيف. ويمكن للمستخدم حجبها مرة أخرى في المستقبل من خلال الوصول إلى قائمة الإضافات أو من خلال صفحة chrome://extensions. يوفر النقر على "السماح بجهاز واحد؟" ضمن شريط الأدوات طريقة أسرع لمنح إذن الوصول الفوري.

يمكن للإضافات استدعاء permissions.addSiteAccessRequest باستخدام tabId لعرض طلب إذن لهذه علامة التبويب. يمكنك استخدام ميزة "اكتشاف الميزات" لبدء استخدامها بأمان في إضافتك اليوم. لن تؤدي واجهة برمجة التطبيقات إلى تنفيذ أي إجراء للمستخدمين الذين لا يستخدمون القائمة الجديدة، ولكن سيستفيد المستخدمون الذين يستخدمون القائمة الجديدة من استخدامها عند طرحها تدريجيًا.

chrome.tabs.onUpdated.addListener(async (tabId, changes) => {
  if (typeof changes.url !== 'string') return;

  const url = new URL(changes.url);

  // If we are on the /checkout page of example.com.
  if (url.origin === 'https://example.com' && url.pathname === '/checkout') {
    const hasPermission = await chrome.permissions.contains({
      origins: ['https://example.com/*']
    });

    // We already have host permissions.
    if (hasPermission) {
      return;
    }

    // Add a site access request if the API is available.
    if (chrome.permissions.addSiteAccessRequest) {
      chrome.permissions.addSiteAccessRequest({ tabId });
    }
  }
});

في هذا المثال، لا نضيف طلبًا إلا إذا كان المستخدم في صفحة /checkout. يمكنك الاطّلاع على الرمز الكامل في مستودع chrome-extensions-samples.

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

تكون الطلبات مرتبطة بعلامة تبويب معيّنة ويتم محو بياناتها تلقائيًا عندما ينتقل المستخدم إلى مصدر مختلف. تتوفّر طريقة removeSiteAccessRequest مقابلة لمحو طلب بشكل صريح (مثلاً إذا كان الطلب مرتبطًا بمسار معيّن).

بما أنّ واجهة برمجة التطبيقات هذه مرتبطة بقائمة الإضافات الجديدة، سيتم تجاهل الطلبات في حال عدم تفعيل القائمة الجديدة. مع ذلك، ننصحك بتجربة واجهة برمجة التطبيقات اليوم، والتفكير في استخدامها في إضافة Chrome. وبذلك، ستقدّم تجربة رائعة للمستخدمين مع ظهور التغييرات في القائمة الجديدة تدريجيًا لعدد أكبر من المستخدمين.

للاطّلاع على مزيد من المعلومات حول التعامل مع الأذونات الاختيارية، يمكنك الاطّلاع على مستندات الأذونات.

جرّبه الآن

يتم تفعيل واجهة برمجة التطبيقات تلقائيًا في الإصدار 133.0.6838.0 من Chrome والإصدارات الأحدث (المتوفّرة حاليًا في Chrome Canary). لتفعيل القائمة الجديدة، فعِّل العلامة "التحكّم في الوصول إلى قائمة الإضافات" في chrome://flags.

يُرجى العِلم أنّ هذه الميزة لا تزال قيد التطوير وقد نواصل تطويرها وتغييرها. ننصحك بإجراء الاختبار في Chrome Canary للاستفادة من أحدث تجربة.

يمكنك إرسال ملاحظاتك حول التصميم الجديد في القائمة البريدية chromium-extensions، وسنأخذها في الاعتبار بينما نواصل العمل على القائمة الجديدة.