آنچه در افزونه های کروم جدید است

این صفحه را اغلب بررسی کنید تا در مورد تغییرات در برنامه‌های افزودنی Chrome، اسناد برنامه‌های افزودنی، یا خط‌مشی‌های مرتبط یا سایر تغییرات مطلع شوید. سایر اعلان‌های پست شده در Google Extensions Group را خواهید دید. برنامه Chrome تاریخ انتشار پایدار و بتا را فهرست می کند.

Chrome 132: ویژگی ثابت جدید در Tabs API

با شروع در Chrome 132، ویژگی frozen در Tabs API نشان می دهد که آیا یک برگه توسط مرورگر ثابت شده است یا خیر. پیام‌هایی که به برگه‌های ثابت ارسال می‌شوند در صف قرار می‌گیرند و وقتی برگه مسدود شود، مدیریت می‌شوند.

Prompt API در برنامه‌های افزودنی Chrome

ارسال شده در

Prompt API for Extensions اکنون به صورت آزمایشی اصلی در دسترس است، بنابراین می‌توانید افزونه‌های Chrome را بسازید که از Gemini Nano، کارآمدترین مدل زبان ما، در مرورگر استفاده می‌کند.

به نسخه آزمایشی اولیه Prompt API که در Chrome 131 تا 136 اجرا می شود، بپیوندید و بازخورد خود را به اشتراک بگذارید. ورودی شما می‌تواند مستقیماً بر نحوه ساخت و اجرای نسخه‌های آینده این API و همه APIهای AI داخلی تأثیر بگذارد.

پست وبلاگ: آنچه در برنامه های افزودنی Chrome اتفاق می افتد، اکتبر 2024

ارسال شده در

زمان آن فرا رسیده است که آنچه در افزونه‌های کروم اتفاق می‌افتد را بررسی کنیم: به‌روزرسانی‌های هیجان‌انگیزی در مورد یکپارچه‌سازی هوش مصنوعی، APIهای جدید، رویدادها و ویدیوها داریم. همه چیز را در مورد آنچه در Chrome Extensions نسخه اکتبر اتفاق می افتد بخوانید!

به چالش هوش مصنوعی داخلی بپیوندید

ارسال شده در

Chrome چالش هوش مصنوعی داخلی را راه‌اندازی کرده است: از شما دعوت می‌شود تا برنامه‌های وب نوآورانه و برنامه‌های افزودنی Chrome را با استفاده از مدل‌های هوش مصنوعی و APIهای Chrome یکپارچه ایجاد کنید و شانس برنده شدن جوایزی به مبلغ 65000 دلار را داشته باشید.

در وب سایت چالش هوش مصنوعی داخلی ثبت نام کنید و اطلاعات بیشتری دریافت کنید. ما نمی توانیم صبر کنیم تا ببینیم وقتی وب را با هوش مصنوعی القا می کنید، چه چیزی ایجاد می کنید!

Chrome 130: action.onUserSettingsChanged

ارسال شده در

از Chrome 130، رویداد action.onUserSettingsChanged در دسترس است. این به دنبال پیشنهادی در گروه انجمن WebExtensions است. با تشکر از مایکروسافت برای کمک به Chromium.

Chrome 130: StorageArea.getKeys()

ارسال شده در

با شروع در Chrome 130، متد getKeys() در رابط StorageArea که توسط chrome.storage API استفاده می‌شود در دسترس است. این به دنبال پیشنهادی در گروه انجمن WebExtensions است.

Chrome 128: تطبیق سرصفحه پاسخ در درخواست خالص اعلامی

ارسال شده در

از Chrome 128، ما در حال اضافه کردن پشتیبانی برای تطبیق هدر پاسخ در Declarative Net Request API هستیم. این یک درخواست رایج بود، به ویژه برای تطبیق هدر Content-Type، و ما یک API مناسب را همراه با WebExtensions Community Group طراحی کردیم .

ما مرجع API خود را به‌روزرسانی کرده‌ایم تا فیلدهای responseHeaders و excludedResponseHeaders را شامل شود. شما می توانید از آنها برای بررسی وجود و مقدار یک هدر استفاده کنید.

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

ویدئو: اسکریپت های محتوا چیست؟

ارسال شده در

درباره اسکریپت های محتوا در برنامه های افزودنی Chrome، از جمله نحوه ثبت CSS و جاوا اسکریپت برای اجرا در یک صفحه خاص، بیاموزید. ویدیوی کامل را ببینید .

به روز رسانی های مهم خط مشی

ارسال شده در

تیم فروشگاه وب Chrome مجموعه‌ای از به‌روزرسانی‌ها را در صفحه خط‌مشی‌های برنامه برنامه‌نویس منتشر کرده است که برای تشویق توسعه محصولات با کیفیت بالا، جلوگیری از رفتار فریبکارانه، و اطمینان از رضایت آگاهانه کاربر طراحی شده‌اند. Rebecca Soares، مدیر خط‌مشی فروشگاه وب Chrome، همه به‌روزرسانی‌های Chrome Extensions را خلاصه کرده است: پست وبلاگ به‌روزرسانی‌های مهم خط‌مشی .

پست وبلاگ: آنچه در برنامه های افزودنی Chrome اتفاق می افتد، ژوئیه 2024

ارسال شده در

در سه ماه گذشته، ما چندین به‌روزرسانی مهم و ویژگی‌های جدید، از جمله شروع مرحله حذف Manifest V2 را ارائه کرده‌ایم. در نسخه ژوئیه برنامه های افزودنی Chrome چه اتفاقی می افتد سرعت بگیرید!

ویدئو: کد میزبان از راه دور چیست؟

ارسال شده در

پاتریک از تیم برنامه‌های افزودنی Chrome مفهوم کد میزبانی از راه دور (RHC) را در برنامه‌های افزودنی کروم توضیح می‌دهد. بیاموزید که چرا RHC دیگر مجاز نیست، چگونه آن را شناسایی کنید، و اگر برنامه افزودنی شما نیاز به به روز رسانی داشته باشد، چه کاری انجام دهید. ویدیوی کامل را ببینید .

Chrome 127: New action.openPopup API

ارسال شده در

از Chrome 127، API action.openPopup برای همه برنامه‌های افزودنی در دسترس است. قبلاً فقط در قناری یا برنامه های افزودنی نصب شده توسط یک خط مشی در دسترس بود.

ویدئو: مصاحبه تیم اعتماد و ایمنی

ارسال شده در

تیم توسعه دهنده 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، برنامه‌های افزودنی در یک صفحه پس‌زمینه زندگی می‌کردند که در طول چرخه عمر برنامه افزودنی بیدار بودند. Manifest 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 و موقعیت جغرافیایی را منتشر کردیم:

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 را در یک برنامه افزودنی نشان می دهد:

تشکر ویژه از مشارکت کننده 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/ ، که در آن شناسه داخلی شما است. این جایگزین کروم مانیفست V2 chrome://favicons API است. برای اطلاعات بیشتر به اسناد API Favicon مراجعه کنید.

به روزرسانی Docs: Trader Developer/افشای غیر تدار

ارسال شده در

شناسایی توسعه دهنده معامله گر/غیر تدار که به توسعه دهندگان اطلاع می دهد تا وضعیت معامله گر/غیر تدار خود را به طور دقیق خود ارائه دهند.

Chrome 103: WASM در مانیفست V3 به WASM-UNSAFE-EVAL نیاز دارد

ارسال شده در

Chrome دیگر پسوندهای script-src: wasm-unsafe-eval . پسوندهایی که از WebAssembly استفاده می کنند ، اکنون باید صریحاً این دستورالعمل و مقدار را به extension_pages در اعلامیه های content_security_policy خود اضافه کنند.

Chrome 103: تغییر میانبرهای MV3 بلافاصله عملی می شوند

ارسال شده در

هنگام تغییر میانبر صفحه کلید V3 Extension در chrome://extensions/shortcuts ، به روزرسانی ها بلافاصله اعمال می شوند. پیش از این قبل از شروع تغییر ، باید بارگیری مجدد شود.

Chrome 102: اسکریپت های محتوای پویا در دنیای اصلی

ارسال شده در

اسکریپت های محتوای دینامیکی ثبت شده اکنون می توانند دنیایی را که دارایی ها به آن تزریق می شوند ، مشخص کنند. برای جزئیات بیشتر به scripting.registerContentScripts() مراجعه کنید.

Chrome 102: زمینه مانیفست جدید "گزینه "_HOST_PERMISSIONS"

ارسال شده در

پسوندهای مانیفست V3 هم اکنون می توانند کلید optional_host_permissions را در مانیفست. json مشخص کنند. این اجازه می دهد تا پسوندهای مانیفست V3 را اعلام کنند که الگوهای تطابق اختیاری را برای میزبان ها اعلام کنند ، همانطور که پسوندهای V2 مانیفست می توانند با استفاده از کلید optional_permissions .

