Chrome 135 בטא

תאריך פרסום: 5 במרץ 2025

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

CSS וממשק משתמש

בגרסה הזו נוספו שלוש עשרה תכונות חדשות של CSS ושל ממשק משתמש.

שינוי מיקום של נקודת עיגון בהתאם לתנועת הגלילה שנשמרה

הוספת תמיכה במושג שימור המיקום בגלילה. כשרכיב ממוקם עם עוגן ברירת מחדל, ומחובר לעוגן הזה בקצה אחד, ומול הבלוק המקורי שמכיל אותו בקצה השני, ההיסט בגלילה יילקח בחשבון כשמגדירים את הגודל של הרכיב. כלומר, אפשר להשתמש בכל המרחב הגלוי (באמצעות position-area) עבור הרכיב המאוחזר כשמסובבים את המסמך בזזוג מסוים. כדי למנוע שינוי של הפריסה (שינוי הגודל של הרכיב) בכל פעם שגוללים במסמך, הדפדפן משתמש בהזזה שנשמרה במקום להשתמש תמיד בהזזה הנוכחית. ההיסט של הגלילה שנשמר מתעדכן בנקודת חישוב מחדש של עוגן. הנקודה הזו היא המיקום שבו הרכיב הממוקם מוצג בהתחלה, או המיקום שבו נבחרה אפשרות מיקום אחרת (position-try-fallbacks).

חוסר פעילות של CSS

כשמשביתים רכיב, הדבר משפיע על היכולת להתמקד בו, לערוך אותו, לבחור אותו ולחפש אותו באמצעות התכונה 'חיפוש בדף'. הוא גם משפיע על האפשרות להציג אותו בעץ הנגישות. הנכס interactivity מציין אם אלמנט וצאצאיו בתרשים העץ השטוח (כולל רצפי טקסט) הם רדומים או לא. אפשר להזין במאפיין interactivity אחד משני ערכים: auto או inert.

מאפייני Overflow לוגיים

מאפייני ה-CSS overflow-inline ו-overflow-block מאפשרים להגדיר את ה-overflow בכיוון שורת טקסט ובכיוון בלוק ביחס ל-writing-mode. במצב כתיבה אופקי, הערך overflow-inline ממופה לערך overflow-x, ובמצב כתיבה אנכי הוא ממופה לערך overflow-y.

הפונקציות שקשורות לסימנים ​abs() ו-sign() מחשבות פונקציות שונות שקשורות לסימן של הארגומנט שלהן.

המאפיין dynamic-range-limit

מאפשרת להגביל בדף את הבהירות המקסימלית של תוכן HDR.

הפונקציה shape()

הפונקציה shape() מאפשרת ליצור צורות רספונסיביות בפורמט חופשי במאפיין clip-path. הוא מאפשר להגדיר סדרה של פקודות, שדומות לפקודות ב-path(). עם זאת, הפקודות מקבלות יחידות תגובה דינמית (לדוגמה, % או vw), וגם ערכים של CSS, כמו מאפיינים מותאמים אישית.

פסאודו-הרכיב ::column

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

::scroll-button() פסאודו-רכיבים

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

.scroller {
  overflow: auto;
}

.scroller::scroll-button(inline-start) {
  content: "<";
}

.scroller::scroll-button(inline-end) {
  content: ">";
}

צריך להיות אפשר להתמקד בהם, והם צריכים לפעול כמו לחצן (כולל סגנונות UA שלהם). כשהפעולה מופעלת, צריך לגלול בכיוון מסוים במידה מסוימת. אם אי אפשר לגלול בכיוון הזה, צריך להשבית את הלחצנים (ולתת להם את הסגנון :disabled). אחרת, הם צריכים להיות מופעלים (ולקבל את הסגנון :enabled). הבורר מאפשר להגדיר לחצנים בארבעה כיוונים לוגיים: block-start,‏ block-end,‏ inline-start,‏ inline-end, וגם בארבעה כיוונים פיזיים: up,‏ down,‏ left,‏ right.

::scroll-marker וגם ::scroll-marker-group

הוספה של ::scroll-marker ו-::scroll-marker-group למאגרי תגים לגלילה. פסאודו-הרכיבים האלה מאפשרים ליצור קבוצה של סמנים שניתנים למיקוד לכל הפריטים המשויכים בתוך הקונטיינר לגלילה.

עיצוב של פסאודו-אלמנטים בתצוגת עץ

מאפשרת לעצב פסאודו-אלמנטים שמוטמעים בפסאודו-אלמנטים אחרים. עד כה, מוגדרת תמיכה ב-::before::marker וב-::after::marker, ותהיה תמיכה ב-::column::scroll-marker בעתיד.

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

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

