گوگل از نسخه مرورگر وب کروم 94 رونمایی کرد. همزمان، نسخه پایدار پروژه رایگان کرومیوم که اساس کروم است، در دسترس است. مرورگر کروم با استفاده از آرم های گوگل، وجود سیستمی برای ارسال اعلان ها در صورت خرابی، ماژول هایی برای پخش محتوای ویدیویی محافظت شده (DRM)، سیستمی برای نصب خودکار به روز رسانی ها و انتقال پارامترهای RLZ هنگام جستجو متمایز می شود. انتشار بعدی کروم 95 برای 19 اکتبر برنامه ریزی شده است.
با شروع انتشار کروم 94، توسعه به چرخه انتشار جدید منتقل شد. نسخههای مهم جدید اکنون هر 4 هفته یکبار منتشر میشوند، نه هر 6 هفته، که امکان تحویل سریعتر ویژگیهای جدید به کاربران را فراهم میکند. خاطرنشان می شود که بهینه سازی فرآیند آماده سازی انتشار و بهبود سیستم آزمایش اجازه می دهد تا نسخه ها با دفعات بیشتری بدون به خطر انداختن کیفیت تولید شوند. برای شرکت ها و کسانی که به زمان بیشتری برای به روز رسانی نیاز دارند، یک نسخه Extended Stable به طور جداگانه هر 8 هفته منتشر می شود که به شما امکان می دهد نه هر 4 هفته یک بار، بلکه هر 8 هفته یک بار به نسخه های جدید تغییر دهید.
تغییرات عمده در کروم 94:
- حالت HTTPS-First اضافه شد، که یادآور حالت HTTPS Only است که قبلاً در فایرفاکس ظاهر می شد. اگر حالت در تنظیمات فعال شود، هنگام تلاش برای باز کردن یک منبع بدون رمزگذاری از طریق HTTP، مرورگر ابتدا سعی می کند از طریق HTTPS به سایت دسترسی پیدا کند و در صورت ناموفق بودن تلاش، هشداری در مورد عدم وجود آن به کاربر نشان داده می شود. پشتیبانی از HTTPS و درخواست برای باز کردن سایت بدون رمزگذاری. در آینده، Google در نظر دارد HTTPS-First را بهطور پیشفرض برای همه کاربران فعال کند، دسترسی به برخی از ویژگیهای پلتفرم وب را برای صفحاتی که از طریق HTTP باز میشوند محدود کند، و هشدارهای بیشتری را برای آگاه کردن کاربران در مورد خطراتی که هنگام دسترسی به سایتها بدون رمزگذاری ایجاد میشود، اضافه کند. این حالت در بخش تنظیمات «حریم خصوصی و امنیت» > «امنیت» > «پیشرفته» فعال است.
- برای صفحاتی که بدون HTTPS باز می شوند، ارسال درخواست (منابع بارگیری) به URL های محلی (به عنوان مثال، "http://router.local" و localhost) و محدوده آدرس داخلی (127.0.0.0/8، 192.168.0.0/16، 10.0.0.0) ممنوع است. 8/1.2.3.4 و غیره). استثنا فقط برای صفحات دانلود شده از سرورهای دارای IP داخلی وجود دارد. برای مثال، صفحهای که از سرور 192.168.0.1 بارگیری شده است، نمیتواند به منبعی که در IP 127.0.0.1 یا IP 192.168.1.1 قرار دارد دسترسی پیدا کند، اما بارگیری شده از سرور XNUMX میتواند. این تغییر یک لایه حفاظتی اضافی در برابر سوء استفاده از آسیبپذیریها در کنترلکنندههایی که درخواستهای IPهای محلی را میپذیرند، معرفی میکند و همچنین در برابر حملات پیوند مجدد DNS محافظت میکند.
- عملکرد "Sharing Hub" را اضافه کرد که به شما امکان می دهد به سرعت پیوند صفحه فعلی را با سایر کاربران به اشتراک بگذارید. این امکان وجود دارد که یک کد QR از یک URL تولید کنید، یک صفحه را ذخیره کنید، یک پیوند به دستگاه دیگری که به یک حساب کاربری مرتبط است ارسال کنید، و پیوندی را به سایت های شخص ثالث مانند Facebook، WhatsUp، Twitter و VK منتقل کنید. این ویژگی هنوز در دسترس همه کاربران قرار نگرفته است. برای فشار دادن دکمه «اشتراکگذاری» در منو و نوار آدرس، میتوانید از تنظیمات «chrome://flags/#sharing-hub-desktop-app-menu» و «chrome://flags/#sharing-hub-» استفاده کنید. دسکتاپ-omnibox».
- رابط تنظیمات مرورگر بازسازی شده است. هر بخش تنظیمات اکنون در یک صفحه جداگانه به جای یک صفحه مشترک نمایش داده می شود.
- پشتیبانی از به روز رسانی پویا از گزارش گواهی های صادر شده و باطل (Certificate Transparency) پیاده سازی شده است که اکنون بدون مراجعه به به روز رسانی مرورگر به روز می شود.
- یک صفحه خدمات "chrome://whats-new" با نمای کلی از تغییرات قابل مشاهده توسط کاربر در نسخه جدید اضافه شد. صفحه بلافاصله پس از بهروزرسانی ظاهر میشود یا از طریق دکمه «چه خبر» در منوی راهنما قابل دسترسی است. این صفحه در حال حاضر به جستجوی برگه ها، امکان تقسیم پروفایل ها و ویژگی تغییر رنگ پس زمینه اشاره می کند که مختص کروم 94 نیستند و در نسخه های قبلی معرفی شده اند. نمایش صفحه هنوز برای همه کاربران فعال نشده است: برای کنترل فعالسازی، میتوانید از تنظیمات «chrome://flags#chrome-whats-new-ui» و «chrome://flags#chrome-whats-new-in» استفاده کنید. -main-menu- new-badge".
- فراخوانی WebSQL API از محتوای بارگیری شده از سایت های شخص ثالث (مانند iframe) منسوخ شده است. در Chrome 94، هنگام تلاش برای دسترسی به WebSQL از اسکریپت های شخص ثالث، یک هشدار نمایش داده می شود، اما با شروع Chrome 97، چنین تماس هایی مسدود می شوند. در آینده، ما قصد داریم بدون توجه به زمینه استفاده، پشتیبانی از WebSQL را به طور کامل متوقف کنیم. موتور WebSQL مبتنی بر کد SQLite است و می تواند توسط مهاجمان برای سوء استفاده از آسیب پذیری ها در SQLite استفاده شود.
- به دلایل امنیتی و برای جلوگیری از فعالیت های مخرب، استفاده از پروتکل قدیمی MK (URL:MK) که زمانی در اینترنت اکسپلورر استفاده می شد و به برنامه های کاربردی وب اجازه می داد اطلاعات را از فایل های فشرده استخراج کنند، مسدود شده است.
- پشتیبانی از همگامسازی با نسخههای قدیمیتر Chrome (Chrome 48 و بالاتر) متوقف شده است.
- سرصفحه Permissions-Policy HTTP که برای فعال کردن قابلیتهای خاص و کنترل دسترسی به API طراحی شده است، پشتیبانی از پرچم «نمایش گرفتن» را اضافه کرده است که به شما امکان میدهد استفاده از Screen Capture API را در صفحه کنترل کنید (به طور پیشفرض، توانایی ضبط محتوای صفحه از iframes خارجی مسدود شده است).
- چندین API جدید به حالت Origin Trials (ویژگی های آزمایشی که نیاز به فعال سازی جداگانه دارند) اضافه شده است. Origin Trial به معنای توانایی کار با API مشخص شده از برنامه های دانلود شده از localhost یا 127.0.0.1 یا پس از ثبت نام و دریافت یک توکن خاص است که برای مدت محدودی برای یک سایت خاص معتبر است.
- WebGPU API اضافه شد که جایگزین WebGL API می شود و ابزارهایی برای انجام عملیات GPU مانند رندر و محاسبات فراهم می کند. از نظر مفهومی، WebGPU به APIهای Vulkan، Metal و Direct3D 12 نزدیک است. از نظر مفهومی، WebGPU با WebGL تقریباً به همان شکلی که API گرافیکی Vulkan با OpenGL متفاوت است، متفاوت است، اما بر اساس یک API گرافیکی خاص نیست، بلکه یک API جهانی است. لایه ای که از همان ابتدایی های سطح پایین استفاده می کند که در Vulkan، Metal و Direct3D 12 موجود است.
WebGPU برنامههای جاوا اسکریپت را با کنترل سطح پایین بر سازمان، پردازش و انتقال دستورات به GPU و همچنین توانایی مدیریت منابع مرتبط، حافظه، بافرها، اشیاء بافت و سایهزنهای گرافیکی کامپایل شده ارائه میکند. این رویکرد به شما اجازه می دهد تا با کاهش هزینه های سربار و افزایش کارایی کار با GPU، به عملکرد بالاتری برای برنامه های گرافیکی دست یابید. API همچنین امکان ایجاد پروژه های سه بعدی پیچیده را برای وب فراهم می کند که به خوبی برنامه های مستقل کار می کنند، اما به پلتفرم های خاصی وابسته نیستند.
- برنامه های PWA مستقل اکنون توانایی ثبت نام به عنوان کنترل کننده URL را دارند. به عنوان مثال، برنامه music.example.com می تواند خود را به عنوان یک مدیریت URL https://*.music.example.com ثبت کند و تمام انتقالات از برنامه های خارجی با استفاده از این پیوندها، به عنوان مثال، از پیام رسان های فوری و مشتریان ایمیل، منجر می شود به باز کردن این برنامه های PWA-، نه یک برگه مرورگر جدید.
- پشتیبانی از کد پاسخ جدید HTTP - 103 پیاده سازی شده است که می توان از آن برای نمایش هدرها قبل از موعد استفاده کرد. کد 103 به شما این امکان را می دهد که بلافاصله پس از درخواست، محتویات هدرهای HTTP خاص را به مشتری اطلاع دهید، بدون اینکه منتظر بمانید تا سرور تمام عملیات مربوط به درخواست را تکمیل کند و شروع به ارائه محتوا کند. به روشی مشابه، میتوانید نکاتی را در مورد عناصر مرتبط با صفحه در حال ارائه که میتوان از قبل بارگذاری کرد (به عنوان مثال، پیوندهایی به css و جاوا اسکریپت مورد استفاده در صفحه ارائه کرد). با دریافت اطلاعات در مورد چنین منابعی، مرورگر بدون منتظر ماندن برای پایان رندر صفحه اصلی، دانلود آنها را شروع می کند، که به شما امکان می دهد زمان کلی پردازش درخواست را کاهش دهید.
- WebGPU API اضافه شد که جایگزین WebGL API می شود و ابزارهایی برای انجام عملیات GPU مانند رندر و محاسبات فراهم می کند. از نظر مفهومی، WebGPU به APIهای Vulkan، Metal و Direct3D 12 نزدیک است. از نظر مفهومی، WebGPU با WebGL تقریباً به همان شکلی که API گرافیکی Vulkan با OpenGL متفاوت است، متفاوت است، اما بر اساس یک API گرافیکی خاص نیست، بلکه یک API جهانی است. لایه ای که از همان ابتدایی های سطح پایین استفاده می کند که در Vulkan، Metal و Direct3D 12 موجود است.
- WebCodecs API اضافه شده برای دستکاری سطح پایین جریان های رسانه، تکمیل کننده سطح بالا HTMLMediaElement، برنامه های افزودنی منبع رسانه، WebAudio، MediaRecorder و WebRTC API. API جدید ممکن است در زمینه هایی مانند جریان بازی، جلوه های جانبی مشتری، رمزگذاری جریان و پشتیبانی از کانتینرهای چند رسانه ای غیر استاندارد مورد تقاضا باشد. WebCodecs API به جای پیادهسازی کدکهای جداگانه در جاوا اسکریپت یا WebAssembly، دسترسی به اجزای از پیش ساخته شده با کارایی بالا را در مرورگر فراهم میکند. به طور خاص، WebCodecs API رمزگشاها و رمزگذارهای صوتی و تصویری، رمزگشاهای تصویر و عملکردهایی را برای کار با فریم های ویدئویی در سطح پایین ارائه می دهد.
- Insertable Streams API تثبیت شده است و امکان دستکاری جریانهای رسانه خام ارسال شده از طریق MediaStreamTrack API مانند دادههای دوربین و میکروفون، نتایج ضبط صفحه یا دادههای رمزگشایی کدک میانی را ممکن میسازد. از رابط های WebCodec برای ارائه فریم های خام استفاده می شود و جریانی مشابه آنچه WebRTC Insertable Streams API بر اساس RTCPeerConnections ایجاد می کند، تولید می شود. از جنبه عملی، API جدید قابلیت هایی مانند استفاده از تکنیک های یادگیری ماشینی برای شناسایی یا حاشیه نویسی اشیاء در زمان واقعی یا اضافه کردن افکت هایی مانند برش پس زمینه قبل از رمزگذاری یا پس از رمزگشایی توسط یک کدک را امکان پذیر می کند.
- متد scheduler.postTask() تثبیت شده است و به شما امکان می دهد زمان بندی وظایف (تماس های پاسخ به تماس جاوا اسکریپت) را با سطوح اولویت مختلف کنترل کنید. سه سطح اولویت ارائه شده است: 1- ابتدا اجرا، حتی اگر عملیات کاربر مسدود شود. 2- تغییرات قابل مشاهده برای کاربر مجاز است. 3 - اجرا در پس زمینه). می توانید از شی TaskController برای تغییر اولویت و لغو وظایف استفاده کنید.
- تثبیت شده و اکنون در خارج از Origin Trials Idle Detection API برای تشخیص عدم فعالیت کاربر توزیع شده است. API به شما امکان میدهد زمانهایی را که کاربر با صفحهکلید/ماوس تعامل نمیکند، محافظ صفحه در حال اجرا است، صفحه قفل است یا کار روی مانیتور دیگری انجام میشود، تشخیص دهید. اطلاع رسانی برنامه در مورد عدم فعالیت با ارسال یک اعلان پس از رسیدن به آستانه عدم فعالیت مشخص انجام می شود.
- فرآیند مدیریت رنگ در اشیاء CanvasRenderingContext2D و ImageData و استفاده از فضای رنگی sRGB در آنها رسمیت یافته است. توانایی ایجاد اشیاء CanvasRenderingContext2D و ImageData را در فضاهای رنگی غیر از sRGB، مانند Display P3، برای استفاده از قابلیتهای پیشرفته مانیتورهای مدرن ارائه میدهد.
- روشها و ویژگیها را به API VirtualKeyboard اضافه کرد تا کنترل کند صفحهکلید مجازی نشان داده یا پنهان شود و اطلاعاتی در مورد اندازه صفحهکلید مجازی نمایش داده شده به دست آورد.
- جاوا اسکریپت به کلاس ها اجازه می دهد تا از بلوک های اولیه استاتیک برای گروه بندی کدهایی استفاده کنند که یک بار در هنگام پردازش کلاس اجرا می شوند: class C { // بلوک در هنگام پردازش خود کلاس static { console.log("C's static block"); } }
- ویژگیهای flex-basic و flex CSS کلمات کلیدی محتوا، min-content، max-content و fit-content را پیادهسازی میکنند تا کنترل انعطافپذیرتری بر روی اندازه ناحیه اصلی Flexbox ارائه دهند.
- ویژگی Scrollbar-gutter CSS را برای کنترل نحوه رزرو فضای صفحه برای نوار اسکرول اضافه کرد. برای مثال، وقتی نمیخواهید محتوا پیمایش کند، میتوانید خروجی را گسترش دهید تا ناحیه اسکرولبار را اشغال کند.
- API Self Profiling با پیاده سازی یک سیستم پروفایل اضافه شده است که به شما امکان می دهد زمان اجرای جاوا اسکریپت را در سمت کاربر اندازه گیری کنید تا مشکلات عملکرد در کد جاوا اسکریپت را بدون استفاده از دستکاری های دستی در رابط توسعه دهندگان وب، اشکال زدایی کنید.
- پس از حذف افزونه Flash، تصمیم بر این شد که مقادیر خالی را در ویژگی های navigator.plugins و navigator.mimeTypes برگردانند، اما همانطور که مشخص شد، برخی از برنامه ها از آنها برای بررسی وجود افزونه برای نمایش فایل های PDF استفاده کردند. از آنجایی که Chrome یک نمایشگر PDF داخلی دارد، ویژگیهای navigator.plugins و navigator.mimeTypes اکنون فهرست ثابتی از پلاگینهای استاندارد نمایش PDF و انواع MIME را نشان میدهند - «PDF Viewer، Chrome PDF Viewer، Chromium PDF Viewer، Microsoft Edge PDF Viewer. و WebKit PDF داخلی".
- بهبودهایی در ابزارهای توسعه دهندگان وب ایجاد شده است. دستگاههای Nest Hub و Nest Hub Max به لیست شبیهسازی صفحه اضافه شدهاند. یک دکمه برای معکوس کردن فیلترها برای بازرسی فعالیت شبکه به رابط اضافه شده است (به عنوان مثال، هنگام نصب فیلتر "status-code: 404" می توانید به سرعت همه درخواست های دیگر را مشاهده کنید) و همچنین امکان مشاهده مقادیر اصلی را فراهم می کند. از هدرهای Set-Cookie (به شما امکان می دهد وجود مقادیر نادرستی را که هنگام عادی سازی حذف می شوند ارزیابی کنید). نوار کناری در کنسول وب منسوخ شده است و در نسخه بعدی حذف خواهد شد. قابلیت آزمایشی برای پنهان کردن مشکلات در برگه Issues اضافه شده است. در تنظیمات قابلیت انتخاب زبان رابط اضافه شده است.
علاوه بر نوآوری ها و رفع اشکال، نسخه جدید 19 آسیب پذیری را از بین می برد. بسیاری از آسیبپذیریها در نتیجه آزمایش خودکار با استفاده از ابزارهای AddressSanitizer، MemorySanitizer، Control Flow Integrity، LibFuzzer و AFL شناسایی شدند. هیچ مشکل مهمی شناسایی نشده است که به شخص اجازه می دهد تمام سطوح حفاظت مرورگر را دور بزند و کد را در سیستم خارج از محیط سندباکس اجرا کند. به عنوان بخشی از برنامه پرداخت جوایز نقدی برای کشف آسیبپذیریها برای نسخه فعلی، گوگل 17 جایزه به ارزش 56500 دلار (یک جایزه 15000 دلاری، دو جایزه 10000 دلاری، یک جایزه 7500 دلاری، چهار جایزه 3000 دلاری، دو جایزه هزار دلاری) پرداخت کرد. اندازه 1000 جایزه هنوز مشخص نشده است.
منبع: opennet.ru