گوگل از نسخه مرورگر وب کروم 101 رونمایی کرد. همزمان، نسخه پایدار پروژه رایگان کرومیوم که اساس کروم است در دسترس است. تفاوت مرورگر کروم با کرومیوم در استفاده از لوگوهای گوگل، وجود سیستمی برای ارسال اعلان ها در صورت خرابی، ماژول هایی برای پخش محتوای ویدئویی محافظت شده از کپی (DRM)، سیستمی برای نصب خودکار به روز رسانی ها، فعال کردن دائمی ایزوله Sandbox. ، کلیدهایی را برای Google API ارائه می دهد و پارامترهای RLZ- را هنگام جستجو ارسال می کند. برای کسانی که به زمان بیشتری برای بهروزرسانی نیاز دارند، یک شاخه Extended Stable جداگانه وجود دارد و پس از آن 8 هفته بهروزرسانی میشود که نسخه قبلی Chrome 100 را تشکیل میدهد. نسخه بعدی Chrome 102 برای 24 می برنامهریزی شده است.
تغییرات کلیدی در کروم 101:
- اضافه شدن تابع جستجوی جانبی، که امکان مشاهده نتایج جستجو در نوار کناری همزمان با مشاهده صفحه دیگر را فراهم می کند (در یک پنجره می توانید هم محتویات صفحه و هم نتیجه دسترسی به موتور جستجو را به طور همزمان مشاهده کنید). پس از رفتن به سایتی از صفحه ای با نتایج جستجو در گوگل، نمادی با حرف "G" در مقابل فیلد ورودی در نوار آدرس ظاهر می شود؛ وقتی روی آن کلیک می کنید، یک پانل کناری با نتایج قبلی باز می شود. جستجو انجام شد بهطور پیشفرض، این عملکرد در همه سیستمها فعال نیست؛ برای فعال کردن آن، میتوانید از تنظیمات «chrome://flags/#side-search» استفاده کنید.
- نوار آدرس Omnibox اجرای پیش نمایش محتوای توصیه های ارائه شده در حین تایپ را اجرا می کند. پیش از این، برای سرعت بخشیدن به انتقال از نوار آدرس، محتمل ترین توصیه ها برای انتقال بدون انتظار برای کلیک کاربر، با استفاده از تماس Prefetch بارگیری می شد. در حال حاضر، علاوه بر بارگذاری، آنها همچنین در بافر رندر می شوند (از جمله اسکریپت ها اجرا می شوند و درخت DOM تشکیل می شود)، که امکان نمایش فوری توصیه ها را پس از یک کلیک فراهم می کند. برای کنترل رندر پیشگو، تنظیمات «chrome://flags/#enable-prerender2»، «chrome://flags/#omnibox-trigger-for-prerender2» و «chrome://flags/#search-suggestion-for -" پیشنهاد می شوند. prerender2".
- اطلاعات موجود در سرصفحه User-Agent HTTP و پارامترهای جاوا اسکریپت navigator.userAgent، navigator.appVersion و navigator.platform کوتاه شده است. هدر فقط حاوی اطلاعاتی در مورد نام مرورگر، نسخه مهم مرورگر (قطعات نسخه MINOR.BUILD.PATCH با 0.0.0 جایگزین شده است)، پلت فرم و نوع دستگاه (تلفن همراه، رایانه شخصی، تبلت) است. برای به دست آوردن داده های اضافی، مانند نسخه دقیق و داده های پلتفرم توسعه یافته، باید از User Agent Client Hints API استفاده کنید. برای سایتهایی که اطلاعات جدید کافی ندارند و هنوز آماده تغییر به نکات مشتری عامل کاربر نیستند، تا می 2023 فرصت دارند تا کاربر-عامل کامل را برگردانند.
- رفتار تابع setTimeout را هنگام ارسال آرگومان صفر تغییر داد که تأخیر تماس را تعیین می کند. با شروع Chrome 101، هنگام تعیین "setTimeout(…, 0)" کد بلافاصله فراخوانی می شود، بدون 1 میلی ثانیه تاخیر همانطور که در مشخصات لازم است. برای تماسهای مکرر setTimeout تو در تو، تأخیر 4 میلیثانیه اعمال میشود.
- نسخه برای پلتفرم Android از درخواست مجوز برای نمایش اعلان ها پشتیبانی می کند (در Android 13 برای نمایش اعلان ها، برنامه باید مجوز "POST_NOTIFICATIONS" را داشته باشد که بدون آن ارسال اعلان ها مسدود می شود). هنگام راهاندازی Chrome در محیط Android 13، مرورگر اکنون از شما میخواهد مجوزهای اعلان را دریافت کنید.
- امکان استفاده از WebSQL API در اسکریپت های شخص ثالث حذف شده است. بهطور پیشفرض، مسدود کردن WebSQL در اسکریپتهایی که از سایت فعلی بارگیری نشدهاند در Chrome 97 فعال بود، اما گزینهای برای غیرفعال کردن این رفتار باقی مانده بود. کروم 101 این گزینه را حذف می کند. در آینده، ما قصد داریم به تدریج پشتیبانی از WebSQL را بدون توجه به زمینه استفاده به طور کامل متوقف کنیم. توصیه می شود به جای WebSQL از Web Storage و API های پایگاه داده نمایه شده استفاده کنید. موتور WebSQL مبتنی بر کد SQLite است و می تواند توسط مهاجمان برای سوء استفاده از آسیب پذیری ها در SQLite استفاده شود.
- نامهای خطمشی سازمانی (chrome://policy) که حاوی عبارات غیر فراگیر بودند حذف شد. از Chrome 86، خطمشیهای جایگزینی برای این خطمشیها پیشنهاد شده است که از اصطلاحات فراگیر استفاده میکنند. اصطلاحاتی مانند "لیست سفید"، "لیست سیاه"، "بومی" و "مستر" پاکسازی شده اند. به عنوان مثال، خط مشی URLBlacklist به URLBlocklist، AutoplayWhitelist به AutoplayAllowlist و NativePrinters به Printers تغییر نام داده است.
- در حالت Origin Trials (ویژگیهای آزمایشی که نیاز به فعالسازی جداگانه دارند)، آزمایش API مدیریت اعتبار فدرال (FedCM) تاکنون فقط در مجموعههای پلتفرم Android آغاز شده است، که به شما امکان میدهد خدمات هویتی یکپارچه ایجاد کنید که حریم خصوصی را تضمین میکند و بدون متقاطع کار میکند. مکانیسم های ردیابی سایت، مانند پردازش کوکی های شخص ثالث. Origin Trial به معنای توانایی کار با API مشخص شده از برنامه های دانلود شده از localhost یا 127.0.0.1 یا پس از ثبت نام و دریافت یک توکن خاص است که برای مدت محدودی برای یک سایت خاص معتبر است.
- مکانیسم نکات اولویت تثبیت شده و به همه ارائه شده است و به شما این امکان را میدهد که اهمیت یک منبع دانلود شده خاص را با مشخص کردن ویژگی «اهمیت» اضافی در برچسبهایی مانند iframe، img و لینک تعیین کنید. این ویژگی می تواند مقادیر "auto" و "low" و "high" را بگیرد که بر ترتیب بارگیری منابع خارجی توسط مرورگر تأثیر می گذارد.
- ویژگی AudioContext.outputLatency اضافه شده است که از طریق آن می توانید اطلاعات مربوط به تاخیر پیش بینی شده قبل از خروجی صدا (تأخیر بین درخواست صدا و شروع پردازش داده های دریافتی توسط دستگاه خروجی صدا) را پیدا کنید.
- ویژگی CSS font-palette و قانون @font-palette-values اضافه شده است که به شما امکان می دهد یک پالت را از یک فونت رنگی انتخاب کنید یا پالت خود را تعریف کنید. برای مثال، از این قابلیت میتوان برای تطبیق فونتهای کاراکتر یا شکلکهای رنگی با رنگ محتوا یا فعال کردن حالت تاریک یا روشن برای یک فونت استفاده کرد.
- تابع hwb() CSS اضافه شد، که روشی جایگزین برای تعیین رنگهای sRGB در قالب HWB (Hue، Whiteness، Blackness)، مشابه فرمت HSL (Hue، Saturation، Lightness) ارائه میکند، اما برای درک انسان آسانتر است.
- در متد window.open()، مشخص کردن ویژگی popup در خط windowFeatures، بدون اختصاص یک مقدار (یعنی زمانی که صرفاً به جای popup=true مشخص میشود) بهعنوان فعال کردن باز کردن یک پنجره بازشو مینیاتوری (مشابه با " تلقی میشود. popup=true") به جای آن مقدار پیش فرض "false" را اختصاص می دهد که برای توسعه دهندگان غیرمنطقی و گمراه کننده بود.
- MediaCapabilities API که اطلاعاتی درباره قابلیتهای دستگاه و مرورگر برای رمزگشایی محتوای چندرسانهای (کدکهای پشتیبانی شده، پروفایلها، نرخ بیت و وضوح تصویر) ارائه میکند، پشتیبانی از جریانهای WebRTC را اضافه کرده است.
- نسخه سومی از Secure Payment Confirmation API پیشنهاد شده است که ابزارهایی را برای تأیید اضافی تراکنش پرداخت در حال انجام ارائه می دهد. نسخه جدید پشتیبانی از شناسه هایی را اضافه می کند که نیاز به ورود داده ها دارند، تعریف نمادی برای نشان دادن عدم موفقیت در تأیید، و ویژگی payeeName اختیاری.
- برای لغو مجوزهایی که قبلاً توسط کاربر برای دسترسی به یک دستگاه USB اعطا شده بود، متد ()forget را به API USBDevice اضافه کرد. علاوه بر این، نمونههای USBConfiguration، USBInterface، USBAlternateInterface، و USBEndpoint اکنون در صورت مقایسه دقیق ("==="، اشاره به همان شی) برابر هستند، اگر برای همان شی USBDevice برگردانده شوند.
- بهبودهایی در ابزارهای توسعه دهندگان وب ایجاد شده است. امکان وارد کردن و صادرات کنشهای کاربر ثبتشده در قالب JSON ارائه شده است (مثال). محاسبه و نمایش خصوصیات خصوصی در کنسول وب و رابط مشاهده کد بهبود یافته است. پشتیبانی برای کار با مدل رنگی HWB اضافه شده است. قابلیت مشاهده لایه های آبشاری تعریف شده با استفاده از قانون لایه @ در پنل CSS اضافه شده است.
علاوه بر نوآوری ها و رفع اشکال، نسخه جدید 30 آسیب پذیری را از بین می برد. بسیاری از آسیبپذیریها در نتیجه آزمایش خودکار با استفاده از ابزارهای AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. هیچ مشکل مهمی شناسایی نشده است که به شخص اجازه می دهد تمام سطوح حفاظت مرورگر را دور بزند و کد را در سیستم خارج از محیط سندباکس اجرا کند. به عنوان بخشی از برنامه پاداش نقدی برای کشف آسیبپذیریها برای نسخه فعلی، گوگل 25 جایزه به ارزش 81 هزار دلار (یک جایزه 10000 دلاری، سه جایزه 7500 دلاری، سه جایزه 7000 دلاری، یک جایزه 6000 دلاری، دو جایزه 5000 دلاری، چهار جایزه 2000 دلاری، سه جایزه پرداخت کرد. 1000 دلار و یک جایزه 500 دلاری). اندازه 6 جایزه هنوز مشخص نشده است.
منبع: opennet.ru