אלא אם צוין אחרת, השינויים הבאים חלים על הגרסה העדכנית ביותר של ערוץ הבטא של Chrome ל-Android, ל-ChromeOS, ל-Linux, ל-macOS ול-Windows. מידע נוסף על התכונות שמפורטות כאן זמין בקישורים שסופקו או ברשימה באתר ChromeStatus.com. Chrome 123 הוא בגרסת בטא החל מ-21 בפברואר 2024. אפשר להוריד את הגרסה העדכנית ביותר בכתובת Google.com למחשב או מחנות Google Play ל-Android.
CSS
הגרסה הזו כוללת חמש תכונות CSS חדשות.
פונקציית הצבע light-dark()
ב-CSS
הפונקציה light-dark()
ב-CSS מאפשרת למפתחים להתאים בקלות רבה יותר את ערכת הצבעים להעדפות של המשתמש לגבי מצב בהיר או כהה.
אפשר להשתמש ב-light-dark()
כדי לציין שני ערכי צבע שונים בתוך מאפיין CSS יחיד. הדפדפן (או המכשיר) יבחר באופן אוטומטי את הצבע המתאים על סמך הערך המחושב של color-scheme
של הרכיב. לדוגמה, באמצעות הקוד הבא ב-CSS:
- אם המשתמש בחר עיצוב בהיר, לרכיב
.target
יהיה רקע ליים. - אם המשתמש בחר עיצוב כהה, לרכיב
.target
יהיה רקע ירוק.
html {
color-scheme: light dark;
}
.target {
background-color: light-dark(lime, green);
}
מצב תצוגה של תמונה בתוך תמונה ב-CSS
הוספת תמיכה בתכונה של מדיה display-mode
ב-CSS עבור הערך picture-in-picture
. כך מפתחי האינטרנט יכולים לכתוב כללי CSS ספציפיים שחלים רק כש (חלק מ)אפליקציית האינטרנט מוצגת במצב 'תמונה בתוך תמונה'.
מידע נוסף על תכונת המדיה הזו זמין במסמכי התיעוד של התכונה 'תמונה בתוך תמונה'.
מאפיין CSS מסוג align-content לבלוקים
עכשיו יש תמיכה בנכס ה-CSS align-content
בקונטיינרים של בלוקים ובתאי טבלה. בעבר, המאפיין הזה נתמך רק בפריטים של רשת ובפריטים גמישים. לדוגמה, עכשיו אפשר ליישר את display: block
, display: list-item
ו-display: table-cell
באמצעות align-content
.
מידע נוסף זמין במאמר תמיכה ב-align-content
בפריסות של בלוקים וטבלאות.
מאפיין ה-CSS field-sizing
באמצעות המאפיין field-sizing
, מפתחים יכולים להשבית גדלים סטטיים שמוגדרים כברירת מחדל לפקדים בטופס, ולאפשר לגודל שלהם להשתנות בהתאם לתוכן שלהם. כך אפשר ליצור שדות טקסט שמתרחבים באופן אוטומטי.
המאפיין text-spacing-trim
ב-CSS
הנכס הזה מחיל את ההפרדה בין תווים על תווים של סימני פיסוק בשפות סינית, יפנית וקוריאנית (CJK), כדי ליצור טיפוגרפיה נעימה מבחינה ויזואלית כפי שמוגדרת ב-JLREQ (דרישות לגבי פריסת טקסט ביפנית) וב-CLREQ (דרישות לגבי פריסת טקסט בסינית).
הרבה תווים של סימני פיסוק ב-CJK כוללים רווחים בתוך הגליפים. לדוגמה, בדרך כלל יש רווחים פנימיים בתוך הגליפים של הנקודה המלאה ב-CJK ושל סוגר הסוגריים הסוגר ב-CJK, בחצי הימני של רווחי הגליפים, כדי לתת להם התקדמות קבועה כמו של תווים אידיוגרפיים אחרים. אבל כשהם מופיעים בשורה, המרווחים בתוך הגליפים הופכים למוגזמים. התכונה הזו מתאימה את המרווחים הגדולים מדי.
המאפיין text-spacing-trim
יכול לקבל אחד מארבעת הערכים הבאים: normal
, trim-start
, space-all
ו-space-first
.
מידע נוסף זמין במאמר השקה של ארבע תכונות בינלאומיות חדשות ב-CSS.
ממשקי API של אתרים
מתן הרשאה ליצירת פרטי כניסה של WebAuthn ב-iframe חוצה-מקורות
התכונה הזו מאפשרת למפתחי אינטרנט ליצור פרטי כניסה ל-WebAuthn (כלומר פרטי כניסה מסוג 'publickey', שנקראים מפתחות גישה) בפריטי iframe חוצי-מקורות. כדי להשתמש ביכולת החדשה הזו, צריכים להתקיים שני תנאים:
- ל-iframe יש מדיניות הרשאות
publickey-credentials-create-feature
. - ל-iframe יש הפעלת משתמש זמנית.
כך המפתחות יוכלו להשתלב בתרחישים שונים, למשל אחרי תהליך אימות זהות מוגבר שבו הצד הנסמך מספק חוויית זהות מאוחדת.
חבילת תכונות של דיווח שיוך
ב-Chrome 123 נוספו ל-Attribution Reporting API התאמה אישית של נתוני טריגר ומסנני ערכים שניתן לצבור, שמתמקדים בנושאים הבאים:
- אפשרות נוספת להגדרת API לדיווח ברמת האירוע, שתומכת בהתאמה אישית של ערכי הנתונים של הטריגרים ושל עוצמת הנתונים (cardinality).
- אפשרות נוספת להגדרת API לדוחות סיכום על ידי תמיכה במסננים בערכים שניתן לצבור.
מדידת שיוך בין אפליקציות לאתרים
הרחבה של Attribution Reporting API שמאפשרת לשייך המרות שמתרחשות באינטרנט לאירועים שמתרחשים מחוץ לדפדפן, באפליקציות אחרות.
ההצעה הזו מנצלת את התמיכה ברמת מערכת ההפעלה לצורך שיוך (Attribution). במיוחד, היא מאפשרת למפתח לאפשר אירועים באינטרנט לנייד להצטרף לאירועים בארגז החול לפרטיות של Android, אבל אפשר גם להטמיע תמיכה בפלטפורמות אחרות.
blocking=render
בסקריפטים של מודולים בקוד
זהו שינוי קטן שמסיר הגבלה מלאכותית מ-<script blocking="render">
.
לפני השינוי הזה, <script blocking="render"type="module">
חייב לכלול מאפיין src
, גם אם src
הוא URI של נתונים.
זוהי אילוץ מיותר, כי סקריפטים של מודולים מוטמעים שמייבאים סקריפטים אחרים עדיין אמורים להיות מסוגלים לבצע עיבוד בלוקים.
הסיבה לכך היא שבמעבר בין תצוגות במסמכים שונים נעשה לעיתים קרובות שימוש בסקריפטים לחסימת רינדור לצורך התאמה אישית, ולכן קל יותר לכתוב סקריפטים לחסימת רינדור, כך שהתכונה הזו תהיה נתמכת.
תמונה בתוך תמונה במסמך: מתן הרשאה ל-API של focus()
להתמקד בפתיח
עכשיו אפשר להשתמש ב-opener.focus()
מחלון תמונה בתוך תמונה של מסמך כדי להעביר את המיקוד ברמת המערכת לכרטיסייה שבה נמצא חלון התמונה בתוך התמונה של המסמך.
כך המפתחים יכולים להחזיר את הכרטיסייה המקורית לחזית כשצריך. לדוגמה, כשהמשתמש צריך לגשת לחוויית ממשק משתמש שלא נכנסת לחלון הקטן יותר של התמונה בתוך התמונה.
תחביר with
של מאפייני ייבוא
מאפייני ייבוא הם תכונה של JavaScript שמאפשרת להוסיף הערות להצהרות על ייבוא, למשל import xxx from "mod" with { type: "json" }
. במקור, גרסה קודמת של ההצעה שוחררה ב-Chrome (בגרסה 91) עם המילה המפתחת assert
. לאחר מכן, הגרסה עודכנה לשימוש ב-with
בגלל שינויים מסוימים שנדרשו במהלך השילוב שלה עם מודולים של HTML ל-JSON ו-CSS.
jitterBufferTarget
המאפיין jitterBufferTarget
מאפשר לאפליקציות לציין משך זמן יעד של מדיה, באלפיות השנייה, ששמור במאגר התנודות (jitter) RTCRtpReceiver
. הדבר משפיע על כמות האחסון במטמון שמתבצע על ידי סוכן המשתמש, שמשפיעה בתורו על שידורים חוזרים ועל שחזור של חבילות נתונים שאבדו. שינוי ערך היעד מאפשר לאפליקציות לשלוט במאזן בין עיכוב ההפעלה לבין הסיכון של מחסור בפריימים של אודיו או וידאו בגלל תנודות ברשת.
תזמון של מסגרת אנימציה ארוכה
Long Animation Frames API הוא תוסף של Long Tasks API. הוא מודד את המשימה יחד עם עדכון הרינדור הבא שלה, ומוסיף מידע כמו סקריפטים ארוכים, זמן רינדור והזמן שהושקע בפריסה ובסגנון מאולצים, שנקרא layout thrashing.
מפתחים יכולים להשתמש בנתון הזה ככלי לאבחון 'איטיות', שנמדדת באמצעות INP, על ידי מציאת הגורמים להתקהלות בשרשור הראשי, שזו לרוב הסיבה ל-INP נמוך.
NavigationActivation
ממשק NavigationActivation מוסיף את navigation.activation
. המצב הזה שומר מידע על מועד ההפעלה של המסמך הנוכחי (לדוגמה, מתי הוא הופעל או שוחזר מהמטמון לדף הקודם/הבא).
המשמעות היא שמפתחים יכולים להציע דפים מותאמים אישית על סמך המיקום שאליו המשתמש עבר. לדוגמה, להפעיל אנימציה שונה אם הם הגיעו מדף הבית.
אירוע pagereveal
האירוע pagereveal
מופעל באובייקט החלון של מסמך בפעם הראשונה שאפשר לבצע עיבוד לאחר שמסמך: נטען לראשונה, שוחזר מהמטמון לדף הקודם/הבא או הופעל מעיבוד מראש.
מחברי דפים יכולים להשתמש בו כדי להגדיר חוויית כניסה לדף, למשל מעבר תצוגה ממצב קודם.
PointerEvent.deviceId לכתיבה בכמה עטים
מכשירים עם יכולות מתקדמות של קלט בעט הולכים ונעשים נפוצים יותר, ולכן חשוב שפלטפורמת האינטרנט תמשיך להתפתח כדי לתמוך באופן מלא בתכונות המתקדמות האלה, וכך לאפשר חוויה עשירה גם למשתמשים קצה וגם למפתחים. אחד מהשיפורים האלה הוא היכולת של המכשיר לזהות יותר מכשיר עט אחד שמקיים איתו אינטראקציה בו-זמנית. התכונה הזו היא תוספת לממשק PointerEvent
, שכוללת מאפיין חדש, deviceId
, שמייצג מזהה ייחודי שמשויך לסשן, מבודד מהמסמך ומאפשר למפתחים לזהות באופן מהימן עטים נפרדים שמקיימים אינטראקציה עם הדף.
בדיקות גישה לרשת פרטית עבור בקשות ניווט: מצב אזהרה-בלבד
לפני שאתר א' מנווט לאתר ב' אחר ברשת הפרטית של המשתמש, התכונה מבצעת את הפעולות הבאות:
- בודקת אם הבקשה בוצעה מהקשר בטוח.
- שולחת בקשת קדם-הפעלה, ובודקת אם אתר ב' מגיב עם כותרת שמאפשרת גישה לרשת הפרטית.
יש כבר תכונות של משאבי משנה ומופעי worker, אבל התכונה הזו מיועדת לבקשות ניווט באופן ייעודי.
הבדיקות האלה מתבצעות כדי להגן על הרשת הפרטית של המשתמש. מכיוון שהתכונה הזו היא של מצב 'אזהרה-בלבד', היא לא תכשיל את הבקשות אם חלק מהבדיקות נכשלות. במקום זאת, עדיין תוצג אזהרה ב-DevTools, כדי לעזור למפתחים להתכונן לאכיפה הבאה.
רמז על הלקוח מסוג Sec-CH-UA-Form-Factor
ההצעה הזו מציינת את 'גורם הצורה' של סוכן המשתמש או המכשיר, כדי שהאתר יוכל להתאים אישית את התשובה שלו.
Service Worker Static Routing API
ממשק ה-API הזה מאפשר למפתחים להגדיר את הניתוב, ומאפשר להם להעביר עומס של דברים פשוטים ששירותי העבודה מבצעים. אם התנאי מתאים, הניווט מתבצע בלי להפעיל שירותי עבודה או להריץ JavaScript, וכך דפי האינטרנט יכולים להימנע מעונש על ביצועים עקב חסימות של שירותי עבודה. מידע נוסף זמין בפוסט הקודם בבלוג בנושא ממשק ה-API הזה.
עדכון של Shared Storage
העדכון הזה תומך בהרצת רכיבי worklet ממקורות שונים בלי צורך ליצור מסגרת iframe.
קידוד תוכן zstd
Zstandard, או zstd, הוא מנגנון לדחיסת נתונים שמתואר ב-RFC8878. זהו אלגוריתם מהיר לדחיסת נתונים ללא אובדן נתונים, שמתמקד בתרחישי דחיסה בזמן אמת ברמת zlib וביחסי דחיסה טובים יותר. הטוקן zstd
נוסף בתור אסימון Content-Encoding שרשום ב-IANA.
הוספת תמיכה ב-zstd
כקידוד תוכן תעזור לטעון דפים מהר יותר, להשתמש פחות ברוחב פס ולהשקיע פחות זמן, מעבד וחשמל בדחיסת הנתונים בשרתים שלנו, וכתוצאה מכך להפחית את עלויות השרת.
גרסאות מקור חדשות לניסיון
ב-Chrome 123 אפשר להצטרף לתקופות הניסיון החדשות הבאות למקורות.
שילוב של הבטחה ב-JavaScript ב-WebAssembly
כדי לתמוך באפליקציות תגובה מהירה שנכתבו באמצעות WebAssembly, צריך לספק תכונות שמאפשרות להשעות ולחדש תוכניות WebAssembly.
התרחיש העיקרי לשימוש ראשוני בשילוב הבטחה הוא לאפשר לתוכניות WebAssembly שהמקור שלהן מסתמך על ממשקי API סינכרוניים להשתמש בממשקי API אסינכררוניים, שהופכים ליותר ויותר נפוצים בפלטפורמת האינטרנט.
נרשמים לתקופת הניסיון של Promise Integration Origin.
הסרות
בגרסה 123 של Chrome התכונה הבאה הוסרה.
הכינוי window-placement
להרשאה ולמדיניות ההרשאות window-management
ב-Chrome 111, window-management
נוסף בתור כינוי להרשאה window-placement
ולמחרוזות של מדיניות ההרשאות.
השינוי הזה היה חלק ממאמץ כולל לשנות את השמות של המחרוזות, שבסופו של דבר window-placement
יוסר וייצא משימוש. שינוי המונחים ישפר את משך החיים של המתאר ככל ש-Window Management API יתפתח עם הזמן.
החל מגרסה 113 של Chrome, החלו להופיע אזהרות על הוצאה משימוש של הכינוי window-placement
, והוא יוסר עכשיו.