Chrome 136

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

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

HTML ו-DOM

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

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

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

CSS וממשק משתמש

הנכס dynamic-range-limit

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

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

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

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

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

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

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

הגרסה עם הקידומת -webkit- לא תוסר.

מסמכי MDN | מעקב אחרי באג מס' 376381169 | הרשומה ב-ChromeStatus.com | מפרט

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

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

לכן, החל מ-Chrome 136, הערך של attr(data-foo string) הופך ל-attr(data-foo raw-string).

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

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

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

מעקב אחרי באג מס' 372475301 | הרשומה ב-ChromeStatus.com

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

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

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

עבור מצביעים שלא תועדו, היעד click לא ישתנה.

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

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

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

המידע מקודד בתור תגובות קסם.

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

שילוב של מפעיל הניווט במפתח המחיצה של מטמון ה-HTTP

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

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

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

קהל מוגן: כלים להמרת טקסט

סקריפטים לבידינג ולניקוד של קהלים מוגנים עם ממשק ל-WebAssembly צריכים להמיר ביעילות נתונים מסוג מחרוזת למערך בייטים (ומערך בייטים למחרוזת) (לדוגמה, כדי להעביר מחרוזות אל WebAssembly וממנו באמצעות ArrayBuffer של 'memory'). כך אפשר להשתמש בשתי פונקציות עצמאיות, protectedAudience.encodeUtf8 ו-protectedAudience.decodeUtf8, כדי לבצע את המשימות האלה בצורה יעילה פי עשרות מונים בהשוואה לביצוען ב-JavaScript.

הרשומה ב-ChromeStatus.com

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));

הרשומה ב-ChromeStatus.com | מפרט

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

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

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

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

ל-ProgressEvent יש את המאפיינים loaded ו-total שמציינים את ההתקדמות, והסוג שלהם הוא עכשיו unsigned long long.

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

הרשומה ב-ChromeStatus.com | מפרט

פרטיות ואבטחה

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

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

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

הפחתת הדיווח על טביעות אצבע בפרטים של כותרת Accept-Language

הפחתת כמות המידע שחשוף במחרוזת הערך של הכותרת Accept-Language בבקשות HTTP וב-navigator.languages. במקום לשלוח רשימה מלאה של השפות המועדפות על המשתמש בכל בקשת HTTP, Chrome שולח עכשיו את השפה המועדפת ביותר על המשתמש בכותרת Accept-Language.

מעקב אחרי באג מס' 1306905 | הרשומה ב-ChromeStatus.com

זהויות

עדכונים ב-FedCM

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

ב-Chrome 136 גם הוסרה התמיכה בהוספת חשבון במצב פסיבי של FedCM. התכונה הזו מאפשרת להציג את הלחצן שימוש בחשבון אחר לצד חשבונות IdP אחרים בבורר. בשלב הזה, אף אחד לא משתמש בתכונה הזו, ושיחות בנושא חוויית המשתמש הובילו אותנו להאמין שהתמיכה בה תוביל לתהליך מורכב יותר ללא תועלת רבה. התכונה הזו עדיין תפעל במצב פעיל של FedCM.

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

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

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

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

תמונות ומדיה

AudioContext מצב מושהה

הוספת המצב "interrupted" ל-AudioContextState. המצב החדש הזה מאפשר ל-User Agent להשהות את ההפעלה במהלך גישה בלעדית לאודיו (VoIP) או כשמכסה המחשב הנייד סגור.

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

שליטה בשטח המצולם

ממשק API לאינטרנט שמאפשר לאפליקציות אינטרנט:

  1. העברת אירועי גלגל לכרטיסייה שצולמה.
  2. לקרוא ולשנות את רמת הזום של כרטיסייה שצולמה.

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

CapturedSurfaceResolution

חשיפת יחס הפיקסלים של המשטח שמוצג במהלך שיתוף המסך.

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

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

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

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

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

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

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

תמיכה בקידוד פלטפורמה של HEVC נוספה ל-WebCodecs ב-Chromium M130. כתוצאה מכך, נוספה תמיכה ב-MediaRecorder API ב-Chromium. ה-API תומך עכשיו גם בסוגים של מערבלים מסוג MP4 וגם בסוגים של מערבלים מסוג Matroska עם מפרט שונה של סוגי mime של HEVC ו-H.264. קידוד HEVC נתמך רק אם המכשיר של המשתמש ומערכת ההפעלה שלו מספקים את היכולות הנדרשות.

הרשומה ב-ChromeStatus.com

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

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

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

WebGPU: מאפיין GPUAdapterInfo isFallbackAdapter

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

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

שינויים בדפדפן

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

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

סרגליות גלילה של Fluent שלא מונחות על גבי שכבת-על יופעלו כברירת מחדל ב-Linux וב-Windows. השינוי הזה חל גם על Linux, כי עיצוב פס ההזזה של Chromium ב-Linux תמיד היה תואם לעיצוב ב-Windows. אנחנו עדיין מחליטים איך לחשוף את האפשרות להפעיל את פס ההזזה של Fluent.

מעקב אחרי באג מס' 1292117 | הרשומה ב-ChromeStatus.com

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

Audio Output Devices API: ‏ setDefaultSinkId()

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

גרסת Origin | הרשומה ב-ChromeStatus.com | מפרט

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

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

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

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

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

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

זהו לא שינוי שחשוף לאינטרנט.

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

גרסת Origin Trial | באג מעקב מס' 389726691 | רשומה ב-ChromeStatus.com

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

הסרה של HTMLFencedFrameElement.canLoadOpaqueURL()

השיטה HTMLFencedFrameElementcanLoadOpaqueURL() הוחלפה ב-navigator.canLoadAdAuctionFencedFrame() בשנת 2023, והקריאה אליה גרמה לאזהרה במסוף על הוצאה משימוש מאז שהיא מפנה ל-API החדש. השיטה הזו תוסר מ-Chrome 136.

הרשומה ב-ChromeStatus.com