Chrome 135

תאריך פרסום הגרסה היציבה: 1 באפריל 2025

אלא אם צוין אחרת, השינויים הבאים חלים על הגרסה של Chrome 135 בערוץ היציב ל-Android, ל-ChromeOS, ל-Linux, ל-macOS ול-Windows.

HTML ו-DOM

פקודות מפעיל (Invoker Commands); המאפיינים command ו-commandfor

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

מעקב אחרי באג מס' 1490919 | רשומה ב-ChromeStatus.com | מפרט

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

מעקב אחרי באג מס' 1477049 | הרשומה ב-ChromeStatus.com

CSS

רכיב ::column פסאודו לקרוסלות

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

הרשומה ב-ChromeStatus.com

::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.

מעקב אחרי באג מס' 370067113 | רשומה ב-ChromeStatus.com | מפרט

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

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

באג מעקב מס' 332396355 | רשומה ב-ChromeStatus.com | מפרט

חוסר פעילות של CSS – המאפיין interactivity

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

כשמשביתים רכיב, הדבר משפיע על היכולת להתמקד בו, לערוך אותו, לבחור אותו ולחפש אותו באמצעות 'חיפוש בדף'. הוא גם משפיע על האפשרות להציג אותו בעץ הנגישות.

הרשומה ב-ChromeStatus.com | מפרט

זליגה לוגית ב-CSS

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

מעקב אחרי באג מס' 41489999 | רשומה ב-ChromeStatus.com | מפרט

CSS anchor positioning remembered scroll offset

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

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

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

  • כשהאלמנט הממוקם מוצג בפעם הראשונה.
  • כשנבחרת אפשרות מיקום אחרת (position-try-fallbacks).

מעקב אחרי באג מס' 373874012 | רשומה ב-ChromeStatus.com | מפרט

פונקציית shape() של CSS

הפונקציה shape() מאפשרת ליצור צורות רספונסיביות בפורמט חופשי ב-clip-path.

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

מעקב אחרי באג מס' 40829059 | הרשומה ב-ChromeStatus.com | מפרט

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

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

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

מעקב אחרי באג מס' 391621941 | רשומה ב-ChromeStatus.com | מפרט

עיצוב של רכיבי פסאודו בתצוגת עץ

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

  • ::before::marker
  • ::after::marker

בעתיד תהיה תמיכה ב-::column::scroll-marker.

מעקב אחרי באג מס' 373478544 | הרשומה ב-ChromeStatus.com | מפרט

אודיו ווידאו

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

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

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

הרשומה ב-ChromeStatus.com | מפרט

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

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

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

באג מעקב מס' 41411856 | רשומה ב-ChromeStatus.com | מפרט

שיקוף רכיבים

התכונה הזו מאפשרת למאפייני הקשר של ARIA להופיע ב-IDL כהפניות לרכיבים ולא כ-DOMStrings.

כך מטמיעים את מאפייני ה-IDL בממשק ARIAMixin עם סוג Element או FrozenArray<Element>, מלבד ariaOwnsElements.

מעקב אחרי באג מס' 981423 | רשומה ב-ChromeStatus.com | מפרט

פריימים מגודר: תמיכה אוטומטית בנתוני משואות ממקורות שונים

אם תטעינו מסגרות מגודר או iframe של URN דרך ממשק API כמו Protected Audience או Shared Storage, הן יוכלו לשלוח סמנים לדיווח באופן אוטומטי אם אירוע כלשהו יתרחש (כרגע יש תמיכה רק בסמנים לניווט ברמה העליונה). התכונה הזו עודכנה בעבר כדי לאפשר למסמכים ממקורות שונים שנטענים בעץ של המסגרת המגודרת ברמה הבסיסית לשלוח סמנים אוטומטיים אם הבעלים שלהם הביע הסכמה לכך, אבל עדיין נשמרה ההגבלה שרק מסגרות מאותו מקור כמו המקור שנטען על ידי ה-API יכולות להגדיר את הנתונים שיישלחו כחלק מהסמנים. התכונה הזו מרחיבה את הפונקציונליות הזו ומאפשרת למסמך שמגיע ממקורות שונים להגדיר את הנתונים שישמשו באות האוטומטי.

כדי לאפשר זאת תוך שמירה על הפרטיות, צריך להביע הסכמה מפורשת גם למסמך הבסיס של המסגרת המגודרת וגם למסמך המסגרת המשנית מהמקור השני. זהו אותו טופס הסכמה לשימוש בתכונות אחרות של FFAR במקורות שונים. באופן ספציפי, מסגרת הבסיס צריכה להביע הסכמה באמצעות הכותרת Allow-Fenced-Frame-Automatic-Beacons, ומסגרת המשנה מאתרים שונים שמגדירה את הנתונים צריכה להביע הסכמה באמצעות הפרמטר crossOriginExposed בקריאה ל-setReportEvent().

