کروم 133 بتا

تاریخ انتشار: 15 ژانویه 2024

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

CSS و UI

این نسخه هفت ویژگی جدید CSS و UI را اضافه می کند.

attr() پیشرفته CSS

افزودن به attr() مشخص شده در سطح 5 CSS را پیاده‌سازی می‌کند، که به انواع غیر از <string> و استفاده در تمام ویژگی‌های CSS (علاوه بر پشتیبانی موجود برای content شبه عنصر) اجازه می‌دهد.

اطلاعات بیشتر در CSS attr() ارتقا می یابد .

CSS :open

شبه کلاس :open با <dialog> و <details> زمانی که در حالت باز هستند مطابقت دارد و با <select> و <input> زمانی که در حالت‌هایی هستند که دارای یک انتخابگر هستند و انتخابگر در حال نمایش است مطابقت دارد.

پرس و جوهای کانتینر وضعیت اسکرول CSS

از کوئری های کانتینر برای استایل دادن به نوادگان کانتینرها بر اساس وضعیت اسکرول آنها استفاده کنید.

محفظه پرس و جو یا یک محفظه اسکرول یا عنصری است که تحت تأثیر موقعیت اسکرول یک ظرف اسکرول قرار می گیرد. حالات زیر قابل پرس و جو هستند:

  • stuck : یک ظرف چسبنده به یکی از لبه‌های جعبه اسکرول چسبانده شده است.
  • snapped : یک ظرف تراز شده با اسکرول در حال حاضر به صورت افقی یا عمودی قطع می شود.
  • scrollable : اینکه آیا می‌توان ظرف پیمایش را در جهتی مورد نظر پیمایش کرد یا خیر.

یک container-type: scroll-state به کانتینرها امکان می دهد پرس و جو شوند.

#sticky {
  position: sticky;
  container-type: scroll-state;
}

@container scroll-state(stuck: top) {
  #sticky-child {
    font-size: 75%;
  }
}

در CSS scroll-state() بیشتر بیاموزید.

CSS text-box ، text-box-trim و text-box-edge

برای دستیابی به تعادل بهینه محتوای متن، ویژگی‌های text-box-trim و text-box-edge ، به همراه ویژگی کوتاه‌نویسی text-box ، کنترل دقیق تر تراز عمودی متن را ممکن می‌سازد.

ویژگی text-box-trim اضلاع برای برش، بالا یا پایین را مشخص می کند و ویژگی text-box-edge نحوه برش لبه را مشخص می کند.

این ویژگی ها به شما امکان می دهد فاصله عمودی را دقیقاً با استفاده از معیارهای فونت کنترل کنید. در CSS text-box-trim بیشتر بیاموزید.

مقدار hint ویژگی popover

Popover API رفتار دو مقدار ویژگی popover را مشخص می کند: auto و manual . این ویژگی یک مقدار سوم، popover=hint را توصیف می کند. نکات، که اغلب با رفتارهای نوع «نکات ابزار» همراه هستند، رفتارهای کمی متفاوت دارند. در درجه اول، تفاوت این است که هنگام باز کردن پشته های تو در auto از پاپاورها، یک hint تابع خودکار است. بنابراین می توان یک پاپاور hint نامرتبط را باز کرد در حالی که یک پشته پاپاور auto موجود باز می ماند.

مثال متعارف این است که یک انتخابگر <select> باز است ( popover=auto ) و یک راهنمای ابزار با حرکت شناور ( popover=hint ) نشان داده می شود. آن عمل انتخابگر <select> را نمی‌بندد.

فراخوان Popover و بهبود موقعیت لنگر

روشی ضروری برای تنظیم روابط فراخوان بین popover ها با popover.showPopover({source}) اضافه می کند. روابط فراخوان را برای ایجاد ارجاعات عنصر لنگر ضمنی فعال می کند.

Popover تو در تو در Invoker نباید دوباره آن را فراخوانی کند

در حالت زیر کلیک کردن روی دکمه به درستی پاپاور را فعال می کند، اما با کلیک روی خود پاپاور پس از آن نباید پاپاور را ببندید.

