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