کروم 137 بتا

منتشر شده: ۱ مه ۲۰۲۵

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

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

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

تابع if()

تابع if() در CSS روشی مختصر برای بیان مقادیر شرطی ارائه می‌دهد. این تابع مجموعه‌ای از جفت‌های شرط-مقدار را می‌پذیرد که با نقطه ویرگول از هم جدا شده‌اند. این تابع هر شرط را به ترتیب ارزیابی می‌کند و مقدار مرتبط با اولین شرط درست را برمی‌گرداند. اگر هیچ یک از شرط‌ها درست ارزیابی نشوند، تابع یک جریان توکن خالی را برمی‌گرداند. این به شما امکان می‌دهد منطق شرطی پیچیده را به روشی ساده و مختصر بیان کنید. مثال:

div {
      color: var(--color);
      background-color: if(style(--color: white): black; else: white);
  }
  .dark {
      --color: black;
  }
  .light {
      --color: white;
  }
<div class="dark">dark</div>
<div class="light">light</div>

ویژگی‌های reading-flow و reading-order

ویژگی CSS با reading-flow ترتیب نمایش عناصر در یک طرح‌بندی flex، grid یا block را در معرض ابزارهای دسترسی‌پذیری و فوکوس با استفاده از ناوبری فوکوس صفحه‌کلید و tab کنترل می‌کند. این ویژگی یکی از مقادیر کلمه کلیدی زیر را می‌گیرد:

  • normal
  • flex-visual
  • flex-flow
  • grid-rows
  • grid-columns
  • grid-order
  • source-order

ویژگی reading-order در CSS به شما امکان می‌دهد ترتیب خواندن را در یک محفظه جریان خواندن به صورت دستی تغییر دهید. این ویژگی یک عدد صحیح با مقدار پیش‌فرض ۰ است.

برای کسب اطلاعات بیشتر، مقاله «استفاده از جریان خواندن CSS برای ناوبری فوکوس ترتیبی منطقی» را مطالعه کنید و چند نمونه از جریان خواندن را امتحان کنید.

offset-path: shape()

تابع shape() از قبل در clip-path پشتیبانی می‌شود و امکان برش واکنش‌گرا را فراهم می‌کند. فعال کردن آن برای offset-path نیز شکاف کوچکی را پر می‌کند که در آن می‌توان از همان نوع شکل برای آن ویژگی استفاده کرد.

پشتیبانی از ویژگی تبدیل در SVGSVGElement

این ویژگی امکان اعمال ویژگی‌های تبدیل - مانند مقیاس‌بندی، چرخش، انتقال و کج کردن - را مستقیماً بر روی عنصر ریشه <svg> با استفاده از ویژگی تبدیل آن فراهم می‌کند. این بهبود به شما امکان می‌دهد کل سیستم مختصات SVG یا محتوای آن را به طور کلی دستکاری کنید و انعطاف‌پذیری بیشتری در ایجاد گرافیک‌های برداری پویا، واکنش‌گرا و تعاملی فراهم می‌کند. با پشتیبانی از این ویژگی، عنصر SVG را می‌توان بدون نیاز به عناصر پوششی اضافی یا راه‌حل‌های پیچیده CSS تبدیل کرد و فرآیند ساخت گرافیک‌های وب مقیاس‌پذیر و متحرک را ساده‌تر کرد.

با حذف قطعه کد، به <use> اجازه دهید تا به عنصر ریشه یک سند خارجی ارجاع دهد.

در این ویژگی، ما با کاهش الزامات ارجاع، عنصر <use> در SVG را ساده‌سازی می‌کنیم. در حال حاضر، شما باید به طور صریح به قطعات درون سند SVG ارجاع دهید. اگر هیچ شناسه قطعه‌ای ارائه نشود، <use> قادر به شناسایی هدف نخواهد بود و هیچ چیزی رندر یا ارجاع داده نمی‌شود.

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

رنگ تأکیدی سیستم برای ویژگی accent-color که به ویندوز و ChromeOS گسترش یافته است

