Chrome 137 בטא

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

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

CSS וממשק משתמש

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

הפונקציה if()

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

div {
      color: var(--color);
      background-color: if(style(--color: white): black; else: white);
  }
  .dark {
      --color: black;
  }
  .light {
      --color: white;
  }
<div class="dark">dark</div>
<div class="light">light</div>

המאפיינים reading-flow ו-reading-order

מאפיין ה-reading-flow CSS קובע את הסדר שבו רכיבים בפריסת flex,‏ grid או block נחשפים לכלי נגישות ומתמקדים באמצעות ניווט במקלדת עם מקש Tab. הערך של מילת המפתח יכול להיות אחד מהערכים הבאים:

  • normal
  • flex-visual
  • flex-flow
  • grid-rows
  • grid-columns
  • grid-order
  • source-order

המאפיין reading-order CSS מאפשר לכם לשנות באופן ידני את הסדר בתוך קונטיינר של זרימת קריאה. זהו מספר שלם שערך ברירת המחדל שלו הוא 0.

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

offset-path: shape()

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

תמיכה במאפיין transform ב-SVGSVGElement

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

אפשר ל-<use> להפנות לרכיב בסיס של מסמך חיצוני על ידי השמטת המקטע.

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

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

הצבע המשני של המערכת עבור המאפיין accent-color הורחב ל-Windows ול-ChromeOS

האפשרות הזו מאפשרת להשתמש בצבע המשני של מערכת ההפעלה עבור רכיבי טופס. באמצעות מאפיין ה-CSS‏ accent-color, אפשר לוודא שרכיבי טופס כמו תיבות סימון, לחצני בחירה וסרגלי התקדמות יאמצו באופן אוטומטי את צבע ההדגשה שמוגדר במערכת ההפעלה של המשתמש. התכונה הזו נתמכת ב-macOS מאז 2021, ועכשיו היא נתמכת גם ב-Windows וב-ChromeOS.

view-transition-name: match-element

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

Web APIs

התאמת סוג השגיאה שמוחזרת ליצירת פרטי כניסה של WebAuthn מסוג 'תשלום'

מתקן את סוג השגיאה שמוחזר במהלך יצירת פרטי כניסה של WebAuthn עבור פרטי הכניסה של payment בגלל חוסר התאמה היסטורי במפרט, יצירת פרטי כניסה מסוג payment ב-iframe ממקורות שונים ללא הפעלת משתמש תגרום להקפצת הודעת שגיאה (throw) מסוג SecurityError במקום NotAllowedError, שמוצג עבור פרטי כניסה שאינם פרטי תשלום. זהו שינוי תוכנה שעלול לגרום לכשל. קוד שזיהה בעבר את סוג השגיאה שהופקה (לדוגמה, e instanceof SecurityError) יושפע מהשינוי. קוד שמטפל בשגיאות באופן כללי במהלך יצירת פרטי כניסה (לדוגמה, catch (e)) ימשיך לפעול בצורה תקינה.

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

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

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

Call stacks בדוחות קריסה מדפי אינטרנט שלא מגיבים

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

סוגי צבעים של נקודה צפה בקנבס

נוספה האפשרות להשתמש בפורמטים של פיקסלים עם נקודה צפה (בניגוד לנקודה קבועה של 8 ביט) עם CanvasRenderingContext2D,‏ OffscreenCanvasRenderingContext2D ו-ImageData. ההגדרה הזו נדרשת לאפליקציות שזקוקות לדיוק גבוה (למשל, הדמיה רפואית), לתוכן עם טווח דינמי גבוה ולמרחבי צבעים לינאריים.

איסור של עיבוד מראש של HTTP בטקסט פשוט שלא ניתן לסמוך עליו

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

Document-Isolation-Policy

Document-Isolation-Policy מאפשר למסמך להפעיל את crossOriginIsolation בעצמו, בלי הצורך בפריסת COOP או COEP, ולא משנה מה הסטטוס של crossOriginIsolation בדף. המדיניות נתמכת על ידי בידוד תהליכים. בנוסף, משאבי המשנה ממקורות שונים במסמך שלא קשורים ל-CORS ייטענו ללא פרטי כניסה או שיצטרכו לכלול כותרת CORP.

מידע נוסף זמין במאמר Document Isolation Policy: Enable powerful web features with ease (מדיניות בנושא בידוד מסמכים: הפעלה קלה של תכונות אינטרנט מתקדמות).

‫Ed25519 ב-Web Cryptography

