Chrome 132 בטא

פורסם: 13 בנובמבר 2024

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

CSS

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

מיקום של עוגן CSS: מאפשר anchor-size() במאפיינים inset ו-margin

במקור, אפשר היה להשתמש ב-anchor-size() רק בנכסי גודל. השינוי במפרט מאפשר להשתמש ב-anchor-size() גם בשוליים ובחלקים הפנימיים של התאים.

מצבי כתיבה לרוחב ב-CSS

תמיכה במילות המפתח sideways-rl ו-sideways-lr במאפיין CSS‏ writing-mode. sideways-rl ו-sideways-lr שימושיים לכתיבת טקסט שאינו CJK בצורה אנכית. הם לא מתאימים לשפות CJK, בניגוד ל-vertical-rl ול-vertical-lr.

Web APIs

צילום של כל המסכים

לצלם את כל המסכים שמחוברים כרגע למכשיר באמצעות getAllScreensMedia().

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

התכונה הזו זמינה רק במחשבים.

אירועים של החלפת מצב בתיבת דו-שיח

כדאי לדעת מתי רכיבי <dialog> נפתחים ונסגרים, וב-popover כבר יש את ToggleEvent שמופעל כשחלון קופץ נפתח או נסגר. בעבר, כדי לזהות מתי נפתח <dialog>, היה צריך לרשום mutation observer כדי לבדוק אם הוא פתוח. עם זאת, מדובר בהרבה עבודה, ויהיה קל יותר להשתמש באירוע.

השינוי הזה משלב את אותו ToggleEvent שמופעל בחלונות קופצים, אבל עבור רכיבי <dialog>: כשקוראים ל-showModal או ל-show, ‏ <dialog> מפעיל ToggleEvent עם newState=open. כשסוגרים <dialog> (באמצעות הטופס, הלחצן או closewatcher), צריך לשלוח ToggleEvent עם newState=closed.

תיעוד רכיבים

בהינתן סרטון MediaStreamTrack שהושג באמצעים קיימים כדי להפעיל צילום של כרטיסייה, Element Capture מאפשר לשנות את הטראק כך שיתבצע צילום רק של עץ משנה של ה-DOM החל מרכיב נתון.

ממשק ה-API דומה ל-Region Capture API, אבל הוא מאפשר גמישות רבה יותר לאפליקציות, כי תוכן שחוסם ותוכן שחוסמים אותו לא נכללים בצילום.

תכונות ההרשאה של FedCM

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

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

‫FedCM Mode API ו-Use Other Account API

שני תוספים חדשים ל-FedCM:

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

אחזור: Request.bytes() ו-Response.bytes()

מוסיפים שיטה bytes() לממשקי Request ו-Response, שמחזירה הבטחה שמושלמת עם Uint8Array. ל-Request ול-Response יש שיטה arrayBuffer(), אבל אי אפשר לקרוא ישירות ממאגר. כדי לקרוא את הקובץ, צריך ליצור תצוגה, למשל Uint8Array. השיטה bytes() משפרת את הארגונומיה של קבלת גוף הבקשה והתגובה.

גישה למערכת קבצים ב-Android וב-WebView

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

הגישה למערכת הקבצים הושקה במחשבים ב-Chrome 86, וב-Chrome 132 היא זמינה ב-Android וב-WebView.

התעלמות מ-Strict-Transport-Security עבור מארח מקומי

Strict-Transport-Security כותרות תגובה של STS עלולות לגרום לבעיות בשרתי אינטרנט של localhost, כי STS חל על כל המארח, בכל היציאות. הדבר גורם לבעיות תאימות למפתחי אתרים שבודקים אתרים באופן מקומי. היא משפיעה גם על משתמשי קצה שמשתמשים בחבילות תוכנה שבדרך כלל מפעילות שרתי אינטרנט של localhost מסיבות זמניות. לדוגמה, תקשורת של טוקן אימות מתוך התחברות לאתר לחבילת תוכנה מקומית. אם מאזין מקומי אחד מגדיר את Strict-Transport-Security בתגובה ל-localhost, ההגדרה חלה על כל הבקשות הבאות ל-localhost, ללא קשר ליציאה.

