Chrome 138

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

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

CSS וממשק משתמש

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

הפונקציה abs(A) מכילה חישוב אחד, A, ומחזירה את הערך המוחלט של A, מאותו סוג כמו הקלט: אם הערך המספרי של A חיובי או 0⁺, הפונקציה מחזירה את A; אחרת, היא מחזירה ‎-1 * A.

הפונקציה sign(A) מכילה חישוב אחד A, ומחזירה ‎-1 אם הערך המספרי של A הוא שלילי, ‎+1 אם הערך המספרי של A הוא חיובי, ‎0⁺ אם הערך המספרי של A הוא ‎0⁺, ו-‎0⁻ אם הערך המספרי של A הוא ‎0⁻. סוג ההחזרה הוא <number>, בהתאם לסוג של חישוב הקלט.

MDN Docs:abs()‎ | באג למעקב מס' 40253181 | ערך ב-ChromeStatus.com | מפרט

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

הסימון הפונקציונלי progress() מחזיר ערך <number> שמייצג את המיקום של חישוב אחד (ערך ההתקדמות) בין שני חישובים אחרים (ערך ההתחלה של ההתקדמות וערך הסיום של ההתקדמות). הפונקציה progress() היא פונקציה מתמטית.

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

‫CSS sibling-index() ו-sibling-count()

אפשר להשתמש בפונקציות sibling-index() ו-sibling-count() כמספרים שלמים בערכי מאפייני CSS כדי לעצב רכיבים על סמך המיקום שלהם בין הרכיבים באותה רמה, או על סמך המספר הכולל של הרכיבים באותה רמה. אפשר להשתמש בפונקציות האלה ישירות כערכים של מספרים שלמים, אבל מעניין יותר להשתמש בהן בתוך ביטויי calc().

באג למעקב מס' 40282719 | ערך ב-ChromeStatus.com | מפרט

מילת מפתח לשינוי גודל (stretch) ב-CSS

מילת מפתח למאפייני גודל של CSS (לדוגמה, width ו-height) שמאפשרת לאלמנטים לגדול כך שימלאו בדיוק את השטח הפנוי של הבלוק המכיל שלהם. הוא דומה ל-100%, אבל הגודל שמתקבל מוחל על תיבת השוליים של הרכיב במקום על התיבה שמצוינת על ידי box-sizing. השימוש במילת המפתח הזו מאפשר לרכיב לשמור על השוליים שלו ועדיין להיות גדול ככל האפשר. גרסה ללא קידומת של -webkit-fill-available.

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

משתנה CSS env לקנה מידה של גופן ברמת מערכת ההפעלה

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

באג למעקב מס' 397737223 | ערך ב-ChromeStatus.com | מפרט

מכשירים

Web serial over Bluetooth on Android

התכונה הזו מאפשרת לדפי אינטרנט ולאפליקציות אינטרנט להתחבר ליציאות טוריות דרך Bluetooth במכשירי Android.

מעכשיו, Chrome ב-Android תומך ב-Web Serial API דרך Bluetooth RFCOMM. מדיניות ארגונית קיימת (DefaultSerialGuardSetting, ‏ SerialAllowAllPortsForUrls,‏ SerialAllowUsbDevicesForUrls, ‏ SerialAskForUrls ו-SerialBlockedForUrls) בפלטפורמות אחרות מופעלת במצבי future_on ב-Android. אחרי הפעלת התכונה, כל כללי המדיניות יופעלו, למעט SerialAllowUsbDevicesForUrls. ‫SerialAllowUsbDevicesForUrls יופעל בהשקה עתידית אחרי ש-Android תספק תמיכה ברמת המערכת ביציאות טוריות קוויות.

באג למעקב מס' 375245353 | ערך ב-ChromeStatus.com | מפרט

Viewport Segments Enumeration API

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

באג למעקב מס' 1039050 | ערך ב-ChromeStatus.com | מפרט

JavaScript