این به شما امکان می‌دهد از رنگ تأکیدی سیستم عامل برای عناصر فرم استفاده کنید. با استفاده از ویژگی accent-color در CSS، می‌توانید مطمئن شوید که عناصر فرم مانند کادرهای انتخاب، دکمه‌های رادیویی و نوارهای پیشرفت به طور خودکار رنگ تأکیدی تعریف شده توسط سیستم عامل کاربر را اتخاذ می‌کنند. این ویژگی از سال 2021 در macOS پشتیبانی می‌شود و اکنون در Windows و ChromeOS نیز پشتیبانی می‌شود.

view-transition-name: match-element

مقدار match-element برای ویژگی view-transition یک شناسه منحصر به فرد بر اساس هویت عنصر ایجاد می‌کند و برای این عنصر ثابت می‌ماند. این در موارد برنامه‌های تک صفحه‌ای استفاده می‌شود که عنصر در حال حرکت است و شما می‌خواهید آن را با یک گذار نما متحرک کنید.

API های وب

نوع خطای ایجاد شده برای «پرداخت» اعتبارنامه WebAuthn را تراز کنید

نوع خطایی که در طول ایجاد اعتبارنامه WebAuthn برای اعتبارنامه‌های payment رخ می‌داد، اصلاح شد. به دلیل عدم تطابق مشخصات تاریخی، ایجاد اعتبارنامه payment در یک iframe بین مبدا و بدون فعال‌سازی کاربر، به جای NotAllowedError ، SecurityError نشان می‌داد، که همان خطایی است که برای اعتبارنامه‌های عدم پرداخت رخ می‌دهد. این یک تغییر اساسی است. کدی که قبلاً نوع خطای رخ داده (به عنوان مثال، e instanceof SecurityError ) را تشخیص داده بود، تحت تأثیر قرار می‌گیرد. کدی که به طور کلی خطاها را در طول ایجاد اعتبارنامه مدیریت می‌کند (به عنوان مثال، catch (e) ) به عملکرد صحیح خود ادامه خواهد داد.

پارتیشن‌بندی آدرس اینترنتی بلاب: واکشی/پیمایش

به عنوان ادامه‌ی پارتیشن‌بندی ذخیره‌سازی، این مورد پارتیشن‌بندی دسترسی به Blob URL را بر اساس کلید ذخیره‌سازی (سایت سطح بالا، مبدا فریم و مقدار بولی has-cross-site-ancestor ) پیاده‌سازی می‌کند، به استثنای پیمایش‌های سطح بالا که فقط بر اساس مبدا فریم پارتیشن‌بندی می‌شوند.

این تغییر را می‌توان با تنظیم سیاست PartitionedBlobURLUsage موقتاً به حالت اولیه برگرداند. این سیاست زمانی منسوخ خواهد شد که سایر سیاست‌های سازمانی مرتبط با پارتیشن‌بندی ذخیره‌سازی منسوخ شوند.

پشته‌های فراخوانی در گزارش‌های خرابی از صفحات وب بدون پاسخ

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

انواع رنگ‌های نقطه شناور بوم

قابلیت استفاده از فرمت‌های پیکسلی ممیز شناور (برخلاف فرمت‌های ۸ بیتی ممیز ثابت) را با CanvasRenderingContext2D ، OffscreenCanvasRenderingContext2D و ImageData معرفی می‌کند. این قابلیت برای کاربردهای با دقت بالا (مثلاً تجسم پزشکی)، محتوای با دامنه دینامیکی بالا و فضاهای رنگی خطی ضروری است.

پیش‌پردازش HTTP متن ساده‌ی غیرقابل اعتماد را غیرفعال کنید

در حال حاضر پیش‌رندر روی HTTP و HTTPS مجاز است، در حالی که پیش‌واکشی فقط روی HTTPS کار می‌کند. پیش‌رندر را محدود کنید تا با پیش‌واکشی سازگار باشد.

سیاست جداسازی سند

Document-Isolation-Policy به یک سند اجازه می‌دهد تا crossOriginIsolation برای خود فعال کند، بدون اینکه مجبور به استقرار COOP یا COEP باشد، و صرف نظر از وضعیت crossOriginIsolation صفحه. این سیاست توسط جداسازی فرآیند پشتیبانی می‌شود. علاوه بر این، زیرمنابع cross-origin غیر CORS سند یا بدون اعتبارنامه بارگذاری می‌شوند یا نیاز به داشتن یک سرآیند CORP دارند.

