کروم 140 بتا

منتشر شده: ۶ آگوست ۲۰۲۵

مگر اینکه خلاف آن ذکر شده باشد، تغییرات زیر در جدیدترین نسخه کانال بتای کروم برای اندروید، ChromeOS، لینوکس، macOS و ویندوز اعمال می‌شود. برای کسب اطلاعات بیشتر در مورد ویژگی‌های ذکر شده در اینجا، از طریق لینک‌های ارائه شده یا از لیست موجود در ChromeStatus.com اقدام کنید. کروم ۱۴۰ از ۶ آگوست ۲۰۲۵ در مرحله بتا است. می‌توانید آخرین نسخه را از وب‌سایت رسمی کروم برای دسکتاپ یا از فروشگاه گوگل پلی برای اندروید دانلود کنید.

سی‌اس‌اس و رابط کاربری

محاسبات تایپ شده CSS

حساب تایپی به شما امکان می‌دهد عباراتی مانند calc(10em / 1px) یا calc(20% / 0.5em * 1px) را در CSS بنویسید. این مثلاً در تایپوگرافی مفید است، زیرا به شما امکان می‌دهد یک مقدار تایپی را به یک مقدار بدون تایپ تبدیل کنید و از آن برای ویژگی‌هایی که عدد می‌پذیرند، دوباره استفاده کنید. مورد استفاده دیگر، ضرب مقدار بدون واحد در نوع دیگر است. به عنوان مثال، می‌توانید از پیکسل به درجه تبدیل کنید.

ویژگی scroll-target-group

ویژگی scroll-target-group مشخص می‌کند که آیا عنصر مورد نظر، یک گروه نشانگر اسکرول است یا خیر. این ویژگی یکی از مقادیر زیر را می‌پذیرد:

  • «none»: این عنصر، یک گروه نشانگر اسکرول ایجاد نمی‌کند.
  • 'auto': این عنصر یک ظرف گروه نشانگر اسکرول ایجاد می‌کند که یک گروه نشانگر اسکرول را تشکیل می‌دهد که شامل تمام عناصر نشانگر اسکرول است که این نزدیکترین ظرف گروه نشانگر اسکرول جد آنهاست.

ایجاد یک گروه نشانگر اسکرول به هر عنصر لنگر HTML با شناسه fragment که درون چنین ظرفی قرار دارد، اجازه می‌دهد تا معادل HTML شبه عناصر ::scroll-marker باشد. عنصر لنگری که هدف اسکرول آن در حال حاضر در دید است، می‌تواند با استفاده از شبه کلاس :target-current استایل‌بندی شود.

فعال کردن counter() و counters() در متن جایگزین ویژگی content

این ویژگی امکان استفاده از counter() و counters() را در متن جایگزین ویژگی content اضافه می‌کند. این امر اطلاعات معنادارتری را برای بهبود دسترسی فراهم می‌کند.

شبه‌ کدهای انتقال View، ویژگی‌های انیمیشن بیشتری را به ارث می‌برند.

اکنون شبه درخت انتقال نما تعدادی از ویژگی‌های انیمیشن را به ارث می‌برد:

  • animation-delay
  • animation-timing-function
  • animation-iteration-count
  • animation-direction
  • animation-play-state

فعال کردن انتقال‌های تو در تو برای نماها

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

overscroll-behavior نمای دید را از ریشه منتشر کنید

این تغییر overscroll-behavior به جای بدنه، از ریشه منتشر می‌کند. گروه کاری CSS تصمیم گرفت که ویژگی‌ها را از <body> به viewport منتشر نکند. در عوض، ویژگی‌های viewport از عنصر ریشه ( <html> ) منتشر می‌شوند. به این ترتیب، overscroll-behavior باید از عنصر ریشه منتشر شود. با این حال، کروم یک مشکل قدیمی داشته است: overscroll-behavior به جای ریشه، از <body> منتشر می‌کند. این رفتار با سایر مرورگرها سازگار نیست. این تغییر باعث می‌شود کروم با مشخصات مطابقت داشته باشد و با سایر پیاده‌سازی‌ها سازگار شود.

گزینه کانتینر ScrollIntoView

گزینه‌ی ScrollIntoViewOptions به توسعه‌دهندگان اجازه می‌دهد تا عملیات scrollIntoView انجام دهند که فقط نزدیکترین والدِ کانتینر اسکرول را اسکرول می‌کند. برای مثال، قطعه کد زیر فقط کانتینر اسکرول target را اسکرول می‌کند تا target به نمایش درآورد، اما تمام کانتینرهای اسکرول را به viewport اسکرول نمی‌کند:

target.scrollIntoView({container: 'nearest'});

ویژگی CSS caret-animation را اضافه کنید

