کروم 136، کروم 136

تاریخ انتشار پایدار: 29 آوریل 2025

مگر اینکه خلاف آن ذکر شده باشد، تغییرات زیر در انتشار کانال پایدار Chrome 136 برای Android، ChromeOS، Linux، macOS و Windows اعمال می‌شود.

HTML و DOM

پشتیبانی از زبان CanvasTextDrawingStyles

عنصر <canvas> DOM، مانند همه عناصر DOM، یک ویژگی lang را می‌پذیرد که برای تعریف زبان خاص برای انتخاب فونت استفاده می‌شود (زمانی که فونت‌ها دارای گلیف‌های محلی خاص هستند). مرورگرها به این ویژگی احترام می گذارند. با این حال، هنگامی که یک OffscreenCanvas ایجاد می‌شود، هیچ راهی برای تنظیم اطلاعات محلی وجود ندارد، احتمالاً منجر به حالتی می‌شود که بوم خارج از صفحه نتایج رندر شده‌ای تولید می‌کند که با بوم‌هایی که خروجی آن در آن استفاده می‌شود متفاوت است. این ویژگی یک ویژگی lang IDL را به CanvasTextDrawingStyles اضافه می کند تا به توسعه دهندگان کنترل مستقیم زبان را برای ترسیم متن و معیارها بدهد.

باگ ردیابی #385006131 | ورودی ChromeStatus.com | مشخصات

CSS و UI

ویژگی dynamic-range-limit

صفحه را فعال می کند تا حداکثر روشنایی محتوای HDR را محدود کند.

باگ ردیابی #1470298 | ورودی ChromeStatus.com | مشخصات

برای حذف نشت‌های تاریخچه مرور کاربر، عناصر لنگر فقط در صورتی که قبلاً از این سایت سطح بالا و مبدا قاب کلیک شده باشند، به صورت :visited استایل داده می‌شوند.

یک استثنا برای "پیوندهای خود" وجود دارد، که در آن پیوندها به صفحات خود سایت را می توان به صورت :visited استایل کرد، حتی اگر قبلاً روی آنها دقیقاً در این سایت سطح بالا و مبدا قاب کلیک نشده باشد. این معافیت فقط در فریم‌های سطح بالا یا فریم‌های فرعی که با فریم سطح بالا منشأ مشابهی دارند، فعال می‌شود. مزایای حفظ حریم خصوصی همچنان به دست می آید زیرا سایت ها از قبل می دانند که کاربر از کدام یک از صفحات فرعی آن بازدید کرده است، بنابراین هیچ اطلاعات جدیدی در معرض دید قرار نمی گیرد. این یک استثنای درخواستی جامعه بود که تجربه کاربر را بهبود می بخشد.

باگ ردیابی #1448609 | ورودی ChromeStatus.com | مشخصات

بدون پیشوند print-color-adjust

ویژگی print-color-adjust به شما امکان می دهد رنگ ها را در صفحات وب چاپ شده تنظیم کنید. این همان -webkit-print-color-adjust که قبلاً پشتیبانی می‌شود Chrome است، اما با نامی استاندارد.

نسخه پیشوند -webkit- حذف نشده است.

اسناد MDN | باگ ردیابی #376381169 | ورودی ChromeStatus.com | مشخصات

تغییر نام نوع string attr() به raw-string

گروه کاری CSS تصمیم گرفته است که نوع string attr() را با raw-string جایگزین کند.

بنابراین از Chrome 136 attr(data-foo string) به attr(data-foo raw-string) تبدیل می شود.

باگ ردیابی #400981738 | ورودی ChromeStatus.com | مشخصات

نوع آگنوستیک var() بازگشتی

بخش بازگشتی تابع var() نسبت به نوع خاصیت سفارشی که به آن ارجاع داده می شود اعتبار سنجی نمی کند.

باگ ردیابی #372475301 | ورودی ChromeStatus.com

API های وب

رویدادهای کلیک را به نشانگر گرفته شده ارسال کنید

اگر یک اشاره گر در حین ارسال رویداد pointerup گرفته شود، رویداد click اکنون به جای نزدیکترین جد مشترک رویدادهای pointerdown و pointerup طبق مشخصات رویداد UI به هدف گرفته شده ارسال می شود.

