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

Chrome 120 اکنون در نسخه بتا در دسترس است و شامل به‌روزرسانی‌های هیجان‌انگیز بسیاری برای توسعه‌دهندگان Chrome Extension است.

سال شلوغی برای تیم برنامه‌های افزودنی Chrome بود. با انتشار دیروز Chrome 120 Beta ، پلتفرم برنامه‌های افزودنی گام بزرگ دیگری به جلو برداشته است. برای بررسی اجمالی اتفاقات امسال، به‌روزرسانی‌های فصلی ما را در ماه‌های ژوئیه و اکتبر بررسی کنید. برای اطلاعات جدید در Chrome 120 for Extensions به ادامه مطلب بروید.

بستن شکاف پلت فرم

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

API userScripts جدید

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

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

صفحه برنامه های افزودنی
صفحه برنامه های افزودنی (chrome://extensions)

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

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

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

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

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

ReadingList API جدید

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

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

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

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

نماگرفت فایل باز با گفتگوی پسوند در ChromeOS
فایل‌ها را در یک برنامه افزودنی در ChromeOS باز کنید.

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

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

با این حال یک گرفتاری وجود دارد. قبل از Chrome 120، کوتاه‌ترین بازه زمانی برای ایجاد زنگ هشدار یک دقیقه بود. با این حال، کارکنان خدمات پس از 30 ثانیه عدم فعالیت خاموش می شوند. بنابراین هیچ راه ساده ای برای برنامه ریزی زنگ هشدار برای روشن شدن در 45 ثانیه وجود نداشت، زیرا هنگام استفاده از setTimeout() برای تنظیم یک رویداد در 45 ثانیه، سرویس کار به طور بالقوه می تواند قبل از فعال شدن رویداد خاموش شود.

با شروع Chrome 120، اکنون می‌توانید رویدادی را در موارد زیر فعال کنید:

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

خلاصه

ما واقعاً از پیشرفتی که پلتفرم افزونه در سال گذشته داشته است هیجان زده هستیم. Chrome 120 گام بزرگ دیگری با افزایش محدودیت‌های DNR و پشتیبانی از اسکریپت کاربر است.