התכונה הזו מוסיפה תמיכה באלגוריתמים של Curve25519 ב-Web Cryptography API,‏ כלומר באלגוריתם החתימה Ed25519

רישום ביומן ודיווח של כתובות IP

‫Chrome Enterprise משפר את יכולות הניטור לצורכי אבטחה והתגובה לאירועים על ידי איסוף ודיווח של כתובות IP מקומיות ומרוחקות ושליחת כתובות ה-IP האלה ליומני החקירה של האבטחה (SIT). בנוסף, Chrome Enterprise יאפשר לאדמינים לשלוח את כתובות ה-IP לספקי SIEM של צד ראשון וצד שלישי באמצעות המחבר Chrome Enterprise Reporting. האפשרות הזו תהיה זמינה ללקוחות Chrome Enterprise Core.

שילוב של JavaScript Promise

JavaScript Promise Integration‏ (JSPI) הוא API שמאפשר לאפליקציות WebAssembly להשתלב עם JavaScript Promises. הוא מאפשר לתוכנת WebAssembly לפעול כגנרטור של Promise, ומאפשר לתוכנת WebAssembly לקיים אינטראקציה עם ממשקי API שמכילים Promise. באופן ספציפי, כשמשתמשים ב-JSPI כדי לקרוא ל-API של JavaScript שמכיל Promise, קוד ה-WebAssembly מושהה, והקוד המקורי שקורא לתוכנית WebAssembly מקבל Promise שימומש כשהתוכנית תסתיים.

Language Detector API

Language Detector API הוא JavaScript API שמזהה את השפה של מחרוזת שסופקה. ה-API הזה מבוסס על מודל בסיסי שעבר כוונון עדין כדי לבצע משימות של זיהוי שפה.

בהינתן מחרוזת, Language Detector API מחזיר רשימה מסודרת של השפות שזוהו, יחד עם ציון רמת הביטחון לכל תוצאה.

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

הגבלת מאפיינים וארגומנטים מסוג float ב-SVGMatrix, ב-SVGRect וב-SVGPoint

כשמגדירים מאפיינים או ארגומנטים מסוג float ב-SVGMatrix, ב-SVGRect וב-SVGPoint, אי אפשר להגדיר אותם יותר כ-Infinity או כ-Nan. אם מנסים להגדיר אותו, מוצג חריג של JavaScript, כפי שמוגדר במפרט SVG.

‫Selection API‏ getComposedRanges ו-direction

התכונה הזו כוללת שתי שיטות API חדשות ל-Selection API:

  • Selection.direction שמחזירה את כיוון הבחירה בתור "none", ‏ "forward" או "backward"
  • Selection.getComposedRanges() שמחזירה רשימה של 0 או 1 של 'מורכב'StaticRange

StaticRange מורכב יכול לחצות גבולות של צללים, מה שטווחים רגילים לא יכולים לעשות.

לדוגמה:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

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

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

נוסף שדה למניפסט של אפליקציית אינטרנט scope_extensions שמאפשר לאפליקציות אינטרנט להרחיב את ההיקף שלהן למקורות אחרים.

דוגמה:

{
  "name": "Example",
  "display": "standalone",
  "start_url": "/index.html",
  "scope_extensions": [
    {"type" : "type", "origin" : "https://example.com"}
  ]
}

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

המדיניות מחייבת את המקורות שמופיעים ברשימה לאשר את השיוך לאפליקציית האינטרנט באמצעות קובץ הגדרות .well-known/web-app-origin-association.

{
  "https://sample-app.com/": {
    "scope": "/"
  }
}

WebAssembly Branch Hints

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

‫WebGPU: GPUTextureView לכבילה של externalTexture

עכשיו אפשר להשתמש ב-GPUTextureView כדי ליצור GPUBindGroup עם קישור ל-externalTexture.

‫WebGPU: copyBufferToBuffer overload

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

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

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

מאפיין חסימת עיבוד של קצב פריימים מלא

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

השהיית הפעלה של מדיה ב-iframe שלא עבר רינדור

מוסיפה מדיניות הרשאות "media-playback-while-not-rendered" כדי לאפשר לאתרים שמשובצים בהם רכיבי iframe להשהות את הפעלת המדיה של רכיבי iframe מוטמעים שלא מעובדים – כלומר, המאפיין display שלהם מוגדר כ-none. השינוי הזה אמור לאפשר למפתחים ליצור חוויות ידידותיות יותר למשתמשים ולשפר את הביצועים, כי הדפדפן יטפל בהפעלה של תוכן שלא גלוי למשתמשים.

Rewriter API

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

Writer API

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