סימנים פונקציונליים של התקדמות אינטרפולציה: פונקציות *progress() של CSS

הסימונים הפונקציונליים progress(),‏ media-progress() ו-container-progress() מייצגים את המרחק היחסי של ערך נתון (ערך ההתקדמות) מערך אחד (ערך ההתחלה של ההתקדמות) לערך אחר (ערך הסיום של ההתקדמות). הם מאפשרים לצייר יחס התקדמות מפונקציות מתמטיות, מתכונות מדיה ומתכונות של מאגרים, בהתאמה.

משתני safe-area-max-inset-*

בנוסף למשתני הסביבה safe-area-inset, Chrome תומך עכשיו גם בגרסאות max-area-safe-inset-* של המשתנים האלה. בניגוד להוספות הדינמיות, ההוספות המקסימליות לא משתנות ומייצגות את ההוספה המקסימלית האפשרית של אזור בטוח.

הערכים האלה נחוצים כשאתם יוצרים חוויות שימוש באינטרנט מהקצה לקצה עם ביצועים טובים.

ממשקי API של אתרים

הוספת תמיכה ב-MediaStreamTrack ל-Web Speech API

הוספת תמיכה ב-MediaStreamTrack ל-Web Speech API. Web Speech API הוא ממשק API סטנדרטי לאינטרנט שמאפשר למפתחים לשלב זיהוי דיבור וסינתזה בדפי האינטרנט שלהם. בשלב זה, Web Speech API משתמש במיקרופון ברירת המחדל של המשתמש כקלט האודיו. התמיכה ב-MediaStreamTrack מאפשרת לאתרים להשתמש ב-Web Speech API כדי להוסיף כתוביות למקורות אודיו אחרים, כולל טראקים של אודיו מרחוק.

חלוקה למחיצות של כתובות URL מסוג Blob: אחזור וניווט

כחלק מחלוקת האחסון למחיצות, התכונה הזו מטמיעה חלוקה למחיצות של הגישה לכתובות URL של Blob לפי מפתח אחסון (אתר ברמה העליונה, מקור המסגרת והערך הבוליאני has-cross-site-ancestor), מלבד ניווטים ברמה העליונה שימשיכו להיות מחולקים למחיצות רק לפי מקור המסגרת.

CSP require-sri-for לסקריפטים

ההנחיה require-sri-for מאפשרת לכם לאשר שצריך לבדוק את תקינות כל המשאבים מסוג נתון. אם תנסו לטעון משאב מהסוג הזה בלי מטא-נתונים של תקינות, הניסיון ייכשל ויגרום ליצירת דוח הפרת CSP. הכוונה הזו מכסה את הערך "script" של ההוראה הזו.

יצירת לקוח של service worker וירושה של בקר של service worker למסגרת ה-iframe של srcdoc

מסמכי הקשר של srcdoc הם לא לקוחות של שירותי עבודה כרגע, והם לא מכוסים על ידי שירות העבודה של ההורה שלהם. כתוצאה מכך יש אי-התאמות מסוימות (לדוגמה, נתוני Resource Timing מדווחים על כתובות ה-URL שהמסמכים האלה טוענים, אבל שירות ה-worker לא מיירט אותן). המטרה היא לתקן את אי ההתאמות על ידי יצירת לקוחות של קובצי שירות (service worker) למסגרות iframe של srcdoc, וכך לגרום להם לרשת את הבקר של קובץ השירות (service worker) של ההורה.

שליחת אירועי קליקים למצביע שנלכד

אם מאתרים אירוע בזמן שליחת האירוע pointerup, האירוע click יישלח ליעד שזוהה במקום לקודם האב הקרוב ביותר של אירועי pointerdown ו-pointerup, בהתאם למפרט האירועים של ממשק המשתמש. לגבי אירועים שלא זוהו, היעד של click לא ישתנה.

Float16Array

הוספת מערך Float16Array עם טיפוס. ערכי המספרים מתוкруглים ל-IEEE fp16 כשכותבים למכונות Float16Array.

שילוב של מפעיל הניווט במפתח המחיצה של מטמון ה-HTTP

סכמת המפתחות של זיכרון המטמון של HTTP ב-Chrome עודכנה כך שתכלול את הערך הבוליאני is-cross-site-main-frame-navigation כדי לצמצם את היקף ההתקפות על דליפות בין אתרים שכוללות ניווט ברמה העליונה. באופן ספציפי, הפעולה הזו תמנע התקפות חוצות-אתרים שבהן תוקף יכול להתחיל ניווט ברמה העליונה לדף נתון, ואז לנווט למשאב שידוע שהוא נטען על ידי הדף כדי להסיק מידע רגיש לפי תזמון הטעינה. השינוי הזה גם משפר את הפרטיות, כי הוא מונע מאתר זדוני להשתמש בניווטים כדי להסיק אם משתמש ביקר באתר מסוים בעבר.

