منتشر شده: ۳ آوریل ۲۰۲۵
مگر اینکه خلاف آن ذکر شده باشد، تغییرات زیر در جدیدترین نسخه کانال بتای کروم برای اندروید، ChromeOS، لینوکس، macOS و ویندوز اعمال میشود. برای کسب اطلاعات بیشتر در مورد ویژگیهای ذکر شده در اینجا، از طریق لینکهای ارائه شده یا از لیست موجود در ChromeStatus.com اقدام کنید. کروم ۱۳۶ از تاریخ ۳ آوریل ۲۰۲۵ در نسخه بتا است. میتوانید آخرین نسخه را از Google.com برای دسکتاپ یا از فروشگاه گوگل پلی برای اندروید دانلود کنید.
سیاساس و رابط کاربری
این نسخه شش ویژگی جدید CSS و UI اضافه میکند.
dynamic-range-limit در CSS
به یک صفحه اجازه میدهد حداکثر روشنایی محتوای HDR را محدود کند.
فاصله حروف را در خط تحریری نادیده بگیرید
این ویژگی منطقی را اضافه میکند که تنظیم فاصله حروف برای خط تحریری را نادیده بگیرد، حتی اگر توسط توسعهدهنده طبق مشخصات مشخص شده باشد، تا اطمینان حاصل شود که فاصله حروف باعث شکست کلمات نمیشود.
پارتیشن بندی :visited
برای جلوگیری از نشت تاریخچه مرور کاربر، عناصر لنگر فقط در صورتی به صورت :visited استایلبندی میشوند که قبلاً از این سایت سطح بالا و فریم مبدا کلیک شده باشند.
با استایلدهی به لینکهایی که قبلاً در این سایت و فریم کلیک شدهاند، حملات کانال جانبی زیادی که برای به دست آوردن اطلاعات استایلدهی به لینکهای :visited توسعه داده شدهاند، اکنون منسوخ شدهاند. آنها دیگر اطلاعات جدیدی در مورد کاربران به سایتها ارائه نمیدهند.
درباره این بهبودها در حریم خصوصی پیوندهای :visited بیشتر بدانید .
نوع string attr() را به raw-string تغییر نام دهید
گروه کاری CSS تصمیم گرفت نوع string attr() را با raw-string جایگزین کند.
بنابراین، کروم سینتکس attr() را تغییر داده است، به طوری که attr(data-foo string) اکنون به attr(data-foo raw-string) تبدیل میشود.
جایگزین var() بدون وابستگی به نوع
بخش جایگزین (fallback) تابع var() در برابر نوع ویژگی سفارشی که به آن ارجاع داده میشود، اعتبارسنجی نمیشود.
print-color-adjust بدون پیشوند
ویژگی print-color-adjust به شما امکان میدهد رنگها را در صفحات وب چاپ شده تنظیم کنید. این ویژگی مشابه -webkit-print-color-adjust است که از قبل در کروم پشتیبانی میشود، اما با یک نام استاندارد. نسخه پیشوند -webkit حذف نشده است.
API های وب
وضعیت وقفه در AudioContext
یک حالت "interrupted" به AudioContextState اضافه میکند. این حالت جدید به رابط کاربری اجازه میدهد تا پخش را در این سناریوها متوقف کند و به برنامههای وب اجازه دهد تا به طور مناسب پاسخ دهند.
پارتیشنبندی Blob URL: واکشی/پیمایش
به عنوان ادامهی پارتیشنبندی ذخیرهسازی، این [سیستم] پارتیشنبندی دسترسی به Blob URL را بر اساس کلید ذخیرهسازی (سایت سطح بالا، مبدأ فریم و مقدار بولی has-cross-site-ancestor) پیادهسازی میکند، به استثنای پیمایشهای سطح بالا که فقط بر اساس مبدأ فریم پارتیشنبندی میشوند. این رفتار مشابه چیزی است که در حال حاضر توسط فایرفاکس و سافاری پیادهسازی شده است و استفاده از Blob URL را با طرح پارتیشنبندی مورد استفاده توسط سایر APIهای ذخیرهسازی به عنوان بخشی از پارتیشنبندی ذخیرهسازی همسو میکند.
علاوه بر این، noopener اکنون بر روی ناوبریهای سطح بالای آغاز شده توسط رندرکننده به آدرسهای اینترنتی Blob که در آنها سایت مربوطه به صورت بین سایتی با سایت سطح بالای انجامدهنده ناوبری است، اعمال میشود. این امر کروم را با رفتار مشابه در سافاری همسو میکند و مشخصات مربوطه برای انعکاس این تغییرات بهروزرسانی شدهاند.
پشتههای فراخوانی در گزارشهای خرابی از صفحات وب بدون پاسخ
این ویژگی، پشته فراخوانی جاوا اسکریپت را زمانی که یک صفحه وب به دلیل اجرای یک حلقه بینهایت توسط کد جاوا اسکریپت یا محاسبات بسیار طولانی دیگر، از کار میافتد، ضبط میکند. این به توسعهدهندگان کمک میکند تا علت عدم پاسخگویی را شناسایی کنند. پشته فراخوانی جاوا اسکریپت در API گزارش خرابی گنجانده شده است، زمانی که دلیل عدم پاسخگویی باشد.
API کنترل سطح ضبط شده
رابط برنامهنویسی کاربردی کنترل سطح ضبطشده (Capture Surface Control API) به برنامههای وب اجازه میدهد تا رویدادهای چرخشی را به یک تب ضبطشده منتقل کنند و سطح بزرگنمایی یک تب ضبطشده را بخوانند و تغییر دهند.
CapturedSurfaceResolution
نسبت پیکسلی سطح تصویر گرفته شده را هنگام اشتراکگذاری صفحه نمایش نشان میدهد. این ویژگی به برنامهها کمک میکند تا منابع سیستم خود را حفظ کنند یا کیفیت و پهنای باند را با توجه به وضوح فیزیکی و منطقی سطح تصویر گرفته شده تطبیق دهند.
ارسال رویدادهای کلیک به اشارهگر گرفته شده
اگر در حین ارسال رویداد pointerup ، اشارهگری گرفته شود، رویداد click به جای نزدیکترین جد مشترک رویدادهای pointerdown و pointerup طبق مشخصات رویداد UI، به هدف گرفته شده ارسال میشود. برای اشارهگرهای گرفته نشده، هدف click بدون تغییر باقی میماند.
نکات کامپایل صریح با کامنتهای جادویی
امکان پیوست کردن اطلاعات مربوط به اینکه کدام توابع باید به صورت مشتاق تجزیه و کامپایل شوند را در فایلهای جاوا اسکریپت فراهم میکند. این اطلاعات به صورت کامنتهای جادویی کدگذاری میشوند.
بهروزرسانیهای FedCM: پشتیبانی از چندین IdP، حذف ویژگی «افزودن حساب دیگر» در حالت غیرفعال
با این بهروزرسانی، FedCM میتواند چندین ارائهدهنده هویت را در یک پنجره نمایش دهد. این امر به توسعهدهندگان روشی مناسب برای ارائه همه ارائهدهندگان هویت پشتیبانیشده به کاربران ارائه میدهد. ما قصد داریم ابتدا به حالت سادهای که همه ارائهدهندگان در یک فراخوانی get() قرار دارند، بپردازیم. ما همچنین پشتیبانی از ویژگی 'add another account' را در حالت غیرفعال FedCM حذف میکنیم. این ویژگی امکان نمایش دکمه 'use another account' را در کنار سایر حسابهای IdP در انتخابگر فراهم میکند. این ویژگی در حال حاضر بلااستفاده است و مکالمات UX ما را به این باور رسانده است که پشتیبانی از این امر منجر به جریان پیچیدهتری بدون فایده زیاد میشود. این ویژگی همچنان در حالت فعال FedCM کار خواهد کرد.
نوارهای پیمایش روان.
این ویژگی، نوارهای اسکرول کروم (چه پوششی و چه غیر پوششی) را در ویندوز و لینوکس مدرن میکند تا با زبان طراحی فلوئنت ویندوز ۱۱ سازگار شود. نوارهای اسکرول فلوئنت غیر پوششی به طور پیشفرض در لینوکس و ویندوز فعال خواهند بود. این تغییر در مورد لینوکس نیز اعمال میشود، زیرا طراحی نوار اسکرول لینوکس کروم از گذشته با آنچه در ویندوز ارائه میشود، همسو بوده است.
پشتیبانی از کدک H265 (HEVC) در WebRTC
از کروم ۱۳۶، HEVC به VP8، H.264، VP9 و AV1 به عنوان کدکهای پشتیبانیشده در WebRTC ملحق خواهد شد. این پشتیبانی با استفاده از MediaCapabilities API قابل پرسوجو خواهد بود.
این کدک جدیدتر، نسبت به کدکهای نسل قدیمیتر مانند VP8 و H264، راندمان فشردهسازی (کیفیت بالاتر در هر بیتریت) را افزایش داده و از پشتیبانی سختافزاری بسیار قوی در طول یک دهه برخوردار است. این به معنای افزایش عمر باتری و کاهش خطر مشکلات عملکردی است و بسته به عملکرد رمزگذار سختافزاری اصلی، اغلب در مواردی که رمزگذارهای سختافزاری VP9 یا AV1 در دسترس نیستند، تجربه بصری را بهبود میبخشد.
بهروزرسانیهای پشتیبانی از کدک H26x برای MediaRecorder
API MediaRecorder اکنون از رمزگذاری HEVC پشتیبانی میکند و رشته کدک hvc1.* را معرفی میکند و کدکهای جدیدی ( hev1.* و avc3.* ) را اضافه میکند که از ویدیوی با وضوح متغیر در MP4 پشتیبانی میکنند. پشتیبانی از رمزگذاری پلتفرم HEVC در WebCodecs در Chrome 130 اضافه شد. در ادامه، پشتیبانی به API MediaRecorder در Chromium اضافه شده است. این API اکنون از هر دو نوع MP4 و Matroska muxer با مشخصات مختلف نوع MIME HEVC و H.264 پشتیبانی میکند. رمزگذاری HEVC فقط در صورتی پشتیبانی میشود که دستگاه و سیستم عامل کاربر قابلیتهای لازم را ارائه دهد.
ثبت و گزارش آدرس IP در Chrome Enterprise
کروم انترپرایز با جمعآوری و گزارش آدرسهای IP محلی و راه دور و ارسال آن آدرسهای IP به گزارشهای بررسی امنیتی (SIT)، قابلیتهای نظارت امنیتی و پاسخ به حوادث را افزایش میدهد. علاوه بر این، کروم انترپرایز به مدیران اجازه میدهد تا به صورت اختیاری آدرسهای IP را با استفاده از رابط گزارشدهی کروم انترپرایز به ارائهدهندگان SIEM شخص ثالث و شخص ثالث ارسال کنند. این قابلیت برای مشتریان کروم انترپرایز کور در دسترس خواهد بود.
گنجاندن آغازگر ناوبری در کلید پارتیشن حافظه پنهان HTTP
طرح کلیدگذاری حافظه پنهان HTTP کروم بهروزرسانی شده است تا شامل یک مقدار بولی is-cross-site-main-frame-navigation باشد تا حملات نشت بین سایتی شامل ناوبری سطح بالا را کاهش دهد. به طور خاص، این امر از حملات بین سایتی که در آن یک مهاجم میتواند یک ناوبری سطح بالا را به یک صفحه مشخص آغاز کند و سپس به منبعی که مشخص است توسط صفحه بارگذاری میشود، هدایت شود تا اطلاعات حساس را از زمان بارگذاری استنباط کند. این تغییر همچنین با جلوگیری از استفاده یک سایت مخرب از ناوبریها برای استنباط اینکه آیا کاربر قبلاً از یک سایت مشخص بازدید کرده است یا خیر، حریم خصوصی را بهبود میبخشد.
پشتیبانی زبان برای CanvasTextDrawingStyles
عنصر DOM <canvas> ، مانند تمام عناصر DOM، یک ویژگی lang را میپذیرد که برای تعریف رفتار خاص زبان برای انتخاب فونت استفاده میشود (وقتی فونتها دارای گلیفهای خاص محلی هستند). مرورگرها به این ویژگی احترام میگذارند. با این حال، هنگامی که یک OffscreenCanvas ایجاد میشود، هیچ راهی برای تنظیم اطلاعات محلی وجود ندارد، که احتمالاً منجر به وضعیتی میشود که یک بوم offscreen نتایج رندر شدهای را تولید میکند که با بوم مورد استفاده در آن متفاوت است. این ویژگی یک ویژگی lang IDL را به CanvasTextDrawingStyles اضافه میکند تا کنترل مستقیمی بر زبان ترسیم متن و معیارها داشته باشد.
گزارشهای سیاست مجوزها برای iframeها
نوع جدیدی از تخلف به نام «نقض احتمالی سیاست مجوزها» را معرفی میکند که فقط سیاست مجوزها (از جمله سیاست فقط گزارش) و ویژگی allow تنظیمشده در iframeها را بررسی میکند تا تداخل بین سیاست مجوزها اعمالشده در مقابل مجوزهای منتشرشده به iframeها را تشخیص دهد.
سهمیه ذخیرهسازی گزارششده قابل پیشبینی
سهمیه ذخیرهسازی قابل پیشبینی را از API تخمین StorageManager برای سایتهایی که مجوزهای ذخیرهسازی نامحدود ندارند، گزارش دهید. تشخیص حالت مرور کاربر با استفاده از سهمیه ذخیرهسازی گزارششده امکانپذیر است زیرا فضای ذخیرهسازی در دسترس در حالت ناشناس بهطور قابلتوجهی کمتر از حالت معمولی است.
API تجمیع خصوصی: گزارش خطای تجمیع
طیف وسیعی از شرایط خطا وجود دارد که میتوانند هنگام استفاده از API تجمیع خصوصی با آنها مواجه شوند. به عنوان مثال، بودجه حریم خصوصی میتواند تمام شود و از هرگونه مشارکت بیشتر در هیستوگرام جلوگیری کند. این ویژگی به توسعهدهندگان اجازه میدهد تا مشارکتهای هیستوگرام را ثبت کنند که فقط در صورت بروز نوع خاصی از خطا باید ارسال شوند. این ویژگی از اندازهگیری فراوانی شرایط خطا و تقسیم این اندازهگیریها بر اساس ابعاد مشخص شده توسط توسعهدهنده (به عنوان مثال، نسخه کد مستقر شده) پشتیبانی میکند. از آنجایی که خود خطاها ممکن است اطلاعات بین سایتی باشند، ما نمیتوانیم آنها را به سادگی بدون کوکیهای شخص ثالث در صفحه برای کاربران نمایش دهیم. در عوض، این ویژگی از خطوط لوله گزارشدهی تجمیع شده و نویزدار موجود از طریق سرویس تجمیع استفاده مجدد میکند.
RegExp.escape
RegExp.escape یک متد استاتیک است که یک رشته را میگیرد و یک نسخه escape شده از آن را برمیگرداند که میتواند به عنوان الگو درون یک عبارت منظم استفاده شود. برای مثال:
const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.
console.log(ourLongText.replace(re));
قوانین حدس و گمان: فیلد برچسب
توسعهدهندگان را قادر میسازد تا field برچسب را به قوانین گمانهزنی اضافه کنند. این فیلد اختیاری میتواند برای ردیابی منبع قوانین گمانهزنی استفاده شود. به عنوان مثال، برای برخورد متفاوت با آنها در یک سرور واسطه. هر برچسب مرتبط با یک گمانهزنی با هدر Sec-Speculation-Tags ارسال میشود.
سیاست سختگیرانهی «همان مبدأ» برای API دسترسی به فضای ذخیرهسازی
معنای API دسترسی به حافظه را طوری تنظیم میکند که دقیقاً از سیاست مبدا یکسان پیروی کند. یعنی استفاده از document.requestStorageAccess() در یک فریم، کوکیها را به طور پیشفرض فقط به درخواستهای مبدا iframe (نه سایت) متصل میکند. توجه داشته باشید که سیاست CookiesAllowedForUrls یا Storage Access Headers همچنان میتوانند برای رفع انسداد کوکیهای بین سایتی استفاده شوند.
ProgressEvent بهروزرسانی کنید تا از نوع double برای loaded و total استفاده کند.
ProgressEvent دارای ویژگیهای loaded و total است که نشاندهندهی پیشرفت هستند و نوع آنها اکنون unsigned long long است. با این ویژگی، نوع این دو ویژگی به double تغییر میکند که به توسعهدهنده کنترل بیشتری بر مقدار میدهد. برای مثال، توسعهدهندگان اکنون میتوانند یک ProgressEvent با total ۱ و loaded که به تدریج از ۰ به ۱ افزایش مییابد، ایجاد کنند. این با رفتار پیشفرض عنصر <progress> HTML در صورت حذف ویژگی max همسو است.
از DOMPointInit برای getCharNumAtPosition ، isPointInFill و isPointInStroke استفاده کنید
این تغییر، کد کرومیوم را از نظر استفاده از DOMPointInit به جای SVGPoint برای getCharNumAtPosition ، isPointInFill و isPointInStroke ، با آخرین مشخصات W3C برای SVGGeometryElement و SVGPathElement مطابقت میدهد.
ایجاد مشروط احراز هویت وب (ارتقاء رمز عبور)
درخواستهای ایجاد شرطی WebAuthn به وبسایتها اجازه میدهد اعتبارنامههای رمز عبور موجود را به یک رمز عبور ارتقا دهند.
WebGPU: ویژگی GPUAdapterInfo isFallbackAdapter
ویژگی بولی GPUAdapterInfo isFallbackAdapter نشان میدهد که آیا یک آداپتور در ازای سازگاری گستردهتر، رفتار قابل پیشبینیتر یا بهبود حریم خصوصی، محدودیتهای عملکردی قابل توجهی دارد یا خیر. توجه داشته باشید که آداپتور جایگزین ممکن است در همه سیستمها وجود نداشته باشد.
آزمایشهای منشأ جدید
در کروم ۱۳۶، میتوانید در آزمایشهای جدید زیر شرکت کنید.
رابط برنامهنویسی دستگاههای خروجی صدا: setDefaultSinkId()
این ویژگی setDefaultSinkId() به MediaDevices اضافه میکند که به فریم سطح بالا امکان میدهد دستگاه خروجی صدای پیشفرض مورد استفاده توسط زیرفریمهای خود را تغییر دهد.
اجازه دهید برنامههای وب زمانبندی عملکرد دووجهی را درک کنند
برنامههای وب ممکن است به دلیل عواملی خارج از کنترل برنامه وب، از توزیع دووجهی در عملکرد بارگذاری صفحه رنج ببرند. برای مثال:
- وقتی یک عامل کاربر برای اولین بار اجرا میشود (سناریوی "شروع سرد")، باید وظایف اولیهسازی پرهزینه زیادی را انجام دهد که برای منابع سیستم رقابت میکنند.
- افزونههای مرورگر میتوانند بر عملکرد یک وبسایت تأثیر بگذارند. برای مثال، برخی از افزونهها در هر صفحهای که بازدید میکنید، کد اضافی اجرا میکنند که میتواند استفاده از CPU را افزایش داده و منجر به زمان پاسخگویی کندتر شود.
- وقتی یک دستگاه مشغول انجام وظایف فشرده است، میتواند منجر به کندتر شدن بارگذاری صفحات وب شود.
در این سناریوها، محتوایی که برنامه وب سعی در بارگذاری آن دارد، در رقابت با سایر کارهایی است که روی سیستم انجام میشود. این امر تشخیص اینکه آیا مشکلات عملکردی در خود برنامههای وب وجود دارد یا به دلیل عوامل خارجی است را دشوار میکند.
یک فیلد confidence جدید در شیء PerformanceNavigationTiming به توسعهدهندگان این امکان را میدهد که تشخیص دهند آیا زمانبندیهای ناوبری برای برنامه وب آنها نماینده هستند یا خیر.
اعتبارنامههای جلسه متصل به دستگاه
راهی برای وبسایتها تا بتوانند یک جلسه (session) را به طور ایمن به یک دستگاه واحد متصل کنند.
این به سرورها اجازه میدهد تا یک جلسه داشته باشند که به طور ایمن به یک دستگاه متصل است. مرورگر جلسه را به صورت دورهای و طبق درخواست سرور، با اثبات داشتن کلید خصوصی، تمدید میکند.
بهروزرسانی پیادهسازی رندر متن بوم
بخشهای داخلی measureText() ، fillText() و strokeText() در CanvasRenderingContext2D و OffscreenCanvasRenderingContext2D با پیادهسازی جدیدی جایگزین شدهاند که از متن RTL و ذخیرهسازی (caching) بهتر پشتیبانی میکند. این ممکن است بر عملکرد و خروجی متن BIDI تأثیر بگذارد، بنابراین این نسخه آزمایشی اصلی به برنامههای canvas که متن زیادی دارند اجازه میدهد تا پیادهسازی جدید را امتحان کنند و هرگونه مشکلی را که ممکن است با آن مواجه شوند گزارش دهند.
منسوخها و حذفها
این نسخه از کروم، منسوخها و حذفهای زیر را معرفی میکند. برای مشاهدهی فهرست منسوخهای برنامهریزیشده، منسوخهای فعلی و حذفهای قبلی، به ChromeStatus.com مراجعه کنید.
این نسخه از کروم دو ویژگی را منسوخ میکند.
منسوخ کردن دریافتکنندههای اطلاعات محلی بینالمللی
رابط برنامهنویسی کاربردی اطلاعات محلی Intl یک پیشنهاد ECMAScript TC39 مرحله ۳ برای بهبود شیء Intl.Locale با افشای اطلاعات محلی، مانند دادههای هفته (اولین روز در هفته، روز شروع آخر هفته، روز پایان آخر هفته، حداقل روز در هفته اول) و چرخه ساعت جهت متن مورد استفاده در محلی است. این تغییر برخی از getterهایی را که در تغییر مشخصات از زمان عرضه منسوخ شدهاند، حذف میکند.
HTMLFencedFrameElement.canLoadOpaqueURL() را حذف کنید.
canLoadOpaqueURL() در سال ۲۰۲۳ با navigator.canLoadAdAuctionFencedFrame() جایگزین شد و فراخوانی آن از آن زمان تاکنون منجر به نمایش هشدار منسوخ شدن در کنسول شده و توسعهدهندگان را به API جدید هدایت کرده است. منطقی نیست که این تابع به HTMLFencedFrameElement متصل شود و در عوض باید به شیء navigator (که شامل سایر متدهای fenced frame و ad auction است) متصل شود.