کروم 117 بتا

زیرشبکه شبکه CSS، پشتیبانی از انیمیشن ورودی و خروجی برای CSS، گروه بندی آرایه، کمک کننده های تکرارکننده و غیره.

تغییرات توضیح داده شده در جدیدترین کانال بتا Chrome برای Android، ChromeOS، Linux، macOS و Windows اعمال می‌شود، مگر اینکه خلاف آن ذکر شده باشد. از طریق پیوندهای ارائه شده یا از فهرست موجود در ChromeStatus.com درباره ویژگی های فهرست شده در اینجا بیشتر بیاموزید. Chrome 117 از 16 آگوست 2023 نسخه بتا است. می‌توانید آخرین نسخه را در Google.com برای دسک‌تاپ یا در فروشگاه Google Play در Android بارگیری کنید.

CSS

این نسخه شش ویژگی جدید CSS را اضافه می کند. سه ویژگی اول بخشی از کار برای فعال کردن انتقال در ویژگی های گسسته است که انیمیشن های ورود و خروج را فعال می کند .

قانون @starting-style

این قانون به نویسندگان اجازه می دهد تا انتقال CSS را در اولین به روز رسانی سبک شروع کنند.

انتقال‌های CSS، انتقال از سبک‌های اولیه را در اولین به‌روزرسانی سبک برای یک عنصر یا زمانی که نوع نمایش از none به نوع دیگری تغییر می‌کند، راه‌اندازی نمی‌کند. این برای جلوگیری از انتقال غیرمنتظره از سبک های اولیه است. برای شروع انتقال از اولین به‌روزرسانی سبک، اکنون می‌توانید استایل‌ها را از داخل یک قانون @starting-style اعمال کنید. برای مثال، CSS زیر یک انتقال رنگ پس‌زمینه از سبز به لیمویی را در اولین به‌روزرسانی سبک برای یک div آغاز می‌کند:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

خاصیت پوشش

ویژگی overlay به توسعه دهندگان این امکان را می دهد تا عناصر را در لایه بالایی برای انتقال خروج نگه دارند. ویژگی overlay اضافه می‌شود تا نشان دهد یک عنصر در لایه بالایی است یا نه، و می‌تواند دو مقدار داشته باشد: none یا auto .

ویژگی CSS Transition-Behavior

ویژگی CSS transition-behavior یک ویژگی transition است که امکان استفاده از ویژگی های گسسته در انتقال ها را فراهم می کند. با مشخص کردن مقدار allow-discrete برای انتقال-رفتار، ویژگی های گسسته اکنون انیمیشن ها را شروع می کنند و از مقدار اولیه به مقدار نهایی خود در 50% تغییر می کنند. برای انتقال‌هایی که display: none و content-visibility: hidden یکی از مقادیر اولیه یا نهایی هستند، مقدار قابل مشاهده برای کل مدت انتقال استفاده می‌شود.

مقدار زیرشبکه شبکه CSS

مقدار subgrid برای grid-template-columns و grid-template-rows اکنون در Chrome پیاده سازی شده است. این مقدار به یک شبکه تودرتو اجازه می دهد تا از مسیرهای تعریف شده در والد خود استفاده کند، به جای ایجاد یک تعریف مسیر جدید برای سطرها، ستون ها یا هر دو.

CSS text-wrap: زیبا

ارزش pretty برای ویژگی CSS text-wrap به جای سرعت، برای بهترین طرح بندی بهینه می شود. برای متن اصلی در نظر گرفته شده است، و بنابراین انتظار خطوط متعدد را دارد. با استفاده pretty یک توسعه‌دهنده صراحتاً روش طرح‌بندی را انتخاب می‌کند که ممکن است کندتر از wrap باشد - که عملکرد را بهینه می‌کند. پیاده سازی فعلی در Chrome برای کودکان بی سرپرست بهینه سازی می شود تا از نمایش یک کلمه در پایین پاراگراف متن جلوگیری کند.

در Chrome 117 این نسخه ی نمایشی از متن پوشاندن را امتحان کنید: زیبا و ببینید که چگونه مقدار ارائه متن را تغییر می دهد.

contain-intrinsic-size: خودکار هیچ پشتیبانی نمی کند

این ویژگی نحو موجود contain-intrinsic-size موجود را گسترش می‌دهد تا auto && none نیز شامل شود.

