Chrome 148

תאריך הגרסה היציבה: 5 במאי 2026

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

CSS וממשק משתמש

שאילתות CSS לגבי מאגרי תגים שכוללים רק שמות

אפשר להריץ שאילתה על קונטיינר של שאילתת CSS רק על סמך container-name, ולא צריך להגדיר container-type לקונטיינר:

#container {
  container-name: --foo;
}
@container --foo {
  input { background-color: green; }
}
<div id="container">
  <div><input></div>
</div>

בעבר, היה צריך לציין סוג מאגר בנוסף לשם ב-@container.

באג למעקב מס' 40287550 | ערך ב-ChromeStatus.com | מפרט

כלל at: ‏ זיהוי תכונות CSS

התכונה הזו מוסיפה פונקציה at-rule() ל-CSS @supports שמאפשרת למפתחים לזהות תמיכה בכללי CSS מסוג at-rules.

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

פתיחת עיצוב הטקסט ורינדור הגליפים בפורמט הגופן avar2

גרסה 2 של טבלת avar (Axis Variations) מאפשרת למעצבי גופנים ליצור גופנים משתנים עם שליטה טובה יותר באינטרפולציה. בעוד שמפרט הגופן המשתנה המקורי מטפל בצירים באופן עצמאי, avar2 מאפשר לצירים להשפיע זה על זה. כך נוצרים גופנים שקל יותר ליוצרי תוכן להשתמש בהם, והם מאפשרים אחסון קומפקטי.

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

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

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

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

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

מילת המפתח revert-rule

מילת המפתח revert-rule מחזירה את הקסקדה לכלל הקודם, בדומה לאופן שבו revert-layer מחזירה את הקסקדה לשכבה הקודמת. לדוגמה:

div { color: green; }
div { color: revert-rule; /* Effectively green */ }

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

div {
  display: if(style(--layout: fancy): grid; else: revert-rule);
}

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

טעינה מדורגת של רכיבי וידאו ואודיו

המאפיין loading נוסף לרכיבים <video> ו-<audio>, ומאפשר למפתחים לדחות את טעינת משאבי המדיה עד שהרכיב קרוב לאזור התצוגה באמצעות loading="lazy". ההתנהגות הזו תואמת לטעינה המדורגת הקיימת של רכיבי <img> ו-<iframe>, וכך משפרת את ביצועי טעינת הדף ומצמצמת את השימוש בחבילת הגלישה.

Tracking bug #469111735 | ChromeStatus.com entry | Spec

text-decoration-skip-ink: all

הוספנו תמיכה בערך all למאפיין text-decoration-skip-ink של CSS.

בנכס text-decoration-skip-ink כבר יש תמיכה ב-auto וב-none. הערך all מרחיב את האפשרות הזו על ידי החלת דילוג על דיו על כל הגליפים ללא תנאי —כולל תווים של CJK—בעוד שהערך auto משאיר את התווים של CJK ללא דילוג כי דילוג על דיו נוטה ליצור תוצאות ויזואליות לא רצויות עבור כתבים אידיאוגרפיים במיקומים אופייניים של קו תחתון.

בעזרת text-decoration-skip-ink: all, מפתחים שביצעו התאמות ב-text-underline-position או ב-text-underline-offset כדי למנוע התנגשות עם גליפים של CJK יכולים גם להביע הסכמה מפורשת לדילוג על דיו עבור התווים האלה.

Tracking bug #40675832 | ChromeStatus.com entry | Spec

הגדרת dropEffect בצורה נכונה לאירועים dragEnter, dragLeave ו-dragOver

במפרט של גרירה ושחרור, המאפיין dataTransfer של האובייקט dropEffect חייב לקבל ערכים מסוימים שנקבעו מראש ב-dragEnter, dragOver ו-dragLeave. לגרור הזנה ולגרור מעל צריך להיות dropEffect בהתאם ל-effectAllowed הנוכחי, ול-dragLeave צריך להיות תמיד dropEffect none dropEffect. נכון לעכשיו, Chromium לא פועל בהתאם לכללים האלה. עם השקת התכונה הזו, Chromium יתחיל להתייחס למפרט ולהקצות את הערכים הנכונים לתכונה הזו, כך שמפתחי אתרים יוכלו להתחיל להסתמך עליה.

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

ביטול אירועי הצבעה בהתחלת גרירה

לפי מפרט ה-HTML, כשמתחילה גרירה, סוכן המשתמש צריך לשלוח את האירועים המתאימים למקור הגרירה כדי לציין שזרם אירועי מצביע הסמן הסתיים, ושהוא לא צריך לצפות לאירועים נוספים מהמצביע הזה. הקוד הזה הוטמע באופן חלקי לאירועי עכבר והוטמע באופן מלא לגרירות במגע ב-Android. אנחנו פועלים כדי לעמוד בדרישה הזו בכל הפלטפורמות האחרות. בפועל, המשמעות היא שאחרי שהתחילה גרירה, מקור הגרירה יקבל עכשיו את האירועים pointercancel, pointerout ו-pointerleave כדי לציין שזרם האירועים הנוכחי הסתיים.

