Chrome 136 בטא

תאריך פרסום: 3 באפריל 2025

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

CSS וממשק משתמש

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

מאפיין CSS‏ dynamic-range-limit

מאפשר לדף להגביל את הבהירות המקסימלית של תוכן באיכות HDR.

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

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

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

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

מידע נוסף על השיפורים האלה בפרטיות של קישורי :visited

שינוי השם של סוג string attr() ל-raw-string

קבוצת העבודה של CSS החליטה להחליף את סוג string attr() ב-raw-string.

לכן, בוצע שינוי בתחביר של attr() ב-Chrome, כך ש-attr(data-foo string) יהיה עכשיו attr(data-foo raw-string).

חלופה var() שלא תלויה בסוג

החלק של הגיבוי בפונקציה var() לא מאומת מול הסוג של המאפיין המותאם אישית שאליו מתבצעת ההפניה.

ללא קידומת print-color-adjust

המאפיין print-color-adjust מאפשר להתאים את הצבעים בדפי אינטרנט מודפסים. התכונה הזו זהה ל--webkit-print-color-adjust שכבר נתמכת ב-Chrome, אבל עם שם סטנדרטי. הגרסה עם הקידומת -webkit לא מוסרת.

Web APIs

מצב מופרע של AudioContext

הוספת מצב "interrupted" ל-AudioContextState. המצב החדש הזה מאפשר ל-UA להשהות את ההפעלה בתרחישים האלה ולאפשר לאפליקציות אינטרנט להגיב בצורה מתאימה.

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

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

בנוסף, noopener נאכף עכשיו על ניווטים ברמה העליונה שמופעלים על ידי רכיב ה-Renderer לכתובות URL של Blob, שבהן האתר התואם הוא מאתר אחר ולא מהאתר ברמה העליונה שמבצע את הניווט. השינוי הזה מיישר קו בין Chrome לבין התנהגות דומה ב-Safari, והמפרטים הרלוונטיים עודכנו בהתאם.

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

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

Captured Surface Control API

Captured Surface Control API מאפשר לאפליקציות אינטרנט להעביר אירועים של גלגל העכבר לכרטיסייה שצולמה, ולקרוא ולשנות את רמת הזום של כרטיסייה שצולמה.

CapturedSurfaceResolution

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

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

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

רמזים מפורשים להידור באמצעות תגובות קסם

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

עדכונים ב-FedCM: תמיכה בכמה ספקי זהויות (IdP), הסרת התכונה 'הוספת חשבון נוסף' במצב פסיבי

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

סרגלי גלילה שוטפים.

התכונה הזו מודרנית את פסי הגלילה של Chrome (גם אלה שמוצגים בשכבת-על וגם אלה שלא) ב-Windows וב-Linux, כדי להתאים לשפת העיצוב Fluent של Windows 11. פסי גלילה שאינם שכבת-על יופעלו כברירת מחדל ב-Linux וב-Windows. השינוי הזה חל גם על Linux, כי העיצוב של סרגל הגלילה של Chrome ב-Linux תמיד היה זהה לזה שמופיע ב-Windows.

תמיכה בקודק H265 ‏ (HEVC) ב-WebRTC

החל מ-Chrome 136,‏ HEVC יצטרף ל-VP8,‏ H.264,‏ VP9 ו-AV1 כקודקים נתמכים ב-WebRTC. אפשר יהיה לשלוח שאילתות לתמיכה באמצעות MediaCapabilities API.

לקודק החדש הזה יש יעילות דחיסה גבוהה יותר (איכות גבוהה יותר לכל קצב העברת נתונים) בהשוואה לקודקים מהדור הקודם כמו VP8 ו-H264, והוא נהנה מתמיכה חזקה מאוד בחומרה כבר יותר מעשור. המשמעות היא שחיי הסוללה מתארכים והסיכון לבעיות בביצועים פוחת. בנוסף, בהתאם לביצועים של מקודד החומרה הבסיסי, השימוש ב-VP9 משפר בדרך כלל את חוויית הצפייה במקרים שבהם מקודדי החומרה VP9 או AV1 לא זמינים.

עדכונים לגבי תמיכה בקודק H26x ב-MediaRecorder

‫MediaRecorder API תומך עכשיו בקידוד HEVC, כולל מחרוזת קודק hvc1.*, ומוסיף קודקים חדשים (hev1.* ו-avc3.*) שתומכים בווידאו ברזולוציה משתנה בפורמט MP4. נוספה תמיכה בקידוד פלטפורמת HEVC ב-WebCodecs ב-Chrome 130. בנוסף, נוספה תמיכה ב-MediaRecorder API ב-Chromium. ה-API תומך עכשיו גם ב-MP4 וגם בסוגים של Matroska muxer עם מפרטים שונים של סוגי MIME של HEVC ו-H.264. קידוד HEVC נתמך רק אם המכשיר ומערכת ההפעלה של המשתמש מספקים את היכולות הנדרשות.

רישום ודיווח של כתובות IP ב-Chrome Enterprise

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

שילוב של יוזם הניווט במפתח החלוקה של מטמון ה-HTTP

הסכימה של מפתחות מטמון HTTP ב-Chrome עודכנה כך שתכלול is-cross-site-main-frame-navigation ערך בוליאני כדי לצמצם את הסיכון להתקפות של דליפת נתונים באתרים שונים שכוללות ניווט ברמה העליונה. באופן ספציפי, זה ימנע התקפות חוצות אתרים שבהן תוקף יכול להתחיל ניווט ברמה העליונה לדף מסוים ואז לנווט למשאב שידוע שהוא נטען על ידי הדף כדי להסיק מידע רגיש מתוך תזמון הטעינה. השינוי הזה גם משפר את הפרטיות, כי הוא מונע מאתר זדוני להשתמש בניווטים כדי להסיק אם משתמש ביקר בעבר באתר מסוים.