API های وب

گروه بندی آرایه

گروه بندی آرایه یک عملیات بسیار متداول است که بهترین نمونه آن با عبارت GROUP BY SQL و برنامه نویسی MapReduce است (که بهتر است نقشه-گروه-reduce را در نظر بگیریم). توانایی ترکیب داده ها در گروه ها به توسعه دهندگان این امکان را می دهد که مجموعه داده های مرتبه بالاتر را محاسبه کنند، مانند میانگین سن یک گروه یا مقادیر روزانه LCP برای یک صفحه وب. این ویژگی با افزودن متدهای استاتیک Object.groupBy و Map.groupBy این امکان را فراهم می کند. متد Object یک شیء ساده را برمی گرداند، جایی که گروه ها کلیدهای ویژگی هستند. متد Map یک Map را برمی‌گرداند که در آن کلیدها می‌توانند مقادیر دلخواه باشند.

نکات مشتری را از طریق هدر Clear-Site-Data پاک کنید

وب‌سایت‌ها اکنون می‌توانند حافظه پنهان نکات مشتری را با استفاده از Clear-Site-Data: "clientHints" . هنگامی که "کوکی‌ها"، "حافظه پنهان" یا "*" توسط همان هدر هدف قرار می‌گیرند، نکات کلاینت نیز اکنون پاک می‌شوند. این به این دلیل است که اگر کاربر کوکی‌ها را پاک کند، نکات مشتری رابط کاربری نیز قبلاً پاک شده‌اند، حافظه پنهان سرویس‌گیرنده یک حافظه پنهان است و به ترتیب با اهداف عام سازگار است.

Clear-Site-Data سرصفحه دستور دستور زبان

وب‌سایت‌ها اکنون می‌توانند با ارسال Clear-Site-Data: "*" همه اهداف ذخیره‌سازی («کوکی‌ها»، «حافظه پنهان» و «ذخیره‌سازی») را پاک کنند. توجه داشته باشید که کروم در حال حاضر از پاک کردن «executionContexts» پشتیبانی نمی‌کند، اما اگر در آینده آن را اضافه کنیم، هر سرصفحه‌ای که «*» را هدف قرار دهد، آن‌ها را نیز پاک می‌کند.

customElements.getName

متد customElements.getName() نام تگ تعریف عنصر سفارشی داده شده را برمی گرداند.

یاران Iterator

کمک‌کننده‌های تکرارکننده روش‌های جدیدی در نمونه اولیه تکرارکننده هستند تا امکان استفاده و مصرف عمومی تکرارکننده‌ها را فراهم کنند.

CaptureController را از رابط EventTarget مشتق کنید

رابط CaptureController امکان دستکاری بیشتر در یک جلسه ضبط صفحه را فراهم می کند. در آینده، انتظار می رود که رویدادهای مربوط به یک جلسه ضبط بر روی آن کنترلر ارسال شود. برای اینکه بتوانید شنوندگان را برای چنین رویدادهایی مدیریت کنید، متدهای EventTarget در CaptureController در دسترس هستند.

PerformanceResourceTiming deliverytype

ویژگی deliveryType PerformanceResourceTiming اطلاعاتی را درباره نحوه تحویل یک منبع برمی گرداند. به عنوان مثال، منابعی که از حافظه پنهان تحویل داده شده اند (در حال حاضر از طریق transferSize در معرض دید قرار گرفته اند) و پیمایش هایی که توسط صفحه قبلی واکشی شده اند.

بررسی سرریز پورت در تنظیم‌کننده‌های URL

هنگام تنظیم url.port مقدار پورت بررسی می‌شود. تمام مقادیری که از محدودیت عددی 16 بیتی سرریز می شوند دیگر معتبر نخواهند بود. به عنوان مثال اسکریپت زیر بعد از تغییر رفتار متفاوتی دارد:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

قبل از تغییر خروجی 65536 است. پس از تغییر خروجی 80 خواهد بود.

Private State Token API

