کروم 108 بتا

واحدهای نمای CSS جدید، API مدیریت اعتبار فدرال، فونت‌های متغیر COLRv1 و موارد دیگر.

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

CSS

Chrome 108 شامل تعدادی ویژگی جدید CSS است.

سرریز CSS برای عناصر جایگزین شده

Chrome شروع به ایجاد تغییری می کند که به توسعه دهندگان امکان می دهد از ویژگی overflow موجود با عناصر جایگزین شده استفاده کنند که خارج از جعبه محتوا نقاشی می کنند. در جفت شدن با object-view-box می توان از آن برای ایجاد تصویری با درخشش سفارشی یا سایه اعمال شده، با رفتار سرریز جوهر مناسب مانند سایه CSS استفاده کرد.

این یک تغییر بالقوه شکسته است، در «تغییر به سرریز کردن عناصر جایگزین شده» بیشتر بیاموزید.

واحدهای نمای کوچک، بزرگ، پویا و منطقی

این قابلیت پشتیبانی از کوچک ( svw ، svh ، svi ، svb ، svmin ، svmax )، بزرگ ( lvw ، lvh ، lvi ، lvb ، lvmin ، lvmaxdvh ( dvw ، dvi ، dvb ، dvmax dvmin را اضافه می کند. واحدهای منطقی ( vi ، vb ).

پشتیبانی CSS break-after ، break-before و break-inside

پشتیبانی از مقدار اجتناب از خصوصیات تکه تکه شدن CSS break-before ، break-after و break-inside هنگام چاپ. این مقدار به مرورگر می‌گوید که از شکستن قبل، بعد یا داخل عنصری که روی آن اعمال می‌شود اجتناب کند. به عنوان مثال، CSS زیر از شکسته شدن یک شکل در شکست صفحه جلوگیری می کند.

figure {
    break-inside: avoid;
}

این ویژگی به دلیل افزودن پشتیبانی Chrome 108 برای چاپ LayoutNG اضافه شده است.

آخرین تراز بندی آیتم پایه

این ویژگی به توسعه‌دهندگان اجازه می‌دهد تا آیتم‌ها را در طرح‌بندی انعطاف‌پذیر یا شبکه‌ای بر اساس آخرین خط پایه خود، به‌جای اولین خط خود، تراز کنند. این کار از طریق ویژگی های زیر انجام می شود:

  • align-items: last baseline;
  • justify-items: last baseline;
  • align-self: last baseline;
  • justify-self: last baseline;

رویداد ContentVisibilityAutoStateChanged

رویدادی که روی یک عنصر با content-visibility: auto زمانی که وضعیت رندر عنصر به دلیل هر یک از ویژگی‌هایی که عنصر را به کاربر مرتبط می‌کند تغییر می‌کند، خودکار.

مورد استفاده برای این است که به توسعه دهندگان اجازه می دهیم کنترل بیشتری بر روی زمان توقف یا شروع رندر در پاسخ به توقف یا شروع رندر زیردرخت مشاهده محتوا توسط user-agent داشته باشند. برای مثال، توسعه‌دهنده ممکن است بخواهد به‌روزرسانی‌های React را در زیردرختی که توسط user-agent ارائه نمی‌شود، متوقف کند. به طور مشابه، توسعه‌دهنده ممکن است بخواهد هرگونه به‌روزرسانی اسکریپت دیگر (مثلاً به‌روزرسانی‌های بوم) را زمانی که کاربر-عامل عنصر را رندر نمی‌کند، متوقف کند.

API های وب

مدیریت اعتبارات فدرال (WebID بود)

API مدیریت اعتبار فدرال به کاربران این امکان را می دهد که هویت فدرال خود را برای ورود به وب سایت ها به روشی سازگار با بهبود حریم خصوصی مرورگر بیاورند.

افزونه های منبع رسانه در کارگران

استفاده از برنامه های افزودنی منبع رسانه (MSE) را از زمینه های DedicatedWorker فعال می کند تا عملکرد بهبودیافته رسانه بافر را برای پخش توسط یک HTMLMediaElement در زمینه پنجره اصلی فعال کند. با ایجاد یک شی MediaSource در زمینه DedicatedWorker، یک برنامه کاربردی ممکن است پس از آن یک MediaSourceHandle را از آن به دست آورد و آن دسته را به رشته اصلی منتقل کند تا برای اتصال به یک HTMLMediaElement استفاده شود. پس زمینه ای که شی MediaSource را ایجاد کرده است ممکن است از آن برای بافر رسانه استفاده کند.

Sec-CH-Prefers-Reduced-Motion Preferences Media Features Client Hints Header

ویژگی های رسانه ترجیحی کاربر Client Hints Headers مجموعه ای از هدرهای HTTP Client Hints را در اطراف ویژگی های رسانه ترجیحی کاربر همانطور که توسط Media Queries Level 5 تعریف شده است، تعریف می کند. اگر به عنوان Critical Client Hints استفاده شود، این سرصفحه ها به سرورها اجازه می دهد تا انتخاب های هوشمندانه ای را در رابطه با CSS درونی انجام دهند. . Sec-CH-Prefers-Reduced-Motion prefers-reduced-motion کاربر را منعکس می کند.

WebTransport خوانندگان BYOB

از خواننده های BYOB (بافر خود را بیاورید) برای WebTransport پشتیبانی می کند تا امکان خواندن در بافر ارائه شده توسط توسعه دهنده را فراهم کند. خواننده های BYOB می توانند کپی های بافر را به حداقل برسانند و تخصیص حافظه را کاهش دهند.

حروف عام در Permissions Policy Origins

مشخصات خط مشی مجوزها مکانیزمی را تعریف می کند که به توسعه دهندگان اجازه می دهد تا به طور انتخابی استفاده از ویژگی های مرورگر و API های مختلف را فعال یا غیرفعال کنند. یکی از قابلیت‌های این مکانیسم به ویژگی‌ها اجازه می‌دهد که فقط در مبداهایی که صریحاً برشمرده شده‌اند (مثلاً https://foo.com/ ) فعال شوند. این مکانیسم برای طراحی برخی از CDN ها به اندازه کافی انعطاف پذیر نیست، که محتوا را از طریق منبعی ارائه می کنند که ممکن است در یکی از صدها زیر دامنه ممکن میزبانی شود.

بنابراین، این ویژگی در خط مشی مجوزها با ساختاری مانند SCHEME://*.HOST:PORT (به عنوان مثال، https://*.foo.com/ ) پشتیبانی از حروف عام را اضافه می کند که در آن می توان یک مبدا معتبر از SCHEME://HOST:PORT ایجاد کرد. SCHEME://HOST:PORT (به عنوان مثال، https://foo.com/ ). این مستلزم آن است که HOST یک دامنه قابل ثبت باشد. این به این معنی است که https://*.bar.foo.com/ کار می کند اما https://*.com/ این کار را نمی کند (اگر می خواهید به همه دامنه ها اجازه استفاده از این ویژگی را بدهید، فقط باید به * واگذار کنید).

روش های همگام سازی AccessHandles در File System Access API

متدهای ناهمزمان flush() ، getSize() و truncate() در FileSystemSyncAccessHandle در File System Access API به روش های همزمان به روز می کند. FileSystemSyncAccessHandle در حال حاضر ترکیبی از روش‌های همگام‌سازی و همگام‌سازی را دارد که مانع عملکرد و قابلیت استفاده می‌شود، به‌ویژه برای برنامه‌هایی که C/C++ را به Wasm منتقل می‌کنند. این به‌روزرسانی باعث ایجاد ثبات در استفاده از API و بهبود عملکرد کتابخانه‌های مبتنی بر Wasm می‌شود.

این یک تغییر بالقوه شکسته است، می‌توانید در «تغییر شکستن: روش‌های همگام‌سازی برای AccessHandles» بیشتر بخوانید.

رابط کاربری شرطی WebAuthn

رابط کاربری شرطی WebAuthn در Windows 22H2 یا جدیدتر، macOS و Android P یا جدیدتر پشتیبانی می‌شود. رابط کاربری WebAuthn در سیستم عامل های دسکتاپ نیز به روز شده است.

فونت های متغیر COLRv1 و تشخیص ویژگی فونت

پشتیبانی از فونت متغیر COLRv1

فونت‌های برداری رنگی COLRv1 از Chrome 98 پشتیبانی می‌شوند، اما این نسخه اولیه فقط از عملکرد ثابت جدول COLRv1 پشتیبانی می‌کرد. مشخصات COLRv1 یکپارچگی با OpenType Variations را تعریف می‌کند که اجازه می‌دهد ویژگی‌های فونت گرادیان‌ها و تبدیل‌ها را با تغییر پارامترهای محور متغیر تغییر دهید. این مرحله دوم پشتیبانی از چنین تغییراتی را برای COLRv1 به ارمغان می آورد.

پسوندهای font-tech() و font-format() به CSS @supports

استفاده از font-tech() و font-format() همراه با CSS@supports امکان شناسایی فناوری فونت و پشتیبانی از فرمت و افزایش تدریجی محتوا را فراهم می کند. نمونه زیر برای پشتیبانی از فونت های COLRv1 تست می کند.

@supports font-tech(color-COLRv1) {

}

پشتیبانی از تابع tech() در توصیفگر @font-face src:

CSS Fonts Level 4 ابزار دیگری برای انتخاب یا فیلتر کردن منابع فونت فراهم می کند. تابع tech() معرفی شد که اجازه می‌دهد لیستی از فناوری‌های فونتی را که این حباب فونت مربوطه برای عملکرد به آن نیاز دارد، عبور دهد. بر این اساس، User Agent اولین منبع مناسب را انتخاب می کند.

کروم در اندروید

Android OSK اکنون به طور پیش فرض اندازه نمای بصری را تغییر می دهد

صفحه‌کلید روی صفحه آندروید به‌جای بلوک حاوی اولیه ، اندازه نمای بصری را به‌طور پیش‌فرض تغییر می‌دهد . نویسندگان می توانند با استفاده از کلید متا interactive-widget از این گزینه انصراف دهند.

آزمایش های مبدا

این نسخه از Chrome دارای دو نسخه آزمایشی جدید است.

هویت تاجر در رویداد canmakepayment

رویداد کارگر خدمات canmakepayment به تاجر اجازه می‌دهد تا بداند آیا کاربر کارتی در پرونده در برنامه پرداخت نصب‌شده دارد یا خیر. به‌طور بی‌صدا مبدا و داده‌های دلخواه تاجر را از مبدأ برنامه پرداخت به یک کارگر خدماتی ارسال می‌کند. این ارتباط متقاطع در ساخت PaymentRequest در جاوا اسکریپت انجام می شود، نیازی به ژست کاربر ندارد و هیچ رابط کاربری را نشان نمی دهد. آزمایش برنامه‌نویس برای حذف فیلدهای هویت از رویداد "canmakepayment" را می‌توان از طریق: chrome://flags/#clear-identity-in-can-make-payment فعال کرد. با فعال کردن این پرچم، فیلدهای هویت در رویداد "canmakepayment" (و Android IS_READY_TO_PAY Intent) خالی می شود.

در به‌روزرسانی رفتار رویداد CanMakePayment در Payment Handler API بیشتر بیاموزید.

Back/Forward cache NotRestoredReason API

NotRestoredReason API لیستی از دلایل عدم ارائه یک صفحه از BFcache در ساختار درختی فریم را از طریق PerformanceNavigationTiming API گزارش می کند.

صفحات را می توان به دلایل مختلف از BFcache مسدود کرد، مانند دلایلی که مشخصات مورد نیاز است، و دلایل خاص اجرای مرورگر. توسعه‌دهندگان می‌توانند نرخ ضربه BFCache را در سایت خود با استفاده از پارامتر تداوم کنترل‌کننده pageshow و PerformanceNavigationTiming.type(back-forward) جمع‌آوری کنند. این API این امکان را برای سایت‌ها فراهم می‌کند که اطلاعاتی در مورد اینکه چرا از BFCache در پیمایش تاریخچه استفاده نمی‌شود، جمع‌آوری کنند تا بتوانند در هر دلیل اقداماتی انجام دهند و صفحه خود را با BFCache سازگار کنند.

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

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

تحقیرها

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

window.defaultStatus و window.defaultstatus را منسوخ و حذف کنید

اینها APIهای غیر استانداردی هستند که توسط همه مرورگرها پیاده سازی نمی شوند و تأثیری بر رفتار مرورگر ندارند. این کار آنها را تمیز می کند و سیگنال اثر انگشت احتمالی را حذف می کند.

آنها در ابتدا برای تغییر/کنترل متن "نوار وضعیت" در پایین پنجره های مرورگر استفاده می شدند. با این حال، آنها هرگز هیچ تاثیر واقعی بر نوار وضعیت کروم نداشته اند و ویژگی های استاندارد شده نیستند. Gecko از نسخه 23 این ویژگی ها را پشتیبانی نکرده است. WebKit همچنان از این ویژگی ها پشتیبانی می کند. ویژگی window.status مربوطه استاندارد شده است ، اما هرگز نباید بر نوار وضعیت پنجره تأثیر بگذارد .

حذف ها

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

ImageDecoderInit.premultiplyAlpha را حذف کنید

این ویژگی در موارد استفاده اولیه هیچ اثر قابل مشاهده ای ندارد، اما ممکن است پیاده سازی ها را به روش های غیربهینه محدود کند. برای توضیحات بیشتر به این شماره مراجعه کنید. بر اساس اجماع ویرایشگرهای مشخصات WebCodecs و عدم استفاده (0.000000339٪ - 0.00000687٪ بارگیری صفحه در هر شمارنده استفاده در M106).

حذف navigateEvent.restoreScroll()

restoreScroll() با navigateEvent.scroll() جایگزین شده است. scroll() یکسان کار می کند با این تفاوت که به توسعه دهنده اجازه می دهد زمان بندی اسکرول را برای پیمایش های غیر تراورس کنترل کند ( scroll() زمانی کار می کند که اسکرول بازیابی نباشد، بنابراین نام همراه با تغییر رفتار تغییر می کند).

حذف navigateEvent.transitionWhile()

transitionWhile() با navigateEvent.intercept() به دلیل نقص طراحی گزارش شده توسط توسعه دهندگان جایگزین شده است. intercept () تقریباً شبیه به transitionWhile () عمل می کند، اما به جای گرفتن یک پارامتر اجباری Promise، یک تابع handler اختیاری را می گیرد که یک Promise را برمی گرداند. این به مرورگر اجازه می‌دهد زمان اجرای کنترل‌کننده را کنترل کند، که دیرتر و بصری‌تر از transitionWhile() است.

googIPv6 WebRTC mediaConstraint را حذف کنید

مانند مثال زیر می توان "googIPv6: false" برای غیرفعال کردن پشتیبانی IPv6 در WebRTC استفاده کرد.

new RTCPeerConnection({}, {mandatory:{googIPv6:false}});

IPv6 چندین سال است که به طور پیش فرض فعال شده است و ما نباید آن را غیرفعال کنیم. این یک API قدیمی است که در مشخصات وجود ندارد.