برای اشاره گرهای ضبط نشده، هدف click بدون تغییر باقی می ماند.

باگ ردیابی #40851596 | ورودی ChromeStatus.com | مشخصات

نکات کامپایل صریح با نظرات جادویی

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

اطلاعات به عنوان نظرات جادویی رمزگذاری شده است.

باگ ردیابی #13917 | ورودی ChromeStatus.com | مشخصات

آغازگر ناوبری را در کلید پارتیشن کش HTTP بگنجانید

طرح کلیدگذاری حافظه پنهان HTTP کروم به‌روزرسانی شده است تا شامل یک بولی is-cross-site-main-frame-navigation برای کاهش حملات نشت بین سایتی که شامل ناوبری سطح بالا می‌شود، باشد.

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

باگ ردیابی #398784714 | ورودی ChromeStatus.com | مشخصات

مخاطبان محافظت شده: کمک های تبدیل متن

اسکریپت‌های پیشنهاد و امتیازدهی مخاطب محافظت‌شده که با WebAssembly ارتباط دارند، باید داده‌های رشته‌ای را به (و از) آرایه‌های بایتی تبدیل کنند (به عنوان مثال، برای ارسال رشته‌ها به داخل و خارج WebAssembly با ArrayBuffer «حافظه»). این دو تابع مستقل، protectedAudience.encodeUtf8 ، و protectedAudience.decodeUtf8 را برای انجام این وظایف در حدود یک مرتبه کارآمدتر از انجام آن در جاوا اسکریپت فراهم می کند.

ورودی ChromeStatus.com

RegExp.escape

RegExp.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));

ورودی ChromeStatus.com | مشخصات

قوانین حدس و گمان: فیلد برچسب

این به توسعه دهندگان امکان می دهد تا فیلد برچسب را به قوانین حدس و گمان اضافه کنند. این فیلد اختیاری را می توان برای ردیابی منبع قوانین حدس و گمان استفاده کرد. به عنوان مثال، برای رفتار متفاوت با آنها در یک سرور واسطه. هر تگ مرتبط با یک حدس و گمان با هدر Sec-Speculation-Tags ارسال می شود.

باگ ردیابی #381687257 | ورودی ChromeStatus.com | مشخصات

ProgressEvent را به‌روزرسانی کنید تا از نوع double برای loaded و total استفاده کنید

ProgressEvent دارای ویژگی های loaded و total است که پیشرفت را نشان می دهد و نوع آنها unsigned long long است.

با استفاده از این ویژگی، نوع این دو ویژگی به جای آن double می‌شود، که به توسعه‌دهنده کنترل بیشتری روی مقدار می‌دهد. به عنوان مثال، توسعه دهندگان اکنون می توانند یک ProgressEvent با total 1 ایجاد کنند و loaded از 0 به 1 به تدریج افزایش می یابد. اگر ویژگی max حذف شود، این با رفتار پیش‌فرض عنصر <progress> HTML همراستا می‌شود.

ورودی ChromeStatus.com | مشخصات

حریم خصوصی و امنیت

گزارش های خط مشی مجوز برای iframes

یک نوع نقض جدید به نام «نقض خط‌مشی مجوزهای احتمالی» را معرفی می‌کند که فقط به خط‌مشی مجوزها (از جمله خط‌مشی فقط گزارش) و ویژگی allow تنظیم شده در iframes برای تشخیص تضاد بین خط‌مشی مجوزهای اعمال‌شده با مجوزهای منتشر شده به iframes نگاه می‌کند.

باگ ردیابی #40941424 | ورودی ChromeStatus.com | مشخصات

کاهش اثر انگشت در اطلاعات هدر Accept-Language

مقدار اطلاعاتی را که رشته مقدار هدر Accept-Language در درخواست‌های HTTP و در navigator.languages ​​نشان می‌دهد، کاهش می‌دهد. کروم به جای ارسال لیست کامل زبان های برگزیده کاربر در هر درخواست HTTP، اکنون ترجیح داده شده ترین زبان کاربر را در سربرگ Accept-Language ارسال می کند.

باگ ردیابی #1306905 | ورودی ChromeStatus.com

هویت

