موارد جدید در Chrome 120 برای برنامه‌های افزودنی

کروم ۱۲۰ اکنون در نسخه بتا در دسترس است و شامل به‌روزرسانی‌های هیجان‌انگیز زیادی برای توسعه‌دهندگان افزونه‌های کروم است.

امسال، سال پرمشغله‌ای برای تیم افزونه‌های کروم بوده است. با انتشار نسخه بتای کروم ۱۲۰ که دیروز منتشر شد، پلتفرم افزونه‌ها گام بزرگ دیگری به جلو برمی‌دارد. برای مرور کلی بر اتفاقات امسال، به‌روزرسانی‌های سه‌ماهه ما از ماه جولای و اکتبر را بررسی کنید. برای اطلاع از جدیدترین تغییرات افزونه‌ها در کروم ۱۲۰، ادامه مطلب را بخوانید.

پر کردن شکاف پلتفرم

با انتشار کروم ۱۲۰، ما شکاف‌های پلتفرم باقی‌مانده که در صفحه مشکلات شناخته‌شده Manifest V3 فهرست شده‌اند را برطرف خواهیم کرد. رابط برنامه‌نویسی کاربردی جدید userScript و همچنین پشتیبانی از مدیریت فایل در ChromeOS دو مورد باقی‌مانده در فهرستی هستند که اکنون می‌توانیم از آنها عبور کنیم. همراه با تغییراتی که در به‌روزرسانی سه‌ماهه قبلی شرح داده شد، ما واقعاً از وضعیت فعلی پلتفرم افزونه‌های کروم و آنچه در طول سال گذشته انجام داده‌ایم، راضی هستیم.

رابط برنامه‌نویسی کاربردی جدید userScripts

پشتیبانی از اسکریپت‌های کاربری از راه رسید! اسکریپت‌های کاربری، قطعات کدی (معمولاً نسبتاً کوچک) هستند که افزونه‌ها می‌توانند به صفحات وب تزریق کنند تا ظاهر یا رفتار صفحه را تغییر دهند. آن‌ها می‌توانند مستقیماً توسط کاربر ایجاد شوند یا در تعدادی از مخازن مختلف اسکریپت‌های کاربری در سراسر وب یافت شوند. از نسخه 120 مانیفست کروم نسخه 3، افزونه‌ها اکنون می‌توانند مجموعه اسکریپت‌های کاربری را مدیریت کرده و زمان و نحوه تزریق آن‌ها را در صفحات وب تعیین کنند.

یک تفاوت قابل توجه بین پشتیبانی از اسکریپت کاربر در Manifest V2 و Manifest V3 وجود دارد. از آنجایی که اسکریپت‌های کاربر قدرتمند هستند و نیاز به اعتماد بالا به نویسنده اسکریپت کاربر دارند، تیم کروم تصمیم گرفت که کاربران قبل از اجرای یک اسکریپت کاربر، باید در حالت توسعه‌دهنده (Developer mode) قرار بگیرند.

صفحه افزونه‌ها
صفحه افزونه‌ها (chrome://extensions)

نمونه جدید userScript ما یک رویکرد ساده برای تشخیص فعال بودن حالت توسعه‌دهنده و ارائه یک جریان ساده برای شروع به کار را نشان می‌دهد.

نمونه‌ای از جریان آشنایی اولیه با اسکریپت‌های کاربر.
کاربران را در صورت غیرفعال بودن حالت توسعه‌دهنده، فعال کنید.

برای شروع، مستندات را بررسی کنید یا به نمونه رسمی نگاهی بیندازید.

محدودیت‌های بالاتر در مجموعه قوانین DNR استاتیک

ما محدودیت مجموعه قوانین استاتیک فعال را به طور قابل توجهی از 10 به 50 افزایش دادیم. علاوه بر این، تعداد کل مجموعه قوانین استاتیک مجاز را از 50 به 100 افزایش دادیم. این در پاسخ به بازخوردی است که در گروه انجمن افزونه‌های وب دریافت کردیم.

API جدید لیست مطالعه

کروم فهرست مطالعه را در سال ۲۰۲۱ معرفی کرد. سال گذشته، تیم کروم دسترسی به فهرست مطالعه را از طریق پنل کناری حتی آسان‌تر کرد. با کروم ۱۲۰، ما قابلیتی را برای افزونه‌های کروم اضافه می‌کنیم تا ورودی‌های فهرست مطالعه را ایجاد، مطالعه، به‌روزرسانی و حذف کنند. برای کسب اطلاعات بیشتر، مستندات API و نمونه جدید ما را بررسی کنید.

فهرست مطالعه کروم که صفحات مستندات افزونه را نشان می‌دهد.
پنل کناری فهرست مطالعه در کروم.

مدیریت فایل‌ها در ChromeOS

مدیریت فایل به افزونه‌ها اجازه می‌دهد فایل‌هایی با انواع MIME و پسوندهای فایل مشخص را به روشی مشابه مدیریت فایل پلتفرم وب باز کنند. برای اطلاعات بیشتر در مورد نحوه استفاده از آن ، مدیریت فایل در ChromeOS را بررسی کنید.

تصویر صفحه نمایش پنجره باز کردن فایل با افزونه در ChromeOS
باز کردن فایل‌ها در یک افزونه در ChromeOS

فعال کردن زنگ هشدار در 30 ثانیه

این یک به‌روزرسانی کوچک است، اما شکاف مهمی را در چرخه حیات سرویس ورکرها برطرف می‌کند. با توجه به ماهیت رویدادمحور سرویس ورکرها، روش پیشنهادی برای اجرای یک رویداد در آینده استفاده از chrome.alarms است. API هشدارها تضمین می‌کند که حتی اگر سرویس ورکرها در این حین خاموش شوند، رویداد اجرا می‌شود.

البته یک نکته وجود دارد. قبل از کروم ۱۲۰، کوتاه‌ترین زمان برای فعال کردن یک آلارم یک دقیقه بود. با این حال، سرویس ورکرها پس از ۳۰ ثانیه عدم فعالیت خاموش می‌شدند. بنابراین هیچ راه سرراستی برای زمان‌بندی فعال شدن آلارم در ۴۵ ثانیه وجود نداشت، زیرا هنگام استفاده از setTimeout() برای تنظیم یک رویداد در ۴۵ ثانیه، سرویس ورکرها می‌توانستند قبل از فعال شدن رویداد خاموش شوند.

با شروع از کروم ۱۲۰، اکنون می‌توانید یک رویداد را در یکی از موارد زیر ایجاد کنید:

  • کمتر از 30 ثانیه با استفاده از setTimeout() .
  • هر چیزی که بیشتر یا مساوی ۳۰ ثانیه باشد با استفاده از chrome.alarms :
await chrome.alarms.create('demo-default-alarm', {
   periodInMinutes: 0.45
 });

خلاصه

ما واقعاً از پیشرفتی که این پلتفرم افزونه‌ها در طول سال گذشته داشته هیجان‌زده‌ایم. کروم ۱۲۰ با افزایش محدودیت‌های DNR و پشتیبانی از اسکریپت‌های کاربر، گام بزرگ دیگری است.