نسخه بتای کروم ۱۴۷

منتشر شده: ۱۱ مارس ۲۰۲۶

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

scroll محدوده نامگذاری شده در تایم‌لاین

این ویژگی مجموعه محدوده‌های نامگذاری شده ViewTimelines را گسترش می‌دهد و یک محدوده scroll اضافه می‌کند.

API انیمیشن‌های اسکرول-رانده، ViewTimelines به همراه محدوده‌های نامگذاری‌شده معرفی کرد که به بخش‌هایی از ViewTimeline اشاره دارند که محدوده انیمیشن را تعریف می‌کنند.

با این حال، تمام محدوده‌های نامگذاری شده ارائه شده به بخشی از ViewTimeline که موضوع آن قابل مشاهده است، محدود شده‌اند. برای نویسندگان مفید است که به کل محدوده پیمایش که در زیر خط زمانی قرار دارد، اشاره کنند. این ویژگی یک محدوده نامگذاری شده از scroll را به مجموعه موجود ( entry ، exit ، cover ، contain ) اضافه می‌کند.

contrast-color()

شما می‌توانید از این عملکرد برای برآورده کردن الزامات کنتراست برای دسترسی‌پذیری استفاده کنید.

تابع contrast-color() می‌تواند در هر جایی از CSS که مقدار رنگ مورد انتظار است، استفاده شود. این تابع یک آرگومان مقدار رنگ دریافت می‌کند و بسته به اینکه کدام یک بیشترین کنتراست را در برابر آرگومان رنگ ایجاد می‌کند، black یا white را برمی‌گرداند.

border-shape در CSS

CSS border-shape به شما امکان می‌دهد حاشیه‌های غیرمستطیلی با هر شکل دلخواهی (مثلاً polygon ، circle ، shape() ) ایجاد کنید.

اگرچه border-shape همان شکل‌های clip-path را می‌پذیرد، اما اساساً متفاوت است: border-shape شکل حاشیه را تعریف می‌کند، آن را تزئین می‌کند و فقط داخل آن را برش می‌دهد.

border-shape دو نوع دارد: یک نوع که دور یک شکل را خط می‌کشد و نوع دیگر که بین دو شکل را پر می‌کند.

انتقال‌های نمای محدود به عنصر

تابع Element.startViewTransition() ‎ را روی عناصر دلخواه HTML اعمال می‌کند. این عنصر، محدوده‌ای برای گذار ایجاد می‌کند، به این معنی که شبه عناصر گذار تحت تأثیر کلیپ‌ها و تبدیل‌های اجداد قرار می‌گیرند و چندین گذار روی عناصر جداگانه می‌توانند همزمان اجرا شوند.

به‌روزرسانی CSS: جداسازی ویژگی‌های width و style

کروم با مشخصات به‌روزرسانی‌شده‌ی CSS برای رفتار ویژگی‌های border-width ، outline-width و column-rule-width همسو می‌شود. پیش از این، اگر border-style ، outline-style یا column-rule-style مربوطه روی none یا hidden تنظیم می‌شدند، عرض محاسبه‌شده‌ی این ویژگی‌ها صرف نظر از مقدار مشخص‌شده، به 0px محدود می‌شد.

با این تغییر، مقادیر محاسبه‌شده‌ی border-width ، outline-width و column-rule-width همیشه مقادیر مشخص‌شده توسط نویسنده را منعکس می‌کنند، مستقل از ویژگی *-style . علاوه بر این، مقادیر حل‌شده (همانطور که توسط getComputedStyle() برگردانده می‌شود) برای outline-width و column-rule-width نیز مقادیر مشخص‌شده را منعکس می‌کنند.

این تغییر، کروم را در کنار فایرفاکس و وب‌کیت قرار می‌دهد که قبلاً این رفتار را پیاده‌سازی کرده‌اند.

رابط CSSPseudoElement

رابط CSSPseudoElement یک شبه عنصر در جاوا اسکریپت را نشان می‌دهد.