این یک API جدید برای انتشار سیگنال‌های خصوصی محدود در بین سایت‌ها، بدون استفاده از شناسه‌های دائمی بین سایتی مانند کوکی‌های شخص ثالث است. روش‌های ضد کلاهبرداری که به کوکی‌های شخص ثالث متکی هستند، پس از مستهلک شدن کوکی‌های شخص ثالث، کار نمی‌کنند. Private State Token API سیگنال‌های ضد تقلب را تولید یا تعریف نمی‌کند: این به شخص اول مربوطه و صادرکنندگان توکن بستگی دارد. در عوض، API حریم خصوصی را با اعمال محدودیت در اطلاعات منتقل شده در این سیگنال ها حفظ می کند. API مبتنی بر گونه‌ای از پروتکل Privacy Pass است که در مرحله استانداردسازی توسط IETF است. می توان آن را به عنوان یک فرم تحت وب از پروتکل های Privacy Pass در نظر گرفت. مشخصات API قرار است برای نسخه‌های جدید و انواع توکن‌ها به‌روزرسانی شود و با مشخصات گروه کاری Privacy Pass به‌روز نگه داشته می‌شود. تغییرات مورد انتظار در پروتکل‌های رمزنگاری زیربنایی و کد صدور توکن خواهد بود: انتظار نداریم برنامه‌نویسی که با صدور و بازخرید واکشی API مواجه است، تغییر کند. Private State Token API قبلاً به عنوان Trust Token API شناخته می شد. نام آن تغییر یافته است تا معنایی زیربنایی را با دقت بیشتری دریافت کند و مزایای حریم خصوصی را برای کاربران برجسته کند.

URL تجزیه کننده میزبان IPv4 تعبیه شده IPv6 سازگار با استاندارد

رفتار تجزیه کننده میزبان IPv6 تعبیه شده IPv4 به‌روزرسانی خواهد شد تا کاملاً از استاندارد URL وب پیروی کند. محدودیت های معرفی شده در آدرس IPv6 عبارتند از:

  • آدرس IPv4 تعبیه شده همیشه باید از 4 قسمت تشکیل شود.
  • آدرس هایی با کمتر از 4 قسمت مانند http://[::1.2] دیگر معتبر نخواهند بود. این ویژگی بخشی از URL interop 2023 است.

URL: به "%00" به عنوان یک مسیر URL معتبر اجازه دهید

اگر قسمت مسیر URL حاوی "%00" (یا تهی) باشد، کروم در حال حاضر URL را نامعتبر می داند که با URL استاندارد مطابقت ندارد. برای مثال، آزمایش زیر در کروم با شکست مواجه می‌شود، زیرا new URL(...) یک استثنای URL نامعتبر ایجاد می‌کند.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

طبق استاندارد URL، هر کاراکتر یا دنباله بایت در مسیر URL نباید URL را نامعتبر کند و این تغییر کروم را به‌روزرسانی می‌کند تا از آن استاندارد پیروی کند.

کنترل پسوند هدر WebRTC RTP

WebRTC RTCRtpTransceiver API را گسترش دهید تا کنترل کنید که کدام پسوندهای سرآیند RTP مورد مذاکره قرار می گیرد.

کوانتایزر هر فریم در VideoEncoder

"کوانتایزر" VideoEncoderBitrateMode را برای VideoEncoder اضافه می کند. این توانایی تعیین یک پارامتر کوانتایزر برای هر فریم برای کدک های ویدیویی AV1، VP9 و AVC را فراهم می کند.

گزینه WebUSB exclusionFilters در requestDevice()

گزینه exclusionFilters در navigator.usb.requestDevice() به توسعه دهندگان وب اجازه می دهد تا برخی از دستگاه ها را از انتخابگر مرورگر حذف کنند. می‌توان از آن برای حذف دستگاه‌هایی استفاده کرد که با فیلتر گسترده‌تری مطابقت دارند اما پشتیبانی نمی‌شوند.

آزمایش های مبدا در حال انجام است

در Chrome 117 می‌توانید آزمایش‌های اصلی جدید زیر را انتخاب کنید.

انتقال فرهنگ لغت فشرده با Shared Brotli

این ویژگی برای استفاده از پاسخ‌های تعیین‌شده قبلی، به عنوان یک فرهنگ لغت خارجی برای پاسخ‌های HTTP فشرده‌سازی Brotli، پشتیبانی می‌کند.

برای نسخه آزمایشی CompressionDictionaryTransport ثبت نام کنید .

آزمایشی برای حذف WebSQL

