Chrome 138 בטא

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

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

CSS וממשק משתמש

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

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

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

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

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

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

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

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

li {
  animation-delay: calc(0.1s * sibling-index());
}

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

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

Viewport Segments Enumeration API

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

Web APIs

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

הוספנו ערכים של rotation: int ו-flip: bool לממשקי WebCodecs שונים שקשורים לסרטונים, כדי שמפתחים יוכלו לעבוד עם מקורות של פריימים שיש להם כיוון (לדוגמה, מצלמות Android ומדיה מסוימת). הממשק VideoFrame מאפשר ליצור VideoFrames עם סיבוב והיפוך שרירותיים, וגם פונקציות גישה למידע הזה באובייקט VideoFrame. האובייקט VideoDecoderConfig מקבל את השדות rotation ו-flip שמופקים באובייקטים של VideoFrame מפוענחים באופן אוטומטי. המחלקה VideoEncoder מקבלת מנגנונים להעברת מידע על סיבוב והיפוך מ-encode() אל VideoDecoderConfig שמועבר כחלק מ-EncodedVideoChunkMetadata. אם קוראים ל-encode() עם פריימים בעלי כיוון שונה, תופעל חריגה לא קטלנית. אפשר להשתמש בשיטה configure() כדי לאפס את האוריינטציה המותרת.

‫Crash Reporting API‏: is_top_level ו-visibility_state

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

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

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

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

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

מכסת אחסון צפויה שדווחה

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

כדי למנוע זיהוי של מצב הגלישה של המשתמש באמצעות Storage API, המערכת מדווחת על מכסה מלאכותית ששווה לשימוש + מינימום(‎10 GiB, נפח אחסון שמעוגל כלפי מעלה ל-‎1 GiB הקרוב ביותר), בכל מצבי הגלישה באתרים עם הרשאות אחסון מוגבלות. ההגדרה הזו לא משפיעה על אתרים עם הרשאות אחסון בלתי מוגבלות. גם המכסה שנאכפת לא מושפעת.

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

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

כללי ספקולציות: מוסיפים את prefetchCache ואת prerenderCache לכותרת Clear-Site-Data

שני ערכים חדשים לכותרת Clear-Site-Data שיעזרו למפתחים לטרגט ניקוי של מטמון העיבוד מראש והשליפה מראש: prefetchCache ו-prerenderCache. אפשר לשלוח אותם בכל בקשה, ולא צריך לשלוח אותם בבקשה של המסמך (לדוגמה, אפשר להחזיר אותם בתגובות של קריאות ל-API של הוספה לסל, או של כניסה ויציאה כדי להסיר השערות לגבי שינוי מצב).

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

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

מדיניות קפדנית בנושא מקור זהה ל-Storage Access API

התאמה של הסמנטיקה של Storage Access API כך שתפעל בהתאם למדיניות Same Origin Policy (מדיניות מקור זהה) בכל הנוגע לאבטחה. כלומר, שימוש ב-document.requestStorageAccess() במסגרת מצרף קובצי Cookie לבקשות למקור (לא לאתר) של ה-iframe כברירת מחדל.

Summarizer API

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

מידע נוסף זמין במאמר יצירת סיכומים תמציתיים באמצעות AI מובנה.

Language Detector API

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

יש מדיניות של Chrome Enterprise‏ (GenAILocalFoundationalModelSettings) שמאפשרת להשבית את ההורדה של המודל הבסיסי, וכך ה-API הזה לא יהיה זמין.

מידע נוסף על זיהוי השפה שבה משתמשים באמצעות AI מובנה

Translator API

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

מידע נוסף זמין במאמר תרגום באמצעות AI מובנה.

תוספים להיקף של אפליקציות אינטרנט

נוסף שדה למניפסט של אפליקציית אינטרנט "scope_extensions" שמאפשר לאפליקציות אינטרנט להרחיב את ההיקף שלהן למקורות אחרים. ההגדרה הזו מאפשרת להציג אתרים ששולטים בכמה תת-דומיינים ודומיינים ברמה העליונה כאפליקציית אינטרנט אחת. כדי להשתמש בהגדרה הזו, צריך לאשר את השיוך לאפליקציית האינטרנט באמצעות .well-known/web-app-origin-association קובץ הגדרה.

Web serial over Bluetooth ב-Android

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

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

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

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

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

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

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

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

הסרת הגיבוי של SwiftShader

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

  1. ‫SwiftShader מהווה סיכון אבטחה גבוה בגלל קוד JIT שפועל בתהליך GPU של Chromium.
  2. המשתמשים נהנים מחוויה גרועה כשמתבצעת חזרה מ-WebGL עם תמיכה ב-GPU בעל ביצועים גבוהים להטמעה עם תמיכה ב-CPU. למשתמשים אין שליטה בהתנהגות הזו, וקשה לתאר אותה בדוחות על באגים.

במהלך תקופת ההוצאה משימוש, תוצג אזהרה במסוף כלי פיתוח ל-Chrome כשנוצר הקשר WebGL ומוגדר לו גיבוי באמצעות SwiftShader. העברה --enable-unsafe-swiftshader תגרום להסרת הודעת האזהרה הזו.