کرومیوم از انیمیشن ویژگی caret-color پشتیبانی می‌کند. با این حال، هنگام انیمیشن، رفتار پیش‌فرض چشمک‌زن caret با انیمیشن تداخل پیدا می‌کند.

ویژگی caret-animation در CSS دو مقدار ممکن دارد: auto و manual . auto به معنای پیش‌فرض مرورگر (چشمک زدن) است و manual به معنای کنترل انیمیشن caret توسط توسعه‌دهنده است. علاوه بر این، کاربرانی که از چشمک زدن یا تصاویر چشمک‌زن ناراحت می‌شوند یا واکنش‌های نامطلوبی نسبت به آنها دارند، می‌توانند چشمک زدن را با استفاده از stylesheet کاربر غیرفعال کنند.

highlightsFromPoint API

رابط برنامه‌نویسی کاربردی highlightsFromPoint به توسعه‌دهندگان امکان می‌دهد تا با هایلایت‌های سفارشی تعامل داشته باشند. این رابط تشخیص می‌دهد که کدام هایلایت‌ها در یک نقطه خاص در یک سند وجود دارند. این تعامل برای ویژگی‌های پیچیده وب که در آن‌ها چندین هایلایت ممکن است با هم همپوشانی داشته باشند یا در DOM سایه وجود داشته باشند، ارزشمند است. این رابط برنامه‌نویسی کاربردی با ارائه تشخیص دقیق هایلایت مبتنی بر نقطه، به توسعه‌دهندگان این امکان را می‌دهد تا تعاملات پویا با هایلایت‌های سفارشی را به طور مؤثرتری مدیریت کنند. به عنوان مثال، توسعه‌دهندگان می‌توانند به کلیک‌های کاربر یا رویدادهای شناور روی مناطق هایلایت شده پاسخ دهند تا نکات راهنمای ابزار سفارشی، منوهای زمینه یا سایر ویژگی‌های تعاملی را فعال کنند.

تغییر نمایش زمان‌بندی وعده پایان انتقال

زمان‌بندی اتمام promise فعلی در مراحل چرخه حیات رندرینگ اتفاق می‌افتد. این بدان معناست که کدی که در نتیجه‌ی حل promise اجرا می‌شود، پس از تولید فریم بصری که گذار نما را حذف می‌کند، اتفاق می‌افتد. اگر اسکریپت سبک‌ها را برای حفظ حالت بصری مشابه تغییر دهد، این می‌تواند باعث ایجاد لرزش در انتهای انیمیشن شود. این تغییر با انتقال مراحل پاکسازی ViewTransition به اجرای غیرهمزمان پس از تکمیل چرخه حیات، مشکل را حل می‌کند.

ویژگی منبع ToggleEvent را اضافه کنید

ویژگی source یک ToggleEvent در صورت وجود، شامل عنصری است که باعث فعال شدن ToggleEvent شده است. برای مثال، اگر کاربری روی عنصر <button> با ویژگی‌های popovertarget یا commandfor تنظیم شده برای باز کردن یک popover کلیک کند، ویژگی منبع ToggleEvent که در popover فعال می‌شود، روی فراخوانی <button> تنظیم خواهد شد.

جلوگیری از آلوده شدن بوم نقاشی توسط SVG foreignObject برای URL های blob

همه مرورگرها مدت‌هاست که از استفاده از یک عنصر <img> با یک منبع SVG در عملیات drawImage بوم HTML پشتیبانی می‌کنند. با این حال، رفتار آلوده‌سازی بوم در پلتفرم‌های مختلف متفاوت است. همه مرورگرها وقتی منبع SVG شامل یک تگ foreignObject باشد و با یک HTTP URI ارجاع داده شود، بوم را آلوده می‌کنند. وقتی همان SVG از طریق یک data URI ارجاع داده شود، همه مرورگرها بوم را آلوده نمی‌کنند. با این حال، وقتی از یک blob URI استفاده می‌شود، هم Chromium (قبل از این تغییر) و هم WebKit بوم را آلوده می‌کنند، اما Gecko این کار را نمی‌کند. وقتی این ویژگی ارائه می‌شود، رفتار Chromium با Gecko مطابقت دارد و امکان استفاده از طیف وسیع‌تری از محتوای SVG را در فراخوانی‌های drawImage بوم بدون آلوده‌سازی فراهم می‌کند.

از توصیفگر font-variation-settings در @font-face rule پشتیبانی کنید

