این صفحه را اغلب بررسی کنید تا در مورد تغییرات در برنامههای افزودنی Chrome، اسناد برنامههای افزودنی، یا خطمشیهای مرتبط یا سایر تغییرات مطلع شوید. سایر اعلانهای پست شده در Google Extensions Group را خواهید دید. برنامه Chrome تاریخ انتشار پایدار و بتا را فهرست می کند.
ویدئو: مصاحبه تیم اعتماد و ایمنی
تیم توسعه دهنده Chrome Extensions DevRel با تیم Trust & Safety که رهبری بررسی در فروشگاه وب Chrome را بر عهده دارد، برای پرسیدن سؤالات شما به گفتگو نشستند. ویدیوی کامل را ببینید
پست وبلاگ: حذف تدریجی Manifest V2 آغاز شد
از 3 ژوئن در کانالهای Chrome Beta، Dev و Canary، اگر کاربران همچنان افزونههای Manifest V2 را نصب کرده باشند، برخی هنگام بازدید از صفحه مدیریت برنامههای افزودنی خود - chrome://extensions - بنر هشداری را مشاهده میکنند که به آنها اطلاع میدهد که برخی از (مانیفست V2) افزونه هایی که نصب کرده اند به زودی دیگر پشتیبانی نمی شوند. در اطلاعیه رسمی بیشتر بخوانید
بهروزرسانیهای رابط کاربری پنل جانبی
ما اخیراً تغییراتی را در رابط کاربری پانل جانبی ایجاد کردیم، از جمله افزودن یک نماد پین و حذف نماد پانل جانبی جهانی. در PSA بیشتر بخوانید و اسناد و نمونه های به روز شده ما را ببینید.
پست وبلاگ: برنامه های افزودنی کروم در Google I/O 2024
یک Google I/O دیگر پشت سر ما است و ما تمام به روز رسانی های برنامه های افزودنی هیجان انگیز را پوشش داده ایم! برای مشاهده ویدیوی کامل به YouTube بروید و پست وبلاگ ما را برای برخی از نکات برجسته بخوانید.
برای تغییرات واجد شرایط درخواست خالص اعلامی از بررسی رد شوید
اکنون فروشگاه وب Chrome به شما امکان می دهد هنگام استفاده از API درخواست خالص اعلامی، از بررسی تغییرات واجد شرایط صرف نظر کنید. درباره واجد شرایط بودن و نحوه شرکت در اسناد فروشگاه وب Chrome بیشتر بیاموزید.
deployPercentage موجود در Chrome Web Store API
ما اخیراً اسناد API فروشگاه وب Chrome خود را بهروزرسانی کردهایم تا حاوی اطلاعاتی درباره deployPercentage
باشد که به شما امکان میدهد درصدی از استقرار جزئی عرضه را اختصاص دهید. درباره deployPercentage
بیاموزید .
Chrome 126: آزمایشهای اولیه در برنامههای افزودنی
Chrome 126 یک فیلد manifest.json جدید - trial_tokens
را معرفی میکند که به شما امکان میدهد در تمام سطوح برنامههای افزودنی آزمایشهای اولیه و آزمایشهای منسوخ را انتخاب کنید. برای اطلاعات بیشتر راهنما را بخوانید.
پست وبلاگ: آنچه در برنامه های افزودنی Chrome اتفاق می افتد - آوریل 2024
ما نسخه جدیدی از آنچه در برنامههای افزودنی Chrome اتفاق میافتد را منتشر کردهایم. این پست در مورد آنچه که تیم توسعه در چند ماه گذشته روی آن کار کرده است صحبت می کند. این شامل موارد زیر است: بازگشت نسخه در فروشگاه وب Chrome، پشتیبانی بهتر Firebase Auth و راهاندازیها و بهروزرسانیهای API بیشتر.
بازگرداندن نسخه در داشبورد برنامهنویس فروشگاه وب Chrome
برنامه افزودنی خود را به نسخه منتشر شده قبلی در فروشگاه وب Chrome برگردانید—بدون بررسی اضافی! برای اطلاعات بیشتر پست وبلاگ و مستندات را بخوانید.
Chrome 124: Advanced documentScan API
یک API پیشرفته documentScan
اکنون در ChromeOS برای کشف و بازیابی تصاویر از اسکنرهای اسناد پیوست شده در دسترس است.
Chrome 124: پشتیبانی WebGPU در Service Workers
از Chrome 124، سرویسکاران از WebGPU پشتیبانی میکنند. برای شروع سریع، نمونه برنامه افزودنی WebGPU را بررسی کنید.
Chrome 123: Events API از فیلتر کردن توسط بلوکهای CIDR پشتیبانی میکند
رویدادهای API اکنون از فیلتر کردن توسط بلوکهای مسیریابی بین دامنهای بدون کلاس (CIDR) پشتیبانی میکند. بلوک CIDR مجموعه ای از آدرس های IP است که یک پیشوند شبکه و همان تعداد بیت را به اشتراک می گذارد. قبلاً، یک توسعهدهنده نیاز به فیلتر کردن چندین آدرس IP برای پیکربندی یک قانون فیلتر برای هر یک از آدرسهای موجود در محدوده بلوک داشت. اکنون هنگامی که یک برنامه افزودنی addListener()
فراخوانی می کند، یک قانون تصویب شده به این معنی است که کنترل کننده رویداد تنها زمانی فراخوانی می شود که قسمت میزبان URL یک آدرس IP باشد و در هر یک از بلوک های CIDR مشخص شده در یک آرایه موجود باشد.
فروشگاه وب Chrome: بهروزرسانیهای لازم برای طول نام برنامه افزودنی
در فروشگاه وب Chrome، اکنون یک محدودیت جهانی 75 نویسه برای فیلد "name"
یک برنامه افزودنی در manifest.json وجود دارد. پیش از این، محدودیت برای انگلیسی 45 کاراکتر بود و هیچ محدودیتی برای فیلد "name"
در سایر مناطق وجود نداشت.
این در ابتدا برای اجازه دادن به تفاوتهای فرهنگی و زبانی در نظر گرفته شده بود که ممکن است در تعداد کاراکترهای یکسان قابل ثبت نباشد. متأسفانه تعداد کمی از توسعه دهندگان از این ویژگی برای ارسال هرزنامه به فروشگاه سوء استفاده کردند. در نتیجه ما یک محدودیت جهانی جدید را معرفی می کنیم که به 75 کاراکتر افزایش می یابد. این محدودیت تقریباً همه برنامههای افزودنی موجود در فروشگاه را امروز پوشش میدهد، بنابراین احتمالاً در نتیجه این تغییر نیازی به اقدامی برای شما نخواهد بود. اگر بخواهید افزونهای را آپلود کنید که نامی طولانیتر از حد مجاز دارد، آپلود توسط فروشگاه مسدود میشود.
پست وبلاگ: سفر eyeo به آزمایش تعلیق کارگر خدمات
در این پست توسط تیم Eyeo's Extension Engine، مشکل آزمایش کارگران خدمات توسعه دهنده را بررسی می کنیم. در Manifest V2، برنامههای افزودنی در یک صفحه پسزمینه زندگی میکردند که در طول چرخه عمر برنامه افزودنی بیدار بودند. مانیفست V3 به جای آن از کارگران خدماتی استفاده میکند، و کارگران خدماتی، بر اساس طراحی، با خاموش کردن آنها در مواقعی که به آنها نیازی نیست، منابع را حفظ میکنند. این چالش های آزمایشی خاصی را ارائه می دهد. این پست توضیح می دهد که چگونه eyeo با این چالش ها مقابله کرد .
Chrome 123: اکنون هشدارها زمانی که دستگاه در خواب است اجرا می شود
هشدارهایی که با استفاده از chrome.alarms
API تنظیم میشوند، وقتی دستگاهی به حالت خواب میرود، دیگر به تأخیر نمیافتد. وقتی دستگاه بیدار می شود، مهم نیست که چند آلارم از دست رفته باشد، یک بار زنگ هشدار فعال می شود. به عنوان مثال، بگویید که زنگ ساعت یک بار تنظیم شده است و دستگاهی که روشن است از ساعت 12:55 صبح تا 2:05 بامداد در حالت خواب است، سپس فقط زنگ ساعت 2:00 صبح رویداد onAlarm
را فعال می کند. تا آنجایی که میتواند نزدیک به ساعت 2:00 بامداد شلیک میشود و اگر دستگاهی در خواب بود، بلافاصله وقتی بیدار میشود.
این تغییر کروم را با رفتار مورد توافق در گروه انجمن برنامههای افزودنی وب هماهنگ میکند.
پست وبلاگ: تغییر در رفتار bfcache با پورت های پیام افزودنی
کش عقب/ جلو (bfcache) یک بهینه سازی مرورگر است که پیمایش فوری به عقب و جلو را امکان پذیر می کند. با شروع در کروم 123، هنگامی که صفحه ای با پورت افزونه باز در bfcache ذخیره می شود، کانال پیام بسته می شود، به این معنی که هیچ پیامی به آن صفحه ارسال نمی شود. در نتیجه، اسکریپت های برنامه افزودنی باید به رویدادهای چرخه حیات مانند onDisconnect
گوش دهند و هنگامی که صفحه از BFCache بازیابی می شود، یک اتصال جدید راه اندازی کنند.
برای اطلاعات بیشتر و کد نمونه، به تغییرات رفتار BFCache با پورتهای پیام افزودنی مراجعه کنید.
Chrome 122: قول پشتیبانی از APIهای افزونه ناهمزمان
ما اجرای Promise را برای همه روشهای API برنامههای افزودنی ناهمزمان به پایان رساندهایم. این کار برای نوسازی روش های API با بهبود ارگونومی برخورد با عملیات ناهمزمان انجام شد. تعداد انگشت شماری از متدها (به عنوان مثال desktopCapture.chooseDesktopMedia()
) همچنان فقط از callback ها پشتیبانی می کنند زیرا سطوح فعلی آنها با Promises سازگار نیست. برای سازگاری به عقب، تماسهای برگشتی همچنان پشتیبانی میشوند. اگر وعده ای پیدا کردید که با شکست مواجه شد، لطفاً یک اشکال را ثبت کنید .
راهنمایی جدید برای ارتباط بلادرنگ
ما به تازگی راهنمای گزینه های بلادرنگ در برنامه های افزودنی منتشر کرده ایم. به روز رسانی های بلادرنگ یک مسیر ارتباطی فوری از سرورهای شما به طور مستقیم به نصب برنامه های افزودنی شما فراهم می کند. علاوه بر این، ما راهنمایی جدیدی برای استفاده از chrome.gcm ، Web Push داریم.
راهنمایی و نمونه جدید: پایان خدمت کارمند آزمایشی
ما به تازگی یک راهنمای در مورد نحوه آزمایش خاتمه کارگر خدمات با Puppeteer منتشر کرده ایم. نمونه همراه این را در Puppeteer و Selenium نشان می دهد.
نمونه به روز شده برای پیام های بومی
ما به تازگی یک نمونه به روز شده برای پیام رسانی بومی منتشر کرده ایم. این API به برنامه افزودنی شما اجازه می دهد تا برنامه دیگری را شروع کرده و با آن ارتباط برقرار کند. با تشکر از همکاری GitHub Shubham-Rasal برای کار در این زمینه.
Chrome 121: ویژگی جدید lastAccessed در Tabs.Tab
یک ویژگی جدید به نام lastAccessed
به شیء tabs.Tab
اضافه شد. این ویژگی نشان می دهد که آخرین بار چه زمانی برگه فعال شده است. مقدار بازگشتی بر حسب میلی ثانیه از دوره است.
Chrome 121: کلیدهای «پسزمینه» پشتیبانینشده اکنون یک هشدار صادر میکنند
در تغییر از Manifest V2 به Manifest V3، فرزندان کلید مانیفست "background"
برای جایگزینی اسکریپتهای پسزمینه با کارکنان خدمات توسعه تغییر یافتند. قبلاً، افزودن کلیدهای Manifest V2 "scripts"
، "page"
یا "persistent"
به کلید "background"
یک برنامه افزودنی Manifest V3 باعث بروز خطا می شد. وجود این کلیدها اکنون باعث ایجاد یک هشدار می شود.
این کار برای فعال کردن استفاده از یک فایل مانیفست واحد در برنامههای افزودنی در مرورگرهای متعدد، به ازای پیشنهاد در گروه جامعه انجام میشود.
Chrome 120: حداقل جزئیات هشدار به 30 ثانیه کاهش یافته است
از Chrome 120، برنامههای افزودنی Manifest V3 میتوانند از chrome.alarms
API با تأخیر یا دورههای 30 ثانیهای استفاده کنند، نه اینکه به مقادیر 60 ثانیه یا بیشتر نیاز داشته باشند.
پست وبلاگ: از سرگیری انتقال به Manifest V3
جدول زمانی پشتیبانی Manifest V2 به روز شده است. برای جزئیات بیشتر به پست وبلاگ نوامبر 2023 ما مراجعه کنید.
پست وبلاگ: بهبود پشتیبانی از فیلتر کردن محتوا در Manifest V3
در پست وبلاگ جدید خود با نحوه بهبود DeclarativeNetRequest API آشنا شوید.
پست وبلاگ: موارد جدید در Chrome 120 برای برنامه های افزودنی
Chrome 120 بتا اخیرا منتشر شده است. برای خلاصهای از بهروزرسانیهای مهم مربوط به توسعهدهندگان برنامههای افزودنی، پست وبلاگ جدید ما را بخوانید: چه چیزی در Chrome 120 برای برنامههای افزودنی جدید است . این نسخه همچنین یک نقطه عطف مهم را نشان می دهد زیرا دو مورد نهایی (userScripts، مدیریت فایل در ChromeOS) را از لیست شکاف های مهم پلت فرم حذف می کند.
PSA: تغییر در مدیریت URL های خط مشی رازداری در داشبورد برنامه نویس
خطمشیهای رازداری در داشبورد برنامهنویس اکنون در سطح مورد اضافه شدهاند. این به شما امکان می دهد برای هر مورد یک خط مشی رازداری متفاوت ارائه دهید. در مورد این تغییر در PSA ما بیشتر بخوانید.
ویدئو: گپ با مت فریزبی
ما به تازگی ویدیوی جدیدی را در کانال YouTube Chrome for Developers منتشر کردهایم که با متخصص توسعهدهنده Google و نویسنده مت فریزبی چت میکند. اینجا را تماشا کنید.
راهنمایی جدید در مورد آزمایش برنامه های افزودنی
ما بهتازگی دستورالعملهای جدیدی را درباره نحوه نوشتن تستهای خودکار برای برنامههای افزودنی منتشر کردهایم، از جمله نحوه نوشتن تستهای واحد و راهنماییهای عمومی و آموزش تست سرتاسر.
پست وبلاگ: آنچه در برنامه های افزودنی Chrome اتفاق می افتد - اکتبر 2023
ما به تازگی نسخه دوم آنچه در برنامه های افزودنی Chrome اتفاق می افتد را منتشر کرده ایم. این پست در مورد آنچه که تیم توسعه در چند ماه گذشته روی آن کار کرده است، از جمله رسیدگی به مسائل پایداری کارکنان خدمات و پیشرفت خوب در بستن تمام شکاف های پلت فرم MV3 بحث می کند. ما همچنین نسخههای API هیجانانگیز آینده مانند Reading List API و User Scripts API را به اشتراک میگذاریم.
افزایش محدودیتهای مجموعه قواعد ثابت در Declarative Net Request API
به دنبال بازخورد در گروه انجمن برنامه های افزودنی وب، به طور قابل توجهی محدودیت قوانین استاتیک فعال را از 10 به 50 افزایش می دهیم. علاوه بر این، تعداد کل قوانین استاتیک مجاز را از 50 به 100 افزایش می دهیم. این در حال حاضر در قناری موجود است.
راهنمایی بهبود یافته در مورد کدهای میزبانی از راه دور
یک الزام برای Manifest V3 این است که برنامههای افزودنی دیگر از کد میزبانی از راه دور استفاده نکنند. اگرچه این بخشی از راهنمای مهاجرت ما از ابتدا بوده است، اما فکر میکردیم که ارزش دارد راهنماییهای مربوط به این موضوع را بهبود بخشیم. آن صفحه اکنون اطلاعات بیشتری را ارائه میکند و مواردی را که هنوز در Manifest V3 امکانپذیر است را توضیح میدهد و اطلاعات بیشتری در مورد استراتژیهای ارتقاء ارائه میدهد.
موارد اضافی مرتبطی برای عیبیابی نقضهای فروشگاه وب Chrome وجود دارد. بخش جدیدی دلایل رایج رد شدن برنامههای افزودنی با کد میزبان از راه دور را توضیح میدهد.
کروم 118: isUrlFilterCaseSensitive اکنون به صورت پیش فرض false است
از Chrome 118، ویژگی isUrlFilterCaseSensitive
در chrome.declarativeNetRequest API به پیشفرض به false
تغییر کرده است. اگر می خواهید رفتار قدیمی را حفظ کنید، می توانید به صراحت isUrlFilterCaseSensitive
را در قوانین declarativeNetRequest خود روی true
تنظیم کنید.
این به دنبال بحثهایی در گروه انجمن برنامههای افزودنی وب است. فایرفاکس و سافاری قبلاً تغییر مشابهی را اعمال کرده اند.
اسناد مربوط به کوکی ها و API های ذخیره سازی وب
راهنمای جدیدی درباره نحوه عملکرد کوکیها و APIهای ذخیرهسازی وب در برنامههای افزودنی Chrome منتشر کردیم. این شامل جزئیات مربوط به تغییرات پارتیشن بندی کوکی و ذخیره سازی در Privacy Sandbox است، پروژه ای در حال انجام برای از بین بردن کوکی های شخص ثالث از طریق ایجاد یک سری از API های پلت فرم وب جدید، و جزئیات نحوه عملکرد آنها در برنامه های افزودنی.
نمونه های برنامه افزودنی اکنون قابل جستجو هستند
اخیراً صفحهای ایجاد کردیم که به شما امکان میدهد نمونههای برنامه افزودنی Chrome را جستجو کنید . صفحه جستجو چندین گزینه دارد. یک کادر جستجو به شما امکان می دهد متن را در عناوین نمونه جستجو کنید. میتوانید جستجو را با مجوز یا افزونه API محدود کنید. یک فیلتر اضافی به شما امکان می دهد جستجو را به نمونه های API یا عملکردی (مورد استفاده) محدود کنید.
این صفحه نمونه جدید توسط یکی از شرکت کنندگان Google Summer of Code به نام Xuezhou Dai ساخته شده است که چندین نمونه جدید را نیز ارائه کرده است. می توانید در مورد تجربیات آنها در تابستان گذشته در پست آنها در وبلاگ ما بخوانید.
مانند قبل، نمونه کدهای ما همچنان در GitHub برای شبیه سازی یا فورکینگ موجود است.
Chrome 118: تغییرات در باز کردن فایل: URL های طرح
از Chrome 118، برنامههای افزودنی برای باز کردن نشانیهای وب طرح file:// با استفاده از Tabs یا Windows API به تنظیم «اجازه دسترسی به URLهای فایل» از صفحه chrome://extensions
فعال نیاز دارند. میتوانید با فراخوانی chrome.extension.isAllowedFileSchemeAccess()
این دسترسی را به صورت برنامهنویسی بررسی کنید. فایرفاکس قبلاً URL فایل ها را محدود کرده است و سافاری از این تغییر پشتیبانی می کند. برای اطلاعات بیشتر، پست را در افزونههای Google Group بخوانید.
Chrome 117: حفاظتهای URL گسترده در ناوبری API برنامههای افزودنی
پیمایشی که قبلاً از فراخوانهای API برنامههای افزودنی برای tabs.update()
, tabs.create()
و windows.create()
آغاز شده بود برای برخی از URLهای chrome:// خطایی صادر کرد. علاوه بر این، فراخوانی tabs.update()
با URL جاوا اسکریپت ممنوع بود. در 117، این حفاظت ها در URL های جاوا اسکریپت به روش tabs.create()
گسترش یافته و تعدادی URL اضافی chrome:// به لیست URL های ممنوعه اضافه شده است که برای همه روش های ذکر شده قبلی اعمال می شود.
راهنمایی بهبود یافته برای DeclarativeNetRequest API
chrome.declarativeNetRequest
API درخواست های شبکه را با تعیین قوانین اعلامی مسدود یا تغییر می دهد. این به برنامههای افزودنی اجازه میدهد تا درخواستهای شبکه را بدون رهگیری و مشاهده محتوای آنها تغییر دهند، بنابراین حریم خصوصی بیشتری را برای کاربران فراهم میکنند. استفاده از آن نیز دشوار است. با در نظر گرفتن این موضوع، راهنمایی را به گونهای بازنویسی کردهایم که فکر میکنیم تصویر واضحتری از نحوه پیادهسازی قوانین اعلامی ارائه میدهد. بخش جدید را در لینک بالا بخوانید.
با استفاده از حساب Google Analytics خود در فروشگاه وب Chrome
فروشگاه وب Chrome ادغام با Google Analytics را ارائه می دهد، که به شما امکان می دهد علاوه بر نمای ارائه شده در داشبورد برنامه نویس، تجزیه و تحلیل فهرست فروشگاه وب Chrome خود را مشاهده کنید. برای اطلاعات بیشتر، استفاده از حساب Google Analytics خود با فروشگاه وب Chrome را بخوانید.
Chrome 115: DevTools به طور پیشفرض از اسکریپتهای محتوا عبور میکند
اسکریپت های محتوای تزریق شده اکنون به طور پیش فرض در لیست نادیده گرفتن ابزار DevTools هستند. این بر نقاط شکست تأثیر نمیگذارد، اما به این معنی است که اسکریپتهای محتوا در حین اشکالزدایی از بین رفته و استثناهای این اسکریپتها نادیده گرفته میشوند. هنگامی که یک اسکریپت محتوا در برگه منابع باز است، یک بنر به شما هشدار می دهد که روشن است و گزینه ای برای حذف اسکریپت محتوای شما از لیست نادیده گرفته می شود. برای خاموش کردن این رفتار، DevTools را باز کنید، به تنظیمات بروید و سپس فهرست را نادیده بگیرید . برای کسب اطلاعات بیشتر، موارد جدید در DevTools را ببینید.
Chrome 116 بتای: بیش از آنچه در اینجا جا میگیریم
کروم 116 یک نسخه بزرگ برای برنامه های افزودنی است. اکنون می توانید پانل های جانبی را به صورت برنامه ریزی شده باز کنید. یک روش جدید به شما امکان می دهد یاد بگیرید که آیا یک سند خارج از صفحه فعال وجود دارد یا خیر. کارکنان خدمات بهبودهای سروری را دریافت کردند. پیشرفت های کافی در 116 وجود دارد که برای پوشش آنها یک پست وبلاگ نوشته ایم. کروم 116 از 19 جولای در نسخه بتا است.
پست وبلاگ: آنچه در برنامه های افزودنی Chrome اتفاق می افتد
ما به تازگی یک نمای کلی از تغییرات و بهبودهای امسال در برنامه های افزودنی منتشر کرده ایم. این پست ویژگیهای جدید بزرگ سال را مورد بحث قرار میدهد، از جمله Side Panel API، پیشرفتهای سرویسکار و اسناد خارج از صفحه. همچنین نگاهی به آنچه که ما در این سه ماهه روی آن کار می کنیم، خواهید داشت. این مقاله لیست های بسیار بیشتری را با پیوند به همه فهرست می کند.
راهنمایی و نمونه جدید: نحوه استفاده از Google Analytics 4 را در برنامه افزودنی Chrome خود بیاموزید
ما دستورالعمل ها و نمونه های جدید Google Analytics و موقعیت جغرافیایی را منتشر کردیم:
- نسخه به روز شده راهنمای Google Analytics ما که توضیح می دهد چگونه می توانید از Google Analytics 4 در برنامه افزودنی Chrome خود استفاده کنید. ما همچنین یک نمونه Google Analytics 4 را به مخزن نمونه Github خود اضافه کرده ایم.
google-analytics.js
را برای کدهای مربوط به Google Analytics بررسی کنید. - یک راهنمای جدید موقعیت جغرافیایی و سه نمونه که نحوه دسترسی به موقعیت جغرافیایی در سرویسکاران، اسکریپتهای محتوا، پنجرههای بازشو و پانلهای جانبی را نشان میدهد.
Chrome 115: چندین دلیل را در chrome.offscreen.createDocument() مشخص کنید
اکنون می توانید هنگام فراخوانی chrome.offscreen.createDocument()
چندین reason
را مشخص کنید. وقتی از یک سند خارج از صفحه برای چندین هدف مختلف استفاده می شود از این استفاده کنید. مرورگر از دلایل ارائه شده برای تعیین طول عمر سند خارج از صفحه استفاده می کند.
ابزار جدید: ابزار تست افزونه به روز رسانی
ما بهتازگی ابزار آزمایش بهروزرسانی برنامه افزودنی را منتشر کردهایم، یک سرور بهروزرسانی برنامههای افزودنی محلی که میتواند برای آزمایش بهروزرسانیهای برنامههای افزودنی Chrome در طول توسعه محلی، از جمله اعطای مجوز استفاده شود. این ابزار جریان به روز رسانی کاربر را نشان می دهد، از جمله غیرفعال نگه داشتن یک برنامه افزودنی تا زمانی که کاربر مجوزهای جدید درخواست شده را اعطا کند. این ابزار به ویژه برای شبیه سازی تغییرات مجوز درخواست شده هنگام به روز رسانی یک برنامه افزودنی از Manifest V2 به Manifest V3 مفید است.
Chrome 114: New Side Panel API
معرفی Side Panel API جدید، یک سطح همراه که به کاربران امکان می دهد به ابزارها در کنار محتوایی که در حال مرور هستند دسترسی داشته باشند. برای کسب اطلاعات بیشتر، از مرجع API پانل جانبی دیدن کنید. علاوه بر این، نمونههای پانل جانبی زیادی را به مخزن نمونه GitHub خود اضافه کردهایم. همچنین در پست وبلاگ جدید طراحی یک تجربه کاربری برتر با API پنل جانبی جدید، اطلاعات بیشتری درباره پانل های جانبی به اشتراک می گذاریم. خطمشی دستورالعملهای کیفیت و بهترین شیوههای ما نیز برای ارائه راهنماییهای بیشتر در مورد ایجاد پسوندهای پانل جانبی با کیفیت بالا بررسی شدهاند.
بازخورد شما در ساخت این API مهم است. لطفا نظرات و درخواست های خود را در گروه های کرومیوم به اشتراک بگذارید. منتظر بهروزرسانیهای جدید باشید تا به بهبود Side Panel API ادامه دهیم.
نمونه های جدید: WASM در برنامه های افزودنی
دو نمونه جدید موجود است که نحوه استفاده از WASM را در یک برنامه افزودنی نشان می دهد:
- استفاده از WASM در Manifest V3 روش کلی برای گنجاندن یک ماژول WASM را نشان می دهد.
- استفاده از WASM به عنوان یک ماژول در Manifest V3 نحوه استفاده از آن را در یک ماژول نشان می دهد.
تشکر ویژه از مشارکت کننده GitHub @daidr برای این نمونه ها.
راهنمای مهاجرت Manifest V3 به روز شد
ما بخش مشکلات شناخته شده راهنمای انتقال Manifest V3 را با لیست بهروزرسانی شدهای از شکافهای پلتفرم برنامههای افزودنی بهروزرسانی کردهایم که میخواهیم قبل از اعلام جدول زمانی منسوخ شدن Manifest V2 جدید، آنها را ببندیم.
ضبط صدا و تصویر با Manifest V3
ما به تازگی مقاله جدیدی به نام ضبط صدا و ضبط صفحه منتشر کرده ایم که ضبط صدا یا ویدیو را از یک برگه، پنجره یا صفحه در Manifest V3 پوشش می دهد. این مقاله چندین روش برای ضبط شامل chrome.tabCapture
API و تابع getDisplayMedia()
را شرح می دهد.
Chrome 114: افزایش سهمیه فضای ذخیرهسازی محلی
ما سهمیه ویژگی storage.local
را به تقریباً 10 مگابایت افزایش دادهایم. این مورد در گروه انجمن برنامه های افزودنی وب موافقت شد. این storage.local
با storage.session
که در کروم 112 تغییر کرده است، مطابقت میدهد.
آموزش و راهنمایی جدید کارگر خدمات توسعه
Service Workers بخشی جدایی ناپذیر از برنامه های افزودنی Chrome هستند. ما به تازگی آموزشی منتشر کردیم که در آن اصول اولیه ثبت نام، اشکال زدایی و تعامل با Service Workers را توضیح می داد. ما همچنین یک راهنمای سرویس کارگر جدید اضافه کرده ایم که مفاهیم مهم را با جزئیات بیشتر توضیح می دهد. ما این بخش را در ماه های آینده گسترش خواهیم داد.
نکات بیشتر برای عیب یابی تخلفات فروشگاه وب
برای کمک به انتشار فروشگاه وب Chrome، راهنمایی جدیدی در دو زمینه اضافه کردیم. راهنمایی برای حداقل عملکرد مراکز حول ارائه مزایا به کاربران و غنیسازی تجربه مرور آنهاست. راهنمایی برای تبلیغات وابسته به این است که کاربران را از برنامههای افزودنی با استفاده از پیوندهای وابسته یا کدهای کسب درآمد آگاه میکند و با الزام به اقدام کاربر قبل از گنجاندن، مقداری کنترل به آنها میدهد.
دستورالعمل های جدید برای تبدیل مانیفست برنامه افزودنی
ما README را برای Extension Manifest Converter بازنویسی کردهایم تا ببینیم بعد از اجرای ابزار باید چه کاری انجام دهید. مبدل به انتقال افزونه های ساخته شده در Manifest V2 به Manifest V3 کمک می کند. README جدید آنچه را که ابزار با استفاده از کلماتی که دقیقاً مطابق با موارد موجود در چک لیست راهنمای مهاجرت انجام می دهد، توصیف می کند. مبدل همه کارها را انجام نمی دهد، اما بسیاری از کارهایی را که نیازی به قضاوت انسانی ندارند حذف می کند.
Chrome 113: دلایل جدید برای اسناد خارج از صفحه
ما دو نوع دلیل جدید را به API اسناد خارج از صفحه اضافه کرده ایم. از LOCAL_STORAGE
برای دسترسی به LocalStorage API پلت فرم وب استفاده کنید. هنگام ایجاد وب کارگران از WORKER
استفاده کنید.
Google Analytics 4 اکنون در داشبورد برنامه نویس قرار دارد
داشبورد برنامهنویس فروشگاه وب Chrome اکنون از Google Analytics 4 (GA4) پشتیبانی میکند. ما راه اندازی Google Analytics را ساده کرده ایم و مدیریت دسترسی ناشران گروه را ساده تر کرده ایم. اگر قبلاً از Google Universal Analytics برای ردیابی فعالیت فهرست فروشگاه خود استفاده میکردید، باید تا تاریخ 1 ژوئیه 2023 اقدامی انجام دهید تا اطمینان حاصل کنید که همچنان اطلاعات مربوط به فهرست فروشگاه خود را دریافت میکنید. برای اطلاعات بیشتر، به پست مربوط به Google Extensions در Chromium Group مراجعه کنید.
File Handling API به ChromeOS می آید
File Handler API برای آزمایش در ChromeOS در Canary برای نسخههای 112 و 113 در دسترس است. به برنامههای افزودنی در ChromeOS اجازه میدهد فایلهایی با انواع MIME و پسوندهای فایل مشخص شده باز کنند. برای پیاده سازی مدیریت فایل، مجموعه ای از قوانین را به manifest.json
اضافه کنید. این ویژگی مانند برنامه های وب پیشرفته عمل می کند. برای اطلاعات بیشتر، مقاله را در جای دیگر این سایت ببینید.
برای فعال کردن مدیریت فایل:
- از 112 شروع کنید، Chrome را با استفاده از
--enable-features=ExtensionWebFileHandlers
راه اندازی کنید، از 112 شروع کنید - از 113،
os://flags/#extension-web-file-handlers
در omnibox Chrome جایگذاری کنید و از منوی کشویی «Enabled» را انتخاب کنید.
امیدواریم در اواخر ژوئن این ویژگی را در کروم 115 راه اندازی کنیم. این فضا را برای به روز رسانی تماشا کنید.
نمونه های جدید: اعلان های پویا و تزریق برنامه ای
ما یک نمونه جدید برای chrome.scripting
API ساختهایم. این اعلانهای پویا را نشان میدهد، جایی که یک اسکریپت محتوا در زمان اجرا ثبت میشود، و تزریق برنامهای، که در آن یک اسکریپت در برگهای که قبلاً باز است اجرا میشود.
نمونههای جدید: موارد استفاده خالص اعلامی
سه نمونه جدید موجود است که API درخواست خالص اعلامی را نشان می دهد. هر یک اجرای یک مورد استفاده را نشان می دهد. اولین نشان می دهد که چگونه کوکی ها را مسدود کنید. دو مورد باقیمانده نشان دهنده مسدود کردن و تغییر مسیر URL ها هستند.
Chrome 112: افزایش سهمیه storage.session
از Chrome 112، سهمیه ویژگی storage.session
به تقریباً 10 مگابایت افزایش یافته است. این در گروه انجمن برنامههای افزودنی وب موافقت شد: https://github.com/w3c/webextensions/issues/350
Chrome 109: اسناد خارج از صفحه
اسناد خارج از صفحه اکنون در پسوندهای Manifest V3 در دسترس هستند. اینها با ارائه پشتیبانی از ویژگیها و APIهای مرتبط با DOM، به انتقال از صفحات پسزمینه به کارکنان خدمات افزونه کمک میکنند. برای اطلاعات بیشتر، پست وبلاگ را بخوانید .
Chrome 110: یک افزونه فعال است
متد chrome.action.isEnabled()
به صورت برنامهنویسی بررسی میکند که آیا یک برنامه افزودنی برای یک برگه خاص فعال شده است یا خیر. این شما را از حفظ وضعیت فعال برگه های خود نجات می دهد. این روش جدید یک شناسه برگه و یک ارجاع به یک فراخوان دریافت می کند و یک Boolean برمی گرداند. این یک محدودیت دارد: برگههایی که با استفاده از chrome.declarativeContent
ایجاد میشوند همیشه false برمیگردند.
(فضای نام chrome.action
اخیراً روشهای جدیدی برای کنترل ظاهر نشانهای برنامه افزودنی دریافت کرده است. برای اطلاعات بیشتر، به تنظیم رنگهای نشان رجوع کنید.)
Chrome 110: تغییر در مهلت زمانی بیحرکتی کارگر سرویس
پیش از این، یک کارمند خدمات داخلی اغلب در پنج دقیقه خاموش می شد. ما این رفتار را تغییر دادهایم تا شباهت بیشتری به طول عمر کارکنان خدمات در وب داشته باشد. کارمند خدمات توسعه پس از 30 ثانیه عدم فعالیت یا اگر پردازش یک فعالیت بیش از 5 دقیقه طول بکشد، خاموش می شود. برای اطلاعات بیشتر، طول عمر کارمند خدمات توسعه بیشتر را ببینید.
پست: توقف موقت مانیفست V2
جدول زمانی منسوخ شدن Manifest V2 در دست بررسی است و آزمایش های برنامه ریزی شده برای اوایل سال 2023 به تعویق می افتد. برای اطلاعات بیشتر، بهروزرسانی را در chromium-extensions Group Google بخوانید .
Chrome 110: تنظیم رنگ نشان
فضای نام chrome.action
دو روش جدید دارد تا کنترل بیشتری بر روی نشانهای پسوند ظاهری به شما بدهد. متدهای setBadgeTextColor()
و getBadgeTextColor()
به یک برنامه افزودنی اجازه می دهد تا رنگ متن نشان نماد نوار ابزار خود را تغییر داده و از آن درخواست کند. هنگامی که با setBadgeBackgroundColor
و getBadgeBackgroundColor
استفاده میشود، این روشهای جدید به شما امکان میدهند طراحی و یکپارچگی برند را اعمال کنید.
پست وبلاگ: جزئیات بیشتر در مورد انتقال به Manifest V3
ما جدول زمانی منسوخ شدن Manifest V2 را روشن کرده ایم . جدول زمانی پشتیبانی Manifest V2 نیز برای منعکس کردن این اطلاعات به روز شده است.
به روز رسانی Docs: مشکلات شناخته شده هنگام مهاجرت به Manifest V3
ما فهرستی از ویژگی های اصلی در حال توسعه و باز کردن باگ ها را گردآوری کرده ایم. هدف ما از این صفحه کمک به توسعه دهندگان برای درک بهتر وضعیت فعلی پلتفرم و ویژگی هایی است که می توانند هنگام آماده شدن برای آینده هدف قرار دهند.
فروشگاه وب Chrome: آپلود تصویر "کاشی تبلیغاتی بزرگ" حذف شد
فروشگاه وب Chrome رابط کاربری آپلود «کاشی تبلیغاتی بزرگ» را از برگه فهرست فروشگاه در داشبورد برنامهنویس حذف کرده است. این تغییر بر تجربه کاربر نهایی تأثیر نمی گذارد زیرا این تصاویر در رابط کاربری مصرف کننده استفاده نشده اند. برای جزئیات بیشتر به این پست chromium-extensions مراجعه کنید.
Chrome 106: به صفحات موجود در آدرس های اینترنتی file:// اجازه دهید به منابع قابل دسترس وب دسترسی داشته باشند
طبق crbug.com/1219825#c11 ، مبداهای غیر شفاف مانند iframe های sandboxed و واردات پویا نیز باید بتوانند به منابع قابل دسترس وب دسترسی داشته باشند.
Chrome 106: رفع اشکال که به آرگومان های نهایی نادرست در برخی از توابع API غیرهمگام اجازه می دهد
قبلاً، APIهای غیرهمگام فراخوانی Manifest V3 میتوانست آرگومان نهایی نامعتبر ارائه کند و کروم خطا نمیکند. با این اصلاح، Chrome اکنون به درستی خطا می کند و گزارش می دهد که هیچ امضای منطبقی وجود ندارد. توسعهدهندگان تشویق میشوند تا برنامههای افزودنی خود را در Canary برای هر گونه خطا بررسی کنند، در صورتی که به طور تصادفی از امضای نادرستی برای تماس API استفاده میکنند که توسط این رفع اشکال خراب میشود.
پست وبلاگ: بازسازی فروشگاه وب کروم تجزیه و تحلیل
فروشگاه وب Chrome یک تجربه تجزیه و تحلیل آیتم اصلاح شده برای داشبورد برنامهنویس فروشگاه وب Chrome دارد. داشبورد جدید در یک نگاه ساده تر قابل درک است و مفیدترین اطلاعات را در ابتدا یکپارچه می کند. برای اطلاعات بیشتر پست وبلاگ را بخوانید .
Chrome 105: وعده هایی برای Identity API
توابع موجود در Identity API اکنون از تماسهای مبتنی بر وعده پشتیبانی میکنند. این با یک تغییر جزئی در سطح برای identity.getAuthToken()
همراه است، که در آن بازگشت ناهمزمان به یک فراخوان مبتنی بر قول دارای پارامترهای "token" و "grantedScopes" در یک شی واحد خواهد بود (برخلاف نسخه برگشتی که آنها را دریافت می کند. به عنوان آرگومان های جداگانه برای پاسخ تماس).
Chrome 104: Favicons API جدید برای Manifest V3
افزونههای Manifest V3 اکنون میتوانند با استفاده از الگوی URL جدید به فاویکونها دسترسی داشته باشند: chrome-extension://<id>/_favicon/
، که در آنchrome://favicons
پلتفرم Manifest V2 می شود. برای اطلاعات بیشتر به اسناد Favicon API مراجعه کنید.
بهروزرسانی اسناد: افشای تاجر توسعهدهنده/غیر تاجر
شناسه توسعهدهنده تاجر/غیر تاجر اضافه شد که به توسعهدهندگان اطلاع میدهد تا وضعیت تاجر/غیر تاجر خود را بهطور دقیق اعلام کنند.
Chrome 103: Wasm در Manifest V3 به wasm-unsafe-eval نیاز دارد
Chrome دیگر به طور پیشفرض به برنامههای افزودنی script-src: wasm-unsafe-eval
اعطا نمیکند. برنامههای افزودنی که از WebAssembly استفاده میکنند، اکنون باید به صراحت این دستورالعمل و ارزش را به extension_pages
در اعلامیههای content_security_policy
خود اضافه کنند.
Chrome 103: تغییر میانبرهای MV3 بلافاصله اعمال می شود
هنگام تغییر میانبر صفحهکلید افزونه Manifest V3 در chrome://extensions/shortcuts
، بهروزرسانیها اکنون بلافاصله اعمال میشوند. قبلاً قبل از اعمال تغییر، برنامه افزودنی باید دوباره بارگیری می شد.
Chrome 102: اسکریپت های محتوای پویا در دنیای اصلی
اسکریپت های محتوای ثبت شده پویا اکنون می توانند دنیایی را که دارایی ها به آن تزریق می شوند، مشخص کنند. برای جزئیات بیشتر به scripting.registerContentScripts()
مراجعه کنید.
Chrome 102: فیلد مانیفست جدید "optional_host_permissions"
افزونههای Manifest V3 اکنون میتوانند کلید optional_host_permissions
را در manifest.json مشخص کنند. این به افزونههای Manifest V3 اجازه میدهد تا الگوهای تطبیق اختیاری را برای میزبانها اعلام کنند، همانطور که افزونههای Manifest V2 میتوانند با استفاده از کلید optional_permissions
.
Chrome 102: ویژگی injectImmediately در scripting.executeScript()
chrome.scripting.executeScript()
اکنون یک ویژگی اختیاری injectImmediately
را در آرگومان injection
خود می پذیرد. اگر وجود داشته باشد و روی true تنظیم شود، اسکریپت در اسرع وقت به هدف تزریق می شود، نه اینکه منتظر document_idle
باشد. توجه داشته باشید که این تضمینی برای تزریق اسکریپت قبل از بارگیری صفحه نیست، زیرا صفحه همچنان به بارگیری در حین برقراری تماس API ادامه میدهد.
Chrome 102: پشتیبانی از Omnibox API در Manifest V3
اکنون میتوان از Omnibox API در برنامههای افزودنی مبتنی بر سرویسکار استفاده کرد. قبلاً، برخی از روشهای این API به دلیل وابستگی داخلی به قابلیتهای DOM، فراخوانی میکردند.
Chrome 102: wasm-unsafe-eval در Manifest V3 CSP مجاز است
افزونههای Manifest V3 اکنون میتوانند wasm-unsafe-eval
در اعلامیههای content_security_policy
خود بگنجانند. این تغییر به افزونه های Manifest V3 اجازه می دهد تا از WebAssembly استفاده کنند.
Chrome 102: Storage.session API جدید
افزونههای Manifest V3 اکنون میتوانند در حافظه ذخیرهسازی storage.session استفاده شوند.
بهروزرسانی Docs: کشف مورد فروشگاه وب Chrome
Discovery در فروشگاه وب Chrome یک نمای کلی از نحوه یافتن موارد در فروشگاه وب Chrome توسط کاربران و نحوه انتخاب موارد برای نمایش توسط ویراستاران ما ارائه می دهد.
Chrome 101: بهبود شرایط دامنه اعلامی NetRequest
شرایط قانون declarativeNetRequest بهروزرسانی شده است تا به برنامههای افزودنی اجازه میدهد تا درخواستها را بر اساس دامنههای «درخواست» و «آغازکننده» درخواست بهتر هدفگیری کنند. ویژگی های شرط مربوطه initiatorDomains
، excludedInitiatorDomains
، requestDomains
و excludedRequestDomains
هستند. این موضوع chromium-extensions را نیز ببینید.
Chrome 100: حل مشکل scripting.executeScript() در برگه های جدید
مشکل طولانی مدتی که در آن فراخوانی scripting.executeScript()
در یک برگه یا پنجره تازه ایجاد شده ممکن بود با شکست مواجه شود، رفع شد.
Chrome 100: پورت پیامرسانی بومی، کارگر خدمات را زنده نگه میدارد
اتصال به یک میزبان پیامرسان بومی با استفاده از chrome.runtime.connectNative()
در سرویسکار برنامه افزودنی باید سرویسکار را تا زمانی که پورت باز است زنده نگه دارد.
Chrome 100: omnibox.setDefaultSuggestion() از وعدهها و فراخوانها پشتیبانی میکند
روش omnibox.setDefaultSuggestion()
اکنون یک وعده را برمی گرداند یا پاسخ به تماس را می پذیرد تا به توسعه دهندگان اجازه دهد تا مشخصات را به درستی تعیین کنند.
Chrome 100: i18n.getMessage () پشتیبانی در کارگران خدمات پسوند
API chrome.i18n.getMessage()
اکنون در زمینه های کارگر خدمات پسوند پشتیبانی می شود.
Chrome 99: match_origin_as_fallback در قناری
اسکریپت های محتوا اکنون می توانند کلید match_origin_as_fallback
را برای تزریق به فریم هایی که مربوط به یک قاب تطبیق است ، از جمله قاب هایی با about:
، data:
blob:
، و filesystem:
URL ها مشخص کنید. برای جزئیات بیشتر به مستندات اسکریپت های محتوا مراجعه کنید.
Chrome 99: پشتیبانی از کارگر خدمات پسوند برای پرونده: طرح ها در قناری
سرویس دهنده مبتنی بر کارگران مانیفست V2 و برنامه های افزودنی V3 هم اکنون می توانند از API Fetch برای درخواست file:
-Scheme. دسترسی به file:
U URL های Scheme هنوز هم نیاز دارد که کاربر امکان دسترسی به URL های پرونده را برای برنامه افزودنی در صفحه chrome://extensions
.
Chrome 99: وعده حمایت از API های پیام رسانی در قناری
پشتیبانی وعده به tabs.sendMessage
، runtime.sendMessage
و runtime.sendNativeMessage
برای پسوندهای ساخته شده برای مانیفست V3 اضافه شده است.
به روزرسانی اسناد: مستندات بررسی فروشگاه وب Chrome
یک صفحه مرجع جدید اضافه شده است که مروری بر فرآیند بررسی فروشگاه وب Chrome ارائه می دهد و توضیح می دهد که چگونه اجرای برنامه های توسعه دهنده برنامه نویس انجام می شود.
Chrome 98: scripting.executescript () و scripting.insertcss () چندین پرونده را قبول کنید
روشهای executeScript()
و insertCSS()
اکنون چندین پرونده را می پذیرند. پیش از این این روشها به یک آرایه با یک پرونده واحد نیاز داشتند.
به روزرسانی اسناد: به روزرسانی های عیب یابی نقض نقض را مرور کنید
صفحه نقض عیب یابی فروشگاه های وب Chrome به روز شده است تا به دلایل مشترک برای رد ، راهنمایی های دقیق تری را برای توسعه دهندگان ارائه دهد.
Chrome 96: پشتیبانی از وعده های گسترده به 27 API دیگر
این نسخه حاوی به روزرسانی های نوید قابل توجهی بیشتر از هر نسخه قبلی است. به روزرسانی ها شامل API های پسوند عمومی و خاص Chromeos است. بخش های زیر را برای جزئیات بیشتر گسترش دهید.
API های پسوند
تعدادی از API اکنون از وعده های موجود در مانیفست v3 پشتیبانی می کنند.
-
chrome.browsingData
-
chrome.commands
-
chrome.contentSettings
-
chrome.debugger
-
chrome.downloads
-
chrome.enterprise.hardwarePlatform
-
chrome.fontSettings
-
chrome.history
-
chrome.instanceID
-
chrome.permissions
-
chrome.processes
-
chrome.search
-
chrome.sessions
-
chrome.topSites
همچنین ، API هایی که از نمونه اولیه ChromeSetting
استفاده می کنند ، اکنون نیز از وعده ها پشتیبانی می کنند. API های زیر تحت تأثیر این تغییر قرار می گیرند.
API های کروموس
-
chrome.certificateProvider
-
chrome.documentScan
-
chrome.enterprise.deviceAttributes
-
chrome.enterprise.networkingAttributes
-
chrome.fileBrowserHandler
-
chrome.fileSystemProvider
-
chrome.loginState
-
chrome.printingMetrics
-
chrome.wallpaper
Chrome 96: اسکریپت های محتوای پویا
API chrome.scripting
اکنون از ثبت نام ، به روزرسانی ، ثبت نام ثبت نام و گرفتن لیستی از اسکریپت های محتوا در زمان اجرا پشتیبانی می کند. پیش از این ، اسکریپت های محتوا فقط می توانند به صورت آماری در مانیفست یک chrome.scripting.executeScript()
افزودنی اعلام شوند.
به روزرسانی اسناد: جدول زمانی پشتیبانی V2 مانیفست
جدول زمانی انتقال V2 به V3 در این پست وبلاگ اعلام شد و یک صفحه جدول زمانی دقیق تر منتشر شد.
Chrome 96: DeclarativeneTrequestWithYostAccess اجازه
مجوز جدید declarativeNetRequestWithHostAccess
اجازه می دهد تا پسوندها از API chrome.declarativeNetRequest
در سایت هایی استفاده کنند که پسوند دارای مجوزهای میزبان برای آن است. این همچنین باعث می شود پسوندهای مانیفست V2 موجود که از webRequest
، webRequestBlocking
و مجوز میزبان خاص سایت برای مهاجرت به API chrome.declarativeNetRequest
استفاده می کنند ، بدون نیاز به کاربر برای تأیید مجوزهای جدید.
Chrome 95: اسکریپت ها را مستقیماً به صفحات تزریق کنید
روش chrome.scripting
API executeScript()
اکنون می تواند اسکریپت ها را مستقیماً به دنیای اصلی صفحه تزریق کند. پیش از این ، پسوندها فقط می توانستند مستقیماً به دنیای جدا شده پسوند تزریق شوند. برای کسب اطلاعات بیشتر در مورد جهان های جدا شده ، به اسناد مربوط به اسکریپت های محتوا مراجعه کنید.
Chrome 95: وعده پشتیبانی از API ذخیره سازی
روشهای موجود در نسخه مانیفست V3 chrome.storage
API اکنون وعده های خود را برمی گرداند.
به روزرسانی خط مشی: اجرای تأیید دو مرحله
پست وبلاگ به روزرسانی خط مشی منتشر شده در 29 ژوئن 2021 برای تصحیح جدول زمانی استقرار دو مرحله ای به روز شده است.
Chrome 94: درخواست خالص اعلامیه استاتیک تغییر می کند
chrome.declarativeNetRequest
اکنون از مشخص کردن حداکثر 50 قانون استاتیک ( max_number_of_static_rulesets ) پشتیبانی می کند و به طور همزمان 10 قانون ( max_number_of_enabled_static_rulesets ) را فعال می کند.
Chrome 93: پشتیبانی جداسازی Cross Origin
هر دو برنامه افزودنی V2 و مانیفست V3 اکنون می توانند به انزوا با مبداد متقاطع بپردازند. این ویژگی محدودیت هایی را که منابع متقاطع می توانند صفحات پسوند را بارگیری کنند ، محدود می کند و امکان استفاده از ویژگی های پلت فرم وب سطح پایین مانند SharedArrayBuffer
را فراهم می کند. OPT با شروع از Chrome 95 مورد نیاز خواهد بود.
به روزرسانی خط مشی: سیاست های برنامه توسعه دهنده به روز شده است
خط مشی برنامه های توسعه دهنده فروشگاه وب Chrome با توضیحات مربوط به تاکتیک های نصب فریبنده ، هرزنامه و سیاست های تکراری محتوا به روز شده است. این بروزرسانی همچنین شامل یک مورد تأیید دو مرحله جدید برای انتشار در فروشگاه وب Chrome است. برای اطلاعات بیشتر ، پست وبلاگ را بخوانید .
پست وبلاگ: اقدامات پسوند در مانیفست v3
پسوندهای کروم برای سالها API های chrome.browserAction
و chrome.pageActions
داشتند ، اما مانیفست V3 هر دو را با یک API chrome.actions
عمومی جایگزین کرد. این پست به بررسی تاریخ این API ها و آنچه در مانیفست V3 تغییر کرده است. پست را بخوانید
پست وبلاگ: معرفی Chrome.Scripting
API chrome.scripting
یک API مانیفست جدید V3 است که روی آن متمرکز است ، خوب ، اسکریپت. در این پست ما به انگیزه های این تغییر می پردازیم و نگاهی دقیق تر به قابلیت های جدید آن می اندازیم. پست را بخوانید
Chrome 92: پشتیبانی از کارگر خدمات ماژول
Chrome اکنون از ماژول های JavaScript در کارگران سرویس پشتیبانی می کند. برای مشخص کردن یک ماژول یک ماژول در مانیفست خود:
"background": {
"service_worker": "script.js",
"type": "module"
}
این اسکریپت کارگر را به عنوان یک ماژول ES بارگیری می کند ، که به شما امکان می دهد از کلمه کلیدی import
در اسکریپت کارگر برای وارد کردن ماژول های دیگر استفاده کنید.
Chrome 91: Chrome.Action.GetUsersettings ()
روش جدید chrome.action.getUserSettings()
به پسوندها اجازه می دهد تا تعیین کنند که آیا کاربر پسوند را به نوار ابزار اصلی پین کرده است یا خیر.
Chrome 90: Chrome.scripting.removecss ()
روش جدید chrome.scripting.removeCSS()
به پسوندهای اجازه می دهد تا CSS را که قبلاً از طریق chrome.scripting.insertCSS()
حذف کنند. این جایگزین chrome.tabs.removeCSS()
است.
Chrome 90: بازگشت وعده ها از scripting.executescript ()
chrome.scripting.executeScript()
اکنون از وعده های بازگشت پشتیبانی می کند. اگر مقدار حاصل از اجرای اسکریپت یک وعده باشد ، Chrome منتظر قول تسویه و بازگشت مقدار حاصل از آن خواهد بود.
Chrome 90: Chrome.scripting.executescript () نتایج شامل Frameid
نتایج برگشتی از chrome.scripting.executeScript()
در حال حاضر شامل این فریم است. خاصیت frameId
قاب را نشان می دهد که نتیجه از آن است ، اجازه می دهد پسوندها هنگام تزریق در چندین فریم ، به راحتی با فریم های فردی ارتباط برقرار کنند.
Chrome 89: API جدید برای مدیریت گروه های برگه
API جدید chrome.tabGroups
و قابلیت های جدید در chrome.tabs
اجازه می دهد تا پسوندها گروه های برگه را بخواند و دستکاری کنند. نیاز به مانیفست v3 دارد.
Chrome 89: مجوزهای قابل تنظیم برای منابع در دسترس وب
تعاریف منابع در دسترس وب در مانیفست V3 تغییر کرده است تا پسوندها دسترسی به منابع را بر اساس منشأ یا شناسه پسوند درخواست کننده محدود کنند.
پست وبلاگ: مبدل آشکار پسوند
تیم برنامه های افزودنی Chrome دارای "مبدل مانیفست پسوند" باز شده است ، ابزاری پایتون که برخی از جنبه های مکانیکی تبدیل پسوندها را به نمایش می گذارد تا V3 را نشان دهد. به پست وبلاگ اطلاعیه مراجعه کنید و آن را از GitHub دریافت کنید .
Chrome 88: در دسترس بودن عمومی مانیفست V3
مانیفست V3 یک به روزرسانی اصلی در بستر افزودنی است. برای خلاصه ای از ویژگی های جدید و تغییر یافته ، به نمای کلی مانیفست V3 مراجعه کنید. پسوندها ممکن است در حال حاضر به استفاده از مانیفست V2 ادامه دهند ، اما این در آینده نزدیک به مرحله اجرا خواهد رسید. ما اکیداً توصیه می کنیم که برای هرگونه پسوندهای جدید از مانیفست V3 استفاده کنید و مهاجرت پسوندهای موجود را برای تجلی V3 در اسرع وقت شروع کنید.
،این صفحه را غالباً بررسی کنید تا در مورد تغییرات در برنامه های افزودنی Chrome ، مستندات پسوند یا خط مشی مرتبط یا سایر تغییرات اطلاعات کسب کنید. دیگر اعلامیه های ارسال شده در گروه Google Google را پیدا خواهید کرد. برنامه Chrome تاریخ انتشار پایدار و بتا را لیست می کند.
ویدئو: مصاحبه تیم اعتماد و ایمنی
تیم Devrel Extensions Chrome با تیم Trust & Safety که منجر به بررسی در فروشگاه وب Chrome می شود ، نشست تا سوالات شما را بپرسد. فیلم کامل را بررسی کنید
پست وبلاگ: فاز فاز V2 مانیفست آغاز می شود
با شروع از 3 ژوئن در کانال های Chrome Beta ، Dev و Canary ، اگر کاربران هنوز هم از پسوندهای V2 آشکار نصب شده اند ، برخی از آنها هنگام بازدید از صفحه مدیریت پسوند خود - Chrome: // برنامه های افزودنی ، یک پرچم هشدار دهنده را مشاهده می کنند - به آنها اطلاع می دهد که برخی (مانیفست v2) پسوندهایی که نصب کرده اند به زودی دیگر پشتیبانی نمی شوند. در اطلاعیه رسمی بیشتر بخوانید
به روزرسانی به UI پنل جانبی
ما به تازگی تغییراتی در UI پانل جانبی ایجاد کرده ایم ، از جمله اضافه کردن یک نماد پین و حذف نماد پنل جانبی جهانی. اطلاعات بیشتر را در PSA بخوانید و مستندات و نمونه های به روز شده ما را ببینید.
پست وبلاگ: برنامه های افزودنی Chrome در Google I/O 2024
یکی دیگر از Google I/O در پشت ماست و ما تمام به روزرسانی های هیجان انگیز پسوندها را پوشش داده ایم! برای دیدن فیلم کامل به یوتیوب بروید و پست وبلاگ ما را برای برخی از نکات برجسته بخوانید.
بررسی برای تغییر درخواست خالص اعلامیه واجد شرایط
فروشگاه وب Chrome اکنون به شما امکان می دهد تا هنگام استفاده از API درخواست خالص اعلامیه ، از بررسی های واجد شرایط استفاده کنید. در مورد واجد شرایط بودن و نحوه انتخاب در مستندات فروشگاه وب Chrome اطلاعات بیشتری کسب کنید.
DeployPercentage موجود در API فروشگاه وب Chrome
ما اخیراً مستندات API فروشگاه وب Chrome خود را به روز کرده ایم تا اطلاعات مربوط به deployPercentage
را شامل شود ، که به شما امکان می دهد درصدی از استقرار جزئی را اختصاص دهید. در مورد deployPercentage
بیاموزید .
Chrome 126: آزمایشات مبدا در پسوند
Chrome 126 یک قسمت جدید مانیفست را معرفی می کند - trial_tokens
، به شما امکان می دهد تا آزمایشات مبدا و آزمایش های استهلاک را در تمام سطوح پسوند انتخاب کنید. برای اطلاعات بیشتر راهنما را بخوانید.
پست وبلاگ: چه اتفاقی در برنامه های کروم-آوریل 2024 می افتد
ما نسخه جدیدی از آنچه در پسوندهای Chrome اتفاق می افتد منتشر کرده ایم. در این پست بحث شده است که تیم توسعه در چند ماه گذشته روی چه چیزی کار کرده است. این شامل موارد زیر است: بازپرداخت نسخه در فروشگاه وب Chrome ، پشتیبانی بهتر از Auth Firebase و راه اندازی و به روزرسانی های API بیشتر.
بازپرداخت نسخه در داشبورد توسعه دهنده فروشگاه وب Chrome
پسوند خود را به نسخه منتشر شده قبلی در فروشگاه وب Chrome - بدون بررسی اضافی برگردانید! برای اطلاعات بیشتر ، پست و مستندات وبلاگ را بخوانید.
Chrome 124: Advanced Documentscan API
یک API Advanced documentScan
در حال حاضر در Chromeos برای کشف و بازیابی تصاویر از اسکنرهای سند پیوست موجود است.
Chrome 124: پشتیبانی WebGPU در کارگران خدمات
از زمان Chrome 124 ، کارگران سرویس از WebGPU پشتیبانی می کنند. برای شروع سریع ، نمونه پسوند WebGPU را پرداخت کنید.
Chrome 123: API Events از فیلتر توسط بلوک های CIDR پشتیبانی می کند
API Events اکنون از فیلتر کردن توسط بلوک های مسیریابی بین دامنه بی کلاس (CIDR) پشتیبانی می کند. بلوک CIDR مجموعه ای از آدرس های IP است که پیشوند شبکه و همان تعداد بیت ها را به اشتراک می گذارند. پیش از این ، یک توسعه دهنده که نیاز به فیلتر کردن چندین آدرس IP لازم برای پیکربندی یک قانون فیلتر برای هر یک از آدرس های موجود در محدوده بلوک دارد. اکنون هنگامی که یک برنامه افزودنی addListener()
تماس می گیرد ، یک قاعده تصویب شده به این معنی است که کنترل کننده رویداد فقط زمانی فراخوانی می شود که قسمت میزبان یک URL یک آدرس IP باشد و در هر یک از بلوک های CIDR مشخص شده در یک آرایه موجود است.
فروشگاه وب Chrome: به روزرسانی های الزامات طول نام پسوند
در فروشگاه وب Chrome ، اکنون محدوده جهانی 75 کاراکتر برای قسمت "name"
پسوند در مانیفست. Json وجود دارد. پیش از این ، محدودیت برای انگلیسی 45 شخصیت بود و هیچ محدودیتی برای قسمت "name"
در سایر مناطق وجود نداشت.
این در ابتدا در نظر گرفته شده بود تا اختلافات فرهنگی و زبانی را فراهم کند که ممکن است در همان تعداد شخصیت ها اسیر شوند. متأسفانه ، این ویژگی توسط تعداد کمی از توسعه دهندگان برای هرزنامه فروشگاه مورد سوء استفاده قرار گرفت. در نتیجه ما در حال معرفی یک حد جهانی جدید هستیم ، که به 75 کاراکتر افزایش می یابد. این حد تقریباً تمام پسوندهای موجود در فروشگاه را پوشش می دهد ، بنابراین احتمالاً در نتیجه این تغییر توسط شما نیازی نخواهد بود. اگر سعی می کنید پسوند را که نام آن طولانی تر از حداکثر حد است بارگذاری کنید ، آپلود توسط فروشگاه مسدود می شود.
پست وبلاگ: سفر Eyeo به تست سیستم تعلیق کارگر
در این پست توسط تیم موتور توسعه Eyeo ، مشکل کارگران خدمات پسوند را بررسی می کنیم. در مانیفست V2 ، پسوندها در یک صفحه پس زمینه زندگی می کردند که در طول چرخه عمر پسوند بیدار بودند. مانیفست V3 به جای آن از کارگران سرویس استفاده می کند و کارگران خدماتی با طراحی ، با خاموش کردن منابع در صورت لزوم ، منابع را حفظ می کنند. این چالش های آزمایش خاصی را ارائه می دهد. این پست توضیح می دهد که چگونه Eyeo با این چالش ها مقابله کرد .
Chrome 123: هشدارها اکنون هنگام خواب دستگاه اجرا می شوند
هشدارها با استفاده از API chrome.alarms
تنظیم شده اند و وقتی دستگاه به خواب می رود دیگر به تأخیر نمی افتد. هنگامی که دستگاه از خواب بیدار می شود ، مهم نیست که چند هشدار از دست رفته است. به عنوان مثال ، بگویید که زنگ هشدار یک بار در ساعت خاموش می شود و دستگاهی که روی آن قرار دارد از ساعت 12:55 صبح تا 2:05 صبح در خواب است ، سپس فقط ساعت 2:00 AM هشدار باعث می شود رویداد onAlarm
باشد. آن را به همان اندازه نزدیک به 2:00 صبح که می تواند آتش می گیرد ، و بلافاصله وقتی دستگاه در صورت خواب از خواب بیدار می شود.
این تغییر Chrome را با رفتار توافق شده در گروه جامعه برنامه های افزودنی وب به ارمغان می آورد.
پست وبلاگ: تغییر در رفتار bfcache با درگاه های پیام پسوند
حافظه نهان عقب/رو به جلو (BFCACHE) یک بهینه سازی مرورگر است که ناوبری فوری و رو به جلو را امکان پذیر می کند. با شروع از Chrome 123 ، هنگامی که صفحه ای با درگاه پسوند باز در BFCache ذخیره می شود ، کانال پیام بسته است ، به این معنی که هیچ پیامی به آن صفحه ارسال نمی شود. در نتیجه ، اسکریپت های پسوند باید به وقایع چرخه عمر مانند onDisconnect
گوش فرا دهند و هنگام ترمیم صفحه از BFCache ، اتصال جدیدی را تنظیم کنند.
برای کسب اطلاعات بیشتر و کد نمونه ، به تغییر در رفتار BFCache با درگاه های پیام پسوند مراجعه کنید.
Chrome 122: وعده پشتیبانی از API های پسوند ناهمزمان
ما اجرای پشتیبانی وعده برای همه روشهای API پسوند ناهمزمان را به پایان رسانده ایم. این کار برای نوسازی روشهای API با بهبود ارگونومی برخورد با عملیات ناهمزمان انجام شد. تعداد انگشت شماری از روشها (به عنوان مثال ، desktopCapture.chooseDesktopMedia()
) همچنان فقط از تماس های برگشتی پشتیبانی می کنند زیرا سطوح فعلی آنها با وعده ها سازگار نیست. برای سازگاری به عقب ، تماس تلفنی هنوز پشتیبانی می شود. اگر قولی را پیدا کردید که شکست بخورد ، لطفاً یک اشکال ارائه دهید .
راهنمایی جدید برای ارتباطات در زمان واقعی
ما به تازگی راهنماهایی را در مورد گزینه های زمان واقعی در برنامه های افزودنی منتشر کرده ایم. به روزرسانی های زمان واقعی یک مسیر ارتباطی فوری از سرورهای شما را مستقیماً به نصب های پسوند شما ارائه می دهد. علاوه بر این ، ما راهنمایی جدیدی برای استفاده از Chrome.gcm ، Web Push داریم.
راهنمایی و نمونه جدید: خاتمه کارگر خدمات آزمایش
ما به تازگی راهنمایی در مورد چگونگی آزمایش خاتمه کارگر خدمات با Puppeteer منتشر کرده ایم. نمونه همراه این موضوع را در Puppeteer و Selenium نشان می دهد.
نمونه به روز شده برای پیام های بومی
ما به تازگی یک نمونه به روز شده برای پیام های بومی منتشر کرده ایم. این API به شما اجازه می دهد تا با برنامه دیگری شروع و برقراری ارتباط برقرار شود. با تشکر از مشارکت کننده GitHub Shubham-Rasal برای کار در این زمینه.
Chrome 121: ویژگی جدید Lastacced در Tabs.tab
یک ملک جدید به نام lastAccessed
به شیء tabs.Tab
اضافه شد. این ویژگی نشان می دهد که آخرین بار برگه فعال شده است. مقدار برگشتی از زمان EPOCH در میلی ثانیه است.
Chrome 121: کلیدهای پشتیبانی نشده "پس زمینه" اکنون هشدار دهنده صادر می کنند
در تغییر از مانیفست V2 به مانیفست V3 ، کودکان کلید مانیفست "background"
برای قرار دادن جایگزینی اسکریپت های پس زمینه با کارگران خدمات پسوند تغییر یافتند. پیش از این ، اضافه کردن کلیدهای مانیفست V2 "scripts"
، "page"
یا "persistent"
به کلید "background"
یک پسوند مانیفست V3 خطایی را به وجود می آورد. اکنون حضور این کلیدها باعث هشدار می شود.
این کار برای فعال کردن استفاده از یک فایل مانیفست واحد در پسوندها در مرورگرهای مختلف ، در هر پیشنهادی در گروه جامعه انجام می شود.
Chrome 120: حداقل دانه هشدار به 30 ثانیه کاهش می یابد
با شروع در Chrome 120 ، پسوندهای مانیفست V3 می توانند از API chrome.alarms
با تأخیر یا دوره 30 ثانیه استفاده کنند ، نه اینکه به مقادیر 60 ثانیه یا بیشتر نیاز داشته باشند.
پست وبلاگ: از سرگیری انتقال به مانیفست V3
جدول زمانی پشتیبانی V2 مانیفست به روز شده است. برای جزئیات بیشتر به پست وبلاگ ما در نوامبر 2023 مراجعه کنید.
پست وبلاگ: پیشرفت در پشتیبانی از فیلتر محتوا در مانیفست v3
در مورد چگونگی بهبود API DelemarativeneTrequest در پست وبلاگ جدید خود بیاموزید.
پست وبلاگ: چه چیزی در Chrome 120 برای پسوند وجود دارد
Chrome 120 Beta به تازگی منتشر شد. برای خلاصه ای از به روزرسانی های مهم مربوط به توسعه دهندگان پسوند ، پست وبلاگ جدید ما را بخوانید: آنچه در کروم 120 برای پسوندها جدید است . این نسخه همچنین یک نقطه عطف مهم را نشان می دهد زیرا دو مورد نهایی (Userist Criptts ، File Handler در Chromeos) را از لیست شکاف های پلت فرم بحرانی حذف می کند.
PSA: تغییر در رسیدگی به URL های سیاست حفظ حریم خصوصی در داشبورد توسعه دهنده
سیاست های حفظ حریم خصوصی در داشبورد توسعه دهنده اکنون در سطح مورد اضافه می شود. این به شما امکان می دهد یک خط مشی رازداری متفاوت در هر مورد ارائه دهید. درباره این تغییر در PSA ما بیشتر بخوانید.
ویدئو: گپ با مت فریسبی
ما به تازگی یک فیلم جدید در مورد Chrome برای توسعه دهندگان کانال YouTube در حال گپ زدن با متخصص توسعه دهنده Google و نویسنده مت فریزبی منتشر کرده ایم. اینجا را تماشا کنید.
راهنمایی های جدید در مورد پسوندهای آزمایش
ما به تازگی راهنمایی های جدیدی در مورد نحوه نوشتن تست های خودکار برای پسوندها منتشر کرده ایم ، از جمله نحوه نوشتن تست های واحد و راهنمایی های کلی و آموزش در مورد آزمایش پایان به پایان.
پست وبلاگ: آنچه در برنامه های کروم اتفاق می افتد - اکتبر 2023
ما به تازگی نسخه دوم آنچه را که در برنامه های کروم اتفاق می افتد منتشر کرده ایم. در این پست بحث شده است که تیم توسعه در طی چند ماه گذشته از جمله ، از جمله ، پرداختن به مسائل ثبات کارگران خدمات و پیشرفت خوب در بسته شدن همه شکاف های پلت فرم MV3 ، بحث می کند. ما همچنین نسخه های API آینده هیجان انگیز مانند API لیست خواندن و API کاربر را به اشتراک می گذاریم.
افزایش محدودیت قوانین استاتیک در API درخواست خالص اعلامیه
به دنبال بازخورد در گروه جامعه پسوندهای وب ، ما به طور قابل توجهی محدودیت قوانین استاتیک فعال شده را از 10 به 50 افزایش می دهیم. علاوه بر این ، ما تعداد کل قوانین استاتیک مجاز را از 50 تا 100 افزایش می دهیم. این در حال حاضر در قناری موجود است.
راهنمایی های بهبود یافته پیرامون کد میزبان از راه دور
یک الزام برای مانیفست V3 این است که پسوندها ممکن است دیگر از کد میزبان میزبان استفاده نکنند. اگرچه این از ابتدا بخشی از راهنمای مهاجرت ما بوده است ، اما ما فکر می کردیم که ارزش این را دارد که راهنمایی های مربوط به این موضوع را بهبود بخشیم. این صفحه اکنون اطلاعات بیشتری را ارائه می دهد ، توصیف آنچه هنوز در مانیفست V3 امکان پذیر است و اطلاعات بیشتری در مورد استراتژی های ارتقاء ارائه می دهد.
علاوه بر نقض نقض فروشگاه های وب Chrome ، یک افزودنی مرتبط وجود دارد. بخش جدیدی دلایل متداول را توصیف می کند که پسوندها با کد میزبان از راه دور رد می شوند.
Chrome 118: isurlfiltercasesensensitive در حال حاضر پیش فرض دروغین است
با شروع از Chrome 118 ، خاصیت isUrlFilterCaseSensitive
در Chrome.declarativenetrequest API به طور پیش فرض به false
تغییر یافته است. اگر می خواهید رفتار قدیمی را حفظ کنید ، می توانید صریحاً در قوانین isUrlFilterCaseSensitive
به true
از نظر صحیح تنظیم کنید.
این به دنبال بحث و گفتگو در گروه انجمن برنامه های افزودنی وب است. Firefox و Safari قبلاً تغییر مشابهی را انجام داده اند.
مستندات در مورد کوکی ها و API های ذخیره سازی وب
ما یک راهنمای جدید در مورد نحوه کار کوکی ها و API های ذخیره سازی وب در برنامه های افزودنی Chrome منتشر کردیم. این شامل جزئیاتی در مورد تغییرات پارتیشن بندی کوکی و ذخیره سازی در حریم خصوصی ماسهبازی ، یک پروژه در حال انجام برای استهلاک کوکی های شخص ثالث از طریق ایجاد یک سری API های جدید پلت فرم وب و جزئیات مربوط به نحوه کار آنها در برنامه های افزودنی است.
نمونه های پسوند اکنون قابل جستجو است
ما اخیراً صفحه ای ایجاد کرده ایم که به شما امکان می دهد نمونه های پسوند Chrome را جستجو کنید . صفحه جستجو گزینه های مختلفی دارد. یک کادر جستجو به شما امکان می دهد متن را در عناوین نمونه جستجو کنید. می توانید جستجو را با مجوز یا API پسوند محدود کنید. یک فیلتر اضافی به شما امکان می دهد تا جستجو را به نمونه های API یا عملکردی (مورد استفاده) محدود کنید.
این صفحه نمونه جدید توسط یک شرکت کننده در تابستان Google از کد ، Xuezhou Dai ساخته شده است ، که همچنین چندین نمونه جدید را نیز در آن انجام داده است. شما می توانید در مورد تجربیات آنها در تابستان گذشته در پست آنها در وبلاگ ما بخوانید.
مانند گذشته ، نمونه های کد ما هنوز هم در GitHub برای کلونینگ یا چنگال موجود است.
Chrome 118: تغییر در پرونده افتتاحیه: URL های طرح
با شروع در Chrome 118 ، برنامه های افزودنی به تنظیم "اجازه دسترسی به پرونده های پرونده" که از صفحه chrome://extensions
برای باز کردن پرونده: // URL های طرح با استفاده از زبانه ها یا API های ویندوز . می توانید با فراخوانی chrome.extension.isAllowedFileSchemeAccess()
به صورت برنامه ای این دسترسی را بررسی کنید. Firefox قبلاً URL های پرونده را محدود می کند ، و Safari از تغییر پشتیبانی می کند. برای اطلاعات بیشتر ، پست را در گروه Google Google بخوانید.
Chrome 117: حمایت از URL گسترش یافته در پیمایش API پسوند
پیش از این ناوبری از برنامه های API پسوند برای tabs.update()
، tabs.create()
و windows.create()
خطایی برای برخی از URL های کروم ایجاد شده است. علاوه بر این ، فراخوانی tabs.update()
با URL JavaScript ممنوع بود. در سال 117 ، این محافظت در مورد URL های JavaScript به روش tabs.create()
گسترش یافته است و تعدادی از URL های اضافی: // URL ها به لیست URL های ممنوعه اضافه شده اند که در مورد همه روش های قبلاً ذکر شده اعمال می شود.
راهنمایی های بهبود یافته برای API DecmarativenevetRequest
chrome.declarativeNetRequest
API با مشخص کردن قوانین اعلامیه ، درخواست های شبکه را بلوک یا اصلاح می کند. این اجازه می دهد تا پسوندها درخواست های شبکه را بدون رهگیری آنها و مشاهده محتوای آنها اصلاح کنند ، بنابراین حریم خصوصی بیشتری را برای کاربران فراهم می کند. استفاده از آن نیز دشوار است. با توجه به این نکته ، ما راهنمایی ها را به گونه ای بازنویسی کرده ایم که فکر می کنیم تصویری واضح تر از نحوه اجرای قوانین اعلامی را نشان می دهد. بخش جدید را در لینک بالا بخوانید.
با استفاده از حساب Google Analytics خود با فروشگاه وب Chrome
فروشگاه وب Chrome با Google Analytics ادغام می کند ، که به شما امکان می دهد علاوه بر نمای ارائه شده در داشبورد توسعه دهنده ، تجزیه و تحلیل را برای لیست فروشگاه های وب Chrome خود مشاهده کنید. برای اطلاعات بیشتر ، با استفاده از حساب Google Analytics خود با فروشگاه وب Chrome بخوانید.
Chrome 115: DevTools به طور پیش فرض بر روی اسکریپت های محتوا قدم می گذارد
اسکریپت های محتوای تزریق شده اکنون به طور پیش فرض در لیست DevTools قرار دارند. این بر نقاط شکست تأثیر نمی گذارد ، اما این بدان معنی است که اسکریپت های محتوا در هنگام اشکال زدایی قدم گذاشته می شوند و استثنائات این اسکریپت ها نادیده گرفته می شوند. هنگامی که یک اسکریپت محتوا در برگه منابع باز است ، اگر این کار روشن باشد ، یک بنر به شما هشدار می دهد و گزینه ای را برای حذف اسکریپت محتوای شما از لیست نادیده گرفتن فراهم می کند. برای خاموش کردن این رفتار ، DevTools را باز کنید ، به تنظیمات بروید و لیست را نادیده بگیرید . برای کسب اطلاعات بیشتر ، ببینید چه چیزی در DevTools جدید است .
Chrome 116 Beta: بیش از آنچه در اینجا می توانیم جای بگیریم
Chrome 116 یک نسخه بزرگ برای پسوندها است. اکنون می توانید پانل های جانبی را به صورت برنامه ای باز کنید. یک روش جدید به شما امکان می دهد یاد بگیرید که آیا یک سند فعال در صفحه نمایش وجود دارد یا خیر. کارگران سرویس بهبود سرور را کسب کردند. در سال 116 پیشرفت های کافی وجود دارد که ما یک پست وبلاگ برای پوشش آنها نوشتیم. Chrome 116 از 19 ژوئیه در بتا است.
پست وبلاگ: آنچه در برنامه های افزودنی Chrome اتفاق می افتد
ما به تازگی یک مرور کلی از تغییرات و پیشرفت های امسال در پسوندها منتشر کرده ایم. در این پست از ویژگی های جدید جدید سال ، از جمله API پنل جانبی ، پیشرفت های کارگران سرویس و اسناد خارج از صفحه بحث می کند. همچنین به آنچه در این سه ماه کار می کنیم ، نگاهی بیندازید. در این مقاله بسیار بیشتر ، با پیوندها به همه.
راهنمایی و نمونه جدید: یاد بگیرید که چگونه از Google Analytics 4 در برنامه افزودنی Chrome خود استفاده کنید
ما راهنمای جدید Google Analytics و Geolocation را منتشر کردیم:
- یک نسخه به روز شده از راهنمای Google Analytics ما توضیح می دهد که چگونه می توانید از Google Analytics 4 در برنامه افزودنی Chrome خود استفاده کنید. ما همچنین یک نمونه Google Analytics 4 را به مخزن نمونه GitHub خود اضافه کرده ایم. برای کد مربوط به Google Analytics
google-analytics.js
بررسی کنید. - یک راهنمای جدید جغرافیایی و سه نمونه که نحوه دسترسی به جغرافیایی در کارگران سرویس ، اسکریپت های محتوا ، پنجره ها و پانل های جانبی را نشان می دهد.
Chrome 115: دلایل مختلفی را در chrome.offscreen.createDocument () مشخص کنید
اکنون می توانید در هنگام تماس با chrome.offscreen.createDocument()
Enums reason
مختلفی را مشخص کنید. از این استفاده کنید که از یک سند خارج از صفحه برای اهداف مختلف استفاده شود. این مرورگر از دلایل تهیه شده برای تعیین طول عمر سند خارج از صفحه استفاده می کند.
ابزار جدید: ابزار تست به روزرسانی پسوند
ما به تازگی ابزار تست به روزرسانی پسوند را منتشر کرده ایم ، یک سرور بروزرسانی محلی محلی که می تواند برای آزمایش به روزرسانی در برنامه های افزودنی Chrome در طول توسعه محلی ، از جمله کمک های مجوز استفاده شود. این ابزار جریان به روزرسانی کاربر را نشان می دهد ، از جمله غیرفعال نگه داشتن پسوند تا زمانی که کاربر مجوزهای تازه درخواست شده را اعطا کند. این ابزار به ویژه برای شبیه سازی تغییرات مجوز درخواست شده هنگام به روزرسانی پسوند از مانیفست V2 به مانیفست V3 مفید است.
Chrome 114: API پنل جانبی جدید
معرفی API پانل جانبی جدید ، یک سطح همراه که به کاربران امکان می دهد در کنار محتوای مورد نظر خود به ابزارهایی دسترسی پیدا کنند. برای کسب اطلاعات بیشتر ، به مرجع API پنل جانبی مراجعه کنید. علاوه بر این ، ما بسیاری از نمونه های پانل جانبی را به مخزن نمونه GitHub خود اضافه کرده ایم. ما همچنین در مورد پانل های جانبی در پست وبلاگ جدید که یک تجربه کاربر برتر را با API پانل جدید جدید طراحی می کنیم ، به اشتراک می گذاریم. سیاست و بهترین روشهای ما و بهترین شیوه های ما نیز برای ارائه راهنمایی های بیشتر در مورد ایجاد پسوندهای پانل جانبی با کیفیت بالا بررسی شده است.
بازخورد شما در ساخت این API مهم است. لطفاً افکار و درخواست های خود را در گروه های کروم به اشتراک بگذارید. برای به روزرسانی های جدید با ما در ارتباط باشید زیرا ما همچنان به تقویت API پانل جانبی می پردازیم.
نمونه های جدید: WASM در پسوند
دو نمونه جدید در دسترس است که نشان می دهد نحوه استفاده از WASM در یک پسوند:
- استفاده از WASM در مانیفست V3 روش کلی برای شامل ماژول WASM را نشان می دهد.
- استفاده از WASM به عنوان یک ماژول در مانیفست V3 نحوه استفاده از آن در یک ماژول را نشان می دهد.
با تشکر ویژه از مشارکت کننده GitHub DAIDR برای این نمونه ها.
راهنمایی مهاجرت مانیفست V3 به روز شده
ما بخش موضوعات شناخته شده راهنمایی مهاجرت مانیفست V3 خود را با لیست به روز شده از شکافهای پلت فرم پسوند که قصد داریم قبل از اعلام یک جدول زمانی جدید مانیفست V2 را ببندیم ، به روز کرده ایم.
ضبط صدا و فیلم با مانیفست v3
ما به تازگی مقاله جدیدی به نام ضبط صدا و ضبط صفحه را منتشر کرده ایم که ضبط صدا یا فیلم را از یک برگه ، پنجره یا صفحه نمایش در مانیفست v3 پوشش می دهد. در این مقاله رویکردهای متعدد برای ضبط شامل API chrome.tabCapture
و عملکرد getDisplayMedia()
شرح داده شده است.
Chrome 114: افزایش ذخیره سازی. سهمیه محلی
ما سهمیه برای storage.local
را به حدود 10 مگابایت افزایش داده ایم. این مورد در گروه انجمن برنامه های افزودنی وب توافق شد. این امر storage.local
به همراه می آورد. در راستای storage.session
که در Chrome 112 تغییر یافته است.
آموزش و کمک جدید کارگر خدمات پسوند
کارگران خدمات بخشی جدایی ناپذیر از پسوندهای کروم هستند. ما به تازگی یک آموزش را منتشر کردیم که اصول اولیه ثبت نام ، اشکال زدایی و تعامل با کارگران خدمات را توضیح می دهد. ما همچنین یک راهنمای جدید کارگر سرویس را اضافه کرده ایم که مفاهیم مهم را با جزئیات بیشتر توضیح می دهد. ما در ماه های آینده این بخش را گسترش خواهیم داد.
نکات عیب یابی بیشتر برای نقض فروشگاه های وب
برای کمک به انتشار فروشگاه وب Chrome ، ما در دو زمینه راهنمایی جدیدی اضافه کردیم. راهنمایی برای حداقل مراکز عملکردی پیرامون ارائه مزایا و غنی سازی تجربه مرور خود. راهنمایی برای تبلیغات وابسته در مورد آگاهی از کاربران از پسوندها با استفاده از پیوندهای وابسته یا کدهای برای کسب درآمد است و با نیاز به اقدام کاربر قبل از ورود به آنها ، مقداری کنترل به آنها می دهد.
دستورالعمل های جدید برای مبدل آشکار پسوند
ما Readme را برای مبدل مانیفست پسوند بازنویسی کرده ایم تا بتوانیم بعد از اجرای ابزار ، کارهایی را که باید انجام دهید آسان تر کنید. مبدل به مهاجرت پسوندهای ساخته شده در مانیفست V2 کمک می کند تا V3 آشکار شود. README جدید توصیف می کند که ابزار با استفاده از کلماتی که با آنها در لیست چک راهنمای مهاجرت مطابقت دارد ، انجام می دهد. مبدل همه کارها را انجام نمی دهد ، اما بسیاری از وظایف را که نیازی به تماس قضاوت انسانی ندارند ، از بین می برد.
Chrome 113: دلایل جدید اسناد خارج از صفحه
ما دو نوع دلیل جدید را به API اسناد خارج از صفحه اضافه کرده ایم. برای دسترسی به API LocalStorage LocalStorage از LOCAL_STORAGE
استفاده کنید. هنگام ایجاد کارگران وب از WORKER
استفاده کنید.
Google Analytics 4 اکنون در داشبورد توسعه دهنده
داشبورد توسعه دهنده فروشگاه وب Chrome اکنون از Google Analytics 4 (GA4) پشتیبانی می کند. ما راه اندازی Google Analytics را ساده کرده ایم و مدیریت دسترسی را برای ناشران گروه ساده تر کرده ایم. اگر قبلاً از Google Universal Analytics برای ردیابی فعالیت لیست فروشگاه خود استفاده کرده اید ، برای اطمینان از ادامه دریافت داده در مورد لیست فروشگاه خود ، باید تا 1 ژوئیه 2023 اقدام کنید. برای اطلاعات بیشتر ، به پست Google Post on Chromium Extensions Google مراجعه کنید.
API رسیدگی به پرونده به Chromeos می آید
API کنترل کننده فایل برای آزمایش در Chromeos در قناری برای نسخه های 112 و 113 در دسترس است. این امکان را می دهد تا در پرونده های باز Chromeos با انواع مشخص شده MIME و پسوندهای فایل ، پسوندها شود. برای پیاده سازی پرونده ، مجموعه ای از قوانین را به manifest.json
. json اضافه کنید. این ویژگی مانند برنامه های وب مترقی کار می کند. برای اطلاعات بیشتر ، به مقاله دیگر در این سایت مراجعه کنید.
برای فعال کردن رسیدگی به پرونده:
- با شروع 112 ، Chrome را با استفاده از پرچم-
--enable-features=ExtensionWebFileHandlers
، شروع از 112 - با شروع از سال 113 ،
os://flags/#extension-web-file-handlers
در داخل omnibox Chrome قرار دهید و از منوی کشویی "Enabled" را انتخاب کنید.
امیدواریم این ویژگی را در اواخر ماه ژوئن در Chrome 115 راه اندازی کنیم. برای به روزرسانی این فضا را تماشا کنید.
نمونه های جدید: اعلامیه های پویا و تزریق برنامه ای
ما یک نمونه جدید برای API chrome.scripting
ساخته ایم. این اعلامیه های پویا را نشان می دهد ، جایی که یک اسکریپت محتوا در زمان اجرا ثبت شده است و تزریق برنامه ای ، جایی که یک اسکریپت در یک برگه اجرا می شود که از قبل باز است.
نمونه های جدید: درخواست خالص اعلامیه استفاده از موارد استفاده
سه نمونه جدید در دسترس است که نشان دهنده API درخواست خالص اعلامیه است . هر یک از اجرای یک مورد استفاده واحد را نشان می دهد. اولین نحوه مسدود کردن کوکی ها را نشان می دهد. دو باقیمانده نشانگر URL های مسدود کننده و هدایت مجدد هستند.
Chrome 112: افزایش سهمیه ذخیره سازی
از Chrome 112 ، سهمیه برای storage.session
. این مورد در گروه انجمن برنامه های افزودنی وب توافق شد: https://github.com/w3c/webextensions/issues/350
Chrome 109: اسناد خارج از صفحه
اسناد Offscreen اکنون در پسوندهای مانیفست V3 موجود است. اینها با ارائه پشتیبانی از ویژگی های مربوط به DOM و API ، در انتقال از صفحات پس زمینه به کارگران خدمات گسترش می یابد. برای اطلاعات بیشتر ، پست وبلاگ را بخوانید .
Chrome 110: یک برنامه افزودنی است
The chrome.action.isEnabled()
method programmatically checks whether an extension has been enabled for a specific tab. This saves you from maintaining the enabled state of your tabs. This new method takes a tab ID and a reference to a callback and returns a boolean. It has one limitation: tabs created using chrome.declarativeContent
always return false.
(The chrome.action
namespace recently got new methods for controlling the appearance of extension badges. For more information, see Setting badge colors .)
Chrome 110: Change in service worker idle timeout
Previously, an extension service worker would frequently shut down at the five minute mark. We've changed this behavior to more closely resemble service worker lifetime's on the web. An extension service worker will be shut down after either thirty seconds of inactivity or if a single activity takes longer than 5 minutes to process. For more information, see Longer extension service worker lifetimes .
Post: Pausing Manifest V2 phase-out
The Manifest V2 deprecation timelines are under review and the experiments scheduled for early 2023 are being postponed. For more information, read the update in the chromium-extensions Google Group.
Chrome 110: Setting badge colors
The chrome.action
namespace has two new methods to give you more control over the appearance extension badges. The setBadgeTextColor()
and getBadgeTextColor()
methods allow an extension to change and query its toolbar icon's badge text color. When used with setBadgeBackgroundColor
and getBadgeBackgroundColor
these new methods let you enforce design and brand consistency.
Blog post: More details on the transition to Manifest V3
We have clarified the Manifest V2 deprecation timeline . The Manifest V2 support timeline has also been updated to reflect this information.
Docs update: Known issues when migrating to Manifest V3
We've put together a list of major features currently in development and open bugs . Our goal with this page is to help developers better understand the current state of the platform and what features they can target as they prepare for the future.
Chrome Web Store: "large promo tile" image upload removed
Chrome Web Store has removed the "large promo tile" upload UI from the item Store Listing tab in the developer dashboard. This change does not affect the end user experience as these images were not used in the consumer UI. See this chromium-extensions post for additional details.
Chrome 106: Allow pages on file:// urls to access web accessible resources
Opaque origins such as sandboxed iframes and dynamic import should also be able to access web accessible resources, according to crbug.com/1219825#c11 .
Chrome 106: Fixed bug allowing incorrect final arguments on some async API functions
Previously, Manifest V3 calling async APIs could provide an invalid final argument and Chrome would not error. With this fix Chrome will now correctly error and report that there was no matching signature. Developers are encouraged to check their extensions on Canary for any errors in case they accidentally using incorrect signature for an API call that will be broken by this bug fix.
Blog post: Chrome Web Store analytics revamp
Chrome Web Store has a revamped item analytics experience for the Chrome Web Store Developer Dashboard. The new dashboard is easier to understand at a glance and consolidates the most useful information up front. Read the blog post for more information.
Chrome 105: promises for the Identity API
Functions on the Identity API now support promise based calls. This comes with a slight change to the surface for identity.getAuthToken()
, where the asynchronous return set to a promise based call will have "token" and "grantedScopes" as parameters on a single object (as opposed to the callback version receiving them as separate arguments to the callback).
Chrome 104: New favicons API for Manifest V3
Manifest V3 extensions can now access favicons using a new URL pattern: chrome-extension://<id>/_favicon/
, wherechrome://favicons
API. See the Favicon API docs for more information.
Docs update: Developer trader/non-trader disclosure
Added the trader/non-trader developer identification that informs developers to accurately self-declare their trader/non-trader status.
Chrome 103: Wasm in Manifest V3 requires wasm-unsafe-eval
Chrome no longer grants extensions script-src: wasm-unsafe-eval
by default. Extensions that use WebAssembly must now explicitly add this directive and value to extension_pages
in their content_security_policy
declarations.
Chrome 103: Changing MV3 shortcuts take effect immediately
When changing a Manifest V3 extension's keyboard shortcut on chrome://extensions/shortcuts
, updates are now applied immediately. Previously the extension would have to be reloaded before the change would take effect.
Chrome 102: Dynamic content scripts in main world
Dynamically registered content scripts can now specify the world that assets will be injected into. See scripting.registerContentScripts()
for details.
Chrome 102: New manifest field "optional_host_permissions"
Manifest V3 extensions can now specify the optional_host_permissions
key in manifest.json. This allows Manifest V3 extensions to declare optional match patterns for hosts just as Manifest V2 extensions could using the optional_permissions
key.
Chrome 102: injectImmediately property in scripting.executeScript()
chrome.scripting.executeScript()
now accepts an optional injectImmediately
property on it's injection
argument. If present and set to true, the script will inject into the target as soon as possible, rather than waiting for document_idle
. Note that this is not a guarantee the script will inject before the page is loaded since the page continues to load while the API call is being made.
Chrome 102: Omnibox API support in Manifest V3
The Omnibox API can now be used in service worker-based extensions. Previously, some of this API's methods would throw on invocation due to internal dependencies on DOM capabilities.
Chrome 102: wasm-unsafe-eval allowed in Manifest V3 CSP
Manifest V3 extensions can now include wasm-unsafe-eval
in their content_security_policy
declarations. This change allows Manifest V3 extensions to use WebAssembly.
Chrome 102: New storage.session API
Manifest V3 extensions can now use in memory storage storage.session .
Docs update: Chrome Web Store item discovery
Discovery on Chrome Web Store gives an overview of how users find items on the Chrome Web Store and how our editors select items to feature.
Chrome 101: Improved declarativeNetRequest domain conditions
declarativeNetRequest rule conditions have been updated to allow extensions to better target requests based on the request's "request" and "initiator" domains. The relevant condition properties are initiatorDomains
, excludedInitiatorDomains
, requestDomains
, and excludedRequestDomains
. See also this chromium-extensions thread .
Chrome 100: Resolved issue with scripting.executeScript() on newly created tabs
Fixed a longstanding issue where calling scripting.executeScript()
on a newly created tab or window could fail.
Chrome 100: native messaging port keeps service worker alive
Connecting to a native messaging host using chrome.runtime.connectNative()
in an extension's service worker should keep the service worker alive as long as the port is open.
Chrome 100: omnibox.setDefaultSuggestion() supports promises and callbacks
The omnibox.setDefaultSuggestion()
method now returns a promise or accepts a callback to allow developers to determine when the suggestion has been properly set.
Chrome 100: i18n.getMessage() support in extension service workers
The chrome.i18n.getMessage()
API is now supported in extension service worker contexts.
Chrome 99: match_origin_as_fallback in Canary
Content scripts can now specify the match_origin_as_fallback
key to inject into frames that are related to a matching frame, including frames with about:
, data:
, blob:
, and filesystem:
URLs. See the content scripts documentation for details.
Chrome 99: extension service worker support for file: schemes in Canary
Service worker-based Manifest V2 and Manifest V3 extensions can now use the Fetch API to request file:
-scheme URLs. Access to file:
-scheme URLs still requires that the user enable 'Allow access to File URLs' for the extension in the chrome://extensions
page.
Chrome 99: promise support for messaging APIs in Canary
Promise support has been added to tabs.sendMessage
, runtime.sendMessage
, and runtime.sendNativeMessage
for extensions built for Manifest V3.
Docs update: Chrome Web Store review documentation
Added a new reference page that provides an overview of the Chrome Web Store review process and explains how developer program policy enforcement is handled.
Chrome 98: scripting.executeScript() and scripting.insertCSS() accept multiple files
The Scripting API's executeScript()
and insertCSS()
methods now accept multiple files. Previously these methods required an array with a single file entry.
Docs update: review violation troubleshooting updates
The Troubleshooting Chrome Web Store violations page has been updated to provide developers with more detailed guidance for common reasons for rejection.
Chrome 96: expanded promise support to 27 more APIs
This release contains significantly more promise updates than any previous release. Updates include both general and ChromeOS-specific extensions APIs. Expand the following sections for details.
Extensions APIs
A number of APIs now support promises in Manifest V3.
-
chrome.browsingData
-
chrome.commands
-
chrome.contentSettings
-
chrome.debugger
-
chrome.downloads
-
chrome.enterprise.hardwarePlatform
-
chrome.fontSettings
-
chrome.history
-
chrome.instanceID
-
chrome.permissions
-
chrome.processes
-
chrome.search
-
chrome.sessions
-
chrome.topSites
Also, APIs that use the ChromeSetting
prototype now also support promises. The following APIs are affected by this change.
ChromeOS APIs
-
chrome.certificateProvider
-
chrome.documentScan
-
chrome.enterprise.deviceAttributes
-
chrome.enterprise.networkingAttributes
-
chrome.fileBrowserHandler
-
chrome.fileSystemProvider
-
chrome.loginState
-
chrome.printingMetrics
-
chrome.wallpaper
Chrome 96: dynamic content scripts
The chrome.scripting
API now supports registering , updating , unregistering , and getting a list of content scripts at runtime. Previously, content scripts could only be statically declared in an extension's manifest.json or programmatically injected at runtime with chrome.scripting.executeScript()
.
Docs update: Manifest V2 support timeline
The Manifest V2 to V3 transition timeline was announced in this blog post and a more detailed timeline page was published.
Chrome 96: declarativeNetRequestWithHostAccess permission
The new declarativeNetRequestWithHostAccess
permission allows extensions to use the chrome.declarativeNetRequest
API on sites the extension has host permissions for. This also enables existing Manifest V2 extensions that use webRequest
, webRequestBlocking
, and site-specific host permission to migrate to the chrome.declarativeNetRequest
API without requiring the user to approve new permissions.
Chrome 95: inject scripts directly into pages
The chrome.scripting
API's executeScript()
method can now inject scripts directly into a page's main world. Previously, extensions could only inject directly into the extension's isolated world. For more information on isolated worlds, see the documentation on content scripts .
Chrome 95: promise support for Storage API
Methods on the Manifest V3 version of the chrome.storage
API now return promises.
Policy update: two step verification enforcement
The policy update blog post published on June 29, 2021 has been updated to correct the two step verification deployment timeline.
Chrome 94: declarative net request static ruleset changes
The chrome.declarativeNetRequest
now supports specifying up to 50 static rulesets ( MAX_NUMBER_OF_STATIC_RULESETS ) and enabling up to 10 rulesets ( MAX_NUMBER_OF_ENABLED_STATIC_RULESETS ) at a time.
Chrome 93: cross origin isolation support
Both Manifest V2 and Manifest V3 extensions can now opt into cross origin isolation . This feature limits which cross-origin resources can load an extension's pages and enables the use of low level web platform features like SharedArrayBuffer
. Opt in will be required starting in Chrome 95.
Policy update: developer program policies updated
The Chrome Web Store Developer Program Policies have been updated with clarifications to the deceptive installation tactics, spam, and repetitive content policies. This update also includes a new two step verification requirement to publish on the Chrome Web Store. Read the blog post for more information.
Blog post: extension actions in Manifest V3
Chrome extensions had chrome.browserAction
and chrome.pageActions
APIs for years, but Manifest V3 replaced both with a generic chrome.actions
API. This post explores the history of these APIs and what has changed in Manifest V3. Read the post .
Blog post: introducing chrome.scripting
The chrome.scripting
API is a new Manifest V3 API focused on, well, scripting. In this post we dig into the motivations for this change and take a closer look at it's new capabilities. Read the post .
Chrome 92: module service worker support
Chrome now supports JavaScript modules in service workers. To specify a module a module in your manifest:
"background": {
"service_worker": "script.js",
"type": "module"
}
This loads the worker script as an ES module, which lets you use the import
keyword in the worker's script to import other modules.
Chrome 91: chrome.action.getUserSettings()
The new chrome.action.getUserSettings()
method allows extensions to determine if the user has pinned the extension to the main toolbar.
Chrome 90: chrome.scripting.removeCSS()
The new chrome.scripting.removeCSS()
method allows extensions to remove CSS that was previously inserted via chrome.scripting.insertCSS()
. It replaces chrome.tabs.removeCSS()
.
Chrome 90: returning promises from scripting.executeScript()
chrome.scripting.executeScript()
now supports returning promises. If the resulting value of the script execution is a promise, Chrome will wait for the promise to settle and return its resulting value.
Chrome 90: chrome.scripting.executeScript() results include frameId
Results returned from chrome.scripting.executeScript()
now include the frameId . The frameId
property indicates the frame that the result is from, letting extensions easily associate results with the individual frames when injecting in multiple frames.
Chrome 89: new API for managing tab groups
The new chrome.tabGroups
API and new capabilities in chrome.tabs
let extensions read and manipulate tab groups. Requires Manifest V3.
Chrome 89: customizable permissions for web accessible resources
Web accessible resources definitions in Manifest V3 have changed to let extensions restrict resource access based on the requester's origin or extension ID.
Blog post: Extension Manifest Converter
The Chrome Extensions team has open sourced "Extension Manifest Converter", a Python tool that automates some of the mechanical aspects of converting extensions to Manifest V3. See the announcement blog post and get it from GitHub .
Chrome 88: Manifest V3 general availability
Manifest V3 is a major update to the extensions platform; see Overview of Manifest V3 for a summary of new and changed features. Extensions may continue to use Manifest V2 for now, but this will be phased out in the near future. We strongly recommend that you use Manifest V3 for any new extensions, and begin migrating existing extensions to Manifest V3 as soon as possible.