ב-Chrome 132 הבעיה הזו נפתרת על ידי התעלמות מכותרות Strict-Transport-Security בתגובות מכתובות URL של localhost.

קונטיינרים של גלילה ניתנים למיקוד במקלדת

ההשקה של התכונה הזו (מגרסה Chrome 130) הופסקה בגלל רגרסיה בנגישות. הבעיה הזו תוקנה והתכונה ממשיכה להיות זמינה עם Chrome 132.

רשימת ההיתרים שמוגדרת כברירת מחדל במדיניות ההרשאות של Private State Token API

הגישה אל Private State Token API מוגבלת על ידי תכונות של Permissions Policy. ב-Chrome 132, רשימת ההיתרים שמוגדרת כברירת מחדל לתכונות private-state-token-issuance ו-private-state-token-redemption עודכנה מ-self ל-* (wildcard).

PushMessageData::bytes()

ממשק PushMessageData דומה לממשק Body, שעבר שינוי מוקדם יותר השנה עם הוספה של שיטת bytes() חדשה, בהתאם לעיקרון שלפיו ממשקי API צריכים בדרך כלל למכור מאגרי בייטים בתור Uint8Arrays. גרסה Chrome 132 מתיישרת עם ממשק Body על ידי מתן גישה ל-bytes() בממשק PushMessageData.

שאילתות שמורות ב-sharedStorage.selectURL

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

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

בעבר, קריאה ל-showPopover() או ל-showModal() ב-popover או בתיבת דו-שיח שנמצאים במסמך לא פעיל הייתה נכשלת ללא הודעה. לא תופעל חריגה, אבל מכיוון שהמסמך לא פעיל, לא יוצגו חלון קופץ או תיבת דו-שיח. החל מגרסה Chrome 132, במצבים האלה מוצגת השגיאה InvalidStateError.

WebAuthn Signal API

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

מידע נוסף על Signal API למפתחות גישה ב-Chrome למחשב

‫WebGPU: מיזוג של טקסטורות של מספרים ממשיים (float) ב-32 ביט

התכונה float32-blendable GPU מאפשרת לערבב טקסטורות של GPU בפורמטים r32float,‏ rg32float ו-rgba32float.

‫WebGPU: חשיפת GPUAdapterInfo מ-GPUDevice

המאפיין adapterInfo של GPUDevice חושף את אותו GPUAdapterInfo כמו האובייקט GPUAdapter.

‫WebGPU: שימוש בתצוגת טקסטורה

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

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

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

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

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

Document-Isolation-Policy

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

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

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

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

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

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

navigator.storage נוצר כEventTarget לאירוע Storage Pressure, שלא עבר את שלב אב הטיפוס. הקוד המת הזה יוסר, ולכן navigator.storage לא יאריך יותר את EventTarget.

הסרת ממשקי API קבועים מראש של HTMLVideoElement מסך מלא

ממשקי ה-API הקבועים מראש של HTMLVideoElement במסך מלא הוצאו משימוש ב-Chrome

הם הוחלפו על ידי Element.requestFullscreen() API, שהושק ללא קידומת ב-Chrome 71 בשנת 2018. החל משנת 2024, רוב הדפדפנים תומכים בממשקי ה-API ללא הקידומת כבר כמה שנים.

ב-Chrome 132, ההגדרות הבאות הוסרו מ-HTMLVideoElement:

  • המאפיין webkitSupportsFullscreen.
  • המאפיין webkitDisplayingFullscreen.
  • השיטה webkitEnterFullscreen().
  • השיטה webkitExitFullscreen(). שימו לב לשימוש השונה באותיות רישיות באות S במילה FullScreen.
  • השיטה webkitEnterFullScreen().
  • השיטה webkitExitFullScreen().

השיטות האלה הן עכשיו רק כינויים ל-API המודרני. השימוש בהן ירד בהדרגה לאורך השנים.