Tracking bug #452372355 | ChromeStatus.com entry | Spec

יכולות

התאמה לשוק המקומי של המניפסט

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

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

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

אינטרנט ב-Android

Web Serial API ב-Android

‫Web Serial API מספק ממשק לחיבור למכשירים עם יציאה טורית, דרך יציאה טורית במערכת של המשתמש או דרך מכשירי USB ו-Bluetooth ניידים שמדמים יציאה טורית. עכשיו יש תמיכה ב-Android.

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

מידע נוסף זמין במדריך Web Serial API באתר web.dev ובמפרט Web Serial.

Tracking bug #365514951 | ChromeStatus.com entry

SharedWorker ב-Android

במשך זמן רב, SharedWorker הושבת ב-Android בגלל חששות לגבי מחזור החיים הבלתי צפוי של התהליך. יכול להיות שמופעים של SharedWorker יסתיימו באופן בלתי צפוי, בלי להודיע על כך למשתמשים או למפתחי אתרים.

עם זאת, בדיון שנערך לאחרונה ב-GitHub (אפשר לעיין בדיון ב-GitHub) עלה שהאופי הבלתי צפוי של מחזור החיים של תהליך SharedWorker אולי לא מהווה בעיה משמעותית כמו שחשבו קודם. בהתאם לכך, אנחנו מפעילים מחדש את SharedWorker ב-Android בזמן שאנחנו בודקים את ההתנהגות הזו כדי להבטיח חוויה יציבה ומהימנה.

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

Web APIs

WebGPU: linear_indexing תכונה

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

נוספו שני ערכים מובנים חדשים של shader לחישוב, לשיפור איכות החיים של המשתמש. הם מיושמים בכל ה-backends (כ-polyfills של ערכים מובנים קיימים).

Tracking bug #482840564 | ChromeStatus.com entry | Spec

מצב ממשק משתמש מיידי לאימות באינטרנט

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

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

קבלת יכולות של אישור תשלום מאובטח

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

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

באג למעקב מס' 484043990 | ערך ב-ChromeStatus.com | מפרט

משך חיים מורחב של workers משותפים

בעדכון הזה נוספה אפשרות חדשה, extendedLifetime: true, לבונה SharedWorker. האפשרות החדשה הזו מבקשת שה-worker המשותף יישאר פעיל גם אחרי שכל הלקוחות הנוכחיים יבטלו את הטעינה. כך דפים יכולים לבצע עבודה אסינכרונית שדורשת JavaScript אחרי שהדף נטען, בלי להסתמך על service worker.

Tracking bug #400473072 | ChromeStatus.com entry | Spec

Prompt API

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

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

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

Tracking bug #417526788 | ChromeStatus.com entry | Spec

רשת וקישוריות

כללים של IDNA ContextJ

‫IDNA הוא המנגנון לשימוש בתווים שאינם ASCII בשמות דומיינים. הפונקציה מקודדת כתובת URL כמו http://네이버.한국/ ל-http://xn--950bt9s8xi.xn--3e0b707e/ (הפניה אוטומטית אל naver.com).

הגדרת כתובת ה-URL מגדירה את הדגל CheckJoiners, שמאפשר את הכללים ContextJ ב-IDNA2008. ההגדרה הזו אוסרת על השימוש בתווים ZWNJ (U+200C ZERO WIDTH NON-JOINER) ו-ZWJ (U+200D ZERO WIDTH JOINER) ברוב המקומות בכתובות URL. ההטמעה מעבירה את האפשרות UIDNA_CHECK_CONTEXTJ ל-ICU, שבו מיושם הכלל הזה.

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

שימוש חוזר בתמונות ללא חנות בהקצאה מחדש של אותו מקור

ההגדרה מאפשרת שימוש חוזר בתמונה זמינה באותו מסמך כדי לעקוף את הטעינה מחדש של Cache-Control: no-store כשאותו ערך src מוקצה מחדש לאלמנט <img>. בעבר, Blink היה מאחזר מחדש את התמונה גם אם היא כבר פוענחה והייתה זמינה במסמך. ההתנהגות הזו תואמת להתנהגות הקיימת של Gecko ו-WebKit.

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

ביצועים

ContentType ב-Resource Timing

מוסיף את השדה contentType ל-PerformanceResourceTiming כדי להכיל מחרוזת שמתאימה לכותרת ה-HTTP של Content-Type של המשאב שאוחזר, כפי שהוחזר על ידי השרת.

באג למעקב #1366706 | רשומה ב-ChromeStatus.com | מפרט

WebRTC Datachannel: Always negotiate data channels

