تاریخ انتشار پایدار: 4 فوریه 2025
مگر اینکه خلاف آن ذکر شده باشد، تغییرات زیر برای انتشار کانال پایدار Chrome 133 برای Android، ChromeOS، Linux، macOS و Windows اعمال میشود.
HTML و DOM
مقدار اشاره ویژگی popover
Popover API رفتار دو مقدار از ویژگی popover را مشخص می کند: auto و manual. این ویژگی یک مقدار سوم، popover=hint
را توصیف می کند. نکات، که اغلب با رفتارهای نوع «نکات ابزار» همراه هستند، رفتارهای کمی متفاوت دارند. در درجه اول، تفاوت این است که هنگام باز کردن پشته های تو در تو از پاپاورها، یک اشاره تابع خودکار است. بنابراین می توان یک پاپاور اشاره نامرتبط را باز کرد در حالی که یک پشته پاپاور خودکار موجود باز می ماند.
مثال متعارف این است که یک انتخابگر <select>
باز است ( popover=auto
) و یک راهنمای ابزار با حرکت شناور ( popover=hint
) نشان داده می شود. آن عمل انتخابگر <select>
را نمیبندد.
باگ ردیابی #1416284 | ورودی ChromeStatus.com
فراخوان Popover و بهبود موقعیت لنگر
روشی ضروری برای تنظیم روابط فراخوان بین popover ها با popover.showPopover({source})
اضافه می کند. روابط فراخوان را برای ایجاد ارجاعات عنصر لنگر ضمنی فعال می کند.
باگ ردیابی #364669918 | ورودی ChromeStatus.com
Popover تو در تو در Invoker نباید دوباره آن را فراخوانی کند
در حالت زیر کلیک کردن روی دکمه به درستی پاپاور را فعال می کند، اما با کلیک روی خود پاپاور پس از آن نباید پاپاور را ببندید.
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
قبلاً این اتفاق میافتاد، زیرا پاپاور کلیک حباب به <button>
میزند و فراخوان را فعال میکند، که پاپاور بسته را تغییر میدهد. اکنون این به رفتار مورد انتظار تغییر کرده است.
اشکال ردیابی #https://crbug.com/379241451 | ورودی ChromeStatus.com
CSS
attr()
پیشرفته CSS
افزودن به attr()
مشخص شده در CSS Level 5 را پیادهسازی میکند، که به انواع دیگری علاوه بر <string>
و استفاده در تمام ویژگیهای CSS (علاوه بر پشتیبانی موجود از محتوای شبه عنصر) اجازه میدهد.
MDN attr() | باگ ردیابی #246571 | ورودی ChromeStatus.com | مشخصات
CSS :open
شبه کلاس :open
با <dialog>
و <details>
زمانی که در حالت باز هستند مطابقت دارد و با <select>
و <input>
زمانی که در حالتهایی هستند که دارای یک انتخابگر هستند و انتخابگر در حال نمایش است مطابقت دارد.
باگ ردیابی #324293874 | ورودی ChromeStatus.com | مشخصات
پرس و جوهای کانتینر وضعیت اسکرول CSS
از کوئری های کانتینر برای استایل دادن به نوادگان کانتینرها بر اساس وضعیت اسکرول آنها استفاده کنید.
محفظه پرس و جو یا یک محفظه اسکرول یا عنصری است که تحت تأثیر موقعیت اسکرول یک ظرف اسکرول قرار می گیرد. حالات زیر قابل پرس و جو هستند:
-
stuck
: یک ظرف چسبنده به یکی از لبههای جعبه اسکرول چسبانده شده است. -
snapped
: یک ظرف تراز شده با اسکرول در حال حاضر به صورت افقی یا عمودی قطع می شود. -
scrollable
: اینکه آیا میتوان ظرف پیمایش را در جهتی مورد نظر پیمایش کرد یا خیر.
یک نوع کانتینر جدید: scroll-state
به کانتینرها امکان می دهد پرس و جو شوند.
باگ ردیابی #40268059 | ورودی ChromeStatus.com | مشخصات
CSS text-box
، text-box-trim
و text-box-edge
برای دستیابی به تعادل بهینه محتوای متن، ویژگیهای text-box-trim
و text-box-eddge، به همراه ویژگی کوتاهنویسی جعبه متن، کنترل دقیق تر تراز عمودی متن را ممکن میسازد.
ویژگی text-box-trim
اضلاع برای برش، بالا یا پایین را مشخص می کند و ویژگی text-box-edge
نحوه برش لبه را مشخص می کند.
این ویژگی ها به شما امکان می دهد فاصله عمودی را دقیقاً با استفاده از معیارهای فونت کنترل کنید.
باگ ردیابی #1411581 | ورودی ChromeStatus.com | مشخصات
API های وب
Animation.overallProgress
به توسعه دهندگان نمایش راحت و ثابتی از میزان پیشرفت یک انیمیشن در طول تکرار خود و صرف نظر از ماهیت جدول زمانی آن ارائه می دهد. بدون ویژگی overallProgress
، باید به صورت دستی محاسبه کنید که یک انیمیشن چقدر پیشرفت کرده است، تعداد تکرارهای انیمیشن و اینکه آیا currentTime
انیمیشن درصدی از زمان کل است (مانند انیمیشن های اسکرول محور) را در نظر بگیرید. یا کمیت زمان مطلق (مانند انیمیشن های زمان محور).
باگ ردیابی #40914396 | ورودی ChromeStatus.com | مشخصات
pause()
شی Atomics
متد pause()
را به شی فضای نام Atomics
اضافه می کند تا به CPU اشاره کند که کد فعلی در حال اجرای یک قفل چرخشی است.
ورودی ChromeStatus.com | مشخصات
گزارش هش CSP برای اسکریپت ها
برنامه های کاربردی وب پیچیده اغلب برای اهداف امنیتی نیاز به پیگیری منابع فرعی که دانلود می کنند دارند.
به طور خاص، استانداردهای صنعت آینده و بهترین شیوه ها (به عنوان مثال، PCI-DSS v4) مستلزم آن است که برنامه های کاربردی وب فهرستی از تمام اسکریپت هایی که دانلود و اجرا می کنند داشته باشند.
این ویژگی بر روی CSP و Reporting API ساخته شده است تا نشانیهای اینترنتی و هشها (برای CORS/همان منبع) همه منابع اسکریپتی را که سند بارگیری میکند گزارش کند.
باگ ردیابی #377830102 | ورودی ChromeStatus.com
حرکت حفظ حالت DOM
یک DOM اولیه ( Node.prototype.moveBefore
) اضافه می کند که به شما امکان می دهد عناصر را در اطراف درخت DOM بدون تنظیم مجدد حالت عنصر حرکت دهید.
هنگام جابجایی به جای برداشتن و وارد کردن، حالت زیر مانند حالت زیر حفظ می شود:
- عناصر
<iframe>
بارگذاری می شوند. - عنصر فعال تمرکز باقی می ماند.
- گفتگوهای پاپاور، تمام صفحه و مدال باز می مانند.
- انتقال CSS و انیمیشن ها ادامه دارد.
ویژگی attributionsrc
را در <area>
نشان دهید.
قرار گرفتن در معرض صفت attributionsrc
در <area>
را با رفتار پردازشی موجود مشخصه تراز می کند، حتی زمانی که در معرض دید قرار نگرفته باشد.
علاوه بر این، پشتیبانی از ویژگی در <area>
منطقی است، زیرا آن عنصر یک سطح ناوبری درجه یک است و Chrome قبلاً از این ویژگی در سطوح دیگر <a>
و window.open
پشتیبانی میکند.
باگ ردیابی #379275911 | ورودی ChromeStatus.com | مشخصات
رابط FileSystemObserver
رابط FileSystemObserver
وب سایت ها را از تغییرات سیستم فایل مطلع می کند. سایتها تغییرات فایلها و دایرکتوریها را مشاهده میکنند، که کاربر قبلاً به آنها اجازه داده است، در دستگاه محلی کاربر، یا در سیستم فایل Bucket (همچنین به عنوان Origin Private File System) شناخته میشود، و از اطلاعات اصلی تغییر مطلع میشوند، مانند نوع تغییر
باگ ردیابی #40105284 | ورودی ChromeStatus.com
چندین نقشه وارداتی
نقشههای وارداتی در حال حاضر باید قبل از هر ماژول ES بارگیری شوند و تنها یک نقشه وارداتی در هر سند وجود دارد. این باعث می شود آنها در سناریوهای زندگی واقعی شکننده و به طور بالقوه آهسته استفاده شوند: هر ماژولی که قبل از آنها بارگذاری شود، کل برنامه را خراب می کند و در برنامه هایی با ماژول های زیادی تبدیل به یک منبع مسدود کننده بزرگ می شود، زیرا کل نقشه برای همه ماژول های ممکن باید بارگیری شود. اول
این ویژگی با ادغام آنها به روشی ثابت و قطعی، چندین نقشه واردات را در هر سند فعال می کند.
هدرهای دسترسی به فضای ذخیره سازی
روشی جایگزین برای تعبیههای احراز هویت شده برای انتخاب کوکیهای پارتیشن نشده ارائه میدهد. این سرصفحهها نشان میدهند که آیا کوکیهای پارتیشن نشده در یک درخواست شبکه وجود دارد یا نه، و به سرورها اجازه میدهد مجوزهای دسترسی به ذخیرهسازی را که قبلاً به آنها داده شده است، فعال کنند. ارائه یک روش جایگزین برای فعال کردن مجوز دسترسی به فضای ذخیرهسازی، استفاده از منابع غیرiframe را امکانپذیر میکند و میتواند تأخیر در تعبیههای احراز هویت شده را کاهش دهد.
باگ ردیابی #329698698 | ورودی ChromeStatus.com | مشخصات
از ایجاد ClipboardItem
با Promise<DOMString>
پشتیبانی کنید
ClipboardItem
که ورودی متد async clipboard write()
است، اکنون مقادیر رشته ای را علاوه بر Blobs در سازنده خود می پذیرد. ClipboardItemData
می تواند یک Blob، یک رشته یا یک Promise باشد که به یک Blob یا یک رشته تبدیل می شود.
باگ ردیابی #40766145 | ورودی ChromeStatus.com | مشخصات
WebAssembly Memory64
پیشنهاد memory64 از حافظه های WebAssembly خطی با اندازه بزرگتر از 2^32 بیت پشتیبانی می کند. هیچ دستورالعمل جدیدی ارائه نمیکند، اما در عوض دستورالعملهای موجود را گسترش میدهد تا فهرستهای 64 بیتی برای حافظهها و جداول اجازه دهد.
ورودی ChromeStatus.com | مشخصات
Web Authentication API: متد PublicKeyCredential
getClientCapabilities()
.
متد PublicKeyCredential
getClientCapabilities()
به شما امکان می دهد تعیین کنید کدام ویژگی WebAuthn توسط کلاینت کاربر پشتیبانی می شود. این روش فهرستی از قابلیتهای پشتیبانی شده را برمیگرداند و به توسعهدهندگان اجازه میدهد تا تجربیات و گردشهای کاری احراز هویت را بر اساس عملکرد خاص مشتری تنظیم کنند.
باگ ردیابی #360327828 | ورودی ChromeStatus.com | مشخصات
الگوریتم X25519 Web Cryptography API
الگوریتم "X25519" ابزارهایی را برای انجام توافق کلید با استفاده از تابع X25519 مشخص شده در [RFC7748] فراهم می کند. شناسه الگوریتم "X25519" را می توان در رابط SubtleCrypto برای دسترسی به عملیات اجرا شده استفاده کرد:geneKey، importKey، exportKey، deriveKey و deriveBits.
باگ ردیابی #378856322 | ورودی ChromeStatus.com | مشخصات
عملکرد
انجماد در صرفه جویی در انرژی
وقتی «بهینهسازی انرژی» فعال است، Chrome «گروه زمینه مرور» را که برای بیش از پنج دقیقه پنهان و بیصدا بوده است، مسدود میکند، اگر زیرگروههای فریمهای هممنشا در آن از آستانه استفاده از CPU فراتر رود، مگر اینکه:
- عملکرد کنفرانس صوتی یا ویدیویی را ارائه می دهد (با شناسایی میکروفون، دوربین یا ضبط صفحه/پنجره/برگه یا اتصال RTCPeer با یک کانال RTCData "باز" یا یک MediaStreamTrack "زنده" شناسایی می شود.
- یک دستگاه خارجی را کنترل می کند (با استفاده از WebUSB، Web Bluetooth، WebHID یا سریال Web شناسایی می شود).
- یک Web Lock یا یک اتصال IndexedDB را نگه میدارد که بهروزرسانی نسخه یا تراکنش روی یک اتصال دیگر را مسدود میکند.
- فریز کردن شامل توقف اجرا می شود. به طور رسمی در Page Lifecycle API تعریف شده است.
آستانه استفاده از CPU برای ثابت کردن تقریباً 10٪ از برگههای پسزمینه زمانی که Energy Saver فعال است، کالیبره میشود.
باگ ردیابی #325954772 | ورودی ChromeStatus.com
در معرض renderTime
بندی عنصر و LCP (صرف نظر از Timing-Allow-Origin
)
زمان بندی عنصر و ورودی های LCP دارای ویژگی renderTime
هستند که با اولین فریمی که یک تصویر یا متن در آن نقاشی شده است، تراز است.
این ویژگی در حال حاضر برای تصاویر متقاطع با نیاز به هدر Timing-Allow-Origin
در منبع تصویر محافظت می شود. با این حال، کار کردن با این محدودیت آسان است (به عنوان مثال، با نمایش یک تصویر با مبدا و منبع متقابل در یک قاب).
از آنجایی که این یک منبع سردرگمی بوده است، در عوض قصد داریم این محدودیت را حذف کنیم، و در عوض زمانی که سند جدا از مبدا متقاطع نیست، تمام زمانهای رندر را 4 میلیثانیه درشت کنیم. این به نظر به اندازه کافی درشت است تا از افشای هرگونه اطلاعات مفید در زمان رمزگشایی در مورد تصاویر متقاطع جلوگیری شود.
باگ ردیابی #373263977 | ورود Chromestatus.com | مشخصات
Revert responseStart
و معرفی firstResponseHeadersStart
با فعال بودن 103 نکات اولیه، پاسخ ها دارای دو مهر زمانی هستند:
- هنگامی که نکات اولیه می رسد (103)
- وقتی هدرهای نهایی می رسند (مثلا 200)
- هنگامی که Chrome 115
firstInterimResponseStart
را ارسال کرد تا امکان اندازهگیری این دو مُهر زمانی را فراهم کند، ما همچنین معنایresponseStart
(استفاده شده توسط Time to First Byte (TTFB)) را به معنای «سرصفحههای نهایی» تغییر دادیم. این یک مشکل سازگاری وب با مرورگرها و ابزارهایی ایجاد کرد که تغییر مشابهی برای این معیار رایج ایجاد نکردند.
Chrome 133 برای حل این مشکل سازگاری، این تغییر responseStart
برمیگرداند و در عوض firstResponseHeadersStart
معرفی میکند تا به سایتها اجازه دهد زمان را تا سرصفحههای نهایی اندازهگیری کنند، در حالی که تعریف اصلی TTFB را حفظ میکنند.
باگ ردیابی #40251053 | ورودی ChromeStatus.com | مشخصات
رندر و گرافیک
WebGPU: فرمتهای راس 1 جزء (و unorm8x4-bgra)
فرمتهای راس اضافی را اضافه میکند که در نسخه اولیه WebGPU به دلیل عدم پشتیبانی یا نسخههای قدیمی macOS (که دیگر توسط هیچ مرورگری پشتیبانی نمیشوند) وجود ندارد. فرمتهای رأس 1 جزء به برنامهها اجازه میدهند فقط دادههای لازم را زمانی درخواست کنند که قبلاً مجبور بودند حداقل دو برابر بیشتر برای انواع دادههای 8 و 16 بیتی درخواست کنند. فرمت unorm8x4-bgra بارگذاری رنگهای رأس کدگذاریشده با BGRA را با حفظ همان سایهزن، کمی راحتتر میکند.
باگ ردیابی #376924407 | ورودی ChromeStatus.com
آزمایش های مبدا
از انجماد در Energy Saver انصراف دهید
این آزمایش انصراف به سایتها امکان میدهد از تعلیق رفتار «بهینهسازی انرژی» که در Chrome 133 ارسال میشود، انصراف دهند.
Origin Trial | باگ ردیابی #325954772 | ورودی ChromeStatus.com | مشخصات
هدف مرجع برای Cross-root ARIA
Reference Target یک ویژگی برای فعال کردن استفاده از ویژگی های IDREF مانند for
و aria-labelledby
برای ارجاع به عناصر داخل DOM سایه یک جزء است، در حالی که کپسوله کردن جزئیات داخلی سایه DOM را حفظ می کند. هدف اصلی این ویژگی این است که ARIA را قادر سازد تا در مرزهای ریشه سایه کار کند.
یک جزء می تواند عنصری را در درخت سایه خود مشخص کند تا به عنوان "هدف مرجع" آن عمل کند. هنگامی که جزء میزبان هدف IDREF است، مانند ویژگی for
، هدف مرجع به هدف موثر برچسب تبدیل می شود.
ریشه سایه شناسه عنصر هدف را در داخل سایه DOM مشخص می کند. این کار یا در جاوا اسکریپت با ویژگی referenceTarget
در شی ShadowRoot
یا در نشانه گذاری HTML با استفاده از ویژگی shadowrootreferencetarget
در عنصر <template>
انجام می شود.
Origin Trial | ورودی ChromeStatus.com
محرومیت ها و حذف ها
محدودیت WebGPU maxInterStageShaderComponents
را منسوخ کنید
maxInterStageShaderComponents limit
به دلیل ترکیبی از عوامل منسوخ شده است. تاریخ حذف مورد نظر در Chrome 135.
- افزونگی با
maxInterStageShaderVariables
: این محدودیت در حال حاضر هدف مشابهی را دنبال می کند، کنترل مقدار داده ارسال شده بین مراحل سایه زن. - اختلافات جزئی: در حالی که تفاوت های جزئی در نحوه محاسبه دو حد وجود دارد، این تفاوت ها جزئی هستند و می توان به طور موثر در محدوده
maxInterStageShaderVariables
مدیریت کرد. - ساده سازی: حذف
maxInterStageShaderComponents
رابط سایه زن را ساده می کند و پیچیدگی را برای توسعه دهندگان کاهش می دهد. به جای مدیریت دو محدودیت جداگانه با تفاوتهای ظریف، میتوانند رویmaxInterStageShaderVariables
با نام مناسبتر و جامعتر تمرکز کنند.
قانون پنج دقیقه <link rel=prefetch>
را حذف کنید
قبلاً، هنگامی که منبعی با استفاده از <link rel=prefetch>
واکشی میشد، کروم معنای کش آن (یعنی max-age
و no-cache
) را برای اولین بار در عرض پنج دقیقه نادیده میگرفت تا از واکشی مجدد جلوگیری کند. اکنون کروم این مورد خاص را حذف کرده و از معنای کش HTTP معمولی استفاده می کند.
این بدان معناست که توسعهدهندگان وب باید هدرهای ذخیرهسازی مناسب (Cache-Control یا Expires) را برای مشاهده مزایای <link rel=prefetch>
وارد کنند.
این بر <link rel=prerender>
غیر استاندارد نیز تأثیر می گذارد.
باگ ردیابی #40232065 | ورودی ChromeStatus.com
حذف صفحه خوشآمدگویی کروم با برگههای اولیه اجرا شده اولیه
گنجاندن chrome://welcome
در ویژگی first_run_tabs
فایل initial_preferences
اکنون هیچ تاثیری نخواهد داشت. این حذف می شود زیرا آن صفحه با اولین تجربه اجرا که در پلتفرم های دسکتاپ راه اندازی می شود، اضافی است.