Chrome 102: Onjectimmedimed Property in Scripting.executescript ()

ارسال شده در

chrome.scripting.executeScript() اکنون یک خاصیت injectImmediately اختیاری را در استدلال injection خود می پذیرد. در صورت وجود و تنظیم صحیح ، اسکریپت به جای انتظار برای document_idle ، در اسرع وقت به هدف تزریق می شود. توجه داشته باشید که این تضمینی نیست که اسکریپت قبل از بارگیری صفحه از آنجا که صفحه همچنان در هنگام تماس API انجام می شود ، بارگیری می کند.

Chrome 102: پشتیبانی API Omnibox در مانیفست v3

ارسال شده در

API Omnibox اکنون می تواند در پسوندهای مبتنی بر کارگر سرویس استفاده شود. پیش از این ، برخی از این روشهای API به دلیل وابستگی داخلی به قابلیت های DOM ، فراخوانی را به وجود می آورد.

Chrome 102: WASM-UNSAFE-EVAL مجاز در مانیفست V3 CSP

ارسال شده در

پسوندهای مانیفست V3 اکنون می توانند شامل wasm-unsafe-eval در اعلامیه های content_security_policy باشند. این تغییر اجازه می دهد تا پسوندهای مانیفست V3 از WebAssembly استفاده کنند.

Chrome 102: New Storage.Session API

ارسال شده در

پسوندهای مانیفست V3 اکنون می توانند در ذخیره سازی حافظه استفاده کنند.

به روزرسانی Docs: کشف کالای فروشگاه وب Chrome

ارسال شده در

Discovery در فروشگاه وب Chrome مروری بر نحوه یافتن کاربران در فروشگاه وب Chrome و چگونگی انتخاب ویرایشگران ما موارد را ارائه می دهد.

Chrome 101: شرایط دامنه DeclarativeniveneTrequest بهبود یافته

ارسال شده در

شرایط قاعده DemorarAtiveneTrequest به روز شده است تا اجازه دهید پسوندها بر اساس دامنه های "درخواست" و "آغازگر" درخواست های بهتر را هدف قرار دهند. خصوصیات مربوط به شرایط مربوط به initiatorDomains ، excludedInitiatorDomains ، requestDomains و excludedRequestDomains است. همچنین به این موضوع کروم-پیوسته مراجعه کنید.

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() و درج () Scripting () و insertCSS() اکنون چندین پرونده را می پذیرند. پیش از این این روشها به یک آرایه با یک پرونده واحد نیاز داشتند.

به روزرسانی اسناد: به روزرسانی های عیب یابی نقض نقض را مرور کنید

ارسال شده در

صفحه نقض عیب یابی فروشگاه های وب Chrome به روز شده است تا به دلایل مشترک برای رد ، راهنمایی های دقیق تری را برای توسعه دهندگان ارائه دهد.

Chrome 96: پشتیبانی از وعده های گسترده به 27 API دیگر

ارسال شده در

این نسخه حاوی به روزرسانی های نوید قابل توجهی بیشتر از هر نسخه قبلی است. به روزرسانی ها شامل API های پسوند عمومی و خاص Chromeos است. بخش های زیر را برای جزئیات بیشتر گسترش دهید.

API های پسوند

تعدادی از API اکنون از وعده های موجود در مانیفست v3 پشتیبانی می کنند.

همچنین ، API هایی که از نمونه اولیه ChromeSetting استفاده می کنند ، اکنون نیز از وعده ها پشتیبانی می کنند. API های زیر تحت تأثیر این تغییر قرار می گیرند.

API های کروموس

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 تاریخ انتشار پایدار و بتا را لیست می کند.

Chrome 132: خاصیت یخ زده جدید در Tabs API

با شروع از Chrome 132 ، خاصیت frozen در Tabs API نشان می دهد که آیا یک زبانه توسط مرورگر منجمد شده است یا خیر. پیام های ارسال شده به زبانه های یخ زده در صورت عدم استفاده از برگه در صف قرار می گیرند و اداره می شوند.

API سریع در پسوندهای کروم

ارسال شده در

API سریع برای پسوندها اکنون در یک آزمایش اصلی موجود است ، بنابراین می توانید پسوندهای Chrome را بسازید که از Gemini Nano ، کارآمدترین مدل زبان ما در مرورگر استفاده می کند.

به آزمایش سریع API Origin بپیوندید ، در Chrome 131 تا 136 اجرا کنید و نظرات خود را به اشتراک بگذارید. ورودی شما می‌تواند مستقیماً بر نحوه ساخت و اجرای نسخه‌های آینده این API و همه APIهای AI داخلی تأثیر بگذارد.

پست وبلاگ: آنچه در برنامه های کروم ، اکتبر 2024 اتفاق می افتد

ارسال شده در

وقت آن است که یک جمع دیگر از آنچه در برنامه های کروم اتفاق می افتد: ما به روزرسانی های هیجان انگیز در مورد ادغام هوش مصنوعی ، API های جدید ، رویدادها و فیلم ها داریم. همه چیز را در مورد آنچه در نسخه های کروم در نسخه اکتبر اتفاق می افتد بخوانید!

به چالش داخلی AI بپیوندید

ارسال شده در

Chrome با استفاده از مدل های یکپارچه هوش مصنوعی Chrome و API ها ، از شما برای ایجاد برنامه های نوآورانه وب و برنامه های افزودنی Chrome دعوت شده است و فرصتی برای کسب جوایز کسب کرده است که در مجموع 65000 دلار دلار است.

ثبت نام کنید و اطلاعات بیشتری در مورد وب سایت داخلی AI Challenge کسب کنید. ما نمی توانیم صبر کنیم تا ببینیم وقتی وب را با هوش مصنوعی تزریق می کنید ، چه چیزی را ایجاد می کنید!

Chrome 130: action.OnusersettingsChanged

ارسال شده در

با شروع از Chrome 130 ، رویداد Action.OnusersettingsChanged در دسترس است. این به دنبال پیشنهادی در گروه جامعه WebExtensions است. با تشکر از مایکروسافت برای کمک به Chromium.

Chrome 130: Storagearea.getKeys ()

ارسال شده در

با شروع از Chrome 130 ، روش GetKeys () در رابط Storagearea که توسط API chrome.storage استفاده می شود ، موجود است. این به دنبال پیشنهادی در گروه جامعه WebExtensions است.

Chrome 128: تطبیق هدر پاسخ در درخواست خالص اعلامیه

ارسال شده در

با شروع از Chrome 128 ، ما برای تطبیق هدر پاسخ در API درخواست خالص اعلامیه ، پشتیبانی می کنیم. این یک درخواست متداول بود ، به خصوص برای تطبیق هدر نوع محتوا ، و ما یک API مناسب را به همراه گروه جامعه WebExtensions طراحی کردیم .

ما مرجع API خود را به روز کرده ایم تا شامل زمینه های جدید responseHeaders و زمینه های excludedResponseHeaders شود. می توانید از این موارد برای بررسی وجود و ارزش یک هدر معین استفاده کنید.

به عنوان بخشی از این بروزرسانی ، ما یک بخش ارزیابی قانون جدید را به مستندات خود اضافه کرده ایم که توضیح می دهد که چگونه قوانین مطابقت دارند. به طور خاص برای تطبیق هدر ، قوانین فقط می توانند پس از دریافت هدرهای پاسخ اجرا شوند ، بنابراین در مرحله بعدی نسبت به سایر قوانین اعمال می شوند. این بدان معنی است که درخواست قبل از مسدود شدن یا هدایت مجدد به سرور می رسد.

ویدئو: اسکریپت های محتوا چیست؟

ارسال شده در

در مورد اسکریپت های محتوا در برنامه های افزودنی Chrome ، از جمله نحوه ثبت CSS و JavaScript برای اجرای در یک صفحه خاص ، بیاموزید. ویدیوی کامل را ببینید .

به روزرسانی های مهم خط مشی

ارسال شده در

تیم فروشگاه وب Chrome مجموعه ای از به روزرسانی ها را در صفحه سیاست های برنامه توسعه دهنده منتشر کرده است که برای تشویق توسعه محصولات با کیفیت بالا ، جلوگیری از رفتار فریبنده و اطمینان از رضایت آگاهانه کاربر طراحی شده است. Rebecca Soares ، مدیر خط مشی فروشگاه وب Chrome ، تمام به روزرسانی های موجود در برنامه های افزودنی Chrome را خلاصه کرده است: پست مهم وبلاگ به روزرسانی های خط مشی .

پست وبلاگ: آنچه در برنامه های کروم ، ژوئیه 2024 اتفاق می افتد

ارسال شده در

در سه ماه گذشته ، ما چندین به روزرسانی و ویژگی های جدید از جمله شروع فاز مانیفست V2 را از بین بردیم. در آنچه در نسخه های ژانویه Chrome Extensions اتفاق می افتد سرعت بگیرید!

