این صفحه، شکافهای پلتفرمی حلشده در طول انتقال به Manifest V3 را مستند میکند و به سوالات متداول مهاجرت پاسخ میدهد.
شکافهای پلتفرم برطرف شد
قابلیتهای زیر برای رفع موانع رایج مهاجرت اضافه شدهاند:
- پشتیبانی از مدیریت فایلها در ChromeOS به عنوان جایگزینی برای
chrome.fileBrowserHandler(Chrome 120). - پشتیبانی از اسکریپت کاربر: امکان ثبت اسکریپتهای محتوا با کد دلخواه با رابط برنامهنویسی کاربردی جدید userScripts (کروم ۱۲۰).
- نیروهای خدماتی قوی اضافی برای عملیاتهای خاصی که بیش از پنج دقیقه طول میکشند.
- در کروم ۱۱۶، توابع
permissions.request()،desktopCapture.chooseDesktopMedia()،identity.launchWebAuthFlow()وmanagement.uninstall()اضافه شدند. - در کروم ۱۱۸ برای
chrome.debuggerاضافه شد.
- در کروم ۱۱۶، توابع
- تعداد مجموعه قوانین ایستا و فعال برای درخواست شبکه اعلانی (DNR) افزایش یافته است . مجموعه قوانین ایستا فعال از ۱۰ به ۵۰ و کل مجموعه قوانین ایستا از ۵۰ به ۱۰۰ افزایش یافته است (کروم ۱۲۰).
- قابلیت سند خارج از صفحه را گسترش دهید تا دلایل بیشتری برای استفاده از سند خارج از صفحه پشتیبانی شود.
GEOLOCATIONدر کروم ۱۱۶ اضافه شد. - بهبود پشتیبانی از API مربوط به
chrome.tabCapture(کروم ۱۱۶):- پشتیبانی از فراخوانی
getMediaStreamId()از یک سرویس ورکر. - پشتیبانی از دریافت
MediaStreamاز شناسه جریان در یک سند خارج از صفحه.
- پشتیبانی از فراخوانی
- افزایش طول عمر سرویس ورکرها در حالی که اتصالات
WebSocketفعال هستند (Chrome 116).
سوالات متداول مانیفست نسخه ۳
س: آیا ما قصد داریم از Service Worker های دائمی پشتیبانی کنیم؟
الف) یکی از دلایل اصلی مهاجرت از اسکریپتهای پسزمینه به سرویس ورکرها، مدل برنامهنویسی رویدادمحور با کارایی بیشتر در حافظه است که از ماهیت زودگذر سرویس ورکرها ناشی میشود. در نتیجه، ما قصد نداریم از سرویس ورکرهای پایدار پشتیبانی کنیم. با این حال، برای رسیدگی به نیازهای خاص توسعهدهندگان افزونه، ما همچنان به پیشرفتهای زیادی در سرویس ورکرها ادامه میدهیم. به ویژه:
- تمام رویدادهای افزونه و فراخوانیهای API، طول عمر سرویس ورکر را افزایش میدهند.
- موارد استفاده منتخب مانند پیامرسانی بومی، کارکنان خدمات افزونهها را بیش از ۵ دقیقه فعال نگه میدارد.
س: آیا راهی برای دسترسی به DOM در سرویس ورکرها وجود دارد؟
الف) ما از رویکرد پلتفرم وب مبنی بر عدم لحاظ کردن دسترسی DOM در وب ورکرها (که شامل سرویس ورکرها نیز میشود) پیروی میکنیم. برای پشتیبانی از موارد استفادهای که نیاز به دسترسی پسزمینه به DOM از سرویس ورکرها دارند، امکان واگذاری کار پسزمینه به اسناد کوتاهمدت Offscreen که دسترسی کامل به DOM را فراهم میکنند، فراهم کردهایم.
س: آیا راهی برای پشتیبانی از کد از راه دور در Manifest V3 وجود خواهد داشت؟
الف) برای ایمنتر کردن افزونههای کروم، ما همچنان اجرای کد دلخواه میزبانیشده از راه دور را در افزونههای کروم ممنوع خواهیم کرد. با این حال، این بدان معنا نیست که ما انواع اجرای کد پویا را ممنوع میکنیم. ما همچنان از گزینههای مختلف اجرای پویای کد در افزونههای کروم پشتیبانی میکنیم:
- پشتیبانی از
eval()در افزونههای DevTools - پشتیبانی از اسکریپتهای کاربر
- اجرای کد میزبانی شده از راه دور در iframe های sandboxed
- فایلهای پیکربندی میزبانیشده از راه دور که میتوانند در زمان اجرا در بسته افزونه تفسیر شوند. با این حال، مسیرهای اجرایی ممکن باید از پیش تعیین شده باشند.
س: افزونه Manifest V2 من به webRequestBlocking متکی است که در Manifest V3 پشتیبانی نمیشود. چگونه میتوانم همان عملکرد را در Manifest V3 ارائه دهم؟
الف) ما مطمئن هستیم که اکثر موارد استفاده از مسدود کردن درخواست را میتوان با API جدید declarativeNetRequest حل کرد، که مزیت اضافی آن جلوگیری از سربار عملکرد ارتباطات بین فرآیندی، اجرای کد در هر درخواست یا نیاز به یک فرآیند توسعه فعال در زمان درخواست است. با این حال، برای موارد استفاده پیچیده سازمانی (یا آموزشی) ، مسدود کردن درخواست پویا هنوز پشتیبانی میشود.
آیا چیزی را از قلم انداختهایم؟ لطفاً به ما اطلاع دهید .