WebSQL در حال حذف از کروم است. سایت های متکی بر آن تشویق می شوند تا از طریق Wasm به SQLite بروند.

این آزمایش منسوخ شدن به برنامه‌نویسانی که برای انتقال به زمان بیشتری نیاز دارند، می‌توانند تا Chrome 123 (مارس 2024) به استفاده از WebSQL ادامه دهند. برای آزمایش منسوخ شدن WebSQL ثبت نام کنید.

برنامه های وب با زبانه

به پنجره های برنامه وب اجازه دهید یک نوار برگه داشته باشند، به عنوان مثال، برای ویرایش چندین سند در یک برنامه. این یک حالت نمایش جدید "tabed" و یک فیلد مانیفست جدید اضافه می کند تا امکان سفارشی سازی در نوار برگه را فراهم کند.

برای نسخه آزمایشی اصلی برنامه‌های وب Tabbed ثبت نام کنید .

محرومیت ها و حذف ها

این نسخه از Chrome موارد منسوخ و حذف فهرست شده در زیر را معرفی می کند. برای مشاهده لیستی از لغو برنامه ریزی شده، منسوخ شدن فعلی و حذف قبلی، از ChromeStatus.com دیدن کنید.

این نسخه از Chrome دو ویژگی را منسوخ می‌کند.

رویداد unload را منسوخ کنید

Chrome 117 روند منسوخ کردن کنترل کننده رویداد unload را آغاز می کند. اگر سایت شما از این موارد استفاده می کند، اکیداً به شما توصیه می شود برای جزئیات بیشتر ، پست اختصاصی در مورد منسوخ کردن unload را بخوانید.

امضای سرور TLS SHA-1 را منسوخ کنید

Chrome در حال حذف پشتیبانی از الگوریتم‌های امضا با استفاده از SHA-1 برای امضای سرور در حین دست دادن TLS است. این بر پشتیبانی SHA-1 در گواهی‌های سرور، که قبلاً حذف شده‌اند، یا در گواهی‌های سرویس گیرنده که همچنان پشتیبانی می‌شوند، تأثیری نمی‌گذارد.

این نسخه از Chrome چهار ویژگی را حذف می‌کند.

[WebRTC] لغو ارسال getStats قدیمی مبتنی بر تماس ()

RTCPeerConnection دو نسخه از getStats() دارد، یکی که مطابق با مشخصات است و گزارش را از طریق حل کردن یک وعده بازمی‌گرداند، و دیگری غیراستاندارد است که یک گزارش بسیار متفاوت را از طریق یک callback به عنوان اولین آرگومان برمی‌گرداند. نسخه مبتنی بر تماس اکنون حذف شده است.

برای اطلاعات بیشتر در مورد مهاجرت، و در صورت نیاز به زمان بیشتر، به راهنمای مهاجرت () Legacy getStats مراجعه کنید.

حذف مقدار -1 برای WebRTC getStats datachannelIdentifier

WebRTC getStats API یک ویژگی dataChannelIdentifier را نشان می دهد. در مواردی که آمار قبل از برقراری ارتباط کانال داده مورد پرسش قرار می گیرد، دیگر مقدار "-1" را ارائه نمی دهد. در عوض، عضو فرهنگ لغت حذف خواهد شد.

حذف WebRTC getStats encoderImplementation و decoderImplementation "ناشناخته"

WebRTC getStats API نام‌های پیاده‌سازی رمزگذار و رمزگشا را برای ویدیوهای خروجی و ورودی نشان می‌دهد. در مواردی که آمار قبل از رمزگذاری یا رمزگشایی یک فریم ویدیویی درخواست می شود، دیگر مقدار "ناشناخته" را ارائه نمی دهد. در عوض، عضو فرهنگ لغت حذف خواهد شد.

ویژگی CSS -webkit-highlight

ویژگی CSS -webkit-highlight که برای برجسته کردن متن در نظر گرفته شده است، اما هرگز استاندارد نشده است، حذف کنید. هیچ اثر قابل مشاهده ای در کروم ندارد (تجزیه می شود اما هرگز در رندر محتوا استفاده نمی شود). این ویژگی در سال 2014 از WebKit حذف شد، در MDN به‌عنوان منسوخ علامت‌گذاری شد و اخیراً با CSS Highlight Pseudo spec جایگزین شده است.