ویدئو: کد میزبان از راه دور چیست؟

ارسال شده در

پاتریک از تیم پسوند Chrome مفهوم کد میزبان از راه دور (RHC) در پسوندهای کروم را توضیح می دهد. بیاموزید که چرا RHC دیگر مجاز نیست ، چگونه آن را تشخیص دهید و در صورت نیاز به به روزرسانی پسوند شما چه کاری باید انجام دهید. ویدیوی کامل را ببینید .

Chrome 127: Action.OpenPopup API جدید

ارسال شده در

با شروع در Chrome 127 ، API action.openPopup API برای همه پسوندها در دسترس است. پیش از این ، فقط در قناری یا پسوندهای نصب شده توسط یک خط مشی در دسترس بود.

ویدئو: مصاحبه تیم اعتماد و ایمنی

ارسال شده در

تیم 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 یک قسمت جدید مانیفست را معرفی می کند. json - 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 ثانیه کاهش می یابد

ارسال شده در

با شروع در کروم 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 های Chrome: // ایجاد کرده است. علاوه بر این ، فراخوانی 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 خود استفاده کنید

ارسال شده در

We published new Google Analytics and geolocation guidance and samples:

Chrome 115: Specify multiple reasons in chrome.offscreen.createDocument()

ارسال شده در

You can now specify multiple reason enums when calling chrome.offscreen.createDocument() . Use this when an offscreen document will be used for multiple different purposes. The browser uses the supplied reasons to determine the lifetime of the offscreen document.

New tool: Extension Update Testing Tool

ارسال شده در

We've just released the Extension Update Testing Tool , a local extension update server that can be used for testing updates to Chrome Extensions during local development, including permission grants. The tool shows the user's update flow, including keeping an extension disabled until a user grants any newly requested permissions. This tool is particularly useful for simulating the permission changes requested when updating an extension from Manifest V2 to Manifest V3.

Chrome 114: New Side Panel API

ارسال شده در

Introducing the new Side Panel API, a companion surface that allows users to access tools alongside the content they are browsing. To learn more, visit the Side Panel API reference . Additionally, we've added many side panel samples to our GitHub sample repository . We also share more about side panels in the new blog post Designing a Superior User Experience with the New Side Panel API . Our quality guidelines policy and best practices have also been reviewed to provide further guidance on creating high-quality side panel extensions.

Your feedback is important in crafting this API; please share your thoughts and feature requests in the chromium-groups . Stay tuned for new updates as we continue to enhance the Side Panel API.

New Samples: WASM in extensions

ارسال شده در

There are two new samples available that demonstrate how to use WASM in an extension:

Special thanks to GitHub contributor @daidr for these samples.

Updated Manifest V3 migration guidance

ارسال شده در

We've updated the Known Issues section of our Manifest V3 migration guidance with an updated list of extension platform gaps that we intend to close before announcing a new Manifest V2 deprecation timeline.

Recording audio and video with Manifest V3

ارسال شده در

We've just published a new article called Audio recording and screen capture , which covers recording audio or video from a tab, window, or screen in Manifest V3. This article describes multiple approaches to recording involving the chrome.tabCapture API and the getDisplayMedia() function.

Chrome 114: Increased storage.local quota

ارسال شده در

We have increased the quota for the storage.local property to approximately 10 MB. This was agreed to in the Web Extensions Community Group . This brings storage.local in line with storage.session which was changed in Chrome 112.

New extension service worker tutorial and help

ارسال شده در

Service Workers are an integral part of Chrome Extensions. We just published a tutorial explaining the basics of registering, debugging, and interacting with Service Workers. We've also added a new Service worker guide explaining important concepts in more detail. We'll be expanding this section in the coming months.

More troubleshooting tips for Web Store violations

ارسال شده در

To help with Chrome Web Store publishing, we added new guidance in two areas. Guidance for minimum functionality centers around providing users with benefits and enriching their browsing experience. Guidance for affiliate ads is about making users are aware of extensions using affiliate links or codes for monetization, and giving them some amount of control by requiring user action before inclusion.

New instructions for the Extension Manifest Converter

ارسال شده در

We've rewritten the README for the Extension Manifest Converter to make it easier to see what you need to do after running the tool. The converter helps helps migrate extensions built on Manifest V2 to Manifest V3. The new README describes what the tool does using words that closely match those in the migration guide's checklist . The converter doesn't do everything, but it does eliminate many tasks that don't require a human judgement call.

Chrome 113: New reasons for offscreen documents

ارسال شده در

We have added two new reason types to the Offscreen Documents API. Use LOCAL_STORAGE to access the web platform's localStorage API. Use WORKER when creating web workers.

Google Analytics 4 now in the Developer Dashboard

ارسال شده در

The Chrome Web Store Developer Dashboard now supports Google Analytics 4 (GA4). We've simplified setting up Google Analytics and made access management for group publishers more straightforward. If you previously used Google Universal Analytics to track your store listing activity, you will need to take action by July 1, 2023 to ensure that you continue receiving data about your store listing. For more information, see the post on the Chromium Extensions Google Group .

The File Handling API comes to ChromeOS

ارسال شده در

The File Handler API is available for experimentation on ChromeOS in Canary for versions 112 and 113. It lets extensions on ChromeOS open files with specified MIME types and file extensions. To implement file handling add a set of rules to the manifest.json . This feature works the same as for Progressive web apps. For more information, see the article elsewhere on this site.

To enable file handling:

  • Starting in 112, launch Chrome using the --enable-features=ExtensionWebFileHandlers flag, starting in 112
  • Starting in 113, paste os://flags/#extension-web-file-handlers into the Chrome omnibox and select 'Enabled' from the dropdown menu.

We hope to launch this feature in Chrome 115, in late June. این فضا را برای به روز رسانی تماشا کنید.

New Samples: dynamic declarations and programmatic injection

ارسال شده در

We've built a new sample for the chrome.scripting API. It demonstrates dynamic declarations, where a content script is registered at runtime, and programmatic injection, where a script is executed in a tab that is already open.

New Samples: Declarative Net Request use cases

ارسال شده در

Three new samples are available demonstrating the Declarative Net Request API . Each demonstrates implementation of a single use case. The first shows how to block cookies. The remaining two demonstrate blocking and redirecting URLs.

Chrome 112: Increased storage.session quota

ارسال شده در

From Chrome 112, the quota for the storage.session property has been increased to approximately 10 MB. This was agreed to in the Web Extensions Community Group: https://github.com/w3c/webextensions/issues/350

Chrome 109: Offscreen documents

ارسال شده در

Offscreen documents are now available in Manifest V3 extensions. These help with the transition from background pages to extension service workers by providing support for DOM-related features and APIs. For more information, read the blog post .

Chrome 110: Is an extension enabled

ارسال شده در

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/ , where is the ID of your extension. This replaces the Manifest V2 platform's chrome://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.

Also, APIs that use the ChromeSetting prototype now also support promises. The following APIs are affected by this change.

ChromeOS APIs

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.

،

Check this page often to learn about changes to Chrome extensions, extensions documentation, or related policy or other changes. You'll find other notices posted on the Extensions Google Group . The Chrome schedule lists stable and beta release dates.

Chrome 132: New frozen property in Tabs API

Starting in Chrome 132, the frozen property in the Tabs API indicates if a tab has been frozen by the browser. Messages sent to frozen tabs will be queued and handled when the tab is unfrozen.

The Prompt API in Chrome Extensions

ارسال شده در

The Prompt API for Extensions is now available in an origin trial, so you can build Chrome Extensions that use Gemini Nano, our most efficient language model, in the browser.

Join the Prompt API origin trial, running in Chrome 131 to 136, and share your feedback. ورودی شما می‌تواند مستقیماً بر نحوه ساخت و اجرای نسخه‌های آینده این API و همه APIهای AI داخلی تأثیر بگذارد.

Blog post: What's happening in Chrome Extensions, October 2024

ارسال شده در

It's time for another round up of what's happening in Chrome Extensions: we have exciting updates on AI integration, new APIs, events, and videos. Read all about it in What's happening in Chrome Extensions October edition !

Join the built-in AI Challenge

ارسال شده در

Chrome has launched the Built-in AI Challenge: You are invited to create innovative web applications and Chrome Extensions, using Chrome's integrated AI models and APIs , and have a chance to win prizes which total $65,000 USD.

Sign up and get more information on the Built-in AI Challenge website . We can't wait to see what you create when you infuse the web with AI!

Chrome 130: action.onUserSettingsChanged

ارسال شده در

Starting in Chrome 130, the action.onUserSettingsChanged event is available. This follows a proposal in the WebExtensions Community Group. Thanks to Microsoft for the contribution to Chromium.

Chrome 130: StorageArea.getKeys()