به روز رسانی FedCM

به FedCM اجازه می‌دهد تا چندین ارائه‌دهنده هویت را در یک گفتگو نشان دهد، با داشتن همه ارائه‌دهندگان در یک تماس get() . این به توسعه دهندگان راه مناسبی برای ارائه همه ارائه دهندگان هویت پشتیبانی شده به کاربران ارائه می دهد.

Chrome 136 همچنین پشتیبانی از افزودن یک حساب دیگر در حالت غیرفعال FedCM را حذف می کند. این ویژگی اجازه می دهد تا دکمه استفاده از یک حساب دیگر را در کنار سایر حساب های IdP در انتخابگر نشان دهد. این ویژگی در حال حاضر استفاده نشده است، و مکالمات UX ما را به این باور رسانده است که پشتیبانی از آن منجر به جریان پیچیده‌تری بدون سود زیاد می‌شود. این ویژگی همچنان در حالت فعال FedCM کار خواهد کرد.

باگ ردیابی #1348262 | ورودی ChromeStatus.com | مشخصات

ایجاد شرطی احراز هویت وب (ارتقای رمز عبور)

درخواست‌های ایجاد شرطی WebAuthn به وب‌سایت‌ها اجازه می‌دهد اعتبار رمز عبور موجود را به یک کلید عبور ارتقا دهند.

باگ ردیابی #377758786 | ورودی ChromeStatus.com | مشخصات

تصاویر و رسانه ها

حالت قطع شده AudioContext

حالت "interrupted" را به AudioContextState اضافه می کند. این حالت جدید به User Agent اجازه می‌دهد پخش را در حین دسترسی انحصاری صوتی (VoIP) یا زمانی که درب لپ‌تاپ بسته است متوقف کند.

باگ ردیابی #374805121 | ورودی ChromeStatus.com | مشخصات

کنترل سطح ضبط شده

یک وب API که به برنامه های کاربردی وب اجازه می دهد:

  1. رویدادهای چرخ را به یک برگه ضبط شده منتقل کنید.
  2. سطح زوم یک برگه گرفته شده را بخوانید و تغییر دهید.

باگ ردیابی #1466247 | ورودی ChromeStatus.com | مشخصات

CapturedSurfaceResolution

هنگام اشتراک‌گذاری صفحه نمایش، نسبت پیکسل سطح گرفته شده را در معرض نمایش قرار دهید.

این ویژگی به برنامه‌ها کمک می‌کند تا منابع سیستم خود را حفظ کنند یا کیفیت را بر روی تبادل پهنای باند مطابق با وضوح فیزیکی و منطقی سطح ضبط‌شده تطبیق دهند.

باگ ردیابی #383946052 | ورودی ChromeStatus.com | مشخصات

پشتیبانی از کدک H265 (HEVC) در WebRTC

پس از این تغییر، HEVC به VP8، H.264، VP9 و AV1 به عنوان کدک های پشتیبانی شده در WebRTC می پیوندد. پشتیبانی با استفاده از MediaCapabilities API قابل استعلام خواهد بود.

باگ ردیابی #391903235 | ورودی ChromeStatus.com | مشخصات

کدک H26x به‌روزرسانی‌های MediaRecorder را پشتیبانی می‌کند

API MediaRecorder Chromium اکنون از رمزگذاری HEVC پشتیبانی می‌کند، رشته کدک hvc1.* را معرفی می‌کند و کدک‌های جدیدی (hev1.* و avc3.*) را اضافه می‌کند که از ویدئو با وضوح متغیر در MP4 پشتیبانی می‌کنند.

پشتیبانی از رمزگذاری پلت فرم HEVC در WebCodecs در Chromium M130 اضافه شد. در ادامه، پشتیبانی به MediaRecorder API در Chromium اضافه شده است. API اکنون از هر دو نوع MP4 و Matroska muxer با مشخصات مختلف HEVC و H.264 mime پشتیبانی می کند. رمزگذاری HEVC تنها در صورتی پشتیبانی می شود که دستگاه و سیستم عامل کاربر قابلیت های لازم را داشته باشند.

ورودی ChromeStatus.com

استفاده از DOMPointInit برای getCharNumAtPosition ، isPointInFill ، isPointInStroke

