תאריך פרסום: 16 באוקטובר 2024
אלא אם צוין אחרת, השינויים הבאים חלים על הגרסה החדשה ביותר של ערוץ הבטא של Chrome ל-Android, ל-ChromeOS, ל-Linux, ל-macOS ול-Windows. אפשר לקבל מידע נוסף על התכונות שמופיעות כאן באמצעות הקישורים שסופקו או מהרשימה בכתובת ChromeStatus.com. נכון ל-16 באוקטובר 2024, גרסה Chrome 131 היא בטא. אפשר להוריד את הגרסה העדכנית של Google ל-Desktop מ-Google.com או מחנות Google Play ב-Android.
CSS
בגרסה הזו נוספו שמונה תכונות חדשות של CSS.
CSS Anchor Positioning: anchor-scope
המאפיין anchor-scope מאפשר להגביל את החשיפה של שמות העוגנים לעץ משנה נתון.
CSS font-variant-emoji
מאפיין ה-CSS font-variant-emoji מאפשר לשלוט בין גליפים של אמוג'י צבעוניים (בסגנון אמוג'י) לבין גליפים של אמוג'י מונוכרומטיים (בסגנון טקסט). אפשר לעשות את זה גם על ידי הוספה של בורר וריאציות של אמוג'י, באופן ספציפי U+FE0E לטקסט ו-U+FE0F לאמוג'י, אחרי כל נקודת קוד של אמוג'י.
תורשה של הדגשה ב-CSS
כשמשתמשים בירושה של הדגשה ב-CSS, פסאודו-המחלקות של ההדגשה ב-CSS, כמו ::selection ו-::highlight, יורשות את המאפיינים שלהן דרך שרשרת פסאודו-ההדגשה, ולא דרך שרשרת הרכיבים. התוצאה היא מודל אינטואיטיבי יותר להורשת מאפיינים ברגעי השיא.
מידע נוסף זמין בפוסט בבלוג שינויים בהורשה של סגנונות בחירת CSS מאת סטיבן צ'ני מ-Igalia.
שיפורים במבנה העיצוב של הרכיבים <details> ו-<summary>
תמיכה בעיצוב CSS נוסף למבנה של רכיבי <details> ו-<summary> כדי לאפשר שימוש ברכיבים האלה במקרים נוספים שבהם ווידג'טים של חשיפה או ווידג'טים של אקורדיון נוצרים באינטרנט. בפרט, השינוי הזה מסיר הגבלות שמנעו הגדרה של מאפיין התצוגה ברכיבים האלה, ומוסיף פסאודו-אלמנט ::details-content לעיצוב של הקונטיינר עבור החלק שמתרחב ומתכווץ.
@page תיבות שוליים
הוספת תמיכה בתיבות שוליים של דפים, כשמדפיסים מסמך אינטרנט או מייצאים אותו כ-PDF.
תיבות השוליים @page מאפשרות להגדיר את התוכן באזור השוליים של דף, למשל כדי לספק כותרות עליונות ותחתונות בהתאמה אישית, במקום להשתמש בכותרות העליונות והתחתונות המובנות שנוצרות על ידי הדפדפן.
תיבת שוליים מוגדרת באמצעות כלל at בתוך כלל CSS @page. המאפיינים של תיבת השוליים, כולל המאפיין content, מוגדרים באמצעות מאפייני CSS בתוך כלל כרוכית. יש גם תמיכה במונים למספור דפים. במפרט מוגדרים שני שמות מיוחדים של מונה: page למספר הדף הנוכחי ו-pages למספר הכולל של הדפים.
תחביר של תמיכה ב-@property <string>
תמיכה בשם רכיב התחביר <string> למאפיינים מותאמים אישית רשומים.
תמיכה ב-currentcolor בתחביר של צבעים יחסיים
התרת שימוש בצבעים יחסיים ב-CSS (באמצעות מילת המפתח from) כדי להשתמש ב-currentcolor כבסיס. כך אפשר להגדיר צבעים משלימים, על סמך צבע הטקסט של רכיב מסוים, עבור הגבולות, הצלליות או הרקעים של הרכיב הזה.
התכונה הזו כוללת גם תרחישי שימוש שבהם פונקציות צבע מוטמעות עם תלות ב-currentcolor, לדוגמה color-mix(in srgb, rgb(from currentcolor r g b), white)) או rgb(from rgb(from currentcolor 1 g b) b g r).
תמיכה במקורות חיצוניים של SVG למאפיינים clip-path, fill, stroke ו-marker-*
התכונה הזו מוסיפה תמיכה בהפניות חיצוניות לנתיבי קליפ, לסמנים ולשרתי צבע (למאפיינים fill ו-stroke). לדוגמה, clip-path: url("resources.svg#myPath").
Web APIs
Direct Sockets API
מאפשר לאפליקציות אינטרנט מבודדות ליצור תקשורת ישירה של פרוטוקול העברת נתונים מבוקרת (TCP) ופרוטוקול User Datagram (UDP) עם מכשירים ומערכות ברשת, וגם להאזין לחיבורים נכנסים ולקבל אותם.
החרגת הכותרת Speculation-Rules מהגבלות CSP
עדכון השילוב בין כללי ניחוש לבין CSP, כך ש-CSP יחול רק על <script type=speculationrules> ולא על הכותרת Speculation-Rules. מדיניות הסקריפטים של CSP נועדה להגן מפני הזרקת סקריפטים ל-HTML, ומודל האיומים של CSP לא קשור לכותרות HTTP. כך קל יותר לפרוס כללי ספקולציה מ-CDN ומשרתי קצה אחרים.
FedCM כאות אמון ל-Storage Access API
ה-API הזה מתקן את הבעיה שנוצרת כשמשתמשים ב-FedCM וב-Storage Access API ביחד. הוא מאפשר לאשר באופן אוטומטי בקשות לגישה לאחסון אם המשתמש כבר העניק הרשאה ל-FedCM.
כשמשתמש מעניק הרשאה להשתמש בזהות שלו עם ספק זהויות (IdP) של צד שלישי בצד המסתמך (RP), הרבה ספקי זהויות דורשים קובצי Cookie של צד שלישי כדי לפעול בצורה תקינה ומאובטחת. ההצעה הזו נועדה לעמוד בדרישה הזו באופן פרטי ומאובטח. לשם כך, נעדכן את בדיקות ההרשאות של Storage Access API (SAA) כך שהן יקבלו לא רק את מענק ההרשאה שניתן על ידי הנחיה לגישה לאחסון, אלא גם את מענק ההרשאה שניתן על ידי הנחיה של FedCM.
מאפיין מרכזי של המנגנון הזה הוא הגבלת ההרשאה למקרים שמותרים באופן מפורש על ידי ה-RP באמצעות מדיניות ההרשאות של FedCM, אכיפת שליטה בכל פריים עבור ה-RP ומניעת מעקב פסיבי על ידי ספק הזהויות מעבר ליכולות שכבר ניתנות על ידי FedCM.
ערך שובר COOP noopener-allow-popups
מקורות מסוימים יכולים להכיל אפליקציות שונות עם רמות שונות של דרישות אבטחה. במקרים כאלה, כדאי למנוע מסקריפטים שפועלים באפליקציה אחת לפתוח דפים של אפליקציה אחרת מאותו מקור ולכתוב סקריפטים לדפים האלה.
במקרים כאלה, כדאי לוודא שמי שפותח את המסמך לא יכול להריץ בו סקריפט, גם אם המסמך שפותח אותו הוא מאותו הדומיין. הערך של noopener-allow-popups Cross-Origin-Opener-Policy מאפשר למסמכים להגדיר את ההתנהגות הזו.
Private Aggregation API: הגדלת מגבלת התרומה ל-100 עבור קוראים של Protected Audience
מאפשרים לסקריפטים של Protected Audience להוסיף עד 100 תרומות לכל דוח של Private Aggregation, לעומת המגבלה הנוכחית של 20.
ה-API של Private Aggregation מגביל את מספר התרומות להיסטוגרמה שאפשר להטמיע בדוח אחד שניתן לצבירה, ומוחק תרומות נוספות. משתמשים שקוראים ל-Shared Storage יכולים לעקוף את המגבלה על ידי הפעלה של פעולת Shared Storage אחרת. עם זאת, למתקשרים של Protected Audience אין אחסון מתמשך, ולכן הם מאבדים את התרומות העודפות שלהם בסוף המכרז. חשוב לציין שהשינוי הזה לא משפיע על הפרטיות, כי התרומות של ה-API עדיין מוגבלות על ידי אותו תקציב פרטיות.
בגלל הוספת נתונים מיותרים, המטען הייעודי (payload) של כל דוח קהלים יהיה גדול יותר, גם אם לא היה צורך במגבלת התרומה הגדולה יותר. אנחנו צופים שהדוחות הגדולים יותר האלה יגדילו את העלות של הפעלת Aggregation Service.
בחירת רמת ההרפיה של הניתוח
בעקבות השינוי הזה, המערכת לניתוח HTML מאפשרת תגים נוספים ב-<select> בנוסף ל-<option>, <optgroup> ו-<hr>.
השינוי הזה תומך בתכונה <select> שניתנת להתאמה אישית, אבל אנחנו משיקים אותו קודם כי אפשר לבצע אותו בנפרד ויש סיכון מסוים לתאימות. צוות Chrome ישמח לקבל משוב על השינוי הזה.
WebGPU: מרחקי חיתוך
הוספנו את תכונת ה-GPU האופציונלית clip-distances שמאפשרת להגדיר מרחקי קליפ שהוגדרו על ידי המשתמש בפלט של הצללת קודקודים. הטכניקה הזו שימושית במיוחד לאפליקציות שצריכות לחתוך את כל הקודקודים בסצנה שנמצאים מעבר למישור שהוגדר על ידי המשתמש, כמו הרבה אפליקציות CAD.
WebGPU: GPUCanvasContext getConfiguration()
אחרי שמפעילים את GPUCanvasContext configure() עם מילון הגדרות, אפשר להשתמש בשיטה GPUCanvasContext getConfiguration() כדי לבדוק את הגדרות ההקשר של אזור הציור. היא כוללת את חברי הקבוצה device, format, usage, viewFormats, colorSpace, toneMapping ו-alphaMode.
כמו שמוסבר בבעיה מספר 4828, אפליקציות אינטרנט יכולות להשתמש בה כדי לזהות אם יש תמיכה ב-HDR canvas ב-WebGPU.
WebHID ב-workers ייעודיים
הפעלה של WebHID בהקשרים ייעודיים של worker. כך אפשר לבצע פעולות קלט/פלט כבדות ועיבוד נתונים ממכשיר HID ב-thread נפרד, וכך לצמצם את ההשפעה על הביצועים ב-thread הראשי.
WebRTC RTCRtpEncodingParameters.scaleResolutionDownTo
API שמגדיר מקודדים של WebRTC כדי לשנות את גודל המסגרות של הקלט אם הן גדולות יותר מהערכים שצוינו של maxWidth ו-maxHeight. ממשק ה-API הזה דומה ל-scaleResolutionDownBy, אבל אילוצי הרזולוציה מבוטאים במונחים מוחלטים (לדוגמה, 640x360) ולא במונחים יחסיים (לדוגמה, הקטנה פי 2), וכך נמנעים תנאי מירוץ שקשורים לשינוי גודל מסגרת הקלט תוך כדי תנועה.
גרסאות מקור חדשות לניסיון
ב-Chrome 131 אפשר להצטרף לגרסאות מקור לניסיון החדשות הבאות.
נתונים סטטיסטיים של הפעלת WebAudio
התכונה AudioContext.playoutStats מאפשרת לאפליקציה למדוד את האיכות ואת זמן האחזור של הפעלת אודיו באמצעות WebAudio.
Summarizer API
JavaScript API ליצירת סיכומים של טקסט קלט, שמגובה על ידי מודל שפה של AI.
הוצאה משימוש והסרה
בגרסה הזו של Chrome הוצאו משימוש והוסרו התכונות הבאות. באתר ChromeStatus.com אפשר למצוא רשימות של הוצאות משימוש מתוכננות, הוצאות משימוש נוכחיות והסרות קודמות.
בגרסה הזו של Chrome הוסרו שלוש תכונות.
הסרת מאפיין CSS Anchor Positioning inset-area
בעקבות ההחלטה של קבוצת העבודה בנושא CSS לשנות את השם של המאפיין inset-area ל-position-area, ההסרה הזו מנקה את ההטמעה ב-Chromium כדי ליצור תכונה שתואמת לתקנים.
הסרת האפשרות להשבית את BeforeunloadEventCancelByPreventDefault
התכונה BeforeunloadEventCancelByPreventDefault הושקה ב-Chrome 117, אבל יש מדיניות של Chrome Enterprise שמאפשרת להשבית את הדגל הזה באופן אוטומטי. מדיניות הארגון תוסר ב-Chrome 131.
הסרה של השיטה הלא-סטנדרטית requestAdapterInfo() של GPUAdapter
קבוצת העבודה של WebGPU החליטה שזה לא מעשי ש-requestAdapterInfo() תפעיל בקשת הרשאה, ולכן היא הסירה את האפשרות הזו והחליפה אותה במאפיין info של GPUAdapter, כדי שמפתחי אתרים יוכלו לקבל את אותו ערך GPUAdapterInfo באופן סינכרוני.