ارسال شده در

Starting in Chrome 130, the getKeys() method is available on the StorageArea interface used by the chrome.storage API. This follows a proposal in the WebExtensions Community Group.

Chrome 128: Response header matching in Declarative Net Request

ارسال شده در

Starting in Chrome 128, we are adding support for response header matching in the Declarative Net Request API. This was a common request, particularly for matching the Content-Type header, and we designed a suitable API together with the WebExtensions Community Group.

We've updated our API reference to include the new responseHeaders and excludedResponseHeaders fields. You can use these to check for the existence of and value of a given header.

As part of this update, we've added a new rule evaluation section to our documentation which explains how rules are matched. For header matching in particular, rules can only run once response headers have been received, so they are applied at a later stage than other rules. This means the request does reach the server before being blocked or redirected.

Video: What are content scripts?

ارسال شده در

Learn about content scripts in Chrome Extensions, including how to register CSS and JavaScript to run on a particular page. ویدیوی کامل را ببینید .

Important policy updates

ارسال شده در

Chrome Web Store team has published a series of updates to the Developer Program Policies page designed to encourage the development of high quality products, prevent deceptive behavior, and ensure informed user consent. Rebecca Soares, the Chrome Web Store policy manager, has summarized all the updates in Chrome Extensions: Important policy updates blog post .

Blog post: What's happening in Chrome Extensions, July 2024

ارسال شده در

In the past three months we've rolled out several significant updates and new features, including the start of Manifest V2 phase out. Get up to speed in What's happening in Chrome Extensions July edition !

Video: What is a Remote Hosted Code?

ارسال شده در

Patrick from the Chrome Extensions team explains the concept of Remotely Hosted Code (RHC) in Chrome Extensions. Learn why RHC is no longer allowed, how to detect it, and what to do if your extension needs to be updated. ویدیوی کامل را ببینید .

Chrome 127: New action.openPopup API

ارسال شده در

Beginning in Chrome 127, the action.openPopup API is available to all extensions. Previously, it was only available in Canary or to extensions installed by a policy.

Video: Trust & Safety team interview

ارسال شده در

The Chrome Extensions DevRel team sat down with the Trust & Safety team that leads review in the Chrome Web Store to ask your questions. ویدیوی کامل را ببینید .

Blog post: Manifest V2 phase-out begins

ارسال شده در

Starting on June 3 on the Chrome Beta, Dev and Canary channels, if users still have Manifest V2 extensions installed, some will start to see a warning banner when visiting their extension management page - chrome://extensions - informing them that some (Manifest V2) extensions they have installed will soon no longer be supported. Read more in the official announcement

Updates to Side Panel UI

ارسال شده در

We recently made some changes to the Side Panel UI, including adding a pin icon and removing the global side panel icon. Read more in the PSA and see our updated documentation and samples .

Blog post: Chrome Extensions at Google I/O 2024

ارسال شده در

Another Google I/O is behind us and we have covered all the exciting extensions updates! Head over to YouTube to check out the full video and read our blog post for some of the highlights.

Skip review for eligible Declarative Net Request changes

ارسال شده در

The Chrome Web Store now lets you skip review for eligible changes when using the Declarative Net Request API. Learn more about eligibility and how to opt-in in the Chrome Web Store documentation .

deployPercentage available in the Chrome Web Store API

ارسال شده در

We recently updated our Chrome Web Store API documentation to include information about deployPercentage , which lets you assign a percentage of a partial rollout deployment. Learn about deployPercentage .

Chrome 126: Origin Trials in extensions

ارسال شده در

Chrome 126 introduces a new manifest.json field - trial_tokens , allowing you to opt into Origin Trials and Deprecation Trials across all extension surfaces. Read the guide for more information.

Blog post: What's happening in Chrome Extensions-April 2024

ارسال شده در

We've published a new edition of What's Happening in Chrome Extensions . The post discusses what the extension team has been working on for the past few months. This includes: Version Rollback in the Chrome Web Store, better Firebase Auth support and more API launches and updates.

Version rollbacks in the Chrome Web Store Developer Dashboard

ارسال شده در

Roll back your extension to the previous published version in the Chrome Web Store—without additional review! Read the blog post and documentation for more information.

Chrome 124: Advanced documentScan API

ارسال شده در

An advanced documentScan API is now available on ChromeOS to discover and retrieve images from attached document scanners.

Chrome 124: WebGPU support in Service Workers

ارسال شده در

Since Chrome 124, service workers support WebGPU . For a quick start, checkout the WebGPU extension sample .

Chrome 123: The Events API supports filtering by CIDR blocks

ارسال شده در

The Events API now supports filtering by Classless Inter-Domain Routing (CIDR) blocks. A CIDR block is a collection of IP addresses that share a network prefix and the same number of bits. Previously, a developer needing to filter multiple IP addresses needed to configure a filter rule for each of the addresses in the block range. Now when an extension calls addListener() , a passed in rule means the event handler will only be called when the host part of a URL is an IP address and is contained in any of the CIDR blocks specified in an array.

Chrome Web Store: Updates to extension name length requirements

ارسال شده در

On the Chrome Web Store, there is now a universal limit of 75 characters for an extension's "name" field in the manifest.json. Previously, the limit for English was 45 characters, and there was no restriction to the "name" field in other locales.

This was originally intended to allow for cultural and language differences that may not be able to be captured in the same number of characters. Unfortunately, this feature was abused by a small number of developers to spam the store. As a result we are introducing a new universal limit, an increase to 75 characters. This limit covers nearly all extensions on the store today, so it is likely no action will be needed by you as a result of this change. If you try to upload an extension that has a name longer than the maximum limit, then the upload will be blocked by the store.

Blog post: eyeo's journey to testing service worker suspension

ارسال شده در

In this post by eyeo's Extension Engine team, we explore the problem of testing extension service workers. In Manifest V2, extensions lived in a background page, which were awake throughout the extension lifecycle. Manifest V3 uses service workers instead, and service workers, by design, conserve resource by shutting down when they're not needed. This presents certain testing challenges. This post explains how eyeo tackled these challenges .

Chrome 123: Alarms now run when device is asleep

ارسال شده در

Alarms set using the chrome.alarms API are no longer delayed when a device goes to sleep. When the device wakes up, the alarm will fire once no matter how many alarms were missed. For example, say that an alarm is set to go off once an hour and the device it's on is asleep from 12:55 AM to 2:05 AM, then only the 2:00 AM alarm triggers the onAlarm event. It will fire as close to 2:00 AM as it can, and immediately when a device wakes if it was asleep.

This change brings Chrome inline with the agreed behavior in the Web Extensions Community Group.

Blog post: Changes to bfcache behavior with extension message ports

ارسال شده در

Back/forward cache (bfcache) is a browser optimization that enables instant back and forward navigation. Starting in Chrome 123, when a page with an open extension port is stored in bfcache, the message channel is closed, meaning that no messages will be sent to that page. Consequently, extension scripts should listen for lifecycle events such as onDisconnect and set up a new connection when the page is restored from BFCache.

For more information and sample code, see Changes to BFCache behavior with extension message ports .

Chrome 122: Promise support on asynchronous extension APIs

ارسال شده در

We've finished implementing Promise support for all asynchronous extension API methods. This was done to modernize API methods by improving the ergonomics of dealing with asynchronous operations. A handful of methods (for example, desktopCapture.chooseDesktopMedia() ) continue to only support callbacks because their current surfaces are not compatible with Promises. For backwards compatibility, callbacks are still supported. If you find a Promise that fails, please file a bug .

New guidance for real time communication

ارسال شده در

We have just published guides on real time options in extensions. Real-time updates provide an instant communication path from your servers directly to your extension installations. Additionally, we have new guidance for using chrome.gcm , Web Push .

New guidance and sample: Testing service worker termination

ارسال شده در

We have just published a guide on how to Test service worker termination with Puppeteer . The accompanying sample demonstrates this in Puppeteer and Selenium.

Updated sample for native messaging

ارسال شده در

We have just published an updated sample for native messaging. This API allows your extension to start and communicate with another application. Thanks to GitHub contributor Shubham-Rasal for the work on this.

Chrome 121: New lastAccessed property on tabs.Tab

ارسال شده در

A new property named lastAccessed was added to the tabs.Tab object. This property indicates when the tab was last activated. The returned value is in milliseconds since epoch.

Chrome 121: Unsupported "background" keys now issue a warning

ارسال شده در

In the change from Manifest V2 to Manifest V3, children of the "background" manifest key were changed to accommodate replacement of background scripts with extension service workers. Formerly, adding the Manifest V2 keys "scripts" , "page" , or "persistent" to the "background" key of a Manifest V3 extension would throw an error. The presence of these keys now triggers a warning.

This is being done to enable using a single manifest file in extensions in multiple browsers, per a proposal in the community group .