CSSPseudoElement از Element.pseudo(type) برگردانده می‌شود، که در آن type است از: ::after ، ::before ، ::marker . CSSPseudoElement یک شیء پروکسی است که یک شبه عنصر را نشان می‌دهد، بنابراین، برخلاف یک شبه عنصر، CSSPseudoElement همیشه وجود دارد.

CSSPseudoElement دارای ویژگی‌ها/متدهای زیر است:

  • ویژگی type رشته‌ای است که نوع شبه عنصر را نشان می‌دهد.
  • ویژگی element ، عنصر اولیه نهایی شبه عنصر است.
  • ویژگی parent ، عنصر اولیه‌ی شبه عنصر است (یا Element یا CSSPseudoElement برای شبه عناصر تو در تو).
  • متد pseudo(type) برای بازیابی شبه عناصر تو در تو.

هدف کاذب در رویدادها

رویدادهای خاص به گونه‌ای توسعه داده می‌شوند که دارای .pseudoTarget باشند که یا CSSPseudoElement باشد (اگر تعامل با شبه عنصر بوده باشد) یا null .

این اطلاعات دقیق‌تری در مورد منشأ رویداد ارائه می‌دهد، برای مثال، اینکه نه تنها روی یک عنصر مبدأ نهایی ( Event.target ) کلیک شده است، بلکه به طور خاص‌تر اینکه ::after بوده است. توجه داشته باشید که Event.target بدون تغییر است، بنابراین رویداد فقط اطلاعات اضافی در مورد تعامل شبه عنصر دارد.

این رویدادها عبارتند از UIEvent ، AnimationEvent TransitionEvent .

mouseover ، mouseout ، mouseenter ، mouseleave و همتایان pointer* آنها پشتیبانی نمی شوند.

تشخیص سطح WebXR

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

لایه‌های WebXR

لایه‌های WebXR روشی کارآمدتر برای ترسیم محتوای فراگیر ارائه می‌دهند.

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

تجزیه XML در Rust برای سناریوهای غیر XSLT

ما تجزیه‌گر Rust XML را برای سناریوهایی ارائه می‌دهیم که مطمئن هستیم نیازی به پردازش XSLT نیست.

تجزیه‌کننده Rust XML با حذف اشکالات خرابی حافظه در تجزیه XML، امنیت را بهبود می‌بخشد و هدف آن جایگزینی استفاده ما از libxml2 (نوشته شده با زبان C) با یک جایگزین ایمن است.

کروم در حال منسوخ کردن XSLT است . در حالی که این فرآیند ادامه دارد، می‌توانید از تجزیه امن Rust XML در سناریوهایی که نیازی به XSLT نیست، استفاده کنید:

