גרסת בטא של Chrome 116

נתיב תנועה ב-CSS, מטמון לדף הקודם/הבא Not בארה"ב, ממשק API מסוג תמונה בתוך תמונה ועוד.

אם לא צוין אחרת, השינויים שמתוארים חלים על הגרסה החדשה ביותר של ערוץ בטא ב-Chrome ל-Android, ל-ChromeOS, ל-Linux, ל-macOS ול-Windows. אפשר לקבל מידע נוסף על התכונות שמפורטות כאן בקישורים המצורפים או מהרשימה ב-ChromeStatus.com. Chrome 116 יהיה בגרסת בטא נכון ל-19 ביולי 2023. אפשר להוריד את העדכונים האחרונים בכתובת Google.com למחשב או מחנות Google Play ב-Android.

CSS

לגרסה הזו נוספו שתי תכונות CSS חדשות.

נתיב תנועה של CSS

נתיב תנועה מאפשר למחברים למקם כל אובייקט גרפי ולהנפיש אותו לאורך הנתיב שהמפתח ציין. הפעולה הזו מאפשרת מספר אפשרויות המרה חדשות ועוצמתיות, כמו מיקום באמצעות קואורדינטות קוטביות (עם הפונקציה ray()) במקום קואורדינטות מלבניות רגילות שמשמשות את הפונקציה translate(), או יצירת אנימציה של רכיב לאורך נתיב מוגדר. כך קל יותר להגדיר מעברים מרחביים דו-ממדיים מורכבים ויפים. אפשר לציין נתיב כך: circle(), ellipse(), rect(), inset(), xywh(), polygon(), ray() ו-url().

אנימציות להצגה ולחשיפה לתוכן

בגרסה 116 של Chrome יש תמיכה במאפיינים display ו-content-visibility באנימציות של תמונות מפתח. תמיכה זו מאפשרת למפתחים ליצור אנימציות יציאה, שאחריהן האלמנט הופך באופן אוטומטי ל-display: none או ל-content-visibility: hidden, ללא צורך לכתוב JavaScript כדי לטפל במתג הזה לאחר סיום האנימציה. כך ניתן להוסיף אנימציות יציאה של רכיבים אך ורק ב-CSS.

ממשקי API לאינטרנט

AbortSignal.any()

מחזירה אות שנקטע כאשר אחד מהאותות של המקור מבוטל. מפתחים יכולים להשתמש באפשרות הזו כדי לשלב מקורות עצמאיים לביטול, לדוגמה, זמנים קצובים לתפוגה שצוינו באמצעות AbortSignal.timeout() ואותות המשויכים ל-AbortController, ולהעביר אותם לממשקי API אסינכרוניים כמו fetch().

תמיכת BYOB ב'אחזור'

היישום של ReadableStream ב-Chrome תומך בקוראי next-your-own-buffer (BYOB) לסטרימינג קריא של בייטים. עכשיו Response.body הוא גם זרם בייטים קריא במקום זרם קריא שמוגדר כברירת מחדל. כך ניתן להשתמש ב-Fetch API עם קוראי BYOB, לצמצם את התקורה ואת העותקים של איסוף אשפה ולשפר את יכולת התגובה של המשתמשים. גם Blob.stream() יכול ליהנות עכשיו מהאופטימיזציה הזו.

ממשק ה-API של 'מטמון לדף הקודם/הבא' לא שוחזר

ממשק ה-API של NotRecoverWhy ידווח על רשימת הסיבות לכך שהדף לא הוצג מ-BFcache במבנה עץ של מסגרת, דרך PerformanceNavigationTiming API.

מסמך 'תמונה בתוך תמונה'

מסמך 'תמונה בתוך תמונה' מוסיף API חדש כדי לפתוח חלון קבוע שאפשר לאכלס עם HTMLElements שרירותי. זו הרחבה ל-API הקיים HTMLVideoElement שמאפשר להוסיף רק HTMLVideoElement לחלון של תמונה בתוך תמונה (PiP). כך מפתחי אתרים יכולים לספק למשתמשים חוויה טובה יותר של 'תמונה בתוך תמונה'.

תווים כלליים לחיפוש מורחבים במקורות המדיניות בנושא הרשאות

תווים כלליים לחיפוש של תת-דומיינים ברשימת ההיתרים מעניקים גמישות מסוימת, אבל הם שונים מהכלים הקיימים של מנתחי תווים כלליים לחיפוש ונדרשו קוד חדשני ועבודה במפרטים. הכוונה הזו תצמצם את התקורה על ידי שימוש חוזר בחלקים מהמפרט הקיים של Content Security Policy, ומתן אישור להוספה של scheme + wildcard domain ושל wildcard port לרשימת ההיתרים. באופן ספציפי, ה-Intent הזה יאמץ את ההגדרה של מקור מארח ומקור סכימה במקום מקור בהגדרה של רשימת ההיתרים, אבל יידרש שהחלק של הנתיב יהיה ריק (מכיוון שמדיניות ההרשאות חלה על מקורות תואמים).

חבילת FedCM: Login Hint API, User Info API ו-RP Context API