Chrome 120: Minimum alarm granularity reduced to 30 seconds

ارسال شده در

Beginning in Chrome 120, Manifest V3 extensions can use the chrome.alarms API with delays or periods of 30 seconds, rather than requiring values of 60 seconds or more.

Blog post: Resuming the transition to Manifest V3

ارسال شده در

The Manifest V2 support timeline has been updated. See our November 2023 blog post for details.

Blog post: Improvements to content filtering support in Manifest V3

ارسال شده در

Learn about how we improved the declarativeNetRequest API in our new blog post .

Blog post: What's new in Chrome 120 for Extensions

ارسال شده در

Chrome 120 Beta was recently released. For a summary of the important updates relevant to extension developers, read our new blog post: What's new in Chrome 120 for Extensions . This release also marks a major milestone as it removes the final two items (userScripts, file handler on ChromeOS) from the list of critical platform gaps .

PSA: Change to handling of privacy policy URLs in Developer Dashboard

ارسال شده در

Privacy policies in the Developer Dashboard are now added at the item level. This allows you to provide a different privacy policy per item. Read more about this change in our PSA .

Video: A chat with Matt Frisbie

ارسال شده در

We've just published a new video on the Chrome for Developers YouTube channel chatting with Google Developer Expert and author Matt Frisbie. اینجا را تماشا کنید.

New guidance on testing extensions

ارسال شده در

We've just published new guidance on how to write automated tests for extensions, including how to write unit tests and both general guidance and a tutorial on end-to-end testing.

Blog post: What's happening in Chrome Extensions - October 2023

ارسال شده در

We've just published the second edition of What's Happening in Chrome Extensions . The post discusses what the extension team has been working on for the past few months, including, addressing service worker stability issues, and making good progress on closing all MV3 platform gaps. We also share exciting upcoming API releases like the Reading List API and the User Scripts API.

Increased static ruleset limits in Declarative Net Request API

ارسال شده در

Following feedback in the Web Extensions Community Group, we are significantly increasing the limit on enabled static rulesets from 10 to 50. Additionally, we are increasing the total number of allowed static rulesets from 50 to 100. This is currently available in Canary.

Improved guidance around remotely-hosted code

ارسال شده در

A requirement for Manifest V3 is that extensions may no longer use remotely-hosted code. Although this has been part of our migration guide from the beginning, we thought it was worth improving the guidance around this issue. That page now provides more information, describing what's still possible in Manifest V3 and providing more information on strategies for upgrading.

There is a related addition to the Troubleshooting Chrome Web Store violations . A new section describes common reasons that extensions with remotely-hosted code are rejected.

Chrome 118: isUrlFilterCaseSensitive now defaults to false

ارسال شده در

Starting in Chrome 118, the isUrlFilterCaseSensitive property in the chrome.declarativeNetRequest API has been changed to default to false . If you wish to keep the old behavior, you can explicitly set isUrlFilterCaseSensitive to true in your declarativeNetRequest rules.

This follows discussions in the Web Extensions Community Group. Firefox and Safari have already implemented a similar change.

Documentation on cookies and web storage APIs

ارسال شده در

We published a new guide on how cookies and web storage APIs work in Chrome extensions . It includes details on cookie and storage partitioning changes in Privacy Sandbox , an ongoing project to deprecate third-party cookies through the creation of a series of new web platform APIs, and details on how they work in extensions.

Extension samples now searchable

ارسال شده در

We recently created a page that lets you search Chrome extension samples . The search page has multiple options. A search box lets you search for text in sample titles. You can restrict the search by permission or extension API. An additional filter lets you restrict search to either API or functional (use case) samples.

This new sample page was built by a Google Summer of Code participant, Xuezhou Dai, who also contributed several new samples. You can read about their experiences this past summer in their post on our blog .

As before, our code samples are still available on GitHub for cloning or forking.

Chrome 118: Changes to opening file: scheme URLs

ارسال شده در

Beginning in Chrome 118, extensions will need the "Allow access to file URLs" setting enabled from the chrome://extensions page to open file:// scheme URLs using the Tabs or Windows APIs. You can programmatically check for this access by calling chrome.extension.isAllowedFileSchemeAccess() . Firefox already restricts file URLs, and Safari supports the change. For more information, read the post in the extensions Google Group .

Chrome 117: Expanded URL protections on extension API navigations

ارسال شده در

Previously navigation triggered from extension API calls for tabs.update() , tabs.create() , and windows.create() emitted an error for some chrome:// URLs. Additionally, calling tabs.update() with a JavaScript URL was forbidden. In 117, these protections on JavaScript URLs have been expanded to the tabs.create() method and a number of additional chrome:// URLs have been added to the list of forbidden URLs that applies to all of the previously mentioned methods.

Improved guidance for the declarativeNetRequest API

ارسال شده در

The chrome.declarativeNetRequest API blocks or modifies network requests by specifying declarative rules. This lets extensions modify network requests without intercepting them and viewing their content, thus providing more privacy to users. It's also tricky to use. With that in mind, we've rewritten the guidance in a way that we think paints a clearer picture of how to implement declarative rulesets. Read the new section at the link above.

Using your Google Analytics account with the Chrome Web Store

ارسال شده در

The Chrome Web Store offers integration with Google Analytics, which allows you to see analytics for your Chrome Web Store listing in addition to the view offered in the Developer Dashboard. For more information, read Using your Google Analytics account with the Chrome Web Store .

Chrome 115: DevTools steps over content scripts by default

ارسال شده در

Injected content scripts are now in the DevTools ignore list by default. This doesn't affect breakpoints, but it does mean that content scripts will be stepped over during debugging and exceptions from these scripts will be ignored. When a content script is open in the Sources tab, a banner alerts you if this is on and provides an option to remove your content script from the ignore list. To turn this behavior off, open DevTools, go to Settings then Ignore list . To learn more, see What's new in DevTools .

Chrome 116 beta: More than we can fit here

ارسال شده در

Chrome 116 is a big release for extensions. You can now open side panels programmatically. A new method lets you learn if there's an active offscreen document. Service workers got serveral improvements. There's enough improvements in 116 that we've written a blog post to cover them . Chrome 116 is in beta as of July 19.

Blog post: What's happening in Chrome Extensions

ارسال شده در

We've just published an overview of this year's changes and improvements to extensions . The post discusses the year's big new features, including the Side Panel API, service worker enhancements, and offscreen documents. You'll also get a peek at what we're working on for this quarter. The article lists much more, with links to all.

New guidance and sample: Learn how to use Google Analytics 4 in your Chrome extension

ارسال شده در

We published new Google Analytics and geolocation guidance and samples:

Chrome 115: Specify multiple reasons in chrome.offscreen.createDocument()

ارسال شده در

You can now specify multiple reason enums when calling chrome.offscreen.createDocument() . Use this when an offscreen document will be used for multiple different purposes. The browser uses the supplied reasons to determine the lifetime of the offscreen document.

New tool: Extension Update Testing Tool

ارسال شده در

We've just released the Extension Update Testing Tool , a local extension update server that can be used for testing updates to Chrome Extensions during local development, including permission grants. The tool shows the user's update flow, including keeping an extension disabled until a user grants any newly requested permissions. This tool is particularly useful for simulating the permission changes requested when updating an extension from Manifest V2 to Manifest V3.

Chrome 114: New Side Panel API

ارسال شده در

Introducing the new Side Panel API, a companion surface that allows users to access tools alongside the content they are browsing. To learn more, visit the Side Panel API reference . Additionally, we've added many side panel samples to our GitHub sample repository . We also share more about side panels in the new blog post Designing a Superior User Experience with the New Side Panel API . Our quality guidelines policy and best practices have also been reviewed to provide further guidance on creating high-quality side panel extensions.

Your feedback is important in crafting this API; please share your thoughts and feature requests in the chromium-groups . Stay tuned for new updates as we continue to enhance the Side Panel API.

New Samples: WASM in extensions

ارسال شده در

There are two new samples available that demonstrate how to use WASM in an extension:

Special thanks to GitHub contributor @daidr for these samples.

Updated Manifest V3 migration guidance

ارسال شده در

We've updated the Known Issues section of our Manifest V3 migration guidance with an updated list of extension platform gaps that we intend to close before announcing a new Manifest V2 deprecation timeline.

Recording audio and video with Manifest V3

ارسال شده در

We've just published a new article called Audio recording and screen capture , which covers recording audio or video from a tab, window, or screen in Manifest V3. This article describes multiple approaches to recording involving the chrome.tabCapture API and the getDisplayMedia() function.

Chrome 114: Increased storage.local quota

ارسال شده در

We have increased the quota for the storage.local property to approximately 10 MB. This was agreed to in the Web Extensions Community Group . This brings storage.local in line with storage.session which was changed in Chrome 112.

New extension service worker tutorial and help

ارسال شده در