CSS به توسعه‌دهندگان اجازه می‌دهد تا وزن، عرض، شیب و سایر محورهای فونت را با استفاده از ویژگی font-variation-settings روی عناصر جداگانه تنظیم کنند. با این حال، مرورگرهای مبتنی بر Chromium فاقد پشتیبانی از این ویژگی در اعلان‌های @font-face هستند. این ویژگی از سینتکس مبتنی بر رشته برای font-variation-settings همانطور که در CSS Fonts Level 4 تعریف شده است، پشتیبانی می‌کند. برچسب‌های ویژگی نامعتبر یا ناشناخته طبق مشخصات نادیده گرفته می‌شوند. هیچ فرم باینری یا غیر استانداردی پشتیبانی نمی‌شود. فونت‌های متغیر هم از نظر عملکرد و هم از نظر انعطاف‌پذیری تایپوگرافی به طور گسترده‌تری پذیرفته می‌شوند. افزودن پشتیبانی از این توصیفگر در Chromium کنترل را افزایش می‌دهد، تکرار را کاهش می‌دهد و از رویکردی مقیاس‌پذیرتر و مدرن‌تر به تایپوگرافی وب پشتیبانی می‌کند.

API های وب

تبدیل Uint8Array به و از base64 و hex

Base64 یک روش رایج برای نمایش داده‌های دودویی دلخواه به صورت ASCII است. جاوا اسکریپت دارای Uint8Arrays برای داده‌های دودویی است. با این حال، فاقد مکانیزم داخلی برای رمزگذاری آن داده‌ها به صورت base64 یا دریافت داده‌های base64 و تولید یک Uint8Array متناظر است. این ویژگی، قابلیت و روش‌هایی را برای تبدیل بین رشته‌های هگز و Uint8Arrays اضافه می‌کند.

از گزینه min ReadableStreamBYOBReader استفاده کنید

این ویژگی یک گزینه min به متد موجود ReadableStreamBYOBReader.read(view) اضافه می‌کند. این متد از قبل یک ArrayBufferView را می‌پذیرد که داده‌ها را در آن می‌خواند، اما در حال حاضر تضمین نمی‌کند که قبل از حل شدن خواندن، چند عنصر نوشته شده است. با تعیین یک مقدار min ، می‌توانید از استریم بخواهید که قبل از حل شدن خواندن، حداقل تا زمانی که تعداد عناصر موجود باشد، صبر کند. این ویژگی، رفتار فعلی را بهبود می‌بخشد، جایی که خواندن‌ها ممکن است با عناصر کمتری نسبت به آنچه که نما می‌تواند نگه دارد، حل شوند.

در برخی موارد، تمایز قائل شدن بین کوکی‌های تنظیم‌شده توسط سرور و کوکی‌های تنظیم‌شده توسط کلاینت در سمت سرور مهم است. یکی از این موارد شامل کوکی‌هایی است که معمولاً همیشه توسط سرور تنظیم می‌شوند. با این حال، کد غیرمنتظره (مانند یک اکسپلویت XSS، یک افزونه مخرب یا یک کامیت از یک توسعه‌دهنده سردرگم) ممکن است آنها را روی کلاینت تنظیم کند. این پیشنهاد سیگنالی اضافه می‌کند که به سرورها اجازه می‌دهد چنین تمایزی را ایجاد کنند. به طور خاص‌تر، پیشوندهای __Http و __HostHttp را تعریف می‌کند که تضمین می‌کند کوکی با استفاده از اسکریپت در سمت کلاینت تنظیم نشود.

محدودیت‌های دسترسی به شبکه محلی

کروم ۱۴۰ امکان ارسال درخواست به شبکه محلی کاربر را محدود می‌کند و نیاز به درخواست مجوز دارد. درخواست شبکه محلی، هر درخواستی از یک وب‌سایت عمومی به یک آدرس IP محلی یا loopback، یا از یک وب‌سایت محلی (مانند اینترانت) به loopback است. محدود کردن امکان انجام این درخواست‌ها توسط وب‌سایت‌ها با مجوز، خطر حملات جعل درخواست بین سایتی علیه دستگاه‌های شبکه محلی، مانند روترها را کاهش می‌دهد. همچنین توانایی سایت‌ها برای استفاده از این درخواست‌ها برای انگشت‌نگاری شبکه محلی کاربر را کاهش می‌دهد. این مجوز به زمینه‌های امن محدود می‌شود. در صورت اعطای مجوز، مسدود کردن محتوای مختلط برای درخواست‌های شبکه محلی نیز کاهش می‌یابد، زیرا بسیاری از دستگاه‌های محلی به دلایل مختلف نمی‌توانند گواهی‌های TLS مورد اعتماد عمومی را دریافت کنند.

برای کسب اطلاعات بیشتر به بخش «دسترسی به شبکه محلی» مراجعه کنید.

فعال کردن اسکریپت‌های SharedWorker برای ارث‌بری کنترلر برای URLهای اسکریپت blob

