گوگل از نسخه مرورگر وب کروم 93 رونمایی کرد. همزمان، نسخه پایدار پروژه رایگان کرومیوم که اساس کروم است، در دسترس است. مرورگر کروم با استفاده از آرم های گوگل، وجود سیستمی برای ارسال اعلان ها در صورت خرابی، ماژول هایی برای پخش محتوای ویدیویی محافظت شده (DRM)، سیستمی برای نصب خودکار به روز رسانی ها و انتقال پارامترهای RLZ هنگام جستجو متمایز می شود. نسخه بعدی کروم 94 برای 21 سپتامبر برنامه ریزی شده است (توسعه به چرخه انتشار 4 هفته ای منتقل شده است).
تغییرات کلیدی در کروم 93:
- طراحی بلوک با اطلاعات صفحه (اطلاعات صفحه) مدرن شده است که در آن پشتیبانی از بلوک های تودرتو پیاده سازی شده است و لیست های کشویی با حقوق دسترسی با سوئیچ ها جایگزین شده اند. لیست ها تضمین می کنند که مهم ترین اطلاعات ابتدا نمایش داده می شوند. این تغییر برای همه کاربران فعال نیست؛ برای فعال کردن آن، میتوانید از تنظیمات «chrome://flags/#page-info-version-2-desktop» استفاده کنید.
- برای درصد کمی از کاربران، به عنوان یک آزمایش، نشانگر اتصال ایمن در نوار آدرس با یک نماد خنثی تر جایگزین شد که باعث تفسیر مضاعف نمی شود (قفل با علامت "V" جایگزین شد). برای اتصالاتی که بدون رمزگذاری ایجاد شده اند، نشانگر "ایمن نیست" همچنان نمایش داده می شود. دلیل ذکر شده برای جایگزینی نشانگر این است که بسیاری از کاربران نشانگر قفل را با این واقعیت مرتبط میکنند که میتوان به محتوای سایت اعتماد کرد، نه اینکه آن را نشانهای از رمزگذاری شده بودن اتصال بدانند. با قضاوت بر اساس نظرسنجی گوگل، تنها 11 درصد از کاربران معنای نماد قفل را درک می کنند.
- فهرست برگههایی که اخیراً بسته شده است، اکنون محتویات گروههای بسته شده از برگهها را نشان میدهد (قبلاً لیست به سادگی نام گروه را بدون جزئیات محتویات نشان میداد) با قابلیت بازگرداندن کل گروه و برگههای فردی به طور همزمان از گروه. این ویژگی برای همه کاربران فعال نیست، بنابراین ممکن است لازم باشد تنظیمات "chrome://flags/#tab-restore-sub-menus" را برای فعال کردن آن تغییر دهید.
- برای شرکتها، تنظیمات جدیدی پیادهسازی شده است: DefaultJavaScriptJitSetting، JavaScriptJitAllowedForSites و JavaScriptJitBlockedForSites، که به شما امکان میدهد حالت JIT-less را کنترل کنید، که استفاده از کامپایل JIT را هنگام اجرای جاوا اسکریپت غیرفعال میکند (فقط مفسر Ignition قابل استفاده است) حافظه در هنگام اجرای کد غیرفعال کردن JIT می تواند برای بهبود امنیت کار با برنامه های کاربردی وب بالقوه خطرناک به قیمت کاهش عملکرد اجرای جاوا اسکریپت تا حدود 17٪ مفید باشد. شایان ذکر است که مایکروسافت پا را فراتر گذاشته و حالت آزمایشی "Super Duper Secure" را در مرورگر Edge پیاده سازی کرده است که به کاربر امکان می دهد JIT را غیرفعال کرده و مکانیسم های امنیتی سخت افزاری غیر سازگار با JIT CET (Controlflow-Enforcement Technology)، ACG (Arbitrary) را فعال کند. Code Guard) و CFG (Control Flow Guard) برای پردازش های پردازش محتوای وب. اگر آزمایش موفقیت آمیز باشد، می توانیم انتظار داشته باشیم که به قسمت اصلی کروم منتقل شود.
- صفحه برگه جدید فهرستی از محبوب ترین اسناد ذخیره شده در Google Drive را ارائه می دهد. محتویات لیست مربوط به بخش اولویت در drive.google.com است. برای کنترل نمایش محتوای Google Drive، میتوانید از تنظیمات «chrome://flags/#ntp-modules» و «chrome://flags/#ntp-drive-module» استفاده کنید.
- کارتهای اطلاعات جدیدی به صفحه باز کردن برگه جدید اضافه شدهاند تا به شما کمک کنند محتوایی که اخیراً مشاهده کردهاید و اطلاعات مرتبط را پیدا کنید. این کارتها به گونهای طراحی شدهاند که ادامه کار با اطلاعاتی را که مشاهده آنها قطع شده است، آسانتر میکنند، به عنوان مثال، کارتها به شما کمک میکنند دستور غذائی را پیدا کنید که اخیراً در اینترنت پیدا شده است اما پس از بستن صفحه گم شده است، یا به ساختن ادامه دهید. خرید در فروشگاه ها به عنوان یک آزمایش، به کاربران دو نقشه جدید ارائه میشود: «دستور پختها» (chrome://flags/#ntp-recipe-tasks-module) برای جستجوی دستورهای آشپزی و نشان دادن دستور العملهایی که اخیراً مشاهده شدهاند. «خرید» (chrome://flags/#ntp-chrome-cart-module) برای یادآوری محصولات انتخابشده در فروشگاههای آنلاین.
- نسخه اندروید پشتیبانی اختیاری را برای پانل جستجوی مداوم اضافه می کند (chrome://flags/#continuous-search)، که به شما امکان می دهد نتایج جستجوی اخیر Google را قابل مشاهده نگه دارید (پانل پس از انتقال به صفحات دیگر نتایج را نشان می دهد).
- یک حالت اشتراکگذاری نقل قول آزمایشی به نسخه اندروید (chrome://flags/#webnotes-stylize) اضافه شده است که به شما امکان میدهد یک قطعه انتخاب شده از یک صفحه را به عنوان نقل قول ذخیره کنید و آن را با سایر کاربران به اشتراک بگذارید.
- هنگام انتشار نسخههای اضافه شده یا بهروزرسانیهای جدید در فروشگاه وب Chrome، تأیید توسعهدهنده دو مرحلهای اکنون لازم است.
- کاربران حساب Google این گزینه را دارند که اطلاعات پرداخت را در حساب Google خود ذخیره کنند.
- در حالت ناشناس، اگر گزینه پاک کردن دادههای ناوبری فعال باشد، یک گفتگوی تأیید عملیات جدید پیادهسازی شده است که توضیح میدهد پاک کردن دادهها پنجره را بسته و تمام جلسات را در حالت ناشناس پایان میدهد.
- به دلیل ناسازگاریهای شناسایی شده با سیستمافزار برخی از دستگاهها، پشتیبانی از روش توافق کلید جدید به Chrome 91، مقاوم در برابر حدس زدن در رایانههای کوانتومی، بر اساس استفاده از پسوند CECPQ1.3 (Combined Elliptic-Curve and Post-Quantum 2) اضافه شده است. TLSv2، ترکیبی از مکانیزم تبادل کلید کلاسیک X25519 با یک طرح HRSS بر اساس الگوریتم NTRU Prime که برای سیستمهای رمزنگاری پس کوانتومی طراحی شده است.
- پورت های 989 (ftps-data) و 990 (ftps) به تعداد پورت های ممنوعه شبکه اضافه شده اند تا از حمله ALPACA جلوگیری کنند. پیش از این، به منظور محافظت در برابر حملات slipstreaming NAT، پورت های 69، 137، 161، 554، 1719، 1720، 1723، 5060، 5061، 6566 و 10080 مسدود شده بودند.
- TLS دیگر رمزهای مبتنی بر الگوریتم 3DES را پشتیبانی نمی کند. به طور خاص، مجموعه رمز TLS_RSA_WITH_3DES_EDE_CBC_SHA، که در معرض حمله Sweet32 است، حذف شده است.
- پشتیبانی از اوبونتو 16.04 متوقف شده است.
- امکان استفاده از WebOTP API بین دستگاه های مختلف متصل از طریق یک حساب مشترک Google وجود دارد. WebOTP به یک برنامه وب اجازه می دهد تا کدهای تأیید یک بار ارسال شده از طریق پیامک را بخواند. تغییر پیشنهادی دریافت کد تأیید را در دستگاه تلفن همراه دارای Chrome برای Android و اعمال آن در یک سیستم دسکتاپ امکان پذیر می کند.
- User-Agent Client Hints API گسترش یافته است و به عنوان جایگزینی برای سربرگ User-Agent توسعه یافته است. User-Agent Client Hints به شما امکان می دهد تحویل انتخابی داده ها را در مورد پارامترهای خاص مرورگر و سیستم (نسخه، پلت فرم و غیره) تنها پس از درخواست سرور سازماندهی کنید. کاربر به نوبه خود می تواند تعیین کند که چه اطلاعاتی را می توان در اختیار صاحبان سایت قرار داد. هنگام استفاده از User-Agent Client Hints، شناسه مرورگر بدون درخواست صریح منتقل نمیشود و به طور پیشفرض فقط پارامترهای اساسی مشخص میشوند که شناسایی غیرفعال را دشوار میکند.
نسخه جدید از پارامتر Sec-CH-UA-Bitness برای برگرداندن اطلاعات مربوط به بیتی پلتفرم پشتیبانی می کند، که می تواند برای ارائه فایل های باینری بهینه سازی شده استفاده شود. به طور پیش فرض، پارامتر Sec-CH-UA-Platform همراه با اطلاعات کلی پلت فرم ارسال می شود. مقدار UADataValues که هنگام فراخوانی getHighEntropyValues() برگردانده میشود بهطور پیشفرض برای برگرداندن پارامترهای تعمیمیافته در صورت غیرممکن بودن بازگرداندن یک گزینه دقیق پیادهسازی میشود. متد toJSON به شی NavigatorUAData اضافه شده است که به شما امکان می دهد از ساختارهایی مانند JSON.stringify(navigator.userAgentData) استفاده کنید.
- توانایی بسته بندی منابع در بسته ها در قالب Web Bundle، مناسب برای سازماندهی بارگذاری کارآمدتر تعداد زیادی از فایل های همراه (سبک های CSS، جاوا اسکریپت، تصاویر، iframes)، تثبیت شده و به طور پیش فرض ارائه شده است. از جمله کاستیهای موجود در پشتیبانی موجود از بستهها برای فایلهای جاوا اسکریپت (پک وب)، که Web Bundle در تلاش است تا آنها را برطرف کند: خود بسته، اما نه اجزای آن، میتواند در کش HTTP ختم شود. کامپایل و اجرا فقط پس از دانلود کامل بسته می تواند شروع شود. منابع اضافی مانند CSS و تصاویر باید در قالب رشته های جاوا اسکریپت کدگذاری شوند، که اندازه را افزایش می دهد و به مرحله تجزیه دیگری نیاز دارد.
- WebXR Plane Detection API گنجانده شده است که اطلاعاتی در مورد سطوح مسطح در یک محیط سه بعدی مجازی ارائه می دهد. API مشخص شده این امکان را فراهم می کند که از پردازش منابع فشرده داده های به دست آمده از طریق فراخوانی MediaDevices.getUserMedia() با استفاده از پیاده سازی های اختصاصی الگوریتم های بینایی کامپیوتر جلوگیری شود. یادآوری می کنیم که WebXR API به شما امکان می دهد کار را با کلاس های مختلف دستگاه های واقعیت مجازی، از کلاه ایمنی سه بعدی تا راه حل های مبتنی بر دستگاه های تلفن همراه، یکسان کنید.
- چندین API جدید به حالت Origin Trials (ویژگی های آزمایشی که نیاز به فعال سازی جداگانه دارند) اضافه شده است. Origin Trial به معنای توانایی کار با API مشخص شده از برنامه های دانلود شده از localhost یا 127.0.0.1 یا پس از ثبت نام و دریافت یک توکن خاص است که برای مدت محدودی برای یک سایت خاص معتبر است.
- API قرار دادن پنجره چند صفحه ای پیشنهاد شده است که به شما امکان می دهد پنجره ها را بر روی هر صفحه نمایش متصل به سیستم فعلی قرار دهید، همچنین موقعیت پنجره را ذخیره کنید و در صورت لزوم، پنجره را به تمام صفحه گسترش دهید. به عنوان مثال، با استفاده از API مشخص شده، یک برنامه وب برای نمایش یک ارائه می تواند نمایش اسلایدها را در یک صفحه سازماندهی کند و یک یادداشت را برای ارائه کننده در صفحه دیگر نمایش دهد.
- هدر Cross-Origin-Embedder-Policy که حالت جداسازی Cross-Origin را کنترل می کند و به شما امکان می دهد قوانین استفاده ایمن را در صفحه عملیات ممتاز تعریف کنید، اکنون از یک پارامتر "Credentialless" برای غیرفعال کردن انتقال اطلاعات مربوط به اعتبارنامه مانند کوکی ها و گواهی های مشتری
- برای برنامههای وب مستقل (PWA، برنامههای وب پیشرو) که نمایش محتویات پنجره را کنترل میکنند و ورودی را کنترل میکنند، یک پوشش با کنترلهای پنجره، مانند نوار عنوان و دکمههای گسترش/جمع کردن، ارائه میشود. یک پوشش، ناحیه قابل ویرایش را گسترش می دهد تا کل پنجره را پوشش دهد و به شما امکان می دهد عناصر خود را به ناحیه عنوان اضافه کنید.
- قابلیت ایجاد برنامه های کاربردی PWA که می توانند به عنوان کنترل کننده URL استفاده شوند اضافه شده است. به عنوان مثال، برنامه music.example.com می تواند خود را به عنوان یک مدیریت URL https://*.music.example.com ثبت کند و تمام انتقالات از برنامه های خارجی با استفاده از این پیوندها، به عنوان مثال، از پیام رسان های فوری و مشتریان ایمیل، منجر می شود به باز کردن این برنامه های PWA-، نه یک برگه مرورگر جدید.
- بارگیری فایل های CSS با استفاده از عبارت "وارد کردن"، مشابه بارگیری ماژول های جاوا اسکریپت، امکان پذیر است، که هنگام ایجاد عناصر خود راحت است و به شما امکان می دهد بدون اختصاص سبک با استفاده از کد جاوا اسکریپت انجام دهید. وارد کردن برگه از './styles.css' assert { type: 'css' }; document.adoptedStyleSheets = [ورق]; shadowRoot.adoptedStyleSheets = [ورق];
- یک متد استاتیک جدید به نام ()AbortSignal.abort ارائه شده است که یک شی AbortSignal را که قبلاً روی سقط تنظیم شده است برمی گرداند. به جای چندین خط کد برای ایجاد یک آبجکت AbortSignal در حالت سقط شده، اکنون می توانید با یک خط "return AbortSignal.abort()" به نتیجه برسیم.
- عنصر Flexbox پشتیبانی از کلیدواژه های شروع، پایان، خود شروع، خود پایان، چپ و راست را اضافه کرده است و کلیدواژه های مرکزی، فلکس-شروع و فلکس-انت را با ابزارهایی برای تراز ساده موقعیت عناصر فلکس تکمیل می کند.
- سازنده Error() یک ویژگی اختیاری «cause» را پیاده سازی می کند که به شما امکان می دهد به راحتی خطاها را با یکدیگر مرتبط کنید. const parentError = new Error('parent'); const error = new Error('parent', { shkak: parentError }); console.log(error.cause === parentError); // → درست است
- پشتیبانی از حالت noplaybackrate به ویژگی HTMLMediaElement.controlsList اضافه شده است، که به شما امکان می دهد عناصر رابط ارائه شده در مرورگر را غیرفعال کنید تا سرعت پخش محتوای چندرسانه ای را تغییر دهید.
- هدر Sec-CH-Prefers-Color-Scheme اضافه شد، که در مرحله ارسال درخواست، اجازه می دهد تا داده های مربوط به طرح رنگ مورد نظر کاربر را که در پرس و جوهای رسانه ای "ترجیح می دهد-رنگ-طرح" استفاده می شود، منتقل کند، که به سایت اجازه می دهد تا بهینه سازی کند. بارگذاری CSS مرتبط با طرح انتخاب شده و اجتناب از سوئیچ های قابل مشاهده از طرح های دیگر.
- ویژگی Object.hasOwn را اضافه کرد که یک نسخه ساده شده از Object.prototype.hasOwnProperty است که به عنوان یک روش ثابت پیاده سازی شده است. Object.hasOwn({ prop: 42 }, 'prop') // → true
- کامپایلر JIT Sparkplug که برای کامپایل بسیار سریع brute-force طراحی شده است، یک حالت اجرای دسته ای اضافه کرده است تا سربار تغییر صفحات حافظه بین حالت های نوشتن و اجرا را کاهش دهد. Sparkplug اکنون چندین تابع را به طور همزمان کامپایل می کند و یکبار mprotect را برای تغییر مجوزهای کل گروه فراخوانی می کند. حالت پیشنهادی به طور قابل توجهی زمان کامپایل (تا 44٪) را بدون تأثیر منفی بر عملکرد اجرای جاوا اسکریپت کاهش می دهد.
- نسخه اندروید، حفاظت داخلی موتور V8 را در برابر حملات کانال جانبی مانند Spectre غیرفعال می کند، که به اندازه ایزوله کردن سایت ها در فرآیندهای جداگانه موثر نیستند. در نسخه دسکتاپ، این مکانیسمها در نسخه Chrome 70 غیرفعال شدند. غیرفعال کردن بررسیهای غیرضروری باعث افزایش عملکرد 2-15% میشود.
- بهبودهایی در ابزارهای توسعه دهندگان وب ایجاد شده است. در حالت بازرسی شیوه نامه، امکان ویرایش کوئری های ایجاد شده با استفاده از عبارت @container وجود دارد. در حالت بازرسی شبکه، پیش نمایشی از منابع در قالب بسته وب پیاده سازی می شود. در کنسول وب، گزینه هایی برای کپی رشته ها در قالب جاوا اسکریپت یا JSON literals به منوی زمینه اضافه شده است. بهبود اشکال زدایی خطاهای مرتبط با CORS (Cross-Origin Resource Sharing).
علاوه بر نوآوری ها و رفع اشکال، نسخه جدید 27 آسیب پذیری را از بین می برد. بسیاری از آسیبپذیریها در نتیجه آزمایش خودکار با استفاده از ابزارهای AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. هیچ مشکل مهمی شناسایی نشده است که به شخص اجازه می دهد تمام سطوح حفاظت مرورگر را دور بزند و کد را در سیستم خارج از محیط سندباکس اجرا کند. بهعنوان بخشی از برنامه پرداخت پاداش نقدی برای کشف آسیبپذیریها برای نسخه فعلی، Google 19 جایزه به ارزش 136500 دلار (سه جایزه 20000 دلاری، یک جایزه 15000 دلاری، سه جایزه 10000 دلاری، یک جایزه 7500 دلاری، سه جایزه 5000 دلاری و سه جایزه 3000 دلاری) پرداخت کرد. اندازه 5 جایزه هنوز مشخص نشده است.
منبع: opennet.ru