Service Workers are an integral part of Chrome Extensions. We just published a tutorial explaining the basics of registering, debugging, and interacting with Service Workers. We've also added a new Service worker guide explaining important concepts in more detail. We'll be expanding this section in the coming months.

More troubleshooting tips for Web Store violations

ارسال شده در

To help with Chrome Web Store publishing, we added new guidance in two areas. Guidance for minimum functionality centers around providing users with benefits and enriching their browsing experience. Guidance for affiliate ads is about making users are aware of extensions using affiliate links or codes for monetization, and giving them some amount of control by requiring user action before inclusion.

New instructions for the Extension Manifest Converter

ارسال شده در

We've rewritten the README for the Extension Manifest Converter to make it easier to see what you need to do after running the tool. The converter helps helps migrate extensions built on Manifest V2 to Manifest V3. The new README describes what the tool does using words that closely match those in the migration guide's checklist . The converter doesn't do everything, but it does eliminate many tasks that don't require a human judgement call.

Chrome 113: New reasons for offscreen documents

ارسال شده در

We have added two new reason types to the Offscreen Documents API. Use LOCAL_STORAGE to access the web platform's localStorage API. Use WORKER when creating web workers.

Google Analytics 4 now in the Developer Dashboard

ارسال شده در

The Chrome Web Store Developer Dashboard now supports Google Analytics 4 (GA4). We've simplified setting up Google Analytics and made access management for group publishers more straightforward. If you previously used Google Universal Analytics to track your store listing activity, you will need to take action by July 1, 2023 to ensure that you continue receiving data about your store listing. For more information, see the post on the Chromium Extensions Google Group .

The File Handling API comes to ChromeOS

ارسال شده در

The File Handler API is available for experimentation on ChromeOS in Canary for versions 112 and 113. It lets extensions on ChromeOS open files with specified MIME types and file extensions. To implement file handling add a set of rules to the manifest.json . This feature works the same as for Progressive web apps. For more information, see the article elsewhere on this site.

To enable file handling:

  • Starting in 112, launch Chrome using the --enable-features=ExtensionWebFileHandlers flag, starting in 112
  • Starting in 113, paste os://flags/#extension-web-file-handlers into the Chrome omnibox and select 'Enabled' from the dropdown menu.

We hope to launch this feature in Chrome 115, in late June. این فضا را برای به روز رسانی تماشا کنید.

New Samples: dynamic declarations and programmatic injection

ارسال شده در

We've built a new sample for the chrome.scripting API. It demonstrates dynamic declarations, where a content script is registered at runtime, and programmatic injection, where a script is executed in a tab that is already open.

New Samples: Declarative Net Request use cases

ارسال شده در

Three new samples are available demonstrating the Declarative Net Request API . Each demonstrates implementation of a single use case. The first shows how to block cookies. The remaining two demonstrate blocking and redirecting URLs.

Chrome 112: Increased storage.session quota

ارسال شده در

From Chrome 112, the quota for the storage.session property has been increased to approximately 10 MB. This was agreed to in the Web Extensions Community Group: https://github.com/w3c/webextensions/issues/350

Chrome 109: Offscreen documents

ارسال شده در

Offscreen documents are now available in Manifest V3 extensions. These help with the transition from background pages to extension service workers by providing support for DOM-related features and APIs. For more information, read the blog post .

Chrome 110: Is an extension enabled

ارسال شده در

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/ , where is the ID of your extension. This replaces the Manifest V2 platform's chrome://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.

Also, APIs that use the ChromeSetting prototype now also support promises. The following APIs are affected by this change.

ChromeOS APIs

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.

،

Check this page often to learn about changes to Chrome extensions, extensions documentation, or related policy or other changes. You'll find other notices posted on the Extensions Google Group . The Chrome schedule lists stable and beta release dates.

Chrome 132: New frozen property in Tabs API

Starting in Chrome 132, the frozen property in the Tabs API indicates if a tab has been frozen by the browser. Messages sent to frozen tabs will be queued and handled when the tab is unfrozen.

The Prompt API in Chrome Extensions

ارسال شده در

The Prompt API for Extensions is now available in an origin trial, so you can build Chrome Extensions that use Gemini Nano, our most efficient language model, in the browser.

Join the Prompt API origin trial, running in Chrome 131 to 136, and share your feedback. ورودی شما می‌تواند مستقیماً بر نحوه ساخت و اجرای نسخه‌های آینده این API و همه APIهای AI داخلی تأثیر بگذارد.

Blog post: What's happening in Chrome Extensions, October 2024

ارسال شده در

It's time for another round up of what's happening in Chrome Extensions: we have exciting updates on AI integration, new APIs, events, and videos. Read all about it in What's happening in Chrome Extensions October edition !

Join the built-in AI Challenge

ارسال شده در

Chrome has launched the Built-in AI Challenge: You are invited to create innovative web applications and Chrome Extensions, using Chrome's integrated AI models and APIs , and have a chance to win prizes which total $65,000 USD.

Sign up and get more information on the Built-in AI Challenge website . We can't wait to see what you create when you infuse the web with AI!

Chrome 130: action.onUserSettingsChanged

ارسال شده در

Starting in Chrome 130, the action.onUserSettingsChanged event is available. This follows a proposal in the WebExtensions Community Group. Thanks to Microsoft for the contribution to Chromium.

Chrome 130: StorageArea.getKeys()

ارسال شده در

Starting in Chrome 130, the getKeys() method is available on the StorageArea interface used by the chrome.storage API. This follows a proposal in the WebExtensions Community Group.

Chrome 128: Response header matching in Declarative Net Request

ارسال شده در

Starting in Chrome 128, we are adding support for response header matching in the Declarative Net Request API. This was a common request, particularly for matching the Content-Type header, and we designed a suitable API together with the WebExtensions Community Group.

We've updated our API reference to include the new responseHeaders and excludedResponseHeaders fields. You can use these to check for the existence of and value of a given header.

As part of this update, we've added a new rule evaluation section to our documentation which explains how rules are matched. For header matching in particular, rules can only run once response headers have been received, so they are applied at a later stage than other rules. This means the request does reach the server before being blocked or redirected.

Video: What are content scripts?

ارسال شده در

Learn about content scripts in Chrome Extensions, including how to register CSS and JavaScript to run on a particular page. ویدیوی کامل را ببینید .

Important policy updates

ارسال شده در

Chrome Web Store team has published a series of updates to the Developer Program Policies page designed to encourage the development of high quality products, prevent deceptive behavior, and ensure informed user consent. Rebecca Soares, the Chrome Web Store policy manager, has summarized all the updates in Chrome Extensions: Important policy updates blog post .

Blog post: What's happening in Chrome Extensions, July 2024

ارسال شده در

In the past three months we've rolled out several significant updates and new features, including the start of Manifest V2 phase out. Get up to speed in What's happening in Chrome Extensions July edition !

Video: What is a Remote Hosted Code?

ارسال شده در

Patrick from the Chrome Extensions team explains the concept of Remotely Hosted Code (RHC) in Chrome Extensions. Learn why RHC is no longer allowed, how to detect it, and what to do if your extension needs to be updated. ویدیوی کامل را ببینید .

Chrome 127: New action.openPopup API

ارسال شده در

Beginning in Chrome 127, the action.openPopup API is available to all extensions. Previously, it was only available in Canary or to extensions installed by a policy.

Video: Trust & Safety team interview

ارسال شده در

The Chrome Extensions DevRel team sat down with the Trust & Safety team that leads review in the Chrome Web Store to ask your questions. ویدیوی کامل را ببینید .

Blog post: Manifest V2 phase-out begins

ارسال شده در

Starting on June 3 on the Chrome Beta, Dev and Canary channels, if users still have Manifest V2 extensions installed, some will start to see a warning banner when visiting their extension management page - chrome://extensions - informing them that some (Manifest V2) extensions they have installed will soon no longer be supported. Read more in the official announcement

Updates to Side Panel UI

ارسال شده در

We recently made some changes to the Side Panel UI, including adding a pin icon and removing the global side panel icon. Read more in the PSA and see our updated documentation and samples .

Blog post: Chrome Extensions at Google I/O 2024

ارسال شده در

Another Google I/O is behind us and we have covered all the exciting extensions updates! Head over to YouTube to check out the full video and read our blog post for some of the highlights.

Skip review for eligible Declarative Net Request changes

ارسال شده در

The Chrome Web Store now lets you skip review for eligible changes when using the Declarative Net Request API. Learn more about eligibility and how to opt-in in the Chrome Web Store documentation .

deployPercentage available in the Chrome Web Store API

ارسال شده در

We recently updated our Chrome Web Store API documentation to include information about deployPercentage , which lets you assign a percentage of a partial rollout deployment. Learn about deployPercentage .

Chrome 126: Origin Trials in extensions

ارسال شده در