این مشخصات بیان می‌کند که workerها باید کنترلرهای مربوط به blob URL را به ارث ببرند. با این حال، کد موجود فقط به workerهای اختصاصی اجازه می‌دهد تا کنترلر را به ارث ببرند؛ workerهای اشتراکی این امکان را ندارند. این امر رفتار کروم را برای همسو شدن با مشخصات اصلاح می‌کند. سیاست سازمانی SharedWorkerBlobURLFixEnabled این ویژگی را کنترل می‌کند.

افزودن ServiceWorkerStaticRouterTimingInfo

این ویژگی اطلاعات زمان‌بندی را برای API مسیریابی استاتیک ServiceWorker اضافه می‌کند که در API زمان‌بندی ناوبری و API زمان‌بندی منابع برای استفاده توسعه‌دهندگان قرار دارد. ServiceWorker اطلاعات زمان‌بندی را برای علامت‌گذاری نقاط خاص در زمان ارائه می‌دهد.

این ویژگی دو بخش از اطلاعات زمان‌بندی مرتبط با API مسیریابی استاتیک را اضافه می‌کند:

  • RouterEvaluationStart : زمان شروع تطبیق یک درخواست با قوانین ثبت‌شده‌ی روتر است.
  • CacheLookupStart : اگر منبع "cache" باشد، زمان شروع جستجوی حافظه پنهان است.

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

فعال کردن احراز هویت وب مشروط در اندروید (نه در حال ارسال)

برنامه‌های وب ایزوله

معرفی API فریم کنترل‌شده

این ویژگی یک API فریم کنترل‌شده اضافه می‌کند که فقط برای برنامه‌های وب ایزوله (IWA) در دسترس است. مانند APIهای با نام مشابه در سایر پلتفرم‌ها، فریم کنترل‌شده امکان جاسازی تمام محتوا، حتی محتوای شخص ثالث که نمی‌توان آن را در <iframe> جاسازی کرد، را فراهم می‌کند. فریم کنترل‌شده همچنین امکان کنترل محتوای جاسازی‌شده را با مجموعه‌ای از روش‌ها و رویدادهای API فراهم می‌کند. برای اطلاعات بیشتر در مورد برنامه‌های وب ایزوله، به توضیح برنامه‌های وب ایزوله مراجعه کنید.

آزمایش‌های منشأ جدید

در کروم ۱۴۰ می‌توانید در آزمایش‌های جدید زیر شرکت کنید.

رویداد clipboardchange را اضافه کنید

رویداد clipboardchange هر زمان که یک برنامه وب یا هر برنامه سیستمی دیگر محتوای کلیپ‌بورد سیستم را تغییر دهد، فعال می‌شود. این به برنامه‌های وب مانند کلاینت‌های دسکتاپ از راه دور اجازه می‌دهد تا کلیپ‌بوردهای خود را با کلیپ‌بورد سیستم همگام‌سازی کنند. این یک جایگزین کارآمد برای نمونه‌برداری از کلیپ‌بورد با جاوا اسکریپت برای تغییرات ارائه می‌دهد.

فعال کردن اعلان تماس‌های ورودی

این ویژگی، API اعلان‌ها را گسترش می‌دهد تا به PWA های نصب شده اجازه دهد اعلان‌های تماس ورودی را ارسال کنند - اعلان‌هایی با دکمه‌های شبیه به تماس و آهنگ زنگ. این افزونه به برنامه‌های وب VoIP کمک می‌کند تا با آسان‌تر کردن تشخیص و پاسخ دادن به اعلان‌های تماس برای کاربران، تجربیات جذاب‌تری ایجاد کنند. علاوه بر این، این ویژگی به پر کردن شکاف بین پیاده‌سازی‌های بومی و وب برنامه‌هایی که هر دو را دارند، کمک می‌کند.

معرفی API کلید-مقدار گزارش خرابی

این ویژگی یک API کلید-مقدار جدید، به طور آزمایشی window.crashReport ، را معرفی می‌کند که توسط یک نقشه هر سندی پشتیبانی می‌شود که داده‌های پیوست شده به گزارش‌های خرابی را در خود نگه می‌دارد.

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

منسوخ‌ها و حذف‌ها

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

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

قوانین اندازه فونت ویژه برای <h1> در برخی عناصر را منسوخ کنید

مشخصات HTML شامل فهرستی از قوانین ویژه برای تگ‌های <h1> است که درون عناصر <article> ، <aside> ، <nav> یا <section> قرار دارند.

این قوانین خاص به دلیل ایجاد مشکلات دسترسی‌پذیری منسوخ شده‌اند. به عبارت دیگر، آنها از نظر بصری اندازه فونت را برای <h1> های تو در تو کاهش می‌دهند تا مانند <h2> به نظر برسند ، اما هیچ چیز در درخت دسترسی‌پذیری این تغییر بصری را منعکس نمی‌کند.