چرخه عمر به‌روزرسانی Chrome Extension

این راهنما جزئیات کامل جریان به‌روزرسانی افزونه‌ها را شرح می‌دهد و فرآیند به‌روزرسانی استاندارد، لغو دستی، رابط‌های برنامه‌نویسی کاربردی (API) توسعه‌دهندگان و تأثیر قابل توجه سیاست‌های سازمانی را پوشش می‌دهد.

چرخه استاندارد به‌روزرسانی

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

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

این نیاز به حالت بیکاری می‌تواند باعث تأخیر در به‌روزرسانی افزونه‌های فعال مکرر شود. اگر سرویس ورکر یک افزونه دائماً توسط رویدادها فعال شود، ممکن است هرگز به حالت بیکاری نرسد و به‌روزرسانی تا زمان راه‌اندازی مجدد مرورگر به تعویق بیفتد.

نظارت بر توزیع به‌روزرسانی افزونه‌ها

برای اینکه بفهمید چه تعداد از کاربران شما از آخرین نسخه افزونه شما استفاده می‌کنند، از داشبورد تحلیلی Chrome WebStore استفاده کنید. به داشبورد توسعه‌دهندگان Chrome WebStore بروید و یکی از افزونه‌های منتشر شده خود را انتخاب کنید. در نوار پیمایش کناری به مسیر Analytics -> Users بروید و به پایین بروید تا نمودار کاربران روزانه بر اساس آیتم را ببینید. در اینجا می‌توانید ببینید که چند کاربر از آخرین نسخه شما استفاده می‌کنند.

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

به‌روزرسانی افزونه‌ها به صورت دستی

اگر کاربران بخواهند آخرین به‌روزرسانی‌ها را فوراً دریافت کنند، کروم یک مکانیزم به‌روزرسانی دستی ارائه می‌دهد. این همچنین یک ابزار مفید هنگام آزمایش به‌روزرسانی‌ها است.

کاربران می‌توانند با دنبال کردن مراحل زیر، به‌روزرسانی را برای همه افزونه‌های نصب‌شده خود اجباری کنند:

  1. به آدرس chrome://extensions بروید.
  2. با استفاده از دکمه‌ی کشویی در گوشه‌ی بالا سمت راست، حالت توسعه‌دهنده (Developer mode) را فعال کنید.
  3. روی دکمه‌ی به‌روزرسانی که ظاهر می‌شود کلیک کنید.

این اقدام باعث می‌شود کروم بلافاصله آخرین نسخه‌های تمام افزونه‌های نصب‌شده را از فروشگاه وب کروم دریافت کند.

بررسی به‌روزرسانی‌ها از یک افزونه

رابط برنامه‌نویسی کاربردی chrome.runtime ابزارهایی را برای افزونه‌ها فراهم می‌کند تا با سازوکار به‌روزرسانی تعامل داشته باشند.

بررسی به‌روزرسانی‌ها بر اساس تقاضا

تابع chrome.runtime.requestUpdateCheck() به یک افزونه اجازه می‌دهد تا بررسی به‌روزرسانی را به صورت برنامه‌نویسی‌شده آغاز کند. این امر به ویژه برای افزونه‌هایی که وابستگی حیاتی به یک سرویس backend دارند و نیاز به اطمینان از اجرای آخرین نسخه سازگار دارند، مفید است.

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

برای به‌روزرسانی‌های موجود گوش دهید

رویداد chrome.runtime.onUpdateAvailable زمانی فعال می‌شود که یک به‌روزرسانی دانلود شده و آماده نصب باشد. این رویداد شماره نسخه جدید را در جزئیات خود ارائه می‌دهد. با گوش دادن به این رویداد، یک افزونه می‌تواند تشخیص دهد که یک به‌روزرسانی در دسترس است و در صورت لزوم، با استفاده از chrome.runtime.reload() آن را غیرفعال یا بارگذاری مجدد کند.

کد زیر یک الگوی پیاده‌سازی اولیه را نشان می‌دهد:

در موارد استثنایی، می‌توان مرورگر را مجبور کرد که با استفاده از chrome.runtime.requestUpdateCheck() به‌روزرسانی افزونه را بررسی کند:

لازم به ذکر است که فراخوانی‌های مکرر requestUpdateCheck() توسط مرورگر محدود می‌شود. فقط زمانی از این تابع استفاده کنید که می‌دانید به‌روزرسانی در دسترس است. به عنوان مثال، زمانی که یک backend به‌روزرسانی شده به نسخه جدیدتری از افزونه نیاز دارد.

کنترل به‌روزرسانی‌ها از طریق سیاست سازمانی

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

نصب اجباری

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

نسخه افزونه پین

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

منبع به‌روزرسانی را نادیده بگیرید

شرکت‌ها می‌توانند به دلایل امنیتی یا سفارشی‌سازی، نسخه‌های انشعاب‌یافته‌ی خود از افزونه‌ها را میزبانی کنند. برای انجام این کار، از سیاست ExtensionSettings با ویژگی override_update_url که روی true تنظیم شده است، استفاده کنید. این کار کروم را مجبور می‌کند تا افزونه و به‌روزرسانی‌های آن را از یک URL مشخص، به جای فروشگاه وب کروم، دریافت کند.

حداقل نسخه کروم را تنظیم کنید

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

برای نصب‌های جدید، فروشگاه وب کروم از نصب افزونه توسط کاربرانی که از نسخه‌های قدیمی‌تر کروم استفاده می‌کنند، جلوگیری می‌کند و پیام «سازگار نیست» را نمایش می‌دهد. برای کاربران فعلی، اگر به‌روزرسانی یک افزونه، نسخه minimum_chrome_version را به نسخه‌ای بالاتر از نسخه کروم نصب‌شده کاربر افزایش دهد، آن‌ها به‌طور مخفیانه دریافت به‌روزرسانی‌های آن افزونه را متوقف می‌کنند. توسعه‌دهندگان باید از این موضوع آگاه باشند و در صورت تحت تأثیر قرار گرفتن بخش قابل توجهی از کاربران خود، به کاربران اطلاع دهند.