این تغییر کد Chromium را با آخرین مشخصات W3C برای SVGGeometryElement و SVGPathElement از نظر استفاده از DOMPointInit در SVGPoint برای getCharNumAtPosition ، isPointInFill ، isPointInStroke مطابقت می‌دهد.

باگ ردیابی #40572887 | ورودی ChromeStatus.com | مشخصات

WebGPU: ویژگی GPUAdapterInfo isFallbackAdapter

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

باگ ردیابی #403172841 | ورودی ChromeStatus.com | مشخصات

تغییرات مرورگر

نوارهای پیمایش روان

این ویژگی نوارهای اسکرول Chromium (هم روکشی و هم بدون پوشش) را در ویندوز و لینوکس مدرن می کند تا با زبان طراحی Fluent ویندوز 11 مطابقت داشته باشد.

نوارهای پیمایش Fluent بدون پوشش به طور پیش فرض در لینوکس و ویندوز فعال خواهند شد. این تغییر برای لینوکس نیز اعمال می‌شود، زیرا طراحی نوار اسکرول لینوکس Chromium در طول تاریخ با آنچه در ویندوز ارائه می‌شود، همسو بوده است. نحوه نمایش نوارهای پیمایش همپوشانی فعال Fluent هنوز در حال تصمیم گیری است.

باگ ردیابی #1292117 | ورودی ChromeStatus.com

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

Audio Output Devices API: setDefaultSinkId()

این ویژگی setDefaultSinkId() را به MediaDevices اضافه می‌کند، که قاب سطح بالا را قادر می‌سازد تا دستگاه خروجی صدای پیش‌فرض مورد استفاده توسط فریم‌های فرعی خود را تغییر دهد.

Origin Trial | ورودی ChromeStatus.com | مشخصات

برنامه های وب را برای درک زمان بندی عملکرد دووجهی فعال کنید

برنامه های کاربردی وب ممکن است به دلیل عوامل خارج از کنترل برنامه وب، از توزیع دووجهی در عملکرد بارگذاری صفحه رنج ببرند. به عنوان مثال:

  • هنگامی که یک عامل کاربر برای اولین بار راه اندازی می شود (سناریوی "شروع سرد")، باید بسیاری از وظایف اولیه گران قیمت را انجام دهد که برای منابع موجود در سیستم رقابت می کنند.
  • افزونه های مرورگر می توانند بر عملکرد یک وب سایت تأثیر بگذارند. به عنوان مثال، برخی از برنامه‌های افزودنی در هر صفحه‌ای که بازدید می‌کنید، کد اضافی را اجرا می‌کنند، که می‌تواند استفاده از CPU را افزایش دهد و زمان پاسخ‌دهی را کاهش دهد.
  • هنگامی که یک ماشین مشغول انجام کارهای فشرده است، می تواند منجر به بارگذاری کندتر صفحات وب شود.

یک فیلد confidence جدید در شی PerformanceNavigationTiming به توسعه دهندگان این امکان را می دهد تا تشخیص دهند که آیا زمان بندی ناوبری نماینده برنامه وب آنها است یا خیر.

Origin Trial | باگ ردیابی #1413848 | ورودی ChromeStatus.com | مشخصات

به روز رسانی اجرای رندر متن Canvas

این یک تغییر تحت وب نیست.

اجرای CanvasRenderingContext2D measureText() ، fillText() و strokeText() یک تغییر شدید دارد. این ممکن است بر عملکرد تأثیر بگذارد، بنابراین ما می‌خواهیم یک آزمایش اولیه اجرا کنیم تا برنامه‌های کاربردی سنگین بتوانند اجرای جدید را امتحان کنند.

Origin Trial | باگ ردیابی #389726691 | ورودی ChromeStatus.com

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

حذف HTMLFencedFrameElement.canLoadOpaqueURL()

روش HTMLFencedFrameElement canLoadOpaqueURL() با navigator.canLoadAdAuctionFencedFrame() در سال 2023 جایگزین شد و فراخوانی آن از زمانی که به API جدید اشاره کرد منجر به یک هشدار کنسول منسوخ شد. این روش از Chrome 136 حذف شده است.

ورودی ChromeStatus.com