מניעת מעקב באמצעות HSTS

מפחית את מעקב המשתמשים על ידי צדדים שלישיים באמצעות המטמון של HSTS.

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

פקודות של מבצע הקריאה: המאפיינים command ו-commandfor

המאפיינים command ו-commandfor ברכיבי <button> מאפשרים לכם להקצות התנהגות ללחצנים בצורה נגישה ודקלרטיבית יותר, תוך צמצום באגים ופישוט של כמות ה-JavaScript שנדרשת לאינטראקטיביות. לחצנים עם המאפיינים commandfor ו-command, כשלוחצים עליהם, נוגעים בהם או מפעילים אותם באמצעות הקשה על מקש, שולחים CommandEvent לאלמנט שמפנה אליו commandfor, עם התנהגויות ברירת מחדל מסוימות כמו פתיחת תיבות דו-שיח וחלונות קופצים.

הוספת תמיכה ב-<link rel="facilitated-payment" href="..."> בתור רמז לדפדפן, כדי להודיע ללקוחות התשלום הרשומים על תשלום דחוף בהמתנה.

המאפיין NavigateEvent sourceElement

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

שינוי השם של הסיבה ב-API של NotRestoredReasons

ב-API של NotRestoredReasons משנים חלק מהטקסטים של הסיבות כדי שיתואמו לשמות הסטנדרטיים. מפתחים שמנטרים את הסיבות האלה עשויים להבחין בשינוי בטקסטים של הסיבות.

Web Speech API במכשיר

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

כתובת ה-URL של לקוח Service Worker מתעלמת משינויים ב-history.pushState

שינוי של מאפיין Client.url של ה-service worker כדי להתעלם משינויים בכתובת ה-URL של המסמך באמצעות history.pushState() וממשקי API דומים אחרים של היסטוריה. המאפיין Client.url מיועד להיות כתובת ה-URL של יצירת מסמך ה-HTML, שמתעלם משינויים כאלה.

תמיכה במאפיינים rel ו-relList עבור SVGAElement

ממשק SVGAElement ב-SVG 2.0 מאפשר לבצע מניפולציות על אלמנטים מסוג <a>, בדומה לאלמנטי עוגן ב-HTML. תמיכה במאפיינים rel ו-relList משפרת את האבטחה והפרטיות של המפתחים. ההתאמה הזו לרכיבי עוגן של HTML מבטיחה עקביות וקלות שימוש בטכנולוגיות אינטרנט שונות.

חותמות זמן לפריימים מקודדים ב-RTC

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

  • חותמת הזמן של הצילום: חותמת הזמן שבה המסגרת צולמה במקור
  • חותמת זמן של קבלה: חותמת הזמן שבה התקבל פריים

יש לעדכן את ProgressEvent כך שישתמש בסוג double עבור 'loaded' ו-'total'

ל-ProgressEvent יש את המאפיינים loaded ו-total שמציינים את ההתקדמות, והסוג שלהם הוא unsigned long long עכשיו. בעזרת התכונה הזו, הסוג של שני המאפיינים האלה משתנה ל-double, וכך למפתח יש יותר שליטה בערך. לדוגמה, המפתחים יכולים עכשיו ליצור ProgressEvent עם הערך total של 1 והערך loaded שגדל בהדרגה מ-0 ל-1. ההתנהגות הזו תואמת לברירת המחדל של רכיב ה-HTML <progress> אם המאפיין max לא מופיע.

ה-API של fetchLater

ה-API‏ fetchLater() הוא ממשק API ל-JavaScript שמשמש לבקשת אחזור מושהה, והוא שימושי במיוחד לשליחת אותות איתות מהימנים יותר בסוף מחזור החיים של דף. אחרי שמפעילים בקשה מושהית במסמך, הדפדפן מוסיף אותה לתור בסטטוס PENDING, והיא תופעל לפי התנאי המוקדם ביותר מבין התנאים הבאים:

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

ה-API מחזיר FetchLaterResult שמכיל שדה בוליאני activated שאפשר לעדכן כדי לבדוק אם הבקשה שהושהתה נשלחה או לא. אם ההעברה תתבצע בהצלחה, הדפדפן יתעלם מהתגובה כולה, כולל הגוף והכותרות.

חשוב לזכור שמשתמש ה-API לא יודע מהו זמן השליחה המדויק.

גרסאות מקור חדשות לניסיון

ב-Chrome 135 אפשר להצטרף לגרסאות הניסיון החדשות של המקור.

