گوگل از نسخه مرورگر وب کروم 91 رونمایی کرد. همزمان، نسخه پایدار پروژه رایگان کرومیوم که اساس کروم است، در دسترس است. مرورگر کروم با استفاده از آرم های گوگل، وجود سیستمی برای ارسال اعلان ها در صورت خرابی، ماژول هایی برای پخش محتوای ویدیویی محافظت شده (DRM)، سیستمی برای نصب خودکار به روز رسانی ها و انتقال پارامترهای RLZ هنگام جستجو متمایز می شود. انتشار بعدی کروم 92 برای 20 جولای برنامه ریزی شده است.
تغییرات کلیدی در کروم 91:
- قابلیت توقف اجرای جاوا اسکریپت را در یک گروه برگه جمع شده پیاده سازی کرد. کروم ۸۵ پشتیبانی از سازماندهی برگهها را در گروههایی که میتوانند با یک رنگ و برچسب خاص مرتبط شوند، معرفی کرد. وقتی روی برچسب گروهی کلیک می کنید، برگه های مرتبط با آن جمع می شوند و به جای آن یک برچسب باقی می ماند (با کلیک مجدد روی برچسب، گروه باز می شود). در نسخه جدید، به منظور کاهش بار CPU و صرفه جویی در مصرف انرژی، فعالیت در تب های حداقل شده به حالت تعلیق درآمده است. فقط برای برگه هایی که صدا پخش می کنند، از Web Locks یا IndexedDB API استفاده می کنند، به یک دستگاه USB متصل می شوند، یا فیلم، صدا یا محتوای پنجره ضبط می کنند، استثنا قائل می شوند. این تغییر به تدریج و با درصد کمی از کاربران شروع می شود.
- شامل پشتیبانی از روش توافق کلیدی است که در برابر نیروی بی رحم در کامپیوترهای کوانتومی مقاوم است. کامپیوترهای کوانتومی در حل مشکل تجزیه یک عدد طبیعی به فاکتورهای اول، که زیربنای الگوریتمهای رمزگذاری نامتقارن مدرن است و نمیتوان آن را به طور موثر بر روی پردازندههای کلاسیک حل کرد، بسیار سریعتر عمل میکنند. برای استفاده در TLSv1.3، پلاگین CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2) ارائه شده است که مکانیزم تبادل کلید کلاسیک X25519 را با طرح HRSS بر اساس الگوریتم NTRU Prime که برای سیستم های رمزنگاری پس کوانتومی طراحی شده است، ترکیب می کند.
- پشتیبانی از پروتکل های TLS 1.0 و TLS 1.1 که توسط کمیته IETF (گروه وظیفه مهندسی اینترنت) منسوخ شده اند، به طور کامل متوقف شده است. از جمله امکان بازگرداندن TLS 1.0/1.1 با تغییر سیاست SSLVersionMin حذف شده است.
- مجموعههای پلتفرم لینوکس شامل استفاده از حالت «DNS over HTTPS» (DoH، DNS over HTTPS) است که قبلاً برای کاربران Windows، macOS، ChromeOS و Android ارائه شده بود. DNS-over-HTTPS به طور خودکار برای کاربرانی که تنظیمات آنها ارائه دهندگان DNS را مشخص می کند که از این فناوری پشتیبانی می کنند فعال می شود (برای DNS-over-HTTPS همان ارائه دهنده DNS استفاده می شود). به عنوان مثال، اگر کاربر DNS 8.8.8.8 را در تنظیمات سیستم مشخص کرده باشد، سرویس DNS-over-HTTPS Google ("https://dns.google.com/dns-query") در کروم فعال می شود اگر DNS 1.1.1.1 است، سپس سرویس DNS-over-HTTPS Cloudflare ("https://cloudflare-dns.com/dns-query") و غیره.
- پورت 10080 که در پشتیبان گیری آماندا و VMWare vCenter استفاده می شود به لیست پورت های شبکه ممنوعه اضافه شد. قبلاً پورتهای 69، 137، 161، 554، 1719، 1720، 1723، 5060، 5061 و 6566 مسدود شده بودند. برای پورتهای موجود در لیست سیاه، ارسال درخواستهای HTTP، HTTPS و FTP به منظور محافظت در برابر حملات NAT مسدود شده است. ، که به هنگام باز کردن یک صفحه وب که به طور ویژه توسط مهاجم در مرورگر آماده شده است، اجازه می دهد تا علی رغم استفاده از محدوده آدرس داخلی، یک اتصال شبکه از سرور مهاجم به هر پورت UDP یا TCP در سیستم کاربر برقرار کند (192.168.xx، 10). .xxx).
- هنگامی که کاربر به سیستم وارد می شود (ویندوز و macOS) می توان راه اندازی خودکار برنامه های کاربردی وب مستقل (PWA - برنامه های وب پیشرو) را پیکربندی کرد. Autorun در صفحه chrome://apps پیکربندی شده است. این عملکرد در حال حاضر روی درصد کمی از کاربران در حال آزمایش است و برای بقیه نیاز به فعال کردن تنظیمات "chrome://flags/#enable-desktop-pwas-run-on-os-login" دارد.
- به عنوان بخشی از کار برای انتقال مرورگر به استفاده از اصطلاحات فراگیر، فایل "master_preferences" به "initial_preferences" تغییر نام داده است. برای حفظ سازگاری، پشتیبانی از "master_preferences" برای مدتی در مرورگر باقی خواهد ماند. پیش از این، مرورگر قبلاً از استفاده از کلمات "لیست سفید"، "لیست سیاه" و "بومی" خلاص شده بود.
- حالت مرور ایمن پیشرفته، که بررسی های اضافی را برای محافظت در برابر فیشینگ، فعالیت های مخرب و سایر تهدیدات در وب فعال می کند، شامل امکان ارسال فایل های دانلود شده برای اسکن در سمت Google است. علاوه بر این، مرور ایمن پیشرفته حسابداری توکنهای مرتبط با حساب Google را هنگام شناسایی تلاشهای فیشینگ و همچنین ارسال مقادیر هدر Referrer به سرورهای Google برای بررسی بازارسال از یک سایت مخرب پیادهسازی میکند.
- در نسخه برای پلتفرم اندروید، طراحی عناصر فرم وب بهبود یافته است که برای استفاده در صفحات لمسی و سیستم های افراد دارای معلولیت بهینه شده است (برای سیستم های دسکتاپ، طراحی در کروم 83 دوباره انجام شده است). هدف از کار مجدد، یکسان سازی طراحی عناصر فرم و از بین بردن تناقضات سبک بود - قبلاً برخی از عناصر فرم مطابق با عناصر رابط سیستم عامل و برخی مطابق با محبوب ترین سبک ها طراحی می شدند. به همین دلیل، عناصر مختلف برای صفحه نمایش های لمسی و سیستم های افراد دارای معلولیت به طور متفاوتی مناسب بودند.
- یک نظرسنجی از کاربران اضافه شد که هنگام باز کردن تنظیمات جعبه ایمنی حریم خصوصی (chrome://settings/privacySandbox) نشان داده میشود.
- هنگام اجرای نسخه Android Chrome بر روی رایانه های لوحی با صفحه نمایش بزرگ، درخواست برای نسخه دسکتاپ سایت و نه نسخه برای دستگاه های تلفن همراه انجام می شود. میتوانید با استفاده از تنظیمات «chrome://flags/#request-desktop-site-for-tablets» رفتار را تغییر دهید.
- کد رندر جداول مجدداً کار شده است، که به ما امکان می دهد مشکلات مربوط به ناهماهنگی در رفتار را هنگام نمایش جداول در Chrome و Firefox/Safari حل کنیم.
- پردازش گواهیهای سرور از مرجع صدور گواهینامه اسپانیایی Camerfirma به دلیل حوادث مکرر از سال 2017 که شامل نقض در صدور گواهیها بود، متوقف شده است. پشتیبانی از گواهیهای مشتری حفظ میشود؛ مسدود کردن فقط برای گواهیهای مورد استفاده در سایتهای HTTPS اعمال میشود.
- ما به اجرای پشتیبانی از تقسیمبندی شبکه برای محافظت در برابر روشهای ردیابی حرکات کاربر بین سایتها بر اساس ذخیرهسازی شناسهها در مناطقی که برای ذخیره دائمی اطلاعات در نظر گرفته نشدهاند ("Supercookies") ادامه میدهیم. از آنجایی که منابع ذخیره شده در حافظه پنهان در یک فضای نام مشترک ذخیره می شوند، بدون توجه به دامنه اصلی، یک سایت می تواند با بررسی اینکه آیا آن منبع در حافظه نهان قرار دارد، تعیین کند که سایت دیگری در حال بارگیری منابع است. حفاظت مبتنی بر استفاده از تقسیمبندی شبکه (پارتیشنسازی شبکه) است، که ماهیت آن افزودن به حافظههای پنهان مشترک، اتصال اضافی رکوردها به دامنهای است که صفحه اصلی از آن باز میشود، که پوشش کش را فقط برای اسکریپتهای ردیابی حرکت محدود میکند. به سایت فعلی (اسکریپت یک iframe نمی تواند بررسی کند که آیا منبع از سایت دیگری دانلود شده است).
قیمت بخش بندی کاهش کارایی ذخیره سازی است که منجر به افزایش جزئی در زمان بارگذاری صفحه می شود (حداکثر 1.32٪، اما برای 80٪ از سایت ها 0.09-0.75٪). برای آزمایش حالت تقسیمبندی، میتوانید مرورگر را با گزینه «—enable-features=PartitionConnectionsByNetworkIsolationKey, PartitionExpectCTStateByNetworkIsolationKey, PartitionHttpServerPropertiesByNetworkIsolationKey, PartitionNelAndReportingLSSSsHeyNetworkIsolations,SpartitionNelAndReportingLSSsHeyNetworkst,S CacheByNet workIsolationKey".
- REST API خارجی VersionHistory (https://versionhistory.googleapis.com/v1/chrome) اضافه شد، که از طریق آن می توانید اطلاعاتی در مورد نسخه های Chrome در رابطه با پلتفرم ها و شعبه ها و همچنین تاریخچه به روز رسانی مرورگر دریافت کنید.
- در iframeهای بارگذاری شده از دامنههایی غیر از دامنه صفحه پایه، نمایش محاورههای جاوا اسکریپت alert()، confirm() و prompt() ممنوع است، که از کاربران در برابر تلاشهای یک اسکریپت شخص ثالث برای نمایش پیامها در زیر محافظت میکند. تصور کنید که اعلان توسط سایت اصلی نمایش داده شده است.
- WebAssembly SIMD API به طور پیش فرض برای استفاده از دستورالعمل های SIMD برداری در برنامه های با قالب WebAssembly تثبیت شده و ارائه شده است. برای اطمینان از استقلال پلت فرم، یک نوع 128 بیتی جدید را ارائه می دهد که می تواند انواع مختلف داده های بسته بندی شده و چندین عملیات برداری اساسی برای پردازش داده های بسته بندی شده را نشان دهد. SIMD به شما امکان می دهد با موازی سازی پردازش داده ها، بهره وری را افزایش دهید و هنگام کامپایل کدهای بومی در WebAssembly مفید خواهد بود.
- چندین API جدید به حالت Origin Trials (ویژگی های آزمایشی که نیاز به فعال سازی جداگانه دارند) اضافه شده است. Origin Trial به معنای توانایی کار با API مشخص شده از برنامه های دانلود شده از localhost یا 127.0.0.1 یا پس از ثبت نام و دریافت یک توکن خاص است که برای مدت محدودی برای یک سایت خاص معتبر است.
- WebTransport یک پروتکل و API جاوا اسکریپت همراه برای ارسال و دریافت داده بین مرورگر و سرور است. کانال ارتباطی در بالای HTTP/3 با استفاده از پروتکل QUIC به عنوان یک انتقال سازماندهی شده است، که به نوبه خود، یک افزونه برای پروتکل UDP است که از مالتی پلکس شدن چندین اتصال پشتیبانی می کند و روش های رمزگذاری معادل TLS/SSL را ارائه می دهد.
WebTransport را می توان به جای مکانیسم های WebSockets و RTCDataChannel استفاده کرد که ویژگی های اضافی مانند انتقال چند جریانی، جریان های یک طرفه، تحویل خارج از سفارش، حالت های تحویل قابل اعتماد و غیرقابل اطمینان را ارائه می دهد. علاوه بر این، WebTransport را می توان به جای مکانیزم Server Push که گوگل در کروم کنار گذاشته است، استفاده کرد.
- یک رابط اعلامی برای تعریف پیوندها به برنامه های کاربردی وب مستقل (PWA)، که با استفاده از پارامتر capture_links در مانیفست برنامه وب فعال می شود و به سایت ها اجازه می دهد به طور خودکار یک پنجره PWA جدید را با کلیک روی پیوند برنامه باز کنند یا به حالت تک پنجره ای تغییر کنند. مشابه برنامه های موبایل
- WebXR Plane Detection API اضافه شده است که اطلاعاتی در مورد سطوح مسطح در یک محیط سه بعدی مجازی ارائه می دهد. API مشخص شده این امکان را فراهم می کند که از پردازش منابع فشرده داده های به دست آمده از طریق فراخوانی MediaDevices.getUserMedia() با استفاده از پیاده سازی های اختصاصی الگوریتم های بینایی کامپیوتر جلوگیری شود. یادآوری می کنیم که WebXR API به شما امکان می دهد کار را با کلاس های مختلف دستگاه های واقعیت مجازی، از کلاه ایمنی سه بعدی تا راه حل های مبتنی بر دستگاه های تلفن همراه، یکسان کنید.
- WebTransport یک پروتکل و API جاوا اسکریپت همراه برای ارسال و دریافت داده بین مرورگر و سرور است. کانال ارتباطی در بالای HTTP/3 با استفاده از پروتکل QUIC به عنوان یک انتقال سازماندهی شده است، که به نوبه خود، یک افزونه برای پروتکل UDP است که از مالتی پلکس شدن چندین اتصال پشتیبانی می کند و روش های رمزگذاری معادل TLS/SSL را ارائه می دهد.
- پشتیبانی از کار با WebSockets از طریق HTTP/2 (RFC 8441) پیادهسازی شده است که فقط برای درخواستهای ایمن به WebSockets و در حضور یک اتصال HTTP/2 از قبل ایجاد شده با سرور معتبر است، که پشتیبانی از «WebSockets بیش از حد» را اعلام کرد. پسوند HTTP/2 اینچی.
- محدودیتهای مربوط به دقت مقادیر تایمر تولید شده توسط فراخوانی به performance.now() در تمام پلتفرمهای پشتیبانیشده سازگار است و پتانسیل جداسازی کنترلکنندهها در فرآیندهای جداگانه را در بر میگیرد. به عنوان مثال، در سیستم های دسکتاپ، دقت پردازش در زمینه های غیر ایزوله از 5 به 100 میکروثانیه کاهش یافته است.
- ساختهای دسکتاپ اکنون شامل توانایی خواندن فایلها از کلیپ بورد هستند (نوشتن فایلها در کلیپ بورد همچنان ممنوع است). تابع async onPaste(e) { let file = e.clipboardData.files[0]; let contents = await file.text(); }
- CSS قانون @counter-style را پیادهسازی میکند که به شما امکان میدهد استایل خود را برای شمارندهها و برچسبها در لیستهای شمارهدار تعریف کنید.
- شبه کلاس های CSS ":host()" و ":host-context()" توانایی ارسال مقادیر منفرد انتخابگرهای ترکیبی را اضافه کرده اند. ) علاوه بر لیست های انتخابگر ( ).
- اضافه شده رابط GravitySensor برای تعیین داده های حجمی (سه محور مختصات) از سنسور گرانش.
- File System Access API توانایی تعریف توصیه هایی برای انتخاب نام فایل و دایرکتوری ارائه شده در گفتگو برای ایجاد یا باز کردن یک فایل را فراهم می کند.
- اگر کاربر مجوزهای مناسب را اعطا کند، اگر فریمهای بارگیری شده از دامنههای دیگر، اجازه دسترسی به WebOTP API را دارند. WebOTP به شما امکان می دهد کدهای تأیید یک بار ارسال شده از طریق پیامک را بخوانید.
- به اشتراک گذاشتن دسترسی به اعتبار سایتهایی که با استفاده از مکانیسم DAL (پیوندهای دارایی دیجیتال) پیوند داده شدهاند، اجازه میدهد تا برنامههای Android با سایتها مرتبط شوند تا ورود را سادهتر کنند.
- کارگران سرویس اجازه استفاده از ماژول های جاوا اسکریپت را می دهند. هنگامی که هنگام فراخوانی سازنده، نوع «ماژول» را مشخص میکنید، اسکریپتهای مشخص شده در قالب ماژولها بارگیری میشوند و برای وارد کردن در بافت کارگر در دسترس هستند. پشتیبانی ماژول به اشتراک گذاری کد در صفحات وب و کارکنان خدمات را آسان می کند.
- جاوا اسکریپت امکان بررسی وجود فیلدهای خصوصی در یک شی را با استفاده از نحو "#foo in obj" فراهم می کند. class A { static test(obj) { console.log(#foo in obj); } #foo = 0; } A.test(new A()); // true A.test({}); // نادرست
- جاوا اسکریپت به طور پیشفرض امکان استفاده از کلمه کلیدی await را در ماژولها در سطح بالا فراهم میکند، که به تماسهای ناهمزمان اجازه میدهد تا به راحتی در فرآیند بارگیری ماژول ادغام شوند و از قرار دادن آنها در یک "عملکرد ناهمگام" اجتناب شود. به عنوان مثال، به جای (async function() { await Promise.resolve(console.log('test')); }()); اکنون می توانید await Promise.resolve(console.log('test')) را بنویسید.
- موتور V8 جاوا اسکریپت کارایی کش قالب را بهبود بخشیده است که سرعت قبولی در تست Speedometer4.5-FlightJS را تا 2 درصد افزایش داده است.
- بخش بزرگی از پیشرفت ها در ابزارهای توسعه دهندگان وب انجام شده است. یک حالت بازرس حافظه جدید اضافه شده است که ابزارهایی را برای بررسی داده های ArrayBuffer و حافظه Wasm ارائه می دهد.
یک شاخص عملکرد خلاصه به پنل Performance اضافه شده است که به شما امکان می دهد قضاوت کنید که آیا یک سایت به بهینه سازی نیاز دارد یا خیر.
پیش نمایش تصویر در پانل عناصر و پانل تجزیه و تحلیل شبکه اطلاعاتی درباره نسبت تصویر، گزینه های رندر و اندازه فایل ارائه می دهد.
در پنل بازرسی شبکه، اکنون امکان تغییر مقادیر پذیرفته شده هدر Content-Encoding وجود دارد.
در پانل سبک، اکنون می توانید با انتخاب «مشاهده مقدار محاسبه شده» در منوی زمینه، مقدار محاسبه شده را هنگام پیمایش در پارامترهای CSS به سرعت مشاهده کنید.
علاوه بر نوآوری ها و رفع اشکال، نسخه جدید 32 آسیب پذیری را از بین می برد. بسیاری از آسیبپذیریها در نتیجه آزمایش خودکار با استفاده از ابزارهای AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. هیچ مشکل مهمی شناسایی نشده است که به شخص اجازه می دهد تمام سطوح حفاظت مرورگر را دور بزند و کد را در سیستم خارج از محیط سندباکس اجرا کند. بهعنوان بخشی از برنامه پرداخت پاداش نقدی برای کشف آسیبپذیریها برای نسخه فعلی، Google 21 جایزه به ارزش 92000 دلار (یک جایزه 20000 دلاری، یک جایزه 15000 دلاری، چهار جایزه 7500 دلاری، سه جایزه 5000 دلاری، سه جایزه 3000 دلاری، دو جایزه 1000 و 500 دلاری پرداخت کرد. 5 دلار). اندازه XNUMX جایزه هنوز مشخص نشده است.
منبع: opennet.ru