Chrome 135 בטא

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

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

CSS וממשק משתמש

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

המיקום של העוגן נשמר כהיסט גלילה

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

CSS Inertness

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

מאפייני גלישה לוגיים

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

הנכס 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 גם אם לא לחצו עליהם לפני כן באתר ברמה העליונה ובמקור המסגרת המדויקים האלה. הפטור הזה מופעל רק בפריים ברמה העליונה או בפריים משני שמקורו זהה למקור של הפריים ברמה העליונה. היתרונות מבחינת פרטיות עדיין מתקבלים כי האתרים כבר יודעים באילו דפי משנה המשתמש ביקר, ולכן לא נחשף מידע חדש. זהו חריג שנדרש על ידי הקהילה, והוא משפר את חוויית המשתמש.

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

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

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

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

Web APIs

הוספת תמיכה ב-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 לא נחשבים כרגע כלקוחות של Service Worker, והם לא מכוסים על ידי Service Worker של ההורה שלהם. כתוצאה מכך, יש כמה אי-התאמות (לדוגמה, בדוחות Resource Timing מופיעות כתובות ה-URL שהמסמכים האלה נטענים מהן, אבל service worker לא מיירט אותן). המטרה היא לתקן את הפערים על ידי יצירת לקוחות של קובצי שירות (service worker) למסגרות iframe של srcdoc, כך שהם יירשו את בקר קובצי השירות של ההורה שלהם.

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

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

Float16Array

הוספת המערך המוקלד Float16Array. ערכים מספריים מעוגלים ל-IEEE fp16 כשכותבים למופעי Float16Array.

שילוב של הגורם שיזם את הניווט במפתח של חלוקת מטמון HTTP למחיצות

התוכנית של Chrome ליצירת מפתחות מטמון של HTTP עודכנה כך שתכלול ערך בוליאני 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, חלק מהטקסטים של הסיבות ישתנו כדי להתאים לשמות הסטנדרטיים. מפתחים שעוקבים אחרי הסיבות האלה עשויים להבחין בשינוי בטקסטים של הסיבות.

On-device 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.

fetchLater API

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

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

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

שימו לב: מנקודת המבט של משתמש ה-API, זמן השליחה המדויק לא ידוע.

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

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

הפעלת תחומי עניין

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

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

התכונה הזו מספקת למפתחי אתרים מנגנון לאימות המקור של משאבים שהם מסתמכים עליהם, ויוצרת בסיס טכני לאמון בתלות של אתר. בקיצור: שרתים יכולים לחתום על תגובות באמצעות זוג מפתחות Ed25519, ומפתחי אתרים יכולים לדרוש מסוכן המשתמש לאמת את החתימה באמצעות מפתח ציבורי ספציפי. התכונה הזו היא תוספת מועילה לבדיקות מבוססות-כתובת URL שמוצעות על ידי Content Security Policy, ולבדיקות מבוססות-תוכן של Subresource Integrity.

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

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

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

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

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

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

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

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

הסרת נכס NavigateEvent canTransition

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

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

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

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