עדכון QuotaExceededError לממשק נגזר DOMException

בעבר, כשפלטפורמת האינטרנט רצתה להודיע לכם שחרגתם מהמכסה, היא השתמשה ב-DOMException עם המאפיין הספציפי name שהוגדר ל-QuotaExceededError. עם זאת, אי אפשר להעביר מידע נוסף.

ההצעה היא להסיר את QuotaExceededError מהרשימה של שמות מובנים DOMException, ובמקום זאת ליצור שם מחלקה QuotaExceededError מהרשימה של שמות מובנים DOMException, ולהוסיף את המאפיינים האופציונליים quota ו-requested. אנחנו מציעים לשדרג את כל המופעים של specs שיוצרים את השגיאה QuotaExceededError DOMException כך שיצרו במקום זאת את השגיאה QuotaExceededError. בשלב הזה, אם תשתמשו במפרטים כאלה, הערך של המאפיינים quota ו-requested יהיה ערך ברירת המחדל null, אבל יכול להיות שבעתיד הם ישודרגו ויכללו את הנתונים האלה, אם הם יהיו שימושיים לתרחיש השימוש (ולא יגרמו לדליפת פרטיות, למשל).

ChromeStatus.com entry | Spec

Web APIs

Translator API

‫JavaScript API שמאפשר לספק יכולות תרגום שפות לדפי אינטרנט. דפדפנים מציעים יותר ויותר תרגום שפות למשתמשים שלהם. יכולות תרגום כאלה יכולות להיות שימושיות גם למפתחי אתרים. זה נכון במיוחד כשאי אפשר להיעזר ביכולות התרגום המובנות של הדפדפן. יש מדיניות של Chrome Enterprise‏ (GenAILocalFoundationalModelSettings) שמאפשרת להשבית את ההורדה של המודל הבסיסי, וכך להפוך את ה-API הזה ללא זמין.

MDN Docs | Tracking bug #322229993 | ChromeStatus.com entry | Spec

Language Detector API

‫API של JavaScript לזיהוי השפה של טקסט, עם רמות סמך.

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

MDN Docs | ChromeStatus.com entry | Spec

Summarizer API

‫Summarizer API הוא JavaScript API ליצירת סיכומים של טקסט קלט, שמגובה על ידי מודל שפה של AI. יש ציפייה גוברת לכך שדפדפנים ומערכות הפעלה יקבלו גישה למודל שפה. המודל המובנה הזה מאפשר לנו להימנע ממצב שבו כל אתר צריך להוריד מודל שפה משלו בגודל של כמה גיגה-בייט, או לשלוח טקסט קלט ל-API של צד שלישי. בפרט, ה-API של כלי הסיכום חושף API ברמה גבוהה ליצירת אינטראקציה עם מודל שפה כדי לסכם קלט למגוון תרחישי שימוש (GitHub), באופן שלא תלוי במודל השפה הספציפי הרלוונטי. יש מדיניות של Chrome Enterprise‏ (GenAILocalFoundationalModelSettings) שמאפשרת להשבית את ההורדה של המודל הבסיסי, וכך ה-API הזה לא יהיה זמין.

MDN Docs | Tracking bug #351744634 | ChromeStatus.com entry | Spec

הוספת תו escape ל-< ול-> במאפיינים בסריאליזציה

הוספת תו בריחה ל-< ול-> בערכים של מאפיינים בסריאליזציה.

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

ChromeStatus.com entry | Spec

‫Crash Reporting API: ‏ is_top_level ו-visibility_state

התכונה הזו מוסיפה את השדות is_top_level ו-visibility_state מסוג מחרוזת לגוף של Crash Reporting API שנשלח לנקודת הקצה של הדיווח שמוגדרת כברירת מחדל עבור דוחות קריסה.

ChromeStatus.com entry | Spec

הפעלת האירוע pushsubscriptionchange לאחר חידוש המינוי

