כמעט בכל גרסה של Chrome ניתן לראות מספר משמעותי של עדכונים ושיפורים למוצר, לביצועים שלו וליכולות של פלטפורמת האינטרנט. במאמר הזה נתאר את ההוצאה משימוש וההסרות ב-Chrome 58, שנמצא בגרסת בטא נכון ל-16 במרץ. הרשימה הזו עשויה להשתנות בכל עת.
העכבר ב-Android מפסיק להפעיל את TouchEvents
עד גרסה Chrome 57, אירועי עכבר ברמה נמוכה ב-Android ב-Chrome עקבו בעיקר אחרי נתיב אירוע שנועד לאינטראקציות מגע. לדוגמה, תנועת גרירה של העכבר המתרחשת בזמן לחיצה על לחצן העכבר יוצרת MotionEvents
, שמועברת דרך View.onTouchEvent
.
אבל מכיוון שאירועי מגע לא תומכים בהעברת העכבר, תנועות העכבר מרחפות אחרי נתיב נפרד. לעיצוב היו תופעות לוואי רבות, כולל אינטראקציות עם העכבר להפעלת TouchEvents
, כל לחצני העכבר הופיעו כלחצנים שמאליים בעכבר והסתרה של MouseEvents
על ידי TouchEvents
.
החל מ-Chrome 58, עכבר בגרסת Android M ואילך:
- לא יפעיל יותר את
TouchEvents
. - הפעלת רצף עקבי של
MouseEvents
עם לחצנים מתאימים ומאפיינים אחרים.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרת התאמה שאינה תלוית-רישיות למאפיין usemap
המאפיין usemap
הוגדר בעבר כללא אותיות רישיות. לרוע המזל, ההטמעה של התהליך הייתה מסובכת מספיק, כך שאף דפדפן לא הטמיע אותה בצורה נכונה. מחקרים הראו שאין צורך באלגוריתם מורכב כזה, ואפילו התאמה לא תלוית-רישיות ב-ASCII היא לא נחוצה.
בעקבות זאת המפרט עודכן כדי להחיל התאמה תלוית אותיות רישיות (case-sensitive). ההתנהגות הישנה הוצאה משימוש ב-Chrome 57 ועכשיו היא הוסרה.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרת ניווטים במסגרות מובילות שנוצרו על ידי תוכן לכתובות URL של נתונים
בגלל שהם לא מכירים את המשתמשים שלא משתמשים בדפדפנים טכניים, אנחנו רואים יותר ויותר שימוש בסכימה data:
למטרות זיוף ופישינג. כדי למנוע זאת, אנחנו חוסמים דפי אינטרנט כך שלא יוכלו לטעון כתובות URL של data:
בפריים העליון. הכלל הזה חל על תגי <a>
, על window.open
, על window.location
ועל מנגנונים דומים. הסכמה data:
תמשיך לפעול
במשאבים שנטענים למטה על ידי דף כלשהו.
התכונה הזו תוסר ב-Chrome 60.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרת שמות שהוצאו משימוש במאפיינים של נתיב תנועה
מאפייני CSS של נתיב תנועה מאפשרים למחברים להנפיש כל אובייקט גרפי לאורך נתיב שצוין על ידי המחבר. בהתאם למפרט, מספר מאפיינים הוטמעו ב-Chrome 45. שמות המאפיינים האלה שונו במפרט באמצע 2016. Chrome הטמיע את השמות החדשים ב-Chrome 55 וב-Chrome 56. יושמו גם אזהרות על הוצאה משימוש של המסופים.
ב-Chrome 58, המערכת מסירה את שמות המאפיינים הישנים. בטבלה הבאה מוצגים הנכסים המושפעים והשמות החדשים שלהם.
הנכס שהוסר | שם נוכחי |
---|---|
נתיב תנועה | נתיב היסט |
קיזוז תנועה | קיזוז-מרחק |
סיבוב-תנועה | סיבוב היסט |
תנועה | קיזוז |
הסרת EME מהקשרים לא מאובטחים
חלק מהשימושים בתוספי מדיה מוצפנים (EME) חושפים הטמעות של ניהול זכויות דיגיטלי (DRM) שאינן קוד פתוח, כרוכות בגישה למזהים ייחודיים קבועים ו/או פועלות מחוץ לארגז החול או עם גישה מורשית. סיכוני האבטחה גדלים באתרים שנחשפים דרך HTTP לא מאובטח, כי כל אחד בערוץ עלול לתקוף אותם. בנוסף, כשנדרשת הסכמת משתמש, תוקף האישור שנשאר לאתר HTTP לא מאובטח עלול לנצל לרעה.
התמיכה בהקשרים לא מאובטחים הוסרה מהמפרט של גרסה 1 של EME, והיא לא נתמכת בהמלצה שמוצעת ולא בהמלצה הסופית הבאה. החל מ-Chrome 44 (מאי 2015), מוצגת ב-API הודעה על הוצאה משימוש במקורות לא מאובטחים. עכשיו היא הוסרה ב-Chrome 58. השינוי הזה הוא חלק מהמאמץ הרחב שלנו להסיר תכונות מתקדמות ממקורות לא מאובטחים.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרת קורא מדור קודם עבור HTMLEmbedElement ו-HTMLObjectElement
אם בממשק יש מבצע קריאה מדור קודם, אפשר לקרוא למכונה כפונקציה. נכון לעכשיו, HTMLEmbedElement
ו-HTMLObjectElement
תומכים בפונקציונליות הזו. בגרסה 57 של Chrome האפשרות הזו הוצאה משימוש. החל מ-Chrome 58,
הפעלה מפעילה חריגות.
בעקבות השינוי הזה Chrome תואם לשינויים האחרונים במפרטים. ההתנהגות מהדור הקודם לא נתמכת ב-Edge או ב-Safari, ומסירים אותה מ-Firefox.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרת הצפנות הלא סטנדרטיות של ChaCha20-Poly1305
ב-2013, מערכת Chrome 31 פרסה סטים חדשים של אלגוריתמים להצפנה (cipher suite) מסוג TLS (אבטחת שכבת התעבורה) על סמך האלגוריתמים ChaCha20 ו-Poly1305 של פרופ' דן ברנשטיין. ההגדרות האלה עברו סטנדרטיזציה מאוחר יותר, עם שינויים קטנים, ב-IETF בתור RFC 7539 ו-RFC 7905. שלחנו את הווריאציה הסטנדרטית בתחילת 2016 עם Chrome 49. עכשיו אנחנו מסירים את הווריאציות שמוגדרות מראש.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרת תמיכה בהתאמה של CommonName באישורים
ב-RFC 2818 מתוארות שתי שיטות לשיוך של שם דומיין לאישור: באמצעות השמות הזמינים בתוסף subjectAlternativeName
, או אם אין תוסף SAN, חוזרים ל-commonName
. החלופה ל-commonName
הוצאה משימוש ב-RFC 2818 (פורסם בשנת 2000), אבל התמיכה נשארה במספר לקוחות TLS (לרוב באופן שגוי).
השימוש בשדות subjectAlternativeName
לא ברור אם האישור מהווה קישור לכתובת IP או לשם דומיין, והוא מוגדר במלואו ביחס לאינטראקציה שלו עם מגבלות שם. עם זאת, השדה commonName
לא ברור ולכן התמיכה בו היא מקור לבאגים באבטחה ב-Chrome, בספריות שבהן נעשה שימוש ובסביבה העסקית של TLS באופן כללי.
סיכון התאימות להסרה של commonName
הוא נמוך. תקן RFC 2818 יצא משימוש כבר כמעט שני עשורים, והדרישות הבסיסיות (שכל רשויות האישורים הציבוריות חייבות לציית להן) חייב את הנוכחות של subjectAltName
מאז 2012. כדי להשתמש ב-subjectAltName
באישורים חדשים שהונפקו באופן ציבורי, צריך כבר להשתמש ב-Firefox דרך Firefox 48.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
ביטים של TextTrack שקשורים ל-VTTRegion
רכיבי הממשק regions
, addRegion()
ו-removeRegion()
הוסרו ממפרט WebVTT והוסרו בגרסה 58 של Chrome כדי לעמוד במפרט העדכני. אנחנו צופים שההסרה הזו תהיה מועטה, מכיוון שהתכונה מעולם לא הופעלה (כלומר, היא הייתה מאחורי סמל). אם יש צורך בחלופה, אפשר להשתמש במאפיין VTTCue.region
שמתווסף ב-Chrome 58.
מעקב אחר סטטוס Chrome | באג ב-Chromium
WebAudio: הסרת הממשק AudioSourceNode
הממשק של AudioSourceNode
הוא לא חלק ממפרט Web Audio, הוא לא ניתן ליצירה ואין לו מאפיינים, כך שלמעשה אין בו פונקציונליות נגישה למפתחים. לכן הוא יוסר.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרת מאפיין גלובלי של webkitdropzone
המאפיין הגלובלי dropzone
נוסף על ידי
מפרט הגרירה והשחרור של HTML5
כשיטה מוצהרת לציון המוּכנוּת של רכיב HTML להיות היעד של פעולת גרירה ושחרור, סוגי התוכן שניתן להשליך אל הרכיב
ופעולת הגרירה והשחרור (העתקה/העברה/קישור).
המאפיין לא הצליח למשוך תשומת לב אצל ספקי הדפדפנים. התכונות Blink ו-WebKit מטמיעות רק טופס עם קידומת של המאפיין webkitdropzone
. המאפיין
dropzone
הוסר מהמפרט
בתחילת מרץ 2017
והגרסה עם הקידומת תוסר מ-Chrome.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הוצאה משימוש של שימוש לא מאובטח בהתראות
ההתראות הן תכונה חזקה, כי הן מאפשרות לאתרים להפעיל ממשק משתמש של מערכת כדי לשדר את המידע הפרטי עצמו או לסמן שמידע פרטי השתנה. תוקפים עשויים לרחש או לגנוב מידע שנשלח באמצעות התראה בחיבור לא מאובטח. דחיפה באינטרנט דורשת מקור מאובטח, ולכן השינוי הזה יתאים בין הודעות שאינן Push לבין התראות. השינוי הזה הוא חלק מהמאמץ הרחב שלנו להסיר תכונות מתקדמות ממקורות לא מאובטחים.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הפסקת השימוש בהתראות ממסגרות iframe לא מאובטחות
בקשות להרשאות ממסגרות iframe עלולות לבלבל את המשתמשים, כי קשה להבחין בין המקור של הדף שמכיל לבין המקור של ה-iframe ששולח את הבקשה. כשהיקף הבקשות לא ברור, למשתמשים קשה יותר להחליט אם לאשר או לדחות אותן.
חסימת ההתראות במסגרות iframe גם תתאים בין הדרישות של הרשאת ההתראות לבין הדרישות של התראות, וכך תקל על המפתחים.
מפתחים שזקוקים לפונקציונליות הזו יכולים לפתוח חלון חדש כדי לבקש הרשאה לשליחת התראות.
ההסרה מתבצעת ב-Chrome 62.
כוונה להסיר | מעקב אחר הסטטוס של Chrome | באג ב-Chromium
הסרה של IndexDB.webkitGetDatabaseNames()
הוספנו את התכונה הזו כשמסד הנתונים Indexed היה חדש יחסית ב-Chrome, והתחילית הייתה כל הזעם. ה-API מחזיר באופן אסינכרוני רשימה של שמות קיימים של מסדי נתונים במקור, שנראו הגיוניים מספיק.
למרבה הצער, התכנון פגום כי התוצאות עשויות להיות מיושנות ברגע שהן מוחזרות, כך שבאמת אפשר להשתמש בהן רק לצורך רישום ביומן, ולא לוגיקה רצינית של אפליקציות. הבעיה ב-github מפנה לדיון קודם לגבי חלופות או קישור לדיון קודם, שנדרשת גישה שונה. מפתחים הביעו עניין רב ועניין לאורך זמן, אך בגלל ההיעדר התקדמות בדפדפנים שונים, מחברי הספריות פתרו את הבעיה.
מפתחים שזקוקים לפונקציונליות הזו צריכים לפתח פתרון משלהם. בספריות כמו Dexie.js, לדוגמה, נעשה שימוש בטבלה גלובלית שהיא מסד נתונים נוסף למעקב אחרי שמות של מסדי נתונים.
התכונה הזו הוסרה ב-Chrome 60.