גורמים מעוררי עניין

התכונה הזו מוסיפה מאפיין interesttarget לרכיבים <button> ו-<a>. המאפיין interesttarget מוסיף לרכיב התנהגויות של 'עניין', כך שכאשר המשתמש 'מראה עניין' ברכיב, מתבצעות פעולות ברכיב היעד. הפעולות יכולות לכלול, למשל, הצגת חלון קופץ. סוכן המשתמש יזהה מתי המשתמש 'מראה עניין' באלמנט, באמצעות שיטות כמו העברת העכבר מעל האלמנט, הקשה על מקשי קיצור מיוחדים במקלדת או לחיצה ארוכה על האלמנט במסכים מגע. כשהמשתמשים מביעים עניין או מפסיקים להתעניין, מתבצעת הפעלה של InterestEvent ביעד, עם פעולות ברירת מחדל במקרה של חלונות קופצים – הצגה והסתרה של החלון הקופץ.

תקינות מבוססת-חתימה

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

הוצאה משימוש והסרות

בגרסה הזו של Chrome הוספנו את ההוצאות משימוש וההסרות שמפורטות בהמשך. באתר ChromeStatus.com אפשר למצוא רשימות של הוצאות משימוש מתוכננות, הוצאות משימוש נוכחיות והוצאות קודמות משימוש.

בגרסה הזו של Chrome הופסקה התמיכה בתכונה אחת.

הוצאה משימוש של פונקציות getter של Intl Locale Info

Intl Locale Info API הוא הצעה של TC39 ל-ECMAScript בשלב 3, שמטרתה לשפר את האובייקט Intl.Locale על ידי חשיפת מידע על Locale, כמו נתוני שבוע (היום הראשון בשבוע, היום שבו מתחיל סוף השבוע, היום שבו מסתיים סוף השבוע, היום המינימלי בשבוע הראשון) ומחזור השעות של כיוון הטקסט שמשמש את ה-locale. ההטמעה ב-Chrome הושלמה ב-Chrome 99, אבל ההצעה השתנתה והוחלט להעביר כמה פונקציות קבלה (getters) לפונקציות. אנחנו צריכים להסיר את פונקציות ה-getter שהוצאו משימוש ולהפעיל מחדש את הפונקציות ששינו את השם.

בגרסה הזו של Chrome הוסרנו שלוש תכונות.

הסרת השיטה navigator.xr.supportsSession שהוצאה משימוש

השיטה navigator.xr.isSessionSupported החליפה את navigator.xr.supportsSession במפרט WebXR בספטמבר 2019, לאחר שקיבלנו מ-TAG משוב על צורת ה-API. מאז, הוא סומן כממשק שהוצא משימוש ב-Chrome, והוא גורם להצגת אזהרה במסוף שמפנה את המפתחים לממשק ה-API המעודכן. השימוש בקריאה נמוך מאוד, וכל המסגרות העיקריות שמשמשות ליצירת תוכן WebXR עודכנו לשימוש בקריאה החדשה.

הסרת נכס NavigateEvent canTransition

ב-Chrome 108, השיטה transitionWhile() והנכס canTransition של NavigateEvent הוחלפו בשיטה intercept() ובנכס canIntercept החדשים. בשלב הזה, השיטה transitionWhile() הוסרה. עם זאת, שכחנו להסיר את המאפיין canTransition: במקום זאת, השארנו אותו ככינוי ל-canIntercept. בגרסה 135 של Chrome, נטפל בבעיה הזו ונסיר את canTransition. אפשר להחליף כל שימוש ב-canTransition ב-canIntercept, ללא שינוי בהתנהגות.

הסרת המגבלה maxInterStageShaderComponents של WebGPU

המגבלה על maxInterStageShaderComponents תוסר בגלל שילוב של גורמים:

  • יתירות באמצעות maxInterStageShaderVariables: המגבלה הזו כבר משמשת למטרה דומה, ומאפשרת לשלוט בכמות הנתונים שמועברים בין שלבי ה-shader.
  • אי-התאמות קלות: יש הבדלים קלים באופן שבו שני המגבלות מחושבות, אבל ההבדלים האלה הם קלים וניתן לנהל אותם ביעילות ב-maxInterStageShaderVariables limit.
  • פשטות: הסרת maxInterStageShaderComponents משפרת את ממשק ה-shader ומפחיתה את המורכבות למפתחים. במקום לנהל שתי מגבלות נפרדות (ששתיהן חלות בו-זמנית, אבל יש ביניהן הבדלים קלים), הם יכולים להתמקד במגבלה המפורטת והמתאימה יותר maxInterStageShaderVariables.