Chrome 126 introduces a new manifest.json field - trial_tokens , allowing you to opt into Origin Trials and Deprecation Trials across all extension surfaces. Read the guide for more information.

Blog post: What's happening in Chrome Extensions-April 2024

ارسال شده در

We've published a new edition of What's Happening in Chrome Extensions . The post discusses what the extension team has been working on for the past few months. This includes: Version Rollback in the Chrome Web Store, better Firebase Auth support and more API launches and updates.

Version rollbacks in the Chrome Web Store Developer Dashboard

ارسال شده در

Roll back your extension to the previous published version in the Chrome Web Store—without additional review! Read the blog post and documentation for more information.

Chrome 124: Advanced documentScan API

ارسال شده در

An advanced documentScan API is now available on ChromeOS to discover and retrieve images from attached document scanners.

Chrome 124: WebGPU support in Service Workers

ارسال شده در

Since Chrome 124, service workers support WebGPU . For a quick start, checkout the WebGPU extension sample .

Chrome 123: The Events API supports filtering by CIDR blocks

ارسال شده در

The Events API now supports filtering by Classless Inter-Domain Routing (CIDR) blocks. A CIDR block is a collection of IP addresses that share a network prefix and the same number of bits. Previously, a developer needing to filter multiple IP addresses needed to configure a filter rule for each of the addresses in the block range. Now when an extension calls addListener() , a passed in rule means the event handler will only be called when the host part of a URL is an IP address and is contained in any of the CIDR blocks specified in an array.

Chrome Web Store: Updates to extension name length requirements

ارسال شده در

On the Chrome Web Store, there is now a universal limit of 75 characters for an extension's "name" field in the manifest.json. Previously, the limit for English was 45 characters, and there was no restriction to the "name" field in other locales.

This was originally intended to allow for cultural and language differences that may not be able to be captured in the same number of characters. Unfortunately, this feature was abused by a small number of developers to spam the store. As a result we are introducing a new universal limit, an increase to 75 characters. This limit covers nearly all extensions on the store today, so it is likely no action will be needed by you as a result of this change. If you try to upload an extension that has a name longer than the maximum limit, then the upload will be blocked by the store.

Blog post: eyeo's journey to testing service worker suspension

ارسال شده در

In this post by eyeo's Extension Engine team, we explore the problem of testing extension service workers. In Manifest V2, extensions lived in a background page, which were awake throughout the extension lifecycle. Manifest V3 uses service workers instead, and service workers, by design, conserve resource by shutting down when they're not needed. This presents certain testing challenges. This post explains how eyeo tackled these challenges .

Chrome 123: Alarms now run when device is asleep

ارسال شده در

Alarms set using the chrome.alarms API are no longer delayed when a device goes to sleep. When the device wakes up, the alarm will fire once no matter how many alarms were missed. For example, say that an alarm is set to go off once an hour and the device it's on is asleep from 12:55 AM to 2:05 AM, then only the 2:00 AM alarm triggers the onAlarm event. It will fire as close to 2:00 AM as it can, and immediately when a device wakes if it was asleep.

This change brings Chrome inline with the agreed behavior in the Web Extensions Community Group.

Blog post: Changes to bfcache behavior with extension message ports

ارسال شده در

Back/forward cache (bfcache) is a browser optimization that enables instant back and forward navigation. Starting in Chrome 123, when a page with an open extension port is stored in bfcache, the message channel is closed, meaning that no messages will be sent to that page. Consequently, extension scripts should listen for lifecycle events such as onDisconnect and set up a new connection when the page is restored from BFCache.

For more information and sample code, see Changes to BFCache behavior with extension message ports .

Chrome 122: Promise support on asynchronous extension APIs

ارسال شده در

We've finished implementing Promise support for all asynchronous extension API methods. This was done to modernize API methods by improving the ergonomics of dealing with asynchronous operations. A handful of methods (for example, desktopCapture.chooseDesktopMedia() ) continue to only support callbacks because their current surfaces are not compatible with Promises. For backwards compatibility, callbacks are still supported. If you find a Promise that fails, please file a bug .

New guidance for real time communication

ارسال شده در

We have just published guides on real time options in extensions. Real-time updates provide an instant communication path from your servers directly to your extension installations. Additionally, we have new guidance for using chrome.gcm , Web Push .

New guidance and sample: Testing service worker termination

ارسال شده در

We have just published a guide on how to Test service worker termination with Puppeteer . The accompanying sample demonstrates this in Puppeteer and Selenium.

Updated sample for native messaging

ارسال شده در

We have just published an updated sample for native messaging. This API allows your extension to start and communicate with another application. Thanks to GitHub contributor Shubham-Rasal for the work on this.

Chrome 121: New lastAccessed property on tabs.Tab

ارسال شده در

A new property named lastAccessed was added to the tabs.Tab object. This property indicates when the tab was last activated. The returned value is in milliseconds since epoch.

Chrome 121: Unsupported "background" keys now issue a warning

ارسال شده در

In the change from Manifest V2 to Manifest V3, children of the "background" manifest key were changed to accommodate replacement of background scripts with extension service workers. Formerly, adding the Manifest V2 keys "scripts" , "page" , or "persistent" to the "background" key of a Manifest V3 extension would throw an error. The presence of these keys now triggers a warning.

This is being done to enable using a single manifest file in extensions in multiple browsers, per a proposal in the community group .

Chrome 120: Minimum alarm granularity reduced to 30 seconds

ارسال شده در

Beginning in Chrome 120, Manifest V3 extensions can use the chrome.alarms API with delays or periods of 30 seconds, rather than requiring values of 60 seconds or more.

Blog post: Resuming the transition to Manifest V3

ارسال شده در

The Manifest V2 support timeline has been updated. See our November 2023 blog post for details.

Blog post: Improvements to content filtering support in Manifest V3

ارسال شده در

Learn about how we improved the declarativeNetRequest API in our new blog post .

Blog post: What's new in Chrome 120 for Extensions

ارسال شده در

Chrome 120 Beta was recently released. For a summary of the important updates relevant to extension developers, read our new blog post: What's new in Chrome 120 for Extensions . This release also marks a major milestone as it removes the final two items (userScripts, file handler on ChromeOS) from the list of critical platform gaps .

PSA: Change to handling of privacy policy URLs in Developer Dashboard

ارسال شده در

Privacy policies in the Developer Dashboard are now added at the item level. This allows you to provide a different privacy policy per item. Read more about this change in our PSA .

Video: A chat with Matt Frisbie

ارسال شده در

We've just published a new video on the Chrome for Developers YouTube channel chatting with Google Developer Expert and author Matt Frisbie. اینجا را تماشا کنید.

New guidance on testing extensions

ارسال شده در

We've just published new guidance on how to write automated tests for extensions, including how to write unit tests and both general guidance and a tutorial on end-to-end testing.

Blog post: What's happening in Chrome Extensions - October 2023

ارسال شده در

We've just published the second edition of What's Happening in Chrome Extensions . The post discusses what the extension team has been working on for the past few months, including, addressing service worker stability issues, and making good progress on closing all MV3 platform gaps. We also share exciting upcoming API releases like the Reading List API and the User Scripts API.

Increased static ruleset limits in Declarative Net Request API

ارسال شده در

Following feedback in the Web Extensions Community Group, we are significantly increasing the limit on enabled static rulesets from 10 to 50. Additionally, we are increasing the total number of allowed static rulesets from 50 to 100. This is currently available in Canary.

Improved guidance around remotely-hosted code

ارسال شده در

A requirement for Manifest V3 is that extensions may no longer use remotely-hosted code. Although this has been part of our migration guide from the beginning, we thought it was worth improving the guidance around this issue. That page now provides more information, describing what's still possible in Manifest V3 and providing more information on strategies for upgrading.

There is a related addition to the Troubleshooting Chrome Web Store violations . A new section describes common reasons that extensions with remotely-hosted code are rejected.

Chrome 118: isUrlFilterCaseSensitive now defaults to false

ارسال شده در

Starting in Chrome 118, the isUrlFilterCaseSensitive property in the chrome.declarativeNetRequest API has been changed to default to false . If you wish to keep the old behavior, you can explicitly set isUrlFilterCaseSensitive to true in your declarativeNetRequest rules.

This follows discussions in the Web Extensions Community Group. Firefox and Safari have already implemented a similar change.

Documentation on cookies and web storage APIs

ارسال شده در

We published a new guide on how cookies and web storage APIs work in Chrome extensions . It includes details on cookie and storage partitioning changes in Privacy Sandbox , an ongoing project to deprecate third-party cookies through the creation of a series of new web platform APIs, and details on how they work in extensions.

Extension samples now searchable

ارسال شده در

We recently created a page that lets you search Chrome extension samples . The search page has multiple options. A search box lets you search for text in sample titles. You can restrict the search by permission or extension API. An additional filter lets you restrict search to either API or functional (use case) samples.