<button popovertarget=foo>Activate
  <div popover id=foo>Clicking me shouldn't close me</div>
</button>

قبلاً این اتفاق می‌افتاد، زیرا پاپاور کلیک حباب به <button> می‌زند و فراخوان را فعال می‌کند، که پاپاور بسته را تغییر می‌دهد. اکنون این به رفتار مورد انتظار تغییر کرده است.

API های وب

Animation.overallProgress

به توسعه دهندگان نمایش راحت و ثابتی از میزان پیشرفت یک انیمیشن در طول تکرار خود و صرف نظر از ماهیت جدول زمانی آن ارائه می دهد. بدون ویژگی overallProgress ، باید به صورت دستی محاسبه کنید که یک انیمیشن چقدر پیشرفت کرده است، تعداد تکرارهای انیمیشن و اینکه آیا currentTime انیمیشن درصدی از زمان کل است (مانند انیمیشن های اسکرول محور) را در نظر بگیرید. یا کمیت زمان مطلق (مانند انیمیشن های زمان محور).

pause() شی Atomics

متد pause() را به شی فضای نام Atomics اضافه می کند تا به CPU اشاره کند که کد فعلی در حال اجرای یک قفل چرخشی است.

گزارش هش CSP برای اسکریپت ها

برنامه های کاربردی وب پیچیده اغلب برای اهداف امنیتی نیاز به پیگیری منابع فرعی که دانلود می کنند دارند.

به طور خاص، استانداردهای صنعت آینده و بهترین شیوه ها (به عنوان مثال، PCI-DSS v4) مستلزم آن است که برنامه های کاربردی وب فهرستی از تمام اسکریپت هایی که دانلود و اجرا می کنند داشته باشند.

این ویژگی بر روی CSP و Reporting API ساخته شده است تا نشانی‌های اینترنتی و هش‌ها (برای CORS/همان منبع) همه منابع اسکریپتی را که سند بارگیری می‌کند گزارش کند.

حرکت حفظ حالت DOM

یک DOM اولیه ( Node.prototype.moveBefore ) اضافه می کند که به شما امکان می دهد عناصر را در اطراف درخت DOM بدون تنظیم مجدد حالت عنصر حرکت دهید.

هنگام جابجایی به جای برداشتن و وارد کردن، حالت زیر مانند حالت زیر حفظ می شود:

  • عناصر <iframe> بارگذاری می شوند.
  • عنصر فعال تمرکز باقی می ماند.
  • گفتگوهای پاپاور، تمام صفحه و مدال باز می مانند.
  • انتقال CSS و انیمیشن ها ادامه دارد.

نشان دادن ویژگی attributionsrc در <area>

قرار گرفتن در معرض صفت attributionsrc در <area> را با رفتار پردازشی موجود مشخصه تراز می کند، حتی زمانی که در معرض دید قرار نگرفته باشد.

علاوه بر این، پشتیبانی از ویژگی در <area> منطقی است، زیرا آن عنصر یک سطح ناوبری درجه یک است، و Chrome قبلاً از این ویژگی در سطوح دیگر <a> و window.open پشتیبانی می‌کند.

در معرض renderTime بندی عنصر و LCP (صرف نظر از Timing-Allow-Origin )

زمان بندی عنصر و ورودی های LCP دارای ویژگی renderTime هستند که با اولین فریمی که یک تصویر یا متن در آن نقاشی شده است، تراز است.

این ویژگی در حال حاضر برای تصاویر متقاطع با نیاز به هدر Timing-Allow-Origin در منبع تصویر محافظت می شود. با این حال، کار کردن با این محدودیت آسان است (به عنوان مثال، با نمایش یک تصویر با مبدا و منبع متقابل در یک قاب).

از آنجایی که این یک منبع سردرگمی بوده است، در عوض قصد داریم این محدودیت را حذف کنیم، و در عوض زمانی که سند جدا از مبدا متقاطع نیست، تمام زمان‌های رندر را 4 میلی‌ثانیه درشت کنیم. این به نظر به اندازه کافی درشت است تا از افشای هرگونه اطلاعات مفید در زمان رمزگشایی در مورد تصاویر متقاطع جلوگیری شود.