برای اطلاعات بیشتر به «سیاست جداسازی اسناد: فعال کردن آسان ویژگی‌های قدرتمند وب» مراجعه کنید.

Ed25519 در رمزنگاری وب

این ویژگی پشتیبانی از الگوریتم‌های Curve25519 را در API رمزنگاری وب، یعنی الگوریتم امضای Ed25519، اضافه می‌کند.

ثبت و گزارش آدرس IP

کروم انترپرایز با جمع‌آوری و گزارش آدرس‌های IP محلی و راه دور و ارسال آن آدرس‌های IP به گزارش‌های بررسی امنیتی (SIT)، قابلیت‌های نظارت امنیتی و پاسخ به حوادث را افزایش می‌دهد. علاوه بر این، کروم انترپرایز به مدیران اجازه می‌دهد تا به صورت اختیاری آدرس‌های IP را با استفاده از رابط گزارش‌دهی کروم انترپرایز به ارائه‌دهندگان SIEM 1P و 3P ارسال کنند. این قابلیت برای مشتریان کروم انترپرایز کور در دسترس خواهد بود.

ادغام Promise در جاوا اسکریپت

ادغام وعده‌های جاوا اسکریپت (JSPI) یک API است که به برنامه‌های WebAssembly اجازه می‌دهد با وعده‌های جاوا اسکریپت ادغام شوند. این به یک برنامه WebAssembly اجازه می‌دهد تا به عنوان تولیدکننده یک وعده عمل کند و به برنامه WebAssembly اجازه می‌دهد تا با APIهای حامل وعده تعامل داشته باشد. به طور خاص، هنگامی که یک برنامه از JSPI برای فراخوانی یک API حامل وعده (جاوااسکریپت) استفاده می‌کند، کد WebAssembly به حالت تعلیق در می‌آید؛ و به فراخواننده اصلی برنامه WebAssembly یک وعده داده می‌شود که با تکمیل نهایی برنامه WebAssembly، اجرا خواهد شد.

API تشخیص زبان

رابط برنامه‌نویسی کاربردی تشخیص زبان (Language Detector API) یک رابط برنامه‌نویسی کاربردی جاوااسکریپت است که زبان یک رشته ارائه شده را شناسایی می‌کند. این رابط برنامه‌نویسی کاربردی توسط یک مدل زیربنایی پشتیبانی می‌شود که برای انجام وظایف تشخیص زبان به خوبی تنظیم شده است.

با دریافت یک رشته، رابط برنامه‌نویسی کاربردی تشخیص زبان، فهرستی مرتب از زبان‌های شناسایی‌شده را به همراه یک امتیاز اطمینان برای هر نتیجه برمی‌گرداند.

به صورت اختیاری، توسعه‌دهندگان می‌توانند هنگام ایجاد یک نمونه از Language Detector، لیستی از زبان‌های ورودی مورد انتظار را ارسال کنند تا به بهینه‌سازی مواردی که انتظار می‌رود تشخیص روی زبان‌های خاصی انجام شود، کمک کنند.

محدود کردن ویژگی‌ها و آرگومان‌های float در SVGMatrix ، SVGRect و SVGPoint

هنگام تنظیم ویژگی‌ها یا آرگومان‌های float در SVGMatrix ، SVGRect و SVGPoint ، دیگر نمی‌توانید آنها را به عنوان Infinity یا Nan تنظیم کنید. اگر سعی کنید آن را تنظیم کنید، همانطور که در مشخصات SVG تعریف شده است، یک خطای جاوا اسکریپت رخ می‌دهد.

API انتخاب getComposedRanges و direction

این ویژگی دو متد API جدید برای Selection API ارائه می‌دهد:

  • Selection.direction که جهت انتخاب را به صورت "none" ، "forward" یا "backward" برمی‌گرداند.
  • Selection.getComposedRanges() که لیستی از 0 یا 1 "ترکیب شده" StaticRange برمی‌گرداند.

یک StaticRange «ترکیب‌شده» مجاز است از مرزهای سایه عبور کند، کاری که Rangeهای معمولی نمی‌توانند انجام دهند.

برای مثال:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