This new sample page was built by a Google Summer of Code participant, Xuezhou Dai, who also contributed several new samples. You can read about their experiences this past summer in their post on our blog .

As before, our code samples are still available on GitHub for cloning or forking.

Chrome 118: Changes to opening file: scheme URLs

ارسال شده در

Beginning in Chrome 118, extensions will need the "Allow access to file URLs" setting enabled from the chrome://extensions page to open file:// scheme URLs using the Tabs or Windows APIs. You can programmatically check for this access by calling chrome.extension.isAllowedFileSchemeAccess() . Firefox already restricts file URLs, and Safari supports the change. For more information, read the post in the extensions Google Group .

Chrome 117: Expanded URL protections on extension API navigations

ارسال شده در

Previously navigation triggered from extension API calls for tabs.update() , tabs.create() , and windows.create() emitted an error for some chrome:// URLs. Additionally, calling tabs.update() with a JavaScript URL was forbidden. In 117, these protections on JavaScript URLs have been expanded to the tabs.create() method and a number of additional chrome:// URLs have been added to the list of forbidden URLs that applies to all of the previously mentioned methods.

Improved guidance for the declarativeNetRequest API

ارسال شده در

The chrome.declarativeNetRequest API blocks or modifies network requests by specifying declarative rules. This lets extensions modify network requests without intercepting them and viewing their content, thus providing more privacy to users. It's also tricky to use. With that in mind, we've rewritten the guidance in a way that we think paints a clearer picture of how to implement declarative rulesets. Read the new section at the link above.

Using your Google Analytics account with the Chrome Web Store

ارسال شده در

The Chrome Web Store offers integration with Google Analytics, which allows you to see analytics for your Chrome Web Store listing in addition to the view offered in the Developer Dashboard. For more information, read Using your Google Analytics account with the Chrome Web Store .

Chrome 115: DevTools steps over content scripts by default

ارسال شده در

Injected content scripts are now in the DevTools ignore list by default. This doesn't affect breakpoints, but it does mean that content scripts will be stepped over during debugging and exceptions from these scripts will be ignored. When a content script is open in the Sources tab, a banner alerts you if this is on and provides an option to remove your content script from the ignore list. To turn this behavior off, open DevTools, go to Settings then Ignore list . To learn more, see What's new in DevTools .

Chrome 116 beta: More than we can fit here

ارسال شده در

Chrome 116 is a big release for extensions. You can now open side panels programmatically. A new method lets you learn if there's an active offscreen document. Service workers got serveral improvements. There's enough improvements in 116 that we've written a blog post to cover them . Chrome 116 is in beta as of July 19.

Blog post: What's happening in Chrome Extensions

ارسال شده در

We've just published an overview of this year's changes and improvements to extensions . The post discusses the year's big new features, including the Side Panel API, service worker enhancements, and offscreen documents. You'll also get a peek at what we're working on for this quarter. The article lists much more, with links to all.

New guidance and sample: Learn how to use Google Analytics 4 in your Chrome extension

ارسال شده در

We published new Google Analytics and geolocation guidance and samples:

Chrome 115: Specify multiple reasons in chrome.offscreen.createDocument()

ارسال شده در

You can now specify multiple reason enums when calling chrome.offscreen.createDocument() . Use this when an offscreen document will be used for multiple different purposes. The browser uses the supplied reasons to determine the lifetime of the offscreen document.

New tool: Extension Update Testing Tool

ارسال شده در

We've just released the Extension Update Testing Tool , a local extension update server that can be used for testing updates to Chrome Extensions during local development, including permission grants. The tool shows the user's update flow, including keeping an extension disabled until a user grants any newly requested permissions. This tool is particularly useful for simulating the permission changes requested when updating an extension from Manifest V2 to Manifest V3.

Chrome 114: New Side Panel API

ارسال شده در

Introducing the new Side Panel API, a companion surface that allows users to access tools alongside the content they are browsing. To learn more, visit the Side Panel API reference . Additionally, we've added many side panel samples to our GitHub sample repository . We also share more about side panels in the new blog post Designing a Superior User Experience with the New Side Panel API . Our quality guidelines policy and best practices have also been reviewed to provide further guidance on creating high-quality side panel extensions.

Your feedback is important in crafting this API; please share your thoughts and feature requests in the chromium-groups . Stay tuned for new updates as we continue to enhance the Side Panel API.

New Samples: WASM in extensions

ارسال شده در

There are two new samples available that demonstrate how to use WASM in an extension:

Special thanks to GitHub contributor @daidr for these samples.

Updated Manifest V3 migration guidance

ارسال شده در

We've updated the Known Issues section of our Manifest V3 migration guidance with an updated list of extension platform gaps that we intend to close before announcing a new Manifest V2 deprecation timeline.

Recording audio and video with Manifest V3

ارسال شده در

We've just published a new article called Audio recording and screen capture , which covers recording audio or video from a tab, window, or screen in Manifest V3. This article describes multiple approaches to recording involving the chrome.tabCapture API and the getDisplayMedia() function.

Chrome 114: Increased storage.local quota

ارسال شده در

We have increased the quota for the storage.local property to approximately 10 MB. This was agreed to in the Web Extensions Community Group . This brings storage.local in line with storage.session which was changed in Chrome 112.

New extension service worker tutorial and help

ارسال شده در

Service Workers are an integral part of Chrome Extensions. We just published a tutorial explaining the basics of registering, debugging, and interacting with Service Workers. We've also added a new Service worker guide explaining important concepts in more detail. We'll be expanding this section in the coming months.

More troubleshooting tips for Web Store violations

ارسال شده در

To help with Chrome Web Store publishing, we added new guidance in two areas. Guidance for minimum functionality centers around providing users with benefits and enriching their browsing experience. Guidance for affiliate ads is about making users are aware of extensions using affiliate links or codes for monetization, and giving them some amount of control by requiring user action before inclusion.

New instructions for the Extension Manifest Converter

ارسال شده در

We've rewritten the README for the Extension Manifest Converter to make it easier to see what you need to do after running the tool. The converter helps helps migrate extensions built on Manifest V2 to Manifest V3. The new README describes what the tool does using words that closely match those in the migration guide's checklist . The converter doesn't do everything, but it does eliminate many tasks that don't require a human judgement call.

Chrome 113: New reasons for offscreen documents

ارسال شده در

We have added two new reason types to the Offscreen Documents API. Use LOCAL_STORAGE to access the web platform's localStorage API. Use WORKER when creating web workers.

Google Analytics 4 now in the Developer Dashboard

ارسال شده در

The Chrome Web Store Developer Dashboard now supports Google Analytics 4 (GA4). We've simplified setting up Google Analytics and made access management for group publishers more straightforward. If you previously used Google Universal Analytics to track your store listing activity, you will need to take action by July 1, 2023 to ensure that you continue receiving data about your store listing. For more information, see the post on the Chromium Extensions Google Group .

The File Handling API comes to ChromeOS

ارسال شده در

The File Handler API is available for experimentation on ChromeOS in Canary for versions 112 and 113. It lets extensions on ChromeOS open files with specified MIME types and file extensions. To implement file handling add a set of rules to the manifest.json . This feature works the same as for Progressive web apps. For more information, see the article elsewhere on this site.

To enable file handling:

  • Starting in 112, launch Chrome using the --enable-features=ExtensionWebFileHandlers flag, starting in 112
  • Starting in 113, paste os://flags/#extension-web-file-handlers into the Chrome omnibox and select 'Enabled' from the dropdown menu.

We hope to launch this feature in Chrome 115, in late June. این فضا را برای به روز رسانی تماشا کنید.

New Samples: dynamic declarations and programmatic injection

ارسال شده در

We've built a new sample for the chrome.scripting API. It demonstrates dynamic declarations, where a content script is registered at runtime, and programmatic injection, where a script is executed in a tab that is already open.

New Samples: Declarative Net Request use cases

ارسال شده در

Three new samples are available demonstrating the Declarative Net Request API . Each demonstrates implementation of a single use case. The first shows how to block cookies. The remaining two demonstrate blocking and redirecting URLs.

Chrome 112: Increased storage.session quota

ارسال شده در

From Chrome 112, the quota for the storage.session property has been increased to approximately 10 MB. This was agreed to in the Web Extensions Community Group: https://github.com/w3c/webextensions/issues/350

Chrome 109: Offscreen documents

ارسال شده در

Offscreen documents are now available in Manifest V3 extensions. These help with the transition from background pages to extension service workers by providing support for DOM-related features and APIs. For more information, read the blog post .

Chrome 110: Is an extension enabled

ارسال شده در

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/ , where is the ID of your extension. This replaces the Manifest V2 platform's chrome://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.

Also, APIs that use the ChromeSetting prototype now also support promises. The following APIs are affected by this change.

ChromeOS APIs

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.