מטמיע תוסף WebRTC‏ alwaysNegotiateDataChannels שמגדיר דרך לאפליקציה לנהל משא ומתן על ערוצי נתונים בהצעת ה-SDP לפני יצירת ערוץ נתונים. הוא גם מנהל משא ומתן על קטע הנתונים m= לפני קטעי אודיו או וידאו m, ומשתמש בו כ'קטע m= עם תג של הצד המציע' עבור BUNDLE.

משמעות השינוי:

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
const offer = await pc.createOffer();

תיצור הצעה עם שורת m של אפליקציה ב-SDP, וגם:

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();

תיצור הצעה שבה מתנהל משא ומתן על שורת m של אפליקציה, ואחריה שורת m של אודיו ב-SDP.

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

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

סקריפטים של מודולים הצהרתיים של CSS

סקריפטים של מודולים הצהרתיים של CSS הם הרחבה של סקריפטים קיימים של מודולים של CSS שמבוססים על סקריפטים. הם מאפשרים למפתחים לשתף גיליונות סגנונות הצהרתיים עם שורשי צל, כולל שורשי צל הצהרתיים. מפתחים יכולים להגדיר מודולים של סגנון מוטבע באמצעות <style type="module" specifier="foo"> ולהחיל מודול הצהרה על Declarative Shadow DOM באמצעות הפניה למציין או לכתובת URL, כמו <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

גרסת ניסיון של Origin | באג למעקב מס' 448174611 | ערך ב-ChromeStatus.com | מפרט

Container Timing API

Container Timing API מאפשר לעקוב אחרי הזמן שחולף מהרגע שבו קטעים עם אנוטציות ב-DOM מוצגים על המסך ועד שהם מסיימים את הצביעה הראשונית שלהם. מפתחים יכולים לסמן חלקים משניים של ה-DOM באמצעות מאפיין containertiming (בדומה ל-elementtiming ב-Element Timing API) ולקבל רשומות ביצועים כשהחלק הזה עובר עיבוד בפעם הראשונה. ממשק ה-API הזה יאפשר למפתחים למדוד את התזמון של רכיבים שונים בדפים שלהם.

ניסוי מקור | באג למעקב מס' 382422286 | ערך ב-ChromeStatus.com | מפרט

רכיב התקנה של אפליקציית אינטרנט ב-HTML

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

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

משך הזמן של סגנון Long Animation Frames

הוספנו מידע על styleDuration ועל forcedStyleDuration ל-Long Animation Frame API, כדי לאפשר למפתחים להבחין בין הזמן שנדרש לעיצוב לבין הזמן שנדרש לפריסה.

גרסת ניסיון של מקור | באג למעקב מס' 476826067 | ערך ב-ChromeStatus.com | מפרט

HTML ב-Canvas

התכונה HTML-in-canvas מאפשרת להתאים אישית את העיבוד של HTML באמצעות canvas עם שלושה פרימיטיבים חדשים: מאפיין להפעלת רכיבי canvas (layoutsubtree), שיטות לציור רכיבי צאצא (2d: drawElementImage, webgl: texElementImage2D, webgpu: copyElementImageToTexture) ואירוע paint שמופעל כדי לטפל בעדכונים.

ניסוי מקור | באג למעקב מס' 500967896 | ערך ב-ChromeStatus.com | מפרט

רשימות היתרים לחיבורים

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

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

ניסוי מקור | באג למעקב מס' 447954811 | ערך ב-ChromeStatus.com | מפרט

פרמטרים לדגימת Prompt API

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

ההטמעה הראשונה מוסיפה את הפרמטרים temperature ו-topK.

Origin Trial | Tracking bug #496663356 | ChromeStatus.com entry | Spec

ניתוח הוראות עיבוד ב-HTML

הוראות עיבוד (תחביר: <?target data>) הן מבנה DOM קיים, שמוצג ב-XML, שמאפשר לאובייקטים של צמתים שהם לא רכיבים אבל יכולים להיות בעלי משמעות סמנטית כלשהי לעיבוד של מסמך.

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

Tracking bug #481087638 | ChromeStatus.com entry

OpaqueRange

OpaqueRange מייצג טווח פעיל של טקסט בערך של רכיב טופס, כמו <textarea> או <input> מבוסס-טקסט, כך שמפתחים יכולים לעבוד עם טקסט של ערך באמצעות ממשקי API דומים לטווח.

הוא מאפשר פעולות כמו getBoundingClientRect(),‏ getClientRects() ושילוב עם CSS Custom Highlight API לממשק משתמש כמו הצעות מוטבעות, הדגשות וחלונות קופצים מעוגנים. היא שומרת על האנקפסולציה על ידי חשיפה של היסטים של ערכים בלבד, ומחזירה null עבור startContainer ו-endContainer, כך שנקודות קצה של DOM ומבנה פנימי לא נחשפות.

תקופת ניסיון של תכונה | באג למעקב מס' 421421332 | רשומה ב-ChromeStatus.com