گوگل از نسخه مرورگر وب کروم 105 رونمایی کرده است. همزمان، انتشار پایدار پروژه رایگان کرومیوم که اساس کروم است، در دسترس است. تفاوت مرورگر کروم با کرومیوم در استفاده از لوگوهای گوگل، وجود سیستمی برای ارسال اعلان ها در صورت خرابی، ماژول هایی برای پخش محتوای ویدئویی محافظت شده از کپی (DRM)، سیستمی برای نصب خودکار به روز رسانی ها، فعال کردن دائمی ایزوله Sandbox. ، کلیدهایی را برای Google API ارائه می دهد و پارامترهای RLZ- را هنگام جستجو ارسال می کند. برای کسانی که به زمان بیشتری برای به روز رسانی نیاز دارند، شاخه Extended Stable به طور جداگانه پشتیبانی می شود و پس از آن 8 هفته. انتشار بعدی کروم 106 برای 27 سپتامبر برنامه ریزی شده است.
تغییرات کلیدی در کروم 105:
- پشتیبانی از برنامههای کاربردی وب تخصصی Chrome Apps متوقف شده و با برنامههای وب مستقل مبتنی بر فناوری برنامههای وب پیشرو (PWA) و APIهای وب استاندارد جایگزین شده است. گوگل در ابتدا در سال 2016 اعلام کرد که قصد خود را برای کنار گذاشتن Chrome Apps دارد و قصد داشت تا سال 2018 پشتیبانی از آنها را متوقف کند، اما سپس این برنامه را به تعویق انداخت. در Chrome 105، زمانی که میخواهید Chrome Apps را نصب کنید، هشداری دریافت میکنید که دیگر پشتیبانی نمیشوند، اما برنامهها به کار خود ادامه میدهند. در Chrome 109، قابلیت اجرای Chrome Apps غیرفعال خواهد شد.
- ایزوله اضافی برای فرآیند رندر ارائه شده است که وظیفه رندر را بر عهده دارد. این فرآیند اکنون در یک محفظه اضافی (App Container) انجام می شود که در بالای سیستم جداسازی sandbox موجود پیاده سازی شده است. اگر یک آسیبپذیری در کد رندر مورد سوء استفاده قرار گیرد، محدودیتهای اضافه شده با جلوگیری از دسترسی به تماسهای سیستمی مرتبط با قابلیتهای شبکه، مانع از دسترسی مهاجم به شبکه میشود.
- ذخیره سازی یکپارچه خود را از گواهی های ریشه مقامات صدور گواهینامه (Chrome Root Store) پیاده سازی کرد. فروشگاه جدید هنوز بهطور پیشفرض فعال نشده است و تا زمانی که پیادهسازی کامل شود، گواهیها با استفاده از یک فروشگاه خاص برای هر سیستم عامل تأیید میشوند. راه حلی که در حال آزمایش است یادآور رویکرد موزیلا است که یک فروشگاه گواهی ریشه مستقل برای فایرفاکس دارد که به عنوان اولین پیوند برای بررسی زنجیره اعتماد گواهی هنگام باز کردن سایت ها از طریق HTTPS استفاده می شود.
- مقدمات برای از بین بردن Web SQL API آغاز شده است، که غیراستاندارد، عمدتاً استفاده نشده است و برای برآورده کردن الزامات امنیتی مدرن نیاز به طراحی مجدد دارد. Chrome 105 از دسترسی به Web SQL از کد بارگیری شده بدون استفاده از HTTPS جلوگیری می کند و همچنین یک هشدار انحلال به DevTools اضافه می کند. برنامه Web SQL API قرار است در سال 2023 حذف شود. برای توسعه دهندگانی که به چنین عملکردی نیاز دارند، جایگزینی مبتنی بر WebAssembly آماده خواهد شد.
- همگامسازی Chrome دیگر از همگامسازی با Chrome 73 و نسخههای قبلی پشتیبانی نمیکند.
- برای پلتفرمهای macOS و Windows، نمایشگر گواهی داخلی فعال میشود که جایگزین تماس با رابط ارائهشده توسط سیستم عامل میشود. پیش از این، نمایشگر داخلی فقط در ساختهای لینوکس و ChromeOS استفاده میشد.
- نسخه Android تنظیماتی را برای مدیریت موضوعات و علایق گروه API، که به عنوان بخشی از طرح Privacy Sandbox تبلیغ میشود، اضافه میکند، که به شما امکان میدهد دستههایی از علایق کاربر را تعریف کنید و از آنها به جای ردیابی کوکیها برای شناسایی گروههایی از کاربران با علایق مشابه بدون شناسایی افراد استفاده کنید. کاربران در آخرین نسخه، تنظیمات مشابهی به نسخههای Linux، ChromeOS، macOS و Windows اضافه شد.
- وقتی حفاظت پیشرفته مرورگر را فعال میکنید (مرور ایمن > حفاظت پیشرفته)، تلهمتری در مورد افزونههای نصبشده، دسترسی به API و اتصالات به سایتهای خارجی جمعآوری میشود. این داده ها در سرورهای Google برای شناسایی فعالیت های مخرب و نقض قوانین توسط افزونه های مرورگر استفاده می شود.
- منسوخ شده است و استفاده از نویسههای غیر ASCII را در دامنههای مشخصشده در سرصفحه کوکی در Chrome 106 مسدود میکند (برای دامنههای IDN، دامنهها باید در قالب کد پونی باشند). این تغییر مرورگر را با RFC 6265bis و رفتار پیادهسازی شده در فایرفاکس مطابقت میدهد.
- یک API برجسته سفارشی پیشنهاد شده است که برای تغییر خودسرانه سبک قسمتهای انتخابی متن طراحی شده است و به شما امکان میدهد با سبک ثابت ارائه شده توسط مرورگر برای مناطق برجسته (::انتخاب، ::انتخاب غیرفعال) و برجسته کردن محدود نشوید. خطاهای نحوی (::اشتباه املایی، ::خطای دستور زبان). اولین نسخه API از تغییر رنگ متن و پسزمینه با استفاده از عناصر شبه رنگ و رنگ پسزمینه پشتیبانی میکرد، اما گزینههای سبک دیگری در آینده اضافه خواهند شد.
به عنوان نمونه ای از کارهایی که می توان با استفاده از API جدید حل کرد، افزودن به چارچوب های وب که ابزارهایی برای ویرایش متن فراهم می کند، مکانیسم های انتخاب متن خود، برجسته سازی های مختلف برای ویرایش مشترک همزمان توسط چندین کاربر، جستجو در اسناد مجازی شده ذکر شده است. ، و پرچم گذاری خطاها هنگام بررسی املا. اگر قبلاً ایجاد یک برجسته غیر استاندارد نیاز به دستکاری های پیچیده با درخت DOM داشت، Custom Highlight API عملیات آماده ای را برای افزودن و حذف برجسته ارائه می دهد که بر ساختار DOM تأثیر نمی گذارد و سبک ها را در رابطه با اشیاء Range اعمال می کند.
- پرس و جوی «@container» را به CSS اضافه کرد، که به عناصر اجازه می دهد بر اساس اندازه عنصر والد استایل دهی شوند. "@container" شبیه پرس و جوهای "@media" است، اما نه به اندازه کل منطقه قابل مشاهده، بلکه به اندازه بلوک (کانتینر) که عنصر در آن قرار گرفته است اعمال می شود، که به شما امکان می دهد خودتان را تنظیم کنید. منطق انتخاب سبک برای عناصر فرزند، صرف نظر از اینکه عنصر دقیقاً در کجای صفحه قرار گرفته است.
- CSS شبه کلاس ":has()" را برای بررسی وجود عنصر فرزند در عنصر والد اضافه کرد. به عنوان مثال، "p:has(span)" عناصر را در بر می گیرد ، که در داخل آن یک عنصر وجود دارد .
- اضافه شده HTML Sanitizer API، که به شما امکان می دهد از طریق متد setHTML() عناصری را از محتوایی که بر نمایش و اجرا در هنگام خروجی تأثیر می گذارد، حذف کنید. API می تواند برای تمیز کردن داده های خارجی برای حذف برچسب های HTML که می توانند برای انجام حملات XSS استفاده شوند مفید باشد.
- استفاده از Streams API (ReadableStream) برای ارسال درخواستهای واکشی قبل از بارگیری بدنه پاسخ، یعنی. می توانید بدون منتظر ماندن برای تکمیل تولید صفحه، ارسال داده را شروع کنید.
- برای برنامه های وب مستقل نصب شده (PWA، برنامه وب پیشرو)، می توان طراحی ناحیه عنوان پنجره را با استفاده از مؤلفه های Window Controls Overlay تغییر داد که سطح صفحه برنامه وب را به کل پنجره گسترش می دهد و این امکان را فراهم می کند که به برنامه وب ظاهر یک برنامه معمولی دسکتاپ بدهد. یک برنامه وب می تواند رندر و پردازش ورودی را در کل پنجره کنترل کند، به استثنای بلوک همپوشانی با دکمه های کنترل پنجره استاندارد (بستن، کوچک کردن، حداکثر کردن).
- توانایی دسترسی به برنامه های افزودنی منبع رسانه از کارگران اختصاص داده شده (در زمینه DedicatedWorker) تثبیت شده است، که می تواند به عنوان مثال برای بهبود عملکرد پخش بافر داده های چند رسانه ای با ایجاد یک شی MediaSource در یک کارگر جداگانه و پخش نتایج کار خود را به HTMLMediaElement در موضوع اصلی.
- در Client Hints API، که برای جایگزینی هدر User-Agent در حال توسعه است و به شما امکان می دهد تا به طور انتخابی داده هایی را در مورد پارامترهای خاص مرورگر و سیستم (نسخه، پلت فرم و غیره) تنها پس از درخواست سرور ارائه دهید، از Sec پشتیبانی می کند. ویژگی -CH-Viewport-Heigh اضافه شده است که به شما امکان می دهد اطلاعاتی در مورد ارتفاع ناحیه قابل مشاهده به دست آورید. قالب نشانه گذاری برای تنظیم پارامترهای Client Hints برای منابع خارجی در تگ "meta" تغییر کرده است: قبلا: تبدیل شد:
- قابلیت ایجاد کنترلکننده رویداد سراسری onbeforeinput (document.documentElement.onbeforeinput) اضافه شده است، که با آن برنامههای وب میتوانند رفتار را هنگام ویرایش متن در بلوکها لغو کنند. ، و سایر عناصر با مجموعه ویژگی "contenteditable"، قبل از اینکه مرورگر محتوای عنصر و درخت DOM را تغییر دهد.
- قابلیت های Navigation API گسترش یافته است و به برنامه های کاربردی وب اجازه می دهد تا عملیات ناوبری را در یک پنجره رهگیری کنند، یک انتقال را آغاز کنند و تاریخچه اقدامات را با برنامه تجزیه و تحلیل کنند. متدهای جدید intercept() برای قطع یک انتقال و scroll() برای اسکرول به یک موقعیت مشخص اضافه شده است.
- متد استاتیک Response.json() را اضافه کرد که به شما امکان می دهد یک بدنه پاسخ را بر اساس داده هایی از نوع JSON ایجاد کنید.
- بهبودهایی در ابزارهای توسعه دهندگان وب ایجاد شده است. در دیباگر، هنگامی که یک نقطه شکست راه اندازی می شود، ویرایش توابع بالای پشته بدون وقفه در جلسه اشکال زدایی مجاز است. پنل Recorder که به شما امکان ضبط، پخش و تجزیه و تحلیل اقدامات کاربر در یک صفحه را می دهد، از نقاط شکست، پخش گام به گام و ضبط رویدادهای ماوس پشتیبانی می کند.
معیارهای LCP (بزرگترین رنگ محتوایی) به داشبورد عملکرد اضافه شده است تا تأخیر در هنگام رندر کردن عناصر بزرگ (قابل مشاهده توسط کاربر) در ناحیه قابل مشاهده، مانند تصاویر، ویدیوها و عناصر بلوک را شناسایی کند. در پنل Elements، لایه های بالایی که در بالای محتوای دیگر نمایش داده می شوند، با یک نماد خاص مشخص می شوند. WebAssembly اکنون این قابلیت را دارد که داده های اشکال زدایی را با فرمت DWARF بارگذاری کند.
علاوه بر نوآوری ها و رفع اشکال، نسخه جدید 24 آسیب پذیری را از بین می برد. بسیاری از آسیبپذیریها در نتیجه آزمایش خودکار با استفاده از ابزارهای AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. هیچ مشکل مهمی شناسایی نشده است که به شخص اجازه می دهد تمام سطوح حفاظت مرورگر را دور بزند و کد را در سیستم خارج از محیط سندباکس اجرا کند. بهعنوان بخشی از برنامه پرداخت پاداش نقدی برای کشف آسیبپذیریها برای نسخه فعلی، Google 21 جایزه به ارزش 60500 دلار (یک جایزه 10000 دلاری، یک جایزه 9000 دلاری، یک جایزه 7500 دلاری، یک جایزه 7000 دلاری، دو جایزه 5000 دلاری، چهار جایزه 3000 دلاری 2000 دلار و یک جایزه 1000 دلاری). اندازه هفت جایزه هنوز مشخص نشده است.
منبع: opennet.ru