הרשומה ב-ChromeStatus.com | מפרט

Float16Array

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

מעקב אחרי באג מס' 42203953 | הרשומה ב-ChromeStatus.com | מפרט

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

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

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

מעקב אחרי באג מס' 40725781 | הרשומה ב-ChromeStatus.com

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

מעקב אחרי באג מס' 40281924 | רשומה ב-ChromeStatus.com | מפרט

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

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

מעקב אחרי באג מס' 331754704 | הרשומה ב-ChromeStatus.com | מפרט

Observable API

Observables הם פרדיגמה פופולרית של תכנות רספונסיבית לטיפול בשידור אירועים אסינכרוני שמבוסס על דחיפה. אפשר להתייחס אליהן כאל Promises, אבל עבור מספר אירועים, והמטרה שלהן היא לבצע את מה ש-Promises עשתה עבור פונקציות קריאה חוזרת (callbacks) והטמעה בתוך הטמעה (nesting). כלומר, הם מאפשרים טיפול ארגונומי באירועים על ידי מתן אובייקט Observable שמייצג את הזרימה האסינכרונית של האירועים.

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

מעקב אחרי באג מס' 1485981 | רשומה ב-ChromeStatus.com | מפרט

הסרת הלחיצה על setInterval(...) ל->= 1ms

בגרסאות ישנות יותר מ-Chrome 135, הערך של setInterval שקטן מ-1 מוגבל ל-1. ההגבלה הזו תוסר בגרסה 135 של Chrome.

  • לפני: setInterval(..., 0) = עיכוב של 1ms.
  • אחרי: setInterval(..., 0) = עיכוב של 0ms.

מעקב אחרי באג מס' 41380458 | הרשומה ב-ChromeStatus.com

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

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

מעקב אחרי באג מס' 41337436 | רשומה ב-ChromeStatus.com | מפרט

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

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

ההתאמה הזו לרכיבי עוגן של HTML מבטיחה עקביות וקלות שימוש בטכנולוגיות אינטרנט שונות.

מעקב אחרי באג מס' 40589293 | רשומה ב-ChromeStatus.com | מפרט

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

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

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

מעקב אחרי באג מס' 391114797 | רשומה ב-ChromeStatus.com | מפרט

עדכון הכותרות, הגוף ומדיניות המפנה של בקשת ה-HTTP בהפניה אוטומטית מסוג CORS

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

מעקב אחרי באג מס' 40686262 | רשומה ב-ChromeStatus.com | מפרט

fetchLater API

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

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

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

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

מעקב אחרי באג מס' 1465781 | רשומה ב-ChromeStatus.com | מפרט

highlightsFromPoint API

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

מעקב אחרי באג מס' 365046212 | הרשומה ב-ChromeStatus.com | מפרט

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

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

דרך לאתרים לקשר סשן למכשיר יחיד באופן מאובטח.

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

גרסת Origin | הרשומה ב-ChromeStatus.com | מפרט

גורמים שמפעילים את תחומי העניין

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

גרסת טרום-השקה | באג מעקב מס' 326681249 | הרשומה ב-ChromeStatus.com | מפרט

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

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

גרסת טרום-השקה | מעקב אחרי באג מס' 375224898 | רשומה ב-ChromeStatus.com | מפרט

כללי ספקולציות: השדה target_hint

כך אפשר להרחיב את התחביר של כללי הספקולציות כדי לאפשר למפתחים לציין את השדה target_hint.

השדה הזה מספק רמז לגבי יעד שניתן לנווט אליו, שבו דף שעבר עיבוד מראש יופעל בסופו של דבר. לדוגמה, כשמציינים את הערך ‎_blank כתובעה, אפשר להפעיל דף שעבר עיבוד מראש עבור דף שניתן לנווט בו שנפתח באמצעות window.open(). לשדה אין השפעה על האחזור מראש.

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

גרסת Origin Trial | באג מעקב מס' 40234240 | רשומה ב-ChromeStatus.com | מפרט

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

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

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

השימוש בקריאה נמוך מאוד, וכל המסגרות העיקריות שמשמשות ליצירת תוכן WebXR אושרו כעדכניות לשימוש בקריאה החדשה.

הרשומה ב-ChromeStatus.com | מפרט

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

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

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

מעקב אחרי באג מס' 364338810 | הרשומה ב-ChromeStatus.com | מפרט