رابط FileSystemObserver

رابط FileSystemObserver وب سایت ها را از تغییرات سیستم فایل مطلع می کند. سایت‌ها تغییرات فایل‌ها و دایرکتوری‌ها را مشاهده می‌کنند، که کاربر قبلاً به آنها اجازه داده است، در دستگاه محلی کاربر، یا در سیستم فایل Bucket (همچنین به عنوان Origin Private File System) شناخته می‌شود، و از اطلاعات اصلی تغییر مطلع می‌شوند، مانند نوع تغییر

انجماد در صرفه جویی در انرژی

وقتی «بهینه‌سازی انرژی» فعال است، Chrome «گروه زمینه مرور» را که برای بیش از پنج دقیقه پنهان و بی‌صدا بوده است، مسدود می‌کند، اگر زیرگروه‌های فریم‌های هم‌منشا در آن از آستانه استفاده از CPU فراتر رود، مگر اینکه:

  • عملکرد کنفرانس صوتی یا ویدیویی را ارائه می دهد (با شناسایی میکروفون، دوربین یا ضبط صفحه/پنجره/برگه یا اتصال RTCPeer با یک کانال RTCData "باز" ​​یا یک MediaStreamTrack "زنده" شناسایی می شود.
  • یک دستگاه خارجی را کنترل می کند (با استفاده از WebUSB، Web Bluetooth، WebHID یا سریال Web شناسایی می شود).
  • یک Web Lock یا یک اتصال IndexedDB را نگه می‌دارد که به‌روزرسانی نسخه یا تراکنش روی یک اتصال دیگر را مسدود می‌کند.

فریز کردن شامل توقف اجرا می شود. به طور رسمی در Page Lifecycle API تعریف شده است.

آستانه استفاده از CPU برای ثابت کردن تقریباً 10٪ از برگه‌های پس‌زمینه زمانی که Energy Saver فعال است، کالیبره می‌شود.

چند نقشه وارداتی

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

این ویژگی با ادغام آنها به روشی ثابت و قطعی، چندین نقشه واردات را در هر سند فعال می کند.

هدرهای دسترسی به فضای ذخیره سازی

روشی جایگزین برای تعبیه‌های احراز هویت شده برای انتخاب کوکی‌های پارتیشن نشده ارائه می‌دهد. این سرصفحه‌ها نشان می‌دهند که آیا کوکی‌های پارتیشن نشده در یک درخواست شبکه وجود دارد یا نه، و به سرورها اجازه می‌دهد مجوزهای دسترسی به ذخیره‌سازی را که قبلاً به آنها داده شده است، فعال کنند. ارائه یک روش جایگزین برای فعال کردن مجوز دسترسی به فضای ذخیره‌سازی، استفاده از منابع غیرiframe را امکان‌پذیر می‌کند و می‌تواند تأخیر در تعبیه‌های احراز هویت شده را کاهش دهد.

از ایجاد ClipboardItem با Promise<DOMString> پشتیبانی کنید

ClipboardItem که ورودی متد async clipboard write() است، اکنون مقادیر رشته ای را علاوه بر Blobs در سازنده خود می پذیرد. ClipboardItemData می تواند یک Blob، یک رشته یا یک Promise باشد که به یک Blob یا یک رشته تبدیل می شود.

WebAssembly Memory64

پیشنهاد memory64 از حافظه های WebAssembly خطی با اندازه بزرگتر از 2^32 بیت پشتیبانی می کند. هیچ دستورالعمل جدیدی ارائه نمی‌کند، اما در عوض دستورالعمل‌های موجود را گسترش می‌دهد تا فهرست‌های 64 بیتی برای حافظه‌ها و جداول اجازه دهد.

Web Authentication API: متد PublicKeyCredential getClientCapabilities()

متد PublicKeyCredential getClientCapabilities() به شما امکان می دهد تعیین کنید کدام ویژگی WebAuthn توسط کلاینت کاربر پشتیبانی می شود. این روش فهرستی از قابلیت‌های پشتیبانی شده را برمی‌گرداند و به توسعه‌دهندگان اجازه می‌دهد تا تجربیات و گردش‌های کاری احراز هویت را بر اساس عملکرد خاص مشتری تنظیم کنند.

WebGPU: فرمت‌های راس 1 جزء (و unorm8x4-bgra)

فرمت‌های راس اضافی را اضافه می‌کند که در نسخه اولیه WebGPU به دلیل عدم پشتیبانی یا نسخه‌های قدیمی macOS (که دیگر توسط هیچ مرورگری پشتیبانی نمی‌شوند) وجود ندارد. فرمت‌های رأس 1 جزء به برنامه‌ها اجازه می‌دهند فقط داده‌های لازم را زمانی درخواست کنند که قبلاً مجبور بودند حداقل دو برابر بیشتر برای انواع داده‌های 8 و 16 بیتی درخواست کنند. فرمت unorm8x4-bgra بارگذاری رنگ‌های رأس کدگذاری‌شده با BGRA را با حفظ همان سایه‌زن، کمی راحت‌تر می‌کند.

الگوریتم X25519 Web Cryptography API

الگوریتم "X25519" ابزارهایی را برای انجام توافق کلید با استفاده از تابع X25519 مشخص شده در [RFC7748] فراهم می کند. شناسه الگوریتم "X25519" را می توان در رابط SubtleCrypto برای دسترسی به عملیات اجرا شده استفاده کرد:geneKey، importKey، exportKey، deriveKey و deriveBits.

آزمایشات منشاء جدید

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

از انجماد در Energy Saver انصراف دهید

این آزمایش انصراف به سایت‌ها امکان می‌دهد از تعلیق رفتار «بهینه‌سازی انرژی» که در Chrome 133 ارسال می‌شود، انصراف دهند.

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

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

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

محدودیت WebGPU maxInterStageShaderComponents را منسوخ کنید

maxInterStageShaderComponents limit به دلیل ترکیبی از عوامل منسوخ شده است. تاریخ حذف مورد نظر در Chrome 135.

  • افزونگی با maxInterStageShaderVariables : این محدودیت در حال حاضر هدف مشابهی را دنبال می کند، کنترل مقدار داده ارسال شده بین مراحل سایه زن.
  • اختلافات جزئی: در حالی که تفاوت های جزئی در نحوه محاسبه دو حد وجود دارد، این تفاوت ها جزئی هستند و می توان به طور موثر در محدوده maxInterStageShaderVariables مدیریت کرد.
  • ساده سازی: حذف maxInterStageShaderComponents رابط سایه زن را ساده می کند و پیچیدگی را برای توسعه دهندگان کاهش می دهد. به جای مدیریت دو محدودیت جداگانه با تفاوت‌های ظریف، می‌توانند روی maxInterStageShaderVariables با نام مناسب‌تر و جامع‌تر تمرکز کنند.

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

قبلاً، هنگامی که منبعی با استفاده از <link rel=prefetch> واکشی می‌شد، کروم معنای کش آن (یعنی max-age و no-cache ) را برای اولین بار در عرض پنج دقیقه نادیده می‌گرفت تا از واکشی مجدد جلوگیری کند. اکنون کروم این مورد خاص را حذف کرده و از معنای کش HTTP معمولی استفاده می کند.

این بدان معناست که توسعه‌دهندگان وب باید هدرهای ذخیره‌سازی مناسب (Cache-Control یا Expires) را برای مشاهده مزایای <link rel=prefetch> وارد کنند.

این بر <link rel=prerender> غیر استاندارد نیز تأثیر می گذارد.

حذف صفحه خوش‌آمدگویی کروم با برگه‌های اولیه اجرا شده اولیه

گنجاندن chrome://welcome در ویژگی first_run_tabs فایل initial_preferences اکنون هیچ تاثیری نخواهد داشت. این حذف می شود زیرا آن صفحه با اولین تجربه اجرا که در پلتفرم های دسکتاپ راه اندازی می شود، اضافی است.