כמעט בכל גרסה של Chrome אנחנו רואים מספר משמעותי של עדכונים שיפורים במוצר, בביצועים וביכולות של האינטרנט פלטפורמה. במאמר הזה נתאר את ההוצאה משימוש וההסרות ב-Chrome 60, שנמצא בגרסת בטא ב-8 ביוני. הרשימה הזו עשויה להשתנות בכל שלב.
אבטחה
עכשיו נדרש מקור מאובטח ל-crypto.subtle
Web Crypto API
שנתמכת מאז ש-Chrome 37 תמיד עבד על
מקורות. בזכות המדיניות הוותיקה של Chrome בנושא
העדפת מקורות מאובטחים עבור תכונות מתקדמות,
crypto.subtle
לא גלוי רק במקורות מאובטחים.
הסרת ניווטים יזומים בפריים העליון לכתובות URL של נתונים
בשל אי-היכרותם עם משתמשים עם דפדפנים שאינם טכניים, בחרנו
יותר ויותר שימוש בתרמית data:
בזיוף ובפישינג
מתקפות. כדי למנוע זאת, אנחנו חוסמים את הטעינה של דפי אינטרנט מסוג data:
בפריים העליון. הכלל הזה חל על <a>
תגים, window.open
,
window.location
ומנגנונים דומים. הסכמה data:
עדיין תפעל עבור
משאבים שנטענים בדף.
התכונה הזו הוצאה משימוש בגרסה 58 של Chrome, ועכשיו אנחנו מסירים אותה.
כוונת הסרה | Chromestatus tracker | באג ב-Chromium
השבתה זמנית של navigator.sendBeacon() עבור חלק מה-blobs
הפונקציה navigator.sendBeacon()
זמינה
החל מ-Chrome 39.
כפי שהוטמע במקור, הארגומנט data
של הפונקציה יכול להכיל
blob שרירותי שהסוג שלו לא בטוח ב-CORS. אנחנו מאמינים שזה פוטנציאל
איום אבטחה, למרות שאף אחד עדיין לא ניסה לנצל אותו. כי אנחנו לא
יש פתרון סביר ומיידי, באופן זמני, sendBeacon()
לא יכול
להיות פעילים יותר ב-blobs שהסוג שלהם לא בטוח ל-CORS.
השינוי הזה הוטמע ב-Chrome 60, אבל מאז הוא מוזג בחזרה ל-Chrome 59.
CSS
לגרום לשילוב של צאצאי צאצא להתנהג כמו קומבינטור צאצא
שילוב הצאצא עם צללית (>>>
), חלק מ-
מודול Scoping ברמה 1 של CSS
היה תואם לצאצאים של רכיב אב מסוים
גם כשהם הופיעו בתוך עץ צל. לפעולה הזו היו כמה מגבלות.
קודם כול, לפי המפרט,
ניתן להשתמש בו רק בקריאות JavaScript כגון querySelector()
,
פועלות בגיליונות סגנונות. וחשוב יותר, ספקי הדפדפנים לא הצליחו לעשות את זה
פועלות מעבר לרמה אחת של ה-DOM של Shadow.
כתוצאה מכך, השילוב המשני הוסר מהמפרטים הרלוונטיים כולל Shadow DOM v1. במקום לשבור דפי אינטרנט על ידי הסרת הבורר הזה מ-Chromium, בחרנו במקום זאת לתת כינוי לצד הצאצא עם חיפוש הצללים שתשלבו בין הצאצאים. ההתנהגות המקורית הייתה הוצא משימוש ב-Chrome 45. ההתנהגות החדשה מוטמעת ב-Chrome 61.
כוונת הסרה | Chromestatus tracker | באג ב-Chromium
JavaScript
הוצאה משימוש והסרה של RTCPeerConnection.getStreamById()
לפני כמעט שנתיים, getStreamById()
הוסר מהמפרט של WebRTC. ברוב הדפדפנים האחרים יש
כבר הסירו את ההגדרה הזו מההטמעות שלהם. למרות שהפונקציה הזו
נחשב לבלתי בשימוש,
סיכון ליכולת פעולה הדדית בדפדפנים מבוססי Edge ו-WebKit חוץ מאשר Safari
כאשר getStreamById()
עדיין נתמך. מפתחים שצריכים חלופה
ניתן למצוא קוד לדוגמה בקטע 'כוונת הסרה' שבהמשך.
אפשרות ההסרה זמינה ב-Chrome 62.
כוונת הסרה | Chromestatus tracker | באג ב-Chromium
הוצאה משימוש של SVGPathElement.getPathSegAtLength
לפני יותר משנתיים, getPathSegAtLength()
הוסר מהמפרט של SVG.
מאחר שיש רק מספר קטן של היטים לשיטה זו ב-httpArchive,
הוצא משימוש ב-Chrome 60. ההסרה צפויה להיות ב-Chrome 62,
יישלחו זמן בתחילת אוקטובר או באמצע אוקטובר.
כוונת הוצאה משימוש | Chromestatus tracker | באג ב-Chromium
העברת getContextAttributes() מאחורי דגל
הפונקציה getContextAttributes()
נתמכת
CanvasRenderingContext2D
מאז 2013. עם זאת, התכונה לא הייתה חלק מתקן כלשהו ולא הוגדרה
חלק מסרטון מסוים מאז. צריך להטמיע אותו מאחורי
סימון בשורת הפקודה --enable-experimental-canvas-features
, אך בטעות
לא. הפיקוח הזה תוקן ב-Chrome 60. לדעתנו,
השינוי הוא בטוח, כי אין נתונים שמראים שמישהו משתמש בשיטה.
הסרת Headers.prototype.getAll()
הפונקציה Headers.prototype.getAll()
תוסר בהתאם
של מפרט האחזור.
כוונת הסרה | Chromestatus tracker | באג ב-Chromium
מסירים את IndexDB.webkitGetDatabaseNames()
הוספנו את התכונה הזו כש-DB שנוסף לאינדקס היה חדש יחסית ב-Chrome והתחילית היה כל הזעם. ה-API מחזיר באופן אסינכרוני רשימה של מסד נתונים קיים ממקור שנראה הגיוני מספיק.
לצערנו, העיצוב שגוי, ולכן ייתכן שהתוצאות מיושנות בקרוב כשהחזרתם אותם, כך שלמעשה ניתן להשתמש בהם רק לרישום ביומן, ולא ברצינות של הלוגיקה של האפליקציות. github issue טראק/מקשר אל את הדיון הקודם על חלופות, מה שמחייב גישה שונה. אמנם המפתחים רואים התעניינות מתמשכת, עקב היעדר התקדמות הדפדפן, הבעיה כבר טופלה על ידי מחברים בספרייה.
מפתחים שזקוקים לפונקציונליות הזו צריכים לפתח פתרון משלהם. למשל, בספריות כמו Dexie.js נעשה שימוש בטבלה גלובלית. שהוא בעצמו מסד נתונים נוסף למעקב אחרי שמות של מסדי נתונים.
התכונה הזו הוצאה משימוש בגרסה 58 של Chrome, ועכשיו אנחנו מסירים אותה.
כוונת הסרה | Chromestatus tracker | באג ב-Chromium
הסרה של WEBKIT_KEYFRAMES_TERMS ו-WEBKIT_KEYFRAME_DOMAIN
הקבועים WEBKIT_KEYFRAMES_RULE
ו-WEBKIT_KEYFRAME_RULE
לא סטנדרטיים
הוסרו מ
כלל CSS.
במקום זאת, מפתחים צריכים להשתמש ב-KEYFRAMES_RULE
וב-KEYFRAME_RULE
.
כוונת הסרה | Chromestatus tracker | באג ב-Chromium
ממשק משתמש
נדרשת תנועת משתמש לתיבות דו-שיח לפני פענוח
החל מ-Chrome 60 ואילך, תיבת הדו-שיח beforeunload
תופיע רק אם המסגרת
כשמישהו מנסה להציג אותו, קיבל תנועת משתמש או אינטראקציה עם משתמש (או אם
וכל פריים מוטמע קיבל תנועה כזו). לשם הבהרה, זו לא הפרה של
שינוי בנוגע לשליחת האירוע beforeunload
. זה רק שינוי
אם תיבת הדו-שיח מוצגת.
תיבת הדו-שיח beforeunload
היא תיבת דו-שיח של אפליקציה. לכן היא מעצם טבעה
עוין למשתמש, כלומר הוא מגיב לניווט של המשתמש על ידי השאלה
להחלטה. יש שימושים חיוביים בתכונה הזו. לדוגמה, לעיתים קרובות משתמשים
כדי להזהיר את המשתמשים כשהם יאבדו נתונים על ידי ניווט.
היכולת של דף לספק טקסט בתיבת הדו-שיח beforeunload
הייתה
הוסרו לפני זמן מה, תיבות דו-שיח ב-beforeunload
הן עדיין הווקטור של ניצול לרעה. לחשבון
ובפרט, תיבות הדו-שיח beforeunload
הן רכיב של אתרי תרמית,
הפעלה אוטומטית של אודיו וטקסט מאיים מספקים הקשר שבו Chromium
צוין 'האם אתה בטוח שברצונך לצאת מהדף הזה' שהמסר מדאיג.
אנחנו רוצים להשחיל את המחט ולאפשר שימוש רק בbeforeunload
שימושים טובים בתיבת הדו-שיח הם מצבים שבהם למשתמש יש מצב
אבד. אם המשתמש מעולם לא ביצע אינטראקציה עם הדף, לא תהיה לו
שעלול ללכת לאיבוד, ולכן אנחנו לא מסתכנים באובדן של נתוני משתמשים
הסתרה של תיבת הדו-שיח במקרה הזה.