پشتیبانی از انواع ماژول‌های JSON و style را به عنوان مقصد <link rel="modulepreload"> اضافه می‌کند. <link rel="modulepreload"> در حال حاضر در Chromium پشتیبانی می‌شود (به https://chromestatus.com/feature/5762805915451392 مراجعه کنید)، اما فقط از پیش‌بارگذاری اسکریپت‌های ماژول شبیه اسکریپت پشتیبانی می‌کند. این ویژگی، شکافی در عملکرد را برطرف می‌کند، زیرا اسکریپت‌های ماژول JSON و CSS در جاهای دیگر Chromium پشتیبانی می‌شوند اما به عنوان مقصد <link rel="modulepreload"> پشتیبانی نمی‌شوند. ماژول‌های Style را می‌توان با <link rel="modulepreload" as="style" href="..."> و ماژول‌های JSON را می‌توان با <link rel="modulepreload" as="json" href="..."> پیش‌بارگذاری کرد.

Math.sumPrecise

یک پیشنهاد TC39 برای اضافه کردن روشی برای جمع کردن چندین مقدار به جاوا اسکریپت.

یک متد Math.sumPrecise با قابلیت تکرارپذیری اضافه کنید که مجموع مقادیر موجود در تکرارپذیری را با استفاده از الگوریتمی دقیق‌تر از جمع ساده‌لوحانه برمی‌گرداند.

پشتیبانی از ویژگی path در عنصر <textpath> در SVG

این تغییر پشتیبانی از ویژگی path را در عنصر <textPath> در SVG اضافه می‌کند و به نویسندگان اجازه می‌دهد هندسه مسیر متن را به صورت درون‌خطی با استفاده از داده‌های مسیر SVG تعریف کنند و نیاز به عناصر <path> را که به صورت جداگانه تعریف شده‌اند، کاهش دهند.

<textPath> هندسه مسیر متن خود را با استفاده از قوانین زیر تعیین می‌کند:

  1. اگر هر دو path و href وجود داشته باشند، هندسه از ویژگی path استخراج می‌شود.
  2. اگر فقط ویژگی path وجود داشته باشد و با موفقیت تجزیه شود، از تعریف مسیر درون‌خطی استفاده می‌شود.
  3. اگر ویژگی path وجود نداشته باشد یا تجزیه نشود، و ویژگی href ارائه شده باشد، عنصر <path> ارجاع داده شده به عنوان جایگزین استفاده می‌شود.
  4. رفتار href -only موجود بدون تغییر حفظ می‌شود.

این پیاده‌سازی از تعریف مشخصه path در <textPath> در مشخصات SVG 2 پیروی می‌کند و رفتار تفکیک‌پذیری با سایر موتورهای مرورگر سازگار است و قابلیت همکاری و انطباق با استانداردها را بهبود می‌بخشد.

قابلیت‌های تأیید پرداخت امن را دریافت کنید

یک متد استاتیک جدید به درخواست پرداخت اضافه می‌کند که به توسعه‌دهندگان وب اجازه می‌دهد از قابلیت‌های پیاده‌سازی مرورگر برای تأیید پرداخت امن استفاده کنند.

این به توسعه‌دهندگان وب کمک می‌کند تا بدانند چه قابلیت‌هایی برای تأیید پرداخت امن در دسترس است تا بتوانند تصمیم بگیرند که آیا می‌خواهند از تأیید پرداخت امن با آن قابلیت‌ها استفاده کنند یا خیر.

محدودیت‌های API حافظه دستگاه را به‌روزرسانی کنید

به‌روزرسانی به مجموعه جدیدی از مقادیر ممکن برای رابط برنامه‌نویسی کاربردی حافظه دستگاه :

  • اندروید: ۱، ۲، ۴، ۸
  • دیگران: ۲، ۴، ۸، ۱۶، ۳۲.

جایگزینی مقادیر قدیمی ۰.۲۵، ۰.۵، ۱، ۲، ۴، ۸ که منسوخ شده‌اند.

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

محدودیت‌های دسترسی به شبکه محلی در سرویس ورکر WindowClient.navigate()

محدودیت‌های دسترسی به شبکه محلی (LNA) اخیراً اضافه شده‌اند تا وب‌سایت‌ها را از ارسال یک‌جانبه درخواست به شبکه‌های محلی و دستگاه‌های محلی بازدارند. این محدودیت برای درخواست‌های واکشی آغاز شده توسط سرویس‌کار اضافه شده است، اما برای پیمایش‌های انجام شده توسط سرویس‌کارها از طریق WindowClient.navigate اعمال نشده است.

این راه‌اندازی با افزودن محدودیت‌های LNA به فراخوانی‌های WindowClient.navigate() و با استفاده از WindowClient به عنوان آغازگر ناوبری برای تعیین اینکه آیا ناوبری یک درخواست LNA است یا خیر، این شکاف را برطرف می‌کند.

این فقط در صورتی اعمال می‌شود که WindowClient مورد پیمایش یک زیرفریم باشد؛ کروم هیچ محدودیت LNA را بر پیمایش‌های فریم اصلی اعمال نمی‌کند.

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

محدودیت‌های دسترسی به شبکه محلی (LNA) در حال گسترش است تا WebSockets را نیز شامل شود. اتصالات WebSockets به آدرس محلی اکنون باعث ایجاد درخواست‌های مجوز می‌شود.

تمام سیاست‌های سازمانی LNA همچنان بر محدودیت‌های LNA WebSockets اعمال می‌شوند، از جمله LocalNetworkAccessAllowedForUrls ، LocalNetworkAccessBlockedForUrls و LocalNetworkAccessRestrictionsTemporaryOptOut .

اطلاعات بیشتر در مورد LNA را می‌توانید در دسترسی به شبکه محلی (Local Network Access) بیابید.

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

امکان ارسال درخواست به شبکه محلی کاربر با استفاده از WebTransport را محدود می‌کند، و این کار را پشت یک درخواست مجوز انجام می‌دهد.

درخواست شبکه محلی، هر درخواستی از یک وب‌سایت عمومی به یک آدرس IP محلی یا loopback، یا از یک وب‌سایت محلی (به عنوان مثال، اینترانت) به loopback است. محدود کردن توانایی وب‌سایت‌ها برای انجام این درخواست‌ها با مجوز، توانایی سایت‌ها را برای استفاده از این درخواست‌ها برای شناسایی شبکه محلی کاربر کاهش می‌دهد.

این مجوز محدود به زمینه‌های امن است.

فقط IWA: رابط برنامه‌نویسی کاربردی چاپ وب

این API امکان ادغام عمیق‌تر با قابلیت‌های مرتبط با چاپگر در برنامه‌های وب ایزوله (IWA) را فراهم می‌کند.

رابط برنامه‌نویسی کاربردی چاپ وب (Web Printing API) مجموعه‌ای از متدهای جاوااسکریپت را ارائه می‌دهد که به توسعه‌دهندگان اجازه می‌دهد تا از چاپگرهای محلی پرس‌وجو کنند، کارهای چاپ را به مناسب‌ترین چاپگرها ارسال کنند و گزینه‌ها و وضعیت کارهای چاپ را مدیریت کنند. برای نمایش این مفاهیم، ​​این رابط به نام‌ها و معانی ویژگی‌ها از مشخصات پروتکل چاپ اینترنت (IPP) متکی است.

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

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

زمان‌بندی کانتینر

API زمان‌بندی کانتینر به شما امکان می‌دهد تا زمان نمایش بخش‌های حاشیه‌نویسی‌شده DOM روی صفحه و اتمام رنگ‌آمیزی اولیه آنها را رصد کنید. یک توسعه‌دهنده می‌تواند زیربخش‌های DOM را با ویژگی containertiming (شبیه به elementtiming برای API زمان‌بندی عنصر) علامت‌گذاری کند و پس از اولین رنگ‌آمیزی آن بخش، ورودی‌های عملکرد را دریافت کند. این API به توسعه‌دهندگان اجازه می‌دهد زمان‌بندی اجزای مختلف را در صفحات خود اندازه‌گیری کنند.

رویداد تکمیل خودکار

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

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

عنصر نصب HTML برنامه وب

به یک وب‌سایت اجازه می‌دهد تا به صورت اعلانی از کاربران بخواهد که یک برنامه وب را نصب کنند. این عنصر به صورت اختیاری دو ویژگی را می‌پذیرد که امکان نصب محتوا از یک منبع متفاوت را فراهم می‌کند.

لیست‌های مجاز اتصال

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

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

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

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

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

حذف XSLT درون خطی برای تولید SVG

ما در حال شروع حذف تدریجی XSLT درون‌خطی برای تولید SVG هستیم. این کار همزمان با آزمایش تجربی XML Parser مبتنی بر Rust انجام می‌شود و بلافاصله در نسخه نهایی به طور ۱۰۰٪ پیاده‌سازی نشده است.

یک فایل XML که به طور خاص ساخته شده است، ممکن است حاوی یک فایل XSL stylesheet باشد که داده‌های XML عمومی را به یک فایل SVG تبدیل می‌کند.

مثال: https://gist.github.com/drott/1fc70b3c7f0ac314d1fe2e5beecc5490?short_path=1c60adf

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