העדכון בחבילה הזה מאפשר לבצע התאמות אישיות לתהליכי התחברות מאוחדים שמשתמשים בממשק API לניהול פרטי כניסה מאוחד (FedCM).

באמצעות Login Hint API, הצד המסתמך (RP) יכול לציין רמז לגבי חשבון המשתמש שהוא רוצה שיוצג בממשק המשתמש של FedCM. התכונות האלה משמשות בעיקר לשיפור חוויית המשתמש של משתמשים חוזרים.

ה-User Info API מאפשר לספק הזהויות (IdP) לאחזר את פרטי המשתמשים כדי להתאים אישית את חוויית ההתחברות של משתמשים חוזרים, למשל באמצעות לחצני 'כניסה באמצעות IdP' בהתאמה אישית.

באמצעות RP Context API, הגורם המוגבל יכול לבקש שתיבת הדו-שיח של FedCM תחליף את הכותרת 'כניסה' ב'הרשמה', 'שימוש' או 'המשך', כדי להתאים את הכוונה בפועל של המשתמש.

אירועי כניסה/יציאה של עכבר ומצביע עכבר לא מורכבים

צריך לוודא שהנכס event.composed באירועים mouseenter, mouseleave, pointerenter ו-pointerleave "false" יהיה תואם למפרט ויתקן פערים בין פעולות ההמרה. גם במפרט האירועים של ממשק המשתמש עבור אירועי עכבר וגם במפרט אירועי המצביע מגדירים את האירועים האלה כאירועים שלא נוצרו. שני המפרטים השתנו מההגדרות המקוריות שלהם לפני כמה שנים: https://github.com/w3c/uievents/pull/210 https://github.com/w3c/pointerevents/pull/461. בנוסף לטיפול בפער בין פעולות ההמרה, השינוי הזה מתקן גם שליחה כפולה או משולשת שגויה של האירועים האלה כשאירוע DOM מאזינים למארח DOM ב-Chromium.

הסרת ירושה של document.open sandbox

בשלב זה, דגלי Sandbox של מבצע הקריאה החוזרת חלים על מקבל הקריאה החוזרת כאשר document.open מטורגט לחלון אחר. אחרי השינוי הזה לא יחולו יותר.

דיווח על פעולות קריטיות (CHאות) גרם להפעלה מחדש ב- NavigationTiming

אתרים יכולים לציין ש-Client Hint מסוים הוא קריטי לדף על ידי הכללתו בכותרת תגובת HTTP של Critical-CH. פעולה זו תגרום להפעלה מחדש של החיבור אם הרמז שמופיע בכותרת תגובת ה-HTTP של Critical-CH יכול להיכלל (אבל לא נכלל) בבקשת ה-HTTP שנשלחה במקור. כוונה זו מציעה להוסיף את readonly attribute DOMHighResTimeStamp criticalCHRestart; לממשק PerformanceNavigationTiming.

גרסאות מקור לניסיון מתבצעות

בגרסה 116 של Chrome אפשר להביע הסכמה לשימוש בגרסאות המקור החדשות לניסיון.

COOP: הגבלת-מאפיינים

נעשה שימוש ב-Cross-Origin-Opener-Policy, להפרדת הקשרים בין חלונות קופצים לבין חלונות פתיחה, כדי להגביר את האבטחה. "הגבלה-properties" הוא ערך מוצע שמגביל את הקשר במקום להפריד אותו לחלוטין. הוא יפעיל את CrossOriginIsolated כשמשלבים אותו עם COEP.

נרשמים לתקופת ניסיון עם קובצי מקור בהגבלת COOP.

ממשק API לסטטוס כניסה של FedCM

ממשק ה-API של סטטוס הכניסה ל-IdP ב-FedCM מאפשר לספק זהויות (IdP) לאותת לדפדפן כשהמשתמשים מתחברים או מתנתקים, כדי ש-FedCM יוכל להעלות את מאפייני הפרטיות שלו באמצעות אופטימיזציה של חוויית המשתמש.

הרשמה לתקופת הניסיון של סטטוס הכניסה של FedCM

ממשק API של EditContext

ממשק ה-API של EditContext מפשט את תהליך השילוב של אפליקציית אינטרנט עם שיטות מתקדמות של קלט טקסט, כמו כתיבת צורה של VK, חלונית כתב יד, זיהוי דיבור ויצירות IME. ה-API משפר את הנגישות ואת הביצועים, ונותן גישה ליכולות חדשות לעורכים מבוססי-אינטרנט.

הרשמה לגרסת המקור לניסיון של EditContext API

תזמון מסגרת אנימציה ארוכה

זאת הרחבה של משימות ארוכות. היא מודדת את המשימה ביחד עם עדכון הרינדור הבא, ומוסיפה מידע כמו סקריפטים ארוכים, זמן רינדור וזמן שהוקדש לפריסה ולסגנון מאולצים, שנקרא התפרסות פריסה.

מפתחים יכולים להשתמש בזה כאבחון של "איטיות", הנמדדת על ידי INP, על ידי מציאת הגורמים לעומס ב-thread הראשי, שבדרך כלל הוא הגורם לבעיות ב-INP.

הרשמה לתקופת ניסיון של גרסת המקור לתקופת ניסיון ארוכה של מסגרת אנימציה ארוכה