שפות התמיכה ב-CanvasTextDrawingStyles

רכיב ה-DOM‏ <canvas>, כמו כל רכיבי ה-DOM, מקבל מאפיין lang שמשמש להגדרת טיפול ספציפי לשפה בבחירת גופן (כאשר לגופנים יש גליפים ספציפיים ללוקאל). הדפדפנים מתייחסים למאפיין הזה. עם זאת, כשיוצרים OffscreenCanvas, אין אפשרות להגדיר מידע על הלוקאל. יכול להיות שזה יוביל למצב שבו OffscreenCanvas יפיק תוצאות שונות מאלה שיוצגו ב-Canvas שבו נעשה שימוש בפלט שלו. התכונה הזו מוסיפה מאפיין lang IDL ל-CanvasTextDrawingStyles כדי לאפשר שליטה ישירה בשפה של ציור הטקסט והמדדים.

דוחות של מדיניות ההרשאות לגבי תגי iframe

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

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

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

‫Private Aggregation API: דיווח על שגיאות מצטברות

יש מגוון תנאי שגיאה שיכולים להתרחש כשמשתמשים ב-Private Aggregation API. לדוגמה, יכול להיות שהתקציב לפרטיות יסתיים, ולכן לא יהיה אפשר להוסיף עוד היסטוגרמות. התכונה הזו מאפשרת למפתחים לרשום תוספות להיסטוגרמה שיישלחו רק אם מתרחשת שגיאה מסוג מסוים. התכונה הזו תומכת במדידת התדירות של תנאי השגיאה ובפיצול המדידות האלה לפי מאפיינים רלוונטיים שצוינו על ידי המפתח (לדוגמה, גרסה של קוד שפריסה). יכול להיות שהשגיאות עצמן מכילות מידע שמשותף בין אתרים, ולכן אנחנו לא יכולים פשוט להציג אותן בדף למשתמשים שלא מופעלים אצלם קובצי Cookie של צד שלישי. במקום זאת, התכונה הזו משתמשת מחדש בצינורות הדיווח הקיימים של נתונים מצטברים עם רעש באמצעות Aggregation Service.

RegExp.escape

RegExp.escape היא method סטטית שמקבלת מחרוזת ומחזירה גרסה עם תווי escape שאפשר להשתמש בה כתבנית בתוך ביטוי רגולרי. לדוגמה:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.

console.log(ourLongText.replace(re));

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

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

מדיניות מחמירה בנושא מקור זהה עבור Storage Access API

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

צריך לעדכן את ProgressEvent כדי להשתמש בסוג double עבור loaded ו-total

לרכיב ProgressEvent יש מאפיינים loaded ו-total שמציינים את ההתקדמות, והסוג שלהם הוא unsigned long long. בעזרת התכונה הזו, הסוג של שני המאפיינים האלה משתנה ל-double, מה שמעניק למפתח יותר שליטה על הערך. לדוגמה, המפתחים יכולים עכשיו ליצור ProgressEvent עם total של 1 ועם loaded שעולה מ-0 ל-1 בהדרגה. ההתנהגות הזו תואמת להתנהגות ברירת המחדל של רכיב ה-HTML‏ <progress> אם לא מציינים את מאפיין max.

שימוש ב-DOMPointInit עבור getCharNumAtPosition, isPointInFill, isPointInStroke

השינוי הזה מיישר קו בין קוד Chromium לבין המפרט העדכני של W3C עבור SVGGeometryElement ו-SVGPathElement מבחינת השימוש ב-DOMPointInit על פני SVGPoint עבור getCharNumAtPosition, isPointInFill ו-isPointInStroke.

יצירה מותנית של אימות באינטרנט (שדרוגים של מפתחות גישה)

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

WebGPU: מאפיין GPUAdapterInfo isFallbackAdapter

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

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

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

‫Audio Output Devices API: ‏ setDefaultSinkId()

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

איך מאפשרים לאפליקציות אינטרנט להבין את התזמונים של ביצועים בימודליים

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

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

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

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

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

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

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

עדכון ההטמעה של רינדור טקסט ב-Canvas

החלקים הפנימיים של measureText(), fillText() ו-strokeText() של CanvasRenderingContext2D ו-OffscreenCanvasRenderingContext2D הוחלפו בהטמעה חדשה שתומכת טוב יותר בטקסט מימין לשמאל ובשמירת נתונים במטמון. יכול להיות שהשינוי הזה ישפיע על הביצועים ועל הפלט של טקסט דו-כיווני, ולכן תקופת ניסיון למקור הזה מאפשרת לאפליקציות עם הרבה טקסט ב-Canvas לנסות את ההטמעה החדשה ולדווח על בעיות שהן עלולות להיתקל בהן.

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

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

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

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

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

הסרה של HTMLFencedFrameElement.canLoadOpaqueURL().

canLoadOpaqueURL() הוחלף ב-navigator.canLoadAdAuctionFencedFrame() ב-2023, ומאז כל קריאה אליו מציגה אזהרה במסוף לגבי הוצאה משימוש שמפנה את המפתחים אל ה-API החדש. אין טעם לצרף את הפונקציה ל-HTMLFencedFrameElement, והיא צריכה להיות מצורפת לאובייקט navigator (שכולל שיטות אחרות של מסגרות בלי שיתוף נתונים ומכרזים של מודעות).