منتشر شده: ۵ مارس ۲۰۲۵
مگر اینکه خلاف آن ذکر شده باشد، تغییرات زیر در جدیدترین نسخه کانال بتای کروم برای اندروید، ChromeOS، لینوکس، macOS و ویندوز اعمال میشود. برای کسب اطلاعات بیشتر در مورد ویژگیهای ذکر شده در اینجا، از طریق لینکهای ارائه شده یا از لیست موجود در ChromeStatus.com اقدام کنید. کروم ۱۳۵ از ۵ مارس ۲۰۲۵ در نسخه بتا است. میتوانید جدیدترین نسخه را از Google.com برای دسکتاپ یا از فروشگاه گوگل پلی برای اندروید دانلود کنید.
سیاساس و رابط کاربری
این نسخه سیزده ویژگی جدید CSS و رابط کاربری اضافه میکند.
موقعیتیابی لنگر، جابجایی اسکرول را به خاطر میسپارد
پشتیبانی از مفهوم فاصلهی اسکرول به خاطر سپرده شده را اضافه کنید. وقتی یک عنصر موقعیتیابی شده دارای یک لنگر پیشفرض است و در یک لبه به این لنگر و در لبهی دیگر به بلوک حاوی عنصر اصلی متصل است، فاصلهی اسکرول هنگام تعیین اندازهی عنصر در نظر گرفته میشود. این بدان معناست که میتوانید از تمام فضای قابل مشاهده (با استفاده از position-area ) برای عنصر لنگرگذاری شده هنگام اسکرول شدن سند با یک فاصلهی اسکرول مشخص استفاده کنید. برای جلوگیری از طرحبندی (تغییر اندازهی عنصر) هر بار که سند اسکرول میشود، مرورگر از فاصلهی اسکرول به خاطر سپرده شده استفاده میکند، نه اینکه همیشه از فاصلهی اسکرول فعلی استفاده کند. فاصلهی اسکرول به خاطر سپرده شده در یک نقطهی محاسبهی مجدد لنگر بهروزرسانی میشود، که یا موقعیتی است که عنصر موقعیتیابی شده در ابتدا نمایش داده میشود، یا زمانی که گزینهی موقعیتیابی متفاوتی ( position-try-fallbacks ) انتخاب میشود.
بیاثری CSS
بیاثر کردن یک عنصر بر قابلیت فوکوس، ویرایش، انتخاب و جستجو توسط find-in-page تأثیر میگذارد. همچنین بر قابل مشاهده بودن آن در درخت دسترسی تأثیر میگذارد. ویژگی interactivity مشخص میکند که آیا یک عنصر و فرزندان درخت مسطح آن (از جمله متنهای اجرا شده) بیاثر هستند یا خیر. ویژگی interactivity یکی از دو مقدار را میپذیرد: auto یا inert .
ویژگیهای سرریز منطقی
ویژگیهای CSS مربوط به overflow-inline و overflow-block به شما امکان میدهند overflow را در جهت درونخطی و بلوکی نسبت به حالت نوشتن تنظیم کنید. در حالت نوشتن افقی، overflow-inline به overflow-x نگاشت میشود، در حالی که در حالت نوشتن عمودی، به overflow-y نگاشت میشود.
توابع مربوط به علامت: abs() و sign()
ویژگی dynamic-range-limit
به یک صفحه اجازه میدهد حداکثر روشنایی محتوای HDR را محدود کند.
shape() shape
تابع shape() امکان واکنشگرایی اشکال آزاد را در ویژگی clip-path فراهم میکند. این تابع به شما امکان میدهد مجموعهای از دستورات، معادل دستورات موجود در path() را تعریف کنید. با این حال، این دستورات واحدهای واکنشگرا (مثلاً % یا vw ) و همچنین هرگونه مقدار CSS مانند ویژگیهای سفارشی را میپذیرند.
شبه عنصر ::column
یک شبه عنصر ::column که امکان اعمال مجموعهای محدود از سبکها را به قطعات تولید شده فراهم میکند. به طور خاص، این محدود به سبکهایی است که بر طرحبندی تأثیری ندارند و بنابراین میتوانند پس از طرحبندی اعمال شوند.
شبه عناصر ::scroll-button()
امکان ایجاد دکمههای اسکرول تعاملی به عنوان شبهعنصر. برای مثال:
.scroller {
overflow: auto;
}
.scroller::scroll-button(inline-start) {
content: "<";
}
.scroller::scroll-button(inline-end) {
content: ">";
}
این دکمهها باید قابلیت فوکوس داشته باشند و مانند یک دکمه عمل کنند (شامل استایلهای UA مربوط به خودشان). وقتی فعال میشوند، باید در جهت مورد نظر اسکرول شوند. وقتی امکان اسکرول در آن جهت وجود ندارد، باید غیرفعال شوند (و با :disabled استایلبندی شوند)، در غیر این صورت فعال میشوند (و با :enabled استایلبندی میشوند). این انتخابگر به شما امکان میدهد دکمهها را در چهار جهت منطقی تعریف کنید: block-start ، block-end ، inline-start ، inline-end ؛ و همچنین چهار جهت فیزیکی: up ، down ، left ، right .
::scroll-marker و ::scroll-marker-group
::scroll-marker و ::scroll-marker-group برای کانتینرهای اسکرول اضافه میکند. این شبهعناصر به شما امکان میدهند مجموعهای از نشانگرهای قابل فوکوس را برای همه موارد مرتبط در کانتینر اسکرول ایجاد کنید.
استایلدهی به شبه عناصر تو در تو
استایلدهی به شبهعنصرهایی که درون شبهعنصرهای دیگر تودرتو هستند را فعال میکند. تاکنون، از ::before::marker و ::after::marker پشتیبانی میشود و ::column::scroll-marker در آینده پشتیبانی خواهد شد.
پارتیشن بندی :visited
برای جلوگیری از نشت تاریخچه مرور کاربر، عناصر لنگر فقط در صورتی به صورت :visited استایلبندی میشوند که قبلاً از این سایت سطح بالا و فریم مبدا کلیک شده باشند. با استایلبندی فقط لینکهایی که قبلاً در این سایت و فریم کلیک شدهاند، بسیاری از حملات کانال جانبی که برای به دست آوردن اطلاعات استایلبندی لینکهای :visited توسعه داده شدهاند، اکنون منسوخ شدهاند، زیرا دیگر اطلاعات جدیدی در مورد کاربران به سایتها ارائه نمیدهند.
یک استثنا برای پیوندهای خود وجود دارد، که در آن پیوندها به صفحات خود سایت میتوانند به صورت :visited استایلبندی شوند، حتی اگر قبلاً در همین سایت سطح بالا و فریم مبدا روی آنها کلیک نشده باشد. این استثنا فقط در فریمها یا زیرفریمهای سطح بالا که با فریم سطح بالا هممبنا هستند، فعال میشود. مزایای حریم خصوصی همچنان برقرار است زیرا سایتها از قبل میدانند که کاربر از کدام زیرصفحههای آنها بازدید کرده است، بنابراین هیچ اطلاعات جدیدی فاش نمیشود. این یک استثنای درخواستی از سوی جامعه بود که تجربه کاربر را بهبود میبخشد.
نمادگذاری تابعی پیشرفت درونیابی: تابع *progress() در CSS
متغیرهای safe-area-max-inset- *
علاوه بر متغیرهای محیطی safe-area-inset ، کروم اکنون از انواع max-area-safe-inset- * این متغیرها نیز پشتیبانی میکند. برخلاف insetهای پویا، max insetها تغییر نمیکنند و حداکثر مقدار ممکن برای درج ناحیه امن را نشان میدهند.
این مقادیر هنگام ساخت تجربیات وب لبه به لبه (edge-to-edge) کارآمد ضروری هستند.
API های وب
پشتیبانی از MediaStreamTrack را به Web Speech API اضافه کنید
پشتیبانی MediaStreamTrack به Web Speech API اضافه کنید. Web Speech API یک API استاندارد وب است که به توسعهدهندگان اجازه میدهد تشخیص و ترکیب گفتار را در صفحات وب خود بگنجانند. در حال حاضر، Web Speech API از میکروفون پیشفرض کاربر به عنوان ورودی صدا استفاده میکند. پشتیبانی MediaStreamTrack به وبسایتها اجازه میدهد تا از Web Speech API برای زیرنویس کردن سایر منابع صوتی از جمله آهنگهای صوتی از راه دور استفاده کنند.
پارتیشنبندی Blob URL: واکشی و ناوبری
به عنوان ادامهی پارتیشنبندی ذخیرهسازی، این ویژگی پارتیشنبندی دسترسی به Blob URL را بر اساس کلید ذخیرهسازی (سایت سطح بالا، مبدا فریم و مقدار بولی has-cross-site-ancestor) پیادهسازی میکند، به استثنای پیمایشهای سطح بالا که فقط بر اساس مبدا فریم پارتیشنبندی میشوند.
CSP require-sri-for برای اسکریپتها
دستورالعمل require-sri-for به شما این امکان را میدهد که ادعا کنید هر منبعی از یک نوع مشخص نیاز به بررسی یکپارچگی دارد. اگر تلاش شود منبعی از آن نوع بدون ابرداده یکپارچگی بارگذاری شود، آن تلاش با شکست مواجه شده و گزارش نقض CSP را فعال میکند. این هدف، مقدار "script" این دستورالعمل را پوشش میدهد.
ایجاد کلاینت سرویس ورکر و ارثبری کنترلر سرویس ورکر برای iframe srcdoc
اسناد زمینه Srcdoc در حال حاضر کلاینتهای سرویس ورکر نیستند و توسط سرویس ورکر والد خود پوشش داده نمیشوند. این امر منجر به برخی اختلافات میشود (برای مثال، Resource Timing URLهایی را که این اسناد بارگذاری میکنند گزارش میدهد، اما سرویس ورکر آنها را رهگیری نمیکند). هدف این است که با ایجاد کلاینتهای سرویس ورکر برای iframeهای srcdoc و به ارث بردن آنها از کنترلکننده سرویس ورکر والد خود، اختلافات را برطرف کنیم.
ارسال رویدادهای کلیک به اشارهگر ثبتشده
اگر در حین ارسال رویداد pointerup ، اشارهگری گرفته شود، رویداد click به جای نزدیکترین جد مشترک رویدادهای pointerdown و pointerup طبق مشخصات رویداد UI، به هدف گرفته شده ارسال میشود. برای اشارهگرهای گرفته نشده، هدف click بدون تغییر باقی میماند.
آرایه شناور ۱۶
آرایه نوع Float16Array را اضافه میکند. مقادیر عددی هنگام نوشتن در نمونههای Float16Array به IEEE fp16 گرد میشوند.
گنجاندن آغازگر ناوبری در کلید پارتیشن حافظه پنهان HTTP
طرح کلیدگذاری حافظه پنهان HTTP کروم بهروزرسانی شده است تا شامل یک مقدار بولی is-cross-site-main-frame-navigation باشد تا حملات نشت بین سایتی شامل ناوبری سطح بالا را کاهش دهد. به طور خاص، این امر از حملات بین سایتی که در آن یک مهاجم میتواند یک ناوبری سطح بالا را به یک صفحه مشخص آغاز کند و سپس به منبعی که توسط صفحه بارگذاری میشود، هدایت شود تا از طریق زمان بارگذاری، اطلاعات حساس را استنباط کند، جلوگیری میکند. این تغییر همچنین با جلوگیری از استفاده یک سایت مخرب از ناوبریها برای استنباط اینکه آیا کاربر قبلاً از یک سایت مشخص بازدید کرده است یا خیر، حریم خصوصی را بهبود میبخشد.
پیشگیری از ردیابی HSTS
ردیابی کاربر توسط اشخاص ثالث از طریق حافظه پنهان HSTS را کاهش میدهد.
این ویژگی فقط امکان ارتقاء HSTS را برای پیمایشهای سطح بالا فراهم میکند و ارتقاء HSTS را برای درخواستهای زیرمنبع مسدود میکند. انجام این کار، استفاده از حافظه پنهان HSTS برای ردیابی کاربران در سراسر وب را برای سایتهای شخص ثالث غیرممکن میکند.
دستورات فراخوانی کننده: ویژگیهای command و commandfor
ویژگیهای command و commandfor در عناصر <button> به شما این امکان را میدهند که به دکمهها به روشی قابل دسترستر و اعلانیتر، رفتار اختصاص دهید، در حالی که اشکالات را کاهش داده و میزان جاوا اسکریپت مورد نیاز برای تعامل را سادهتر میکنند. دکمههایی با ویژگیهای commandfor و command - هنگام کلیک، لمس یا اجرا با فشردن کلید - یک CommandEvent روی عنصری که توسط commandfor به آن ارجاع داده شده است، با برخی رفتارهای پیشفرض مانند باز کردن کادرهای محاورهای و popoverها، ارسال میکنند.
برای پشتیبانی از پرداختهای فوری، از لینک rel="facilitated-payment" استفاده کنید.
پشتیبانی از <link rel="facilitated-payment" href="..."> را به عنوان راهنمایی اضافه میکند که مرورگر باید به مشتریان پرداخت ثبتشده در مورد پرداخت فوری در انتظار، اطلاع دهد.
ویژگی NavigateEvent sourceElement
وقتی یک ناوبری توسط یک عنصر (یعنی کلیک روی لینک یا ارسال فرم) آغاز میشود، ویژگی sourceElement در NavigateEvent عنصر آغازین را برمیگرداند.
تغییر نام دلیل API NotRestoredReasons
API NotRestoredReasons در حال تغییر برخی از متون دلیل برای همترازی با نامهای استاندارد است. توسعهدهندگانی که این دلایل را زیر نظر دارند، ممکن است متوجه تغییر در متون دلیل شوند.
API گفتار وب روی دستگاه
نادیده گرفتن تغییرات history.pushState توسط آدرس اینترنتی کلاینت سرویس ورکر
ویژگی Client.url سرویس ورکر را طوری تغییر میدهد که با استفاده از history.pushState() و سایر APIهای مشابه history، تغییرات URL سند را نادیده بگیرد. ویژگی Client.url قرار است URL ایجاد سند HTML باشد که چنین تغییراتی را نادیده میگیرد.
پشتیبانی از ویژگیهای rel و relList برای SVGAElement
رابط SVGAElement در SVG 2.0 امکان دستکاری عناصر <a> را مشابه عناصر لنگر HTML فراهم میکند. پشتیبانی از ویژگیهای rel و relList امنیت و حریم خصوصی را برای توسعهدهندگان افزایش میدهد. این همترازی با عناصر لنگر HTML، ثبات و سهولت استفاده را در فناوریهای وب تضمین میکند.
مهرهای زمانی برای فریمهای کدگذاری شده RTC
این ویژگی شامل نمایش برخی از مهرهای زمانی موجود در فریمهای رمزگذاری شده WebRTC که از طریق RTCPeerConnection ارسال میشوند، در وب است. مهرهای زمانی مورد نظر عبارتند از:
- مهر زمانی ضبط: مهر زمانی که یک فریم در ابتدا ضبط شده است
- برچسب زمانی دریافت: برچسب زمانی که یک فریم دریافت شده است.
ProgressEvent بهروزرسانی کنید تا از نوع double برای «loaded» و «total» استفاده کند.
ProgressEvent دارای ویژگیهای loaded و total است که نشاندهندهی پیشرفت هستند و نوع آنها اکنون unsigned long long است. با این ویژگی، نوع این دو ویژگی به double تغییر میکند که به توسعهدهنده کنترل بیشتری بر مقدار میدهد. برای مثال، توسعهدهندگان اکنون میتوانند یک ProgressEvent با total ۱ و loaded که به تدریج از ۰ به ۱ افزایش مییابد، ایجاد کنند. این با رفتار پیشفرض عنصر <progress> HTML در صورت حذف ویژگی max همسو است.
رابط برنامهنویسی کاربردی fetchLater
رابط برنامهنویسی کاربردی fetchLater() یک رابط برنامهنویسی کاربردی جاوا اسکریپت برای درخواست واکشی معوق است که به ویژه برای ارسال اطلاعات قابل اعتمادتر در پایان عمر یک صفحه مفید است. پس از فراخوانی در یک سند، درخواست معوق توسط مرورگر در حالت PENDING در صف قرار میگیرد و با اولین شرط از شرایط زیر فراخوانی میشود:
سند از بین میرود. پس از مدت زمان مشخص شده توسط کاربر. به دلایل حفظ حریم خصوصی، تمام درخواستهای در حال انتظار، صرف نظر از اینکه چقدر زمان باقی مانده باشد، هنگام ورود سند به bfcache پاک میشوند. مرورگر تصمیم میگیرد که زمان ارسال آن فرا رسیده است.
این API یک FetchLaterResult برمیگرداند که شامل یک فیلد بولی activated که میتواند بهروزرسانی شود تا مشخص شود آیا درخواست معوق ارسال شده است یا خیر. در صورت ارسال موفقیتآمیز، کل پاسخ توسط مرورگر، از جمله بدنه و هدرها، نادیده گرفته میشود.
توجه داشته باشید که از نظر کاربر API، زمان دقیق ارسال مشخص نیست.
آزمایشهای منشأ جدید
در کروم ۱۳۵ میتوانید در آزمایشهای جدید زیر شرکت کنید.
فراخوانهای علاقه
این ویژگی یک ویژگی interesttarget را به عناصر <button> و <a> اضافه میکند. ویژگی interesttarget رفتارهای "علاقه" را به عنصر اضافه میکند، به طوری که وقتی کاربر به عنصر "علاقه نشان میدهد"، اقداماتی روی عنصر هدف انجام میشود. اقدامات میتوانند شامل مواردی مانند نمایش یک popover باشند. عامل کاربر با استفاده از روشهایی مانند نگه داشتن ماوس روی عنصر، فشردن کلیدهای میانبر ویژه روی صفحه کلید یا فشار دادن طولانی مدت عنصر در صفحههای لمسی، تشخیص میدهد که کاربر چه زمانی به عنصر "علاقه نشان میدهد". وقتی علاقه نشان داده میشود یا از بین میرود، یک InterestEvent روی هدف اجرا میشود که در مورد popoverها اقدامات پیشفرضی دارد - نمایش و پنهان کردن popover.
یکپارچگی مبتنی بر امضا
این ویژگی، مکانیزمی را در اختیار توسعهدهندگان وب قرار میدهد تا منشأ منابعی را که به آنها وابسته هستند، تأیید کنند و پایه فنی برای اعتماد به وابستگیهای یک سایت ایجاد کنند. به طور خلاصه: سرورها میتوانند پاسخها را با یک جفت کلید Ed25519 امضا کنند و توسعهدهندگان وب میتوانند از عامل کاربر بخواهند که امضا را با استفاده از یک کلید عمومی خاص تأیید کند. این ویژگی، علاوه بر بررسیهای مبتنی بر URL که توسط سیاست امنیت محتوا از یک سو و بررسیهای مبتنی بر محتوای Subresource Integrity از سوی دیگر ارائه میشود، مفید خواهد بود.
منسوخها و حذفها
این نسخه از کروم، منسوخها و حذفهای ذکر شده در زیر را معرفی میکند. برای مشاهده فهرست منسوخهای برنامهریزی شده، منسوخهای فعلی و حذفهای قبلی، به ChromeStatus.com مراجعه کنید.
این نسخه از کروم یک ویژگی را منسوخ میکند.
منسوخ کردن دریافتکنندههای اطلاعات محلی بینالمللی
رابط برنامهنویسی کاربردی اطلاعات محلی بینالمللی (Intl Locale Info API) یک پیشنهاد مرحله ۳ ECMAScript TC39 برای بهبود شیء Intl.Locale با افشای اطلاعات محلی، مانند دادههای هفته (اولین روز در هفته، روز شروع آخر هفته، روز پایان آخر هفته، حداقل روز در هفته اول) و چرخه ساعت جهت متن مورد استفاده در محلی است. کروم یک پیادهسازی را در کروم ۹۹ ارائه کرد، با این حال، پیشنهاد تغییر کرد تا چندین getter را به توابع منتقل کند. ما باید getterهای منسوخ شده را حذف کرده و توابع تغییر نام داده شده را دوباره راهاندازی کنیم.
این نسخه از کروم سه ویژگی را حذف کرده است.
متد منسوخ شده navigator.xr.supportsSession را حذف کنید
navigator.xr.supportsSession در سپتامبر ۲۰۱۹ پس از دریافت بازخورد در مورد شکل API از TAG، در مشخصات WebXR با متد navigator.xr.isSessionSupported جایگزین شد. از آن زمان، این متد در کروم به عنوان منسوخ علامتگذاری شده است و یک هشدار کنسول ایجاد میکند که توسعهدهندگان را به API بهروزرسانیشده هدایت میکند. میزان استفاده از این فراخوانی بسیار کم است و تأیید شده است که تمام چارچوبهای اصلی که برای ساخت محتوای WebXR استفاده میشوند، برای استفاده از فراخوانی جدیدتر بهروزرسانی شدهاند.
حذف ویژگی canTransition NavigateEvent
در کروم ۱۰۸، متد transitionWhile() و ویژگی canTransition مربوط به NavigateEvent با متد intercept() و ویژگی canIntercept جدید جایگزین شدند. در آن زمان، متد transitionWhile() حذف شد. با این حال، ما فراموش کردیم که ویژگی canTransition حذف کنیم: در عوض، آن را به عنوان یک نام مستعار برای canIntercept باقی گذاشتیم. در کروم ۱۳۵، ما در حال رفع این مشکل و حذف canTransition هستیم. هرگونه استفاده از canTransition میتوان با canIntercept جایگزین کرد، بدون هیچ تغییری در رفتار.
حذف محدودیت WebGPU در maxInterStageShaderComponents
محدودیت maxInterStageShaderComponents به دلیل ترکیبی از عوامل زیر در حال حذف شدن است:
- افزونگی با
maxInterStageShaderVariables: این محدودیت در حال حاضر هدف مشابهی را دنبال میکند و میزان دادههای منتقل شده بین مراحل سایهزن را کنترل میکند. - اختلافات جزئی: اگرچه تفاوتهای جزئی در نحوه محاسبه این دو محدودیت وجود دارد، اما این تفاوتها جزئی هستند و میتوان آنها را به طور مؤثر در
maxInterStageShaderVariables limitمدیریت کرد. - سادهسازی: حذف
maxInterStageShaderComponentsرابط شیدر را سادهتر کرده و پیچیدگی را برای توسعهدهندگان کاهش میدهد. به جای مدیریت دو محدودیت جداگانه (که هر دو به طور همزمان اما با تفاوتهای ظریف اعمال میشوند)، آنها میتوانند رویmaxInterStageShaderVariablesبا نام مناسبتر و جامعتر تمرکز کنند.