اگر انتخاب از مرز ریشه سایه‌ای عبور کند که در لیست shadowRoots ارائه نشده است، نقاط انتهایی StaticRange به خارج از آن درخت "تغییر محدوده" داده می‌شوند. این کار تضمین می‌کند که درخت‌های سایه ناشناخته را در معرض دید قرار ندهیم.

افزونه‌های دامنه برنامه وب

یک فیلد scope_extensions در مانیفست برنامه وب اضافه می‌کند که به برنامه‌های وب اجازه می‌دهد دامنه خود را به ریشه‌های دیگر گسترش دهند.

مثال:

{
  "name": "Example",
  "display": "standalone",
  "start_url": "/index.html",
  "scope_extensions": [
    {"type" : "type", "origin" : "https://example.com"}
  ]
}

این به سایت‌هایی که چندین زیردامنه و دامنه سطح بالا را کنترل می‌کنند، اجازه می‌دهد تا به عنوان یک برنامه وب واحد ارائه شوند.

برای تأیید ارتباط با برنامه وب با استفاده از فایل پیکربندی .well-known/web-app-origin-association به منابع ذکر شده نیاز دارد.

{
  "https://sample-app.com/": {
    "scope": "/"
  }
}

نکات مربوط به شاخه WebAssembly

با اطلاع دادن به موتور مبنی بر اینکه یک دستورالعمل شاخه خاص به احتمال زیاد مسیر خاصی را طی می‌کند، عملکرد کد کامپایل شده WebAssembly را بهبود می‌بخشد. این به موتور اجازه می‌دهد تا تصمیمات بهتری برای طرح‌بندی کد (بهبود بازدیدهای حافظه پنهان دستورالعمل) و تخصیص ثبات بگیرد.

WebGPU: GPUTextureView برای اتصال externalTexture

اکنون می‌توان هنگام ایجاد یک GPUBindGroup از یک GPUTextureView برای اتصال externalTexture استفاده کرد.

WebGPU: سربارگذاری copyBufferToBuffer

متد copyBufferToBuffer() در GPUCommandEncoder اکنون شامل یک روش ساده‌تر برای کپی کردن کل بافرها با استفاده از یک overload جدید با آفست‌ها و پارامترهای اندازه اختیاری است.

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

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

ویژگی مسدود کردن رندر با نرخ فریم کامل

یک توکن مسدودکننده رندر جدید با نرخ فریم کامل به ویژگی‌های مسدودکننده اضافه می‌کند. وقتی رندرکننده با توکن نرخ فریم کامل مسدود می‌شود، رندرکننده با نرخ فریم پایین‌تری کار می‌کند تا منابع بیشتری را برای بارگذاری ذخیره کند.

پخش رسانه را در iframe های رندر نشده متوقف کنید

یک سیاست مجوز "media-playback-while-not-rendered" اضافه می‌کند تا به وب‌سایت‌های جاسازی‌کننده اجازه دهد پخش رسانه‌ی آی‌فریم‌های جاسازی‌شده‌ای را که رندر نشده‌اند، متوقف کنند - یعنی ویژگی «نمایش» آنها را روی «هیچ» تنظیم کنند. این امر به توسعه‌دهندگان اجازه می‌دهد تا تجربیات کاربرپسندتری ایجاد کنند و همچنین با اجازه دادن به مرورگر برای مدیریت پخش محتوایی که برای کاربران قابل مشاهده نیست، عملکرد را بهبود بخشند.

API بازنویسی

API Rewriter متن ورودی را به روش‌های درخواستی تبدیل و بازنویسی می‌کند و توسط یک مدل زبان هوش مصنوعی روی دستگاه پشتیبانی می‌شود. توسعه‌دهندگان می‌توانند از این API برای حذف حشو و زوائد درون یک متن به منظور تطبیق با محدودیت کلمات، بازنویسی پیام‌ها برای متناسب شدن با مخاطب مورد نظر یا سازنده‌تر کردن آن در صورت استفاده از زبان نامناسب در یک پیام، بازنویسی یک پست یا مقاله برای استفاده از کلمات و مفاهیم ساده‌تر و موارد دیگر استفاده کنند.

رابط برنامه‌نویسی کاربردی نویسنده

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