Chrome 136 בטא

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

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

CSS וממשק משתמש

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

מאפיין dynamic-range-limit של CSS

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

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

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

כדי למנוע דליפות של היסטוריית הגלישה של המשתמשים, רכיבי העוגן מקבלים את הסגנון :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 לא תוסר.

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

מצב מושעה של AudioContext

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

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

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

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

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

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

Captured Surface Control API

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

CapturedSurfaceResolution

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

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

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

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

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

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

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

סרגלי גלילה חלקים.

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

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

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

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

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

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

רישום ביומן של כתובות IP ודיווח עליהן ב-Chrome Enterprise

כדי לשפר את יכולות המעקב אחר אבטחה ואת התגובה לתקריות, אנחנו ב-Chrome Enterprise אוספים כתובות 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 יתקבלו תוצאות עיבוד שונות מהדף שבו נעשה שימוש בפלט שלו. התכונה הזו מוסיפה מאפיין IDL מסוג lang ל-CanvasTextDrawingStyles כדי לתת שליטה ישירה בשפה של ציור הטקסט והמדדים.

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

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

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

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

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

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

RegExp.escape

RegExp.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 כך שיהיה בו סוג כפול עבור 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.

יצירה מותנית של Web Authentication (שדרוגים של מפתחות גישה)

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

WebGPU: מאפיין GPUAdapterInfo isFallbackAdapter

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

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

ב-Chrome 136 אפשר להביע הסכמה לגרסאות המקור לניסיון החדשות הבאות.

Audio Output Devices API: ‏ setDefaultSinkId()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

מסירים את HTMLFencedFrameElement.canLoadOpaqueURL().

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