گوگل مرورگر وب کروم ۱۳۶ را منتشر کرد. همزمان، نسخه پایدار پروژه رایگان کرومیوم که اساس کروم است، در دسترس قرار گرفته است. مرورگر کروم با کرومیوم متفاوت است، از این نظر که از لوگوهای گوگل استفاده میکند، سیستمی برای ارسال اعلانها در صورت خرابی دارد، ماژولهایی برای پخش محتوای ویدیویی محافظتشده در برابر کپی (DRM) دارد، سیستم نصب خودکار بهروزرسانی دارد، همیشه ایزولهسازی Sandbox را فعال میکند، کلیدهایی را برای API گوگل فراهم میکند و پارامترهای RLZ را هنگام جستجو منتقل میکند. برای کسانی که به زمان بیشتری برای بهروزرسانی نیاز دارند، یک شاخه جداگانه Extended Stable وجود دارد که به مدت ۸ هفته پشتیبانی میشود. نسخه بعدی، کروم ۱۳۷، برای ۲۷ مه برنامهریزی شده است.
تغییرات کلیدی در کروم ۱۴۷ (۱، ۲، ۳، ۴):
- حالت نمایش عمودی تبها اضافه شده است و نوار افقی بالا را با دکمههای تب جایگزین کرده و یک نوار کناری با تبهای عمودی ایجاد کرده است. تبهای عمودی را میتوان در حالتهای باز (آیکون + توضیحات جزئی) یا جمع شده (فقط آیکن) نمایش داد. با نگه داشتن ماوس روی یک تب کناری، یک تصویر کوچک از محتوای آن نمایش داده میشود. مدیریت گروههای تب سادهتر شده است. گزینه "نمایش عمودی تبها" به منوی زمینه اضافه شده است که هنگام کلیک راست روی ردیف تبها ظاهر میشود. اگر این گزینه به طور پیشفرض نمایش داده نمیشود، میتوان آن را از طریق تنظیم "chrome://flags/#vertical-tabs" فعال کرد.
- حالت مطالعه (Reading Mode) دوباره طراحی شده است تا فقط متن مرتبط در صفحه نمایش داده شود و تمام کنترلهای مرتبط، بنرها، منوها، نوارهای ناوبری و سایر بخشهای غیرمرتبط با محتوا در صفحه پنهان شوند. در نسخه جدید، مشابه فایرفاکس، محتوای مرتبط در کل ناحیه قابل مشاهده نمایش داده میشود، نه در یک نوار کناری باریک در کنار صفحه اصلی. اگر حالت جدید به طور پیشفرض فعال نباشد، میتوان آن را از طریق تنظیمات "chrome://flags/#read-anything-immersive-reading-mode" فعال کرد.
- دکمهای به منوی «راهنما» اضافه شده است که برای ارسال شکایت جهت مسدود کردن صفحات وب ایجاد شده برای کلاهبرداری یا فیشینگ کاربرد دارد. این دکمه هنگام فعال بودن حالت «مرور ایمن» نمایش داده میشود.
- محافظت گسترده در برابر دسترسی به سیستم محلی هنگام تعامل با وبسایتهای عمومی. دسترسی از وبسایتها به آدرسهای IP شبکه محلی (آدرسهای اینترانت یا داخلی) یا رابط loopback (127.0.0.0/8) نیاز به تأیید کاربر خواهد داشت. اکنون محافظت نه تنها تلاش برای بارگیری منابع از طریق HTTP/HTTPS، درخواستهای fetch() و درج iframe را پوشش میدهد، بلکه اتصالات از طریق WebSockets و WebTransport و همچنین درخواستهای fetch آغاز شده از طریق متد WindowClient.navigate() را نیز در بر میگیرد. مهاجمان از دسترسی به منابع داخلی برای شناسایی غیرمستقیم و انجام حملات CSRF به روترها، نقاط دسترسی، چاپگرها، رابطهای وب شرکتی و سایر دستگاهها و خدماتی که فقط درخواستهای شبکه محلی را میپذیرند، سوءاستفاده میکنند.
- قابلیت تجزیه XML از libxml2 به یک کتابخانه جدید نوشته شده در Rust با در نظر گرفتن امنیت منتقل شده است. این تغییر فقط برای XML اعمال میشود؛ همانطور که قبلاً اعلام شد، پشتیبانی از XSLT به زودی منسوخ خواهد شد.
- اکنون میتوان از متد startViewTransition() نه تنها برای کل صفحه، بلکه برای عناصر HTML به صورت جداگانه نیز استفاده کرد.
- تابع ()contrast-color در CSS اضافه شده است. این تابع متضاد رنگ مشخص شده را برمیگرداند (برای سفید، مشکی و برای مشکی، سفید را برمیگرداند). این تابع میتواند برای تطبیق رنگ پسزمینه با یک رنگ متن خاص و برعکس استفاده شود.
- ویژگی CSS "border-shape" اضافه شده است که به شما امکان میدهد حاشیههای غیرمستطیلی مانند استفاده از حاشیههای دایرهای یا چندضلعی در اطراف عناصر ایجاد کنید. ویژگی CSS "border-shape" همان نوع شکلهایی را که ویژگی "clip-path" میپذیرد، میپذیرد، اما برخلاف مورد دوم، یک خط مرزی را تشخیص میدهد، آن را رمزگشایی میکند و هر محتوایی را که فراتر از خط مرزی امتداد یابد، برش میدهد.
- رابط CSSPseudoElement اضافه شد که امکان کار با شبه عناصر CSS از جاوا اسکریپت را فراهم میکند.
- عنصر لینک اکنون از استفاده از ویژگی “rel=modulepreload” برای پیش بارگذاری نه تنها اسکریپتها، بلکه ماژولهایی با سبکهای CSS نیز پشتیبانی میکند ( ) و دادههای JSON ( ).
- نحوه محاسبه عرض حاشیهها و خطوط خارجی در ویژگیهای CSS مربوط به border-width، outline-width و column-rule-width تغییر کرده است و آن را با مرورگرهای فایرفاکس و مبتنی بر WebKit یکسان میکند. پیش از این، اگر ویژگیهای border-style، outline-style یا column-rule-style روی "none" یا "hidden" تنظیم میشدند، عرض در این ویژگیها صرف نظر از مقادیرشان، به صفر بازنشانی میشد. اکنون، مقادیر order-width، outline-width و column-rule-width همیشه صرف نظر از محتوای ویژگیهای "*-style" با مقادیر تعریف شده توسط توسعهدهنده مطابقت دارند.
- روش Math.sumPrecise() را برای محاسبه مجموع عناصر آرایه و سایر اشیاء قابل شمارش با دقتی بیشتر از جمع معمولی در یک حلقه اضافه کرد (حذف تلفات دقت هنگام ذخیره نتایج در بین).
- ویژگی Request.isReloadNavigation برای تشخیص زمان بارگذاری مجدد صفحه، مثلاً پس از کلیک بر روی دکمه "Refresh" یا فراخوانی متدهای location.reload() و history.go(0) اضافه شد.
- برای کاهش دقت شناسایی غیرمستقیم، منطق گرد کردن اندازه حافظه که از طریق رابط برنامهنویسی کاربردی حافظه دستگاه (DRAM API) برگردانده میشود و اطلاعاتی در مورد اندازه رم ارائه میدهد، تغییر کرده است. این اطلاعات میتواند برای ایجاد نسخههای سبک از برنامههای وب که روی دستگاههایی با رم محدود بارگذاری میشوند یا برای فعال کردن ویژگیهای پیشرفته در صورت وجود حجم زیادی از حافظه مفید باشد. در نسخههای ساخته شده برای این پلتفرم Android اندازه حافظه اکنون به ۱، ۲، ۴ و ۸ و برای سایر پلتفرمها به ۲، ۴، ۸، ۱۶ و ۳۲ گرد شده است.
- برای برنامههای وب ایزوله (IWA)، رابط برنامهنویسی کاربردی چاپ وب پیادهسازی شده است که روشهایی برای تعیین در دسترس بودن چاپگرها، ارسال اسناد برای چاپ و مدیریت صف چاپ ارائه میدهد. نام ویژگیها و معانی مورد استفاده در API با پروتکل چاپ اینترنتی (IPP) مطابقت دارد.
- حالت «آزمایشهای مبدا» رابط برنامهنویسی کاربردی WebNN را پیادهسازی میکند که امکان استفاده از سرویسهای یادگیری ماشینی ارائه شده توسط سیستم عامل و قابلیتهای سختافزاری مرتبط را فراهم میکند.
- بهبودهایی در ابزارهای توسعهدهندگان وب ایجاد شده است. دستیار هوش مصنوعی داخلی اکنون به طور خودکار زمینهها را انتخاب میکند. پنل «حالت دستگاه» که برای آزمایش عملکرد وبسایت در دستگاههای تلفن همراه مختلف استفاده میشود، مدرن شده است. پنل شبکه اکنون به طور خودکار محتوای فشرده شده را برای درخواستهای ارسال شده با Content-Encoding: gzip یا deflate رمزگشایی میکند. اکنون میتوان از عبارات منظم برای فیلتر کردن سبکهای CSS استفاده کرد.
علاوه بر ویژگیهای جدید و رفع اشکالات، نسخه جدید ۶۰ آسیبپذیری را برطرف میکند. بسیاری از این آسیبپذیریها از طریق آزمایش خودکار با استفاده از AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. به دو مشکل (یک سرریز بافر و یک سرریز عدد صحیح در WebML) سطح شدت بحرانی اختصاص داده شد، به این معنی که میتوانند تمام لایههای محافظت مرورگر را دور بزنند و کد را خارج از محیط جعبه شنی اجرا کنند. گوگل به عنوان بخشی از برنامه پاداش در ازای آسیبپذیری خود برای نسخه فعلی، ۶۰ جایزه تعیین کرده و ۱۱۸۰۰۰ دلار (دو جایزه ۴۳۰۰۰ دلاری، دو جایزه ۱۱۰۰۰ دلاری و یک جایزه ۴۰۰۰ دلاری، ۳۰۰۰ دلاری، ۲۰۰۰ دلاری و ۱۰۰۰ دلاری) اعطا کرده است. مبلغ ۵۲ جایزه هنوز مشخص نشده است.
منبع: opennet.ru