הפעלת האירוע pushsubscriptionchange בקובצי שירות (service worker) כשניתנת שוב הרשאת שליחת התראות למקור שבעבר הייתה לו הרשאת שליחת התראות, אבל ההרשאה בוטלה בגלל שינוי בהרשאה (מאישור לדחייה או לברירת מחדל).

האירוע יופעל עם oldSubscription ו-newSubscription ריקים.

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

מולטימדיה

הוספת תמיכה במטא-נתונים של כיוון פריים של סרטון ל-WebCodecs

הוספנו ערכים של rotation: int ו-flip: bool לממשקי WebCodecs שונים שקשורים לווידאו, כדי שמפתחים יוכלו לעבוד עם מקורות של פריימים שיש להם כיוון (לדוגמה, מצלמות Android, מדיה מסוימת).

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

האובייקט VideoDecoderConfig מקבל שדות סיבוב והיפוך שמופקים אוטומטית באובייקטים של VideoFrame מפוענחים.

בכיתה VideoEncoder נוספים מנגנונים להעברת מידע על סיבוב והיפוך מ-encode() אל VideoDecoderConfig שמועבר כחלק מ-EncodedVideoChunkMetadata. אם קוראים ל-encode() עם מסגרות בכיוונים שונים, תופעל חריגה לא קריטית. אפשר להשתמש ב-configure() כדי לאפס את הכיוון המותר.

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

ביצועים

הוספת prefetchCache וprerenderCache לכותרת Clear-Site-Data

שני ערכים חדשים לכותרת Clear-Site-Data שיעזרו למפתחים לטרגט ניקוי של מטמון הטרום-רנדור והטרום-אחזור: "prefetchCache" ו-"prerenderCache".

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

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

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

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

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

באג למעקב מס' 40234240 | ערך ב-ChromeStatus.com | מפרט

אבטחה

מדיניות בנושא תקינות של סקריפטים

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

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

ChromeStatus.com entry | Spec

קובץ שירות (service worker)

תמיכה ב-ServiceWorker לשליפה מראש (prefetch) של כללי ספקולציה

התכונה הזו מאפשרת שליפות מראש (prefetch) שנשלטות על ידי ServiceWorker, כלומר שליפה מראש של SpeculationRules לכתובות URL שנשלטות על ידי Service Worker. בעבר, השליפה מראש (prefetch) בוטלה כשזוהה קובץ שירות (service worker) ששולט בה, ולכן ניווט עוקב ליעד השליפה מראש הועבר על ידי הנתיב שלא כולל שליפה מראש. התכונה הזו מאפשרת לבקשת השליפה מראש לעבור דרך handler השליפה של קובץ השירות, והתגובה עם ההפסקות של קובץ השירות נשמרת במטמון השליפה מראש. כתוצאה מכך, הניווט הבא מוגש על ידי מטמון השליפה מראש. כדי לשלוט בתכונה הזו, משתמשים במדיניות הארגונית PrefetchWithServiceWorkerEnabled.

Tracking bug #40947546 | ChromeStatus.com entry | Spec

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

‫WebGPU: הוצאה משימוש של מאפיין GPUAdapter isFallbackAdapter

הוצא משימוש המאפיין הבוליאני GPUAdapter isFallbackAdapter מ-WebGPU, שהוא מיותר כי יש את המאפיין הבוליאני GPUAdapterInfo isFallbackAdapter.

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

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

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

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

  • הפעולה SourceBuffer.abort() לא מבטלת יותר פעולות של SourceBuffer.remove().
  • ההגדרה MediaSource.duration לא יכולה יותר לחתוך את המדיה שנמצאת כרגע בבאפר.

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

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

השימוש בהסרת ביטולים של abort() נמצא בעלייה, ולכן מומלץ לפתור את בעיית ההוצאה משימוש הזו לפני שיופיעו עוד שימושים לא תואמים.

Tracking bug #40474569 | ChromeStatus.com entry | Spec