تا کنون، سال 2023 یک سال شلوغ در دنیای افزونه های کروم بوده است. بازخورد ارزشمند شما به ما این امکان را داده است که پلت فرم برنامه افزودنی و اسناد خود را بهبود بخشیم. ما همچنین به همکاری با سایر فروشندگان مرورگر در گروه انجمن WebExtensions ادامه میدهیم تا APIهای افزونه در مرورگرها به طور مداوم کار کنند.
در این پست، تغییراتی را که تیم افزونه کروم در نیمه اول سال جاری روی آن کار کرده است و اینکه چه ویژگیهایی در اواخر این سه ماهه منتشر خواهند شد را با شما به اشتراک میگذاریم. بیا شروع کنیم!
API های افزونه و ویژگی های جدید
در این بخش، میخواهم برخی از راهاندازیهای مهم API را برجسته کنم، به طور خلاصه سایر بهبودهای API را مرور کنم و نسخههای API آینده را به اشتراک بگذارم.
نکات برجسته
اسناد خارج از صفحه
API Offscreen در Chrome 109 معرفی شد. این امکان را به برنامههای افزودنی Manifest V3 میدهد تا موارد استفادهای را که نیاز به تعامل با DOM یا پنجره دارند، انجام دهند، که نمیتواند در کارمند خدمات برنامهنویسی انجام شود. همچنین، Chrome 114 دو دلیل دیگر را برای خارج از صفحه معرفی کرد: 'WORKERS'
برای مواردی که سند شما نیاز به ایجاد یک کارگر دارد و 'LOCAL_STORAGE'
برای کمک به انتقال دادهها از window.localStorage
به chrome.storage
API .
با شروع در Chrome 115، می توانید دلایل متعددی را هنگام ایجاد یک سند خارج از صفحه ارائه دهید. این به شما امکان می دهد دو کار مرتبط را در یک سند انجام دهید.
API پنل جانبی جدید 🎉
در گذشته، تنها راه ایجاد ستونهای جانبی در افزونهها، تزریق یک عنصر جدید با اسکریپتهای محتوا در هر صفحه بود. در کروم 114، Side Panel API راه اندازی شد. اکنون می توانید یک تجربه نوار کناری همراه را به روشی بسیار ساده تر برای کاربران ایجاد کنید. درباره اینکه چگونه Side Panel API به شما اجازه می دهد تا یک تجربه کاربری برتر را طراحی کنید، بیشتر بخوانید.
کارگران خدمات قوی تر
همه رویدادهای برنامه افزودنی اکنون تایمر بیکار کارگر خدمات برنامه افزودنی را مجددا راه اندازی می کنند. در Chrome 110، حداکثر طول عمر پنج دقیقهای سخت برای کارکنان خدمات برنامههای افزودنی حذف شد. همچنین، پیامهای برنامههای داخلی و پیامهای درون برنامه افزودنی، تایمر بیکار را مجدداً راهاندازی میکنند. در مقاله چرخه عمر کارگر خدمات توسعه بیشتر در مورد آن بخوانید.
راه اندازی API بیشتر
- Action API : با شروع Chrome 110، میتوانید متن نشان را با
setBadgeTextColor
() وgetBadgeTextColor()
سفارشی کنید. همچنین،isEnabled()
به شما امکان می دهد بررسی کنید که آیا عملکرد برای تب فعلی فعال است یا خیر. - Commands API : اشکالی که در آن میانبرهای برنامه افزودنی که در مانیفست تحت
"commands._execute_action"
اعلام شده بود، در طول تبدیل به MV3 باقی نمی ماند، در Chrome 111 برطرف شد. - Downloads API : رابط کاربری پیشفرض دانلودها در Chrome از قفسهای در پایین به سمت راست omnibox منتقل شده است. برای غیرفعال کردن این رفتار، می توانید از
downloads.setUiOptions()
استفاده کنید که جایگزینsetShelfEnabled()
می شود. - History API :
chrome.history.getVisits()
وchrome.history.search()
همچنین دادههای دستگاههای دیگری را که در پایگاه داده تاریخچه محلی همگامسازی شدهاند، برمیگردانند. این ممکن است منجر به ورودی های تاریخ بیشتر و تعداد بازدید بیشتر شود.isLocal
بهVisitItem
در Chrome 115 اضافه شد (انتظار میرود در اواخر این ماه ثابت شود) تا فقط بر اساس بازدیدهای محلی فیلتر شود. - Identity API : اکنون پنجره تأیید هویت بهجای اشغال یک پنجره کامل برنامه، بهعنوان یک پنجره بازشو ظاهر میشود. برای اعطای کنترل بیشتر در طول فرآیند تغییر مسیرهای جاوا اسکریپت، دو گزینه جدید اضافه کردهایم:
abortOnLoadForNonInteractive
وtimeoutMsForNonInteractive
. - Storage API : در Chrome 112 اندازه فضای ذخیره سازی
chrome.session
به 10 مگابایت افزایش یافت. سپس اندازه فضای ذخیرهسازیchrome.local
برای مطابقت با Chrome 114 تغییر یافت.
به زودی...
نسخههای آتی Chrome ویژگیهای زیادی را معرفی میکنند تا مهاجرت برنامههای افزودنی به Manifest V3 را آسانتر کنند. برای فهرستی از تغییرات آتی مرتبط با مهاجرت MV3، صفحه مشکلات شناخته شده ما را بررسی کنید. علاوه بر این، ما قصد داریم ویژگی های زیر را اضافه کنیم:
- DeclarativeNetRequest API : مقدار پیش فرض ویژگی isUrlFilterCaseSensitive به
false
تغییر می کند. موضوع WECG را ببینید. - File Handling API به برنامههای افزودنی ChromeOS اجازه میدهد فایلهایی را با انواع MIME و پسوندهای فایل مشخص شده باز کنند. این ویژگی در حال حاضر پشت یک پرچم قرار دارد.
- Runtime API : ما
runtime.getContexts()
برای جایگزینیextension.getViews()
منتشر می کنیم که منسوخ شده است. این به برنامههای افزودنی امکان میدهد تشخیص دهند که آیا صفحه افزونه مانند پانل کناری یا سند خارج از صفحه باز است یا خیر. پیشنهاد WECG را ببینید. - کارگران سرویس : در حال افزودن نگهدارندههای قوی به APIهای Chrome هستیم که درخواست کاربر را نمایش میدهند:
permissions.request()
،desktopCapture.chooseDesktopMedia()
،identity.launchWebAuthFlow()
وmanagement.uninstall()
. - Side Panel API : ما
sidepanel.open()
را راهاندازی میکنیم، که پانل جانبی افزونه را به صورت برنامهنویسی در پاسخ به حرکت کاربر، مانند کلیک کردن روی منوی زمینه، باز میکند. - TabCapture API : ما در حال اضافه کردن توانایی فراخوانی
getMediaStreamId()
از سرویس دهنده برنامه افزودنی و دریافت MediaStream از شناسه جریان در یک سند خارج از صفحه هستیم. برای مثال به ضبط صدا و ضبط صفحه نمایش مراجعه کنید.
به محض اینکه این اعلانها در Chrome Beta در دسترس قرار گرفتند، با صفحه «افزونههای جدید» همراه باشید.
ارتقای اسناد و راهنمایی بیشتر Manifest V3
ما همچنین سخت کار کرده ایم تا تجربه یادگیری توسعه دهنده را بهبود بخشیم. از همه شما که وقت گذاشتید و درباره chromium-group سوال پرسیدید و مشکلات مستندات را در developer.chrome.com گزارش دادید بسیار سپاسگزاریم.
نکات برجسته
- بخش جدید MV3 Migration راه های عملی برای تبدیل افزونه های Manifest V2 به Manifest V3 ارائه می دهد.
- راهنمای کارگران خدمات توسعه اطلاعات مفصلی در مورد موضوعات کارکنان خدمات توسعه ارائه می دهد. این موارد شامل نحوه ثبت و به روز رسانی آنها، شکل چرخه حیات، نحوه عملکرد واردات و موارد دیگر است.
- آموزش Handle Events with Service Workers اصول اولیه کارگران خدمات ترویجی را آموزش می دهد. یک پسوند omnibox ایجاد می کند که به شما امکان دسترسی سریع به صفحات مرجع API برنامه افزودنی را می دهد.
به روز رسانی های بیشتر
- استفاده از Google Analytics 4 نحوه ردیابی استفاده از پنجره بازشوی برنامه افزودنی و رویدادهای مربوط به سرویس کارگر را نشان می دهد.
- استفاده از موقعیت جغرافیایی نشان می دهد که چگونه می توان موقعیت جغرافیایی برنامه افزودنی را با استفاده از Offscreen API بدست آورد.
- ضبط صدا و ضبط صفحه نحوه ضبط صدا و ویدیو از برگهها، پنجرهها یا صفحهها با استفاده از
chrome.tabCapture
وnavigator.mediaDevices.getDisplayMedia()
را آموزش میدهد. - ما نکات جدید اشکال زدایی را به راهنمای برنامه های افزودنی اشکال زدایی اضافه کرده ایم.
- ما دستورالعملهای هشدارهای مجوز را بهروزرسانی کردهایم تا درک نحوه عملکرد هشدارهای مجوز و نحوه ارائه تجربه کاربری بهتر را آسانتر کنیم. همچنین، راههای عملی برای بررسی اینکه کاربر چه هشدارهایی را خواهد دید، وجود دارد.
- تیم و همکاران ما همچنین نمونههای افزودنی Manifest V3 جدیدی را اضافه کردهاند: WASM در برنامههای افزودنی ، نسخه نمایشی API Scripting ، کتابهای آشپزی Side Panel API ، و نمونههای API DeclarativeNetRequest . میتوانید سایر نمونههای برنامه افزودنی را در مخزن نمونههای GitHub ما کاوش کنید.
به زودی...
- نحوه انتقال کد میزبان از راه دور به Manifest V3.
- نحوه اجرای تست های خودکار برای برنامه های افزودنی کروم.
- راهنمایی درخواست خالص اعلامی بهبود یافته.
- بهبودهایی در توضیح اسکریپت محتوا.
💡 آیا می دانستید؟
قبل از پایان، میخواهیم چند ابزار مفید و بینش را به اشتراک بگذاریم:
- Chrome کار روی پشتیبانی از WebHID را آغاز کرد. میتوانید با API که Chrome 115 را شروع میکند، بازی کنید (اما توجه داشته باشید که هنوز کار در حال انجام است).
- Puppeteer اکنون از تست در حالت headless با استفاده از
--headless=new
پشتیبانی می کند. در پست وبلاگ ارتقاء حالت هدلس کروم در مورد آن بیشتر بخوانید. - با ابزار تست بهروزرسانی برنامه افزودنی ، میتوانید بررسی کنید که هنگام تغییر مجوزها در مانیفست چه اخطارهایی فعال میشوند. به این ترتیب، میتوانید فرآیند بهروزرسانی را مانند یک کاربر تجربه کنید. این مهم است زیرا برخی از مجوزها ممکن است برنامه افزودنی را غیرفعال کنند تا زمانی که کاربر دوباره به کاربر اجازه دسترسی بدهد.
بیایید وصل شویم! 🙌
امسال، تیم برنامه افزودنی از ملاقات حضوری با توسعه دهندگان برنامه افزودنی در رویدادهای Google I/O Connect خوشحال بود. ما در حال ایجاد فضاهای جدید برای ارتباط با شما هستیم، مانند راه اندازی گروه های متمرکز و رویدادهای ملاقات.
در عین حال، لطفاً به پرسیدن سؤالات در مورد گروههای کروم ادامه دهید، شرکت در WECG را در نظر بگیرید و هرگونه مشکل مستندات را در مخزن developer.chrome.com GitHub گزارش دهید.
باز هم از اینکه بخشی از انجمن توسعه دهندگان برنامه های افزودنی هستید سپاسگزاریم!