הוצאה משימוש והסרות ב-Chrome 58

Joe Medley
Joe Medley

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

עכבר ב-Android מפסיק להפעיל אירועי TouchEvents

עד לגרסה 57 של Chrome, אירועי עכבר ברמה נמוכה ב-Android ב-Chrome עקבו בעיקר אחרי נתיב אירועים שתוכנן לאינטראקציות מגע. לדוגמה, תנועת גרירה של עכבר שמתרחשת בזמן שלחיצה על לחצן העכבר יוצרת את האירוע MotionEvents, שנשלח דרך View.onTouchEvent.

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

החל מגרסה 58 של Chrome, בעזרת עכבר ב-Android מגרסה M ואילך תוכלו:

  • הפונקציה TouchEvents לא מופעלת יותר.
  • הפעלת רצף עקבי של MouseEvents באמצעות לחצנים מתאימים ומאפיינים אחרים.

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

הסרת התאמה ללא תלות ברישיות למאפיין usemap

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

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

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

הסרת ניווטים בפריים העליון שמתחילים בתוכן לכתובות URL של נתונים

בגלל שהם לא מוכרים למשתמשים לא טכניים בדפדפנים, אנחנו רואים יותר ויותר שימוש בתוכנית data: בהתקפות זיופים ופישינג. כדי למנוע זאת, אנחנו חוסמים את הטעינה של כתובות URL מסוג data: בדפי אינטרנט שבמסגרת העליונה. הכלל הזה חל על תגי <a>, ‏ window.open,‏ window.location ומנגנונים דומים. הסכימה data: עדיין תפעל למשאבים שנטענים מתחת לדף.

התכונה הזו תוסר ב-Chrome 60.

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

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

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

בגרסה 58 של Chrome, שמות הנכסים הישנים יוסרו. הנכסים שהושפעו והשמות החדשים שלהם מפורטים בהמשך.

נכס שהוסרה השם הנוכחי
motion-path offset-path
motion-offset offset-distance
motion-rotation offset-rotate
תנועה לקזז

כוונת ההסרה

הסרת EME מהקשרים לא מאובטחים

חלק מהשימושים בתוספים של מדיה מוצפנת (EME) חושפים הטמעות של ניהול זכויות דיגיטלי (DRM) שלא מבוססות על קוד פתוח, כוללות גישה למזהים ייחודיים עמידים ו/או פועלות ללא ארגז חול או עם גישה עם הרשאות. סיכוני האבטחה גבוהים יותר באתרים שנחשפים באמצעות HTTP לא מאובטח, כי כל מי שנמצא בערוץ יכול לתקוף אותם. בנוסף, כשנדרשת הסכמה מהמשתמשים, תוקף כזה יכול לנצל לרעה אישור קבוע לאתר HTTP לא מאובטח.

התמיכה בהקשרים לא מאובטחים הוסרה ממפרט EME בגרסה 1, והיא לא נתמכת בהמלצה המוצעת ולא צפויה להיכלל בהמלצה הסופית הבאה. החל מגרסה 44 של Chrome (מאי 2015), ה-API מציג הודעה על הוצאה משימוש במקורות לא מאובטחים. בגרסה 58 של Chrome, היא הוסרה. השינוי הזה הוא חלק מהמאמץ הכולל שלנו להסיר תכונות מתקדמות ממקורות לא מאובטחים.

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

הסרת מבצע הקריאה הקודם ל-HTMLEmbedElement ול-HTMLObjectElement

אם לממשק יש מבצע קריאה מהדור הקודם, אפשר להפעיל את המופע כפונקציה. בשלב זה, רק HTMLEmbedElement ו-HTMLObjectElement תומכים בפונקציה הזו. היכולת הזו הוצאה משימוש ב-Chrome 57. החל מגרסה 58 של Chrome, הקריאה תגרום להשלכת חריגה.

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

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

הסרת הצפנות ChaCha20-Poly1305 טרום-סטנדרטיות

בשנת 2013, ב-Chrome 31 נפרסו סטים חדשים של אלגוריתמים להצפנה (cipher suites) של 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. כבר מגרסה 48 של Firefox, נדרש ב-Firefox את השדה subjectAltName לכל אישור חדש שניתן לו אמון באופן ציבורי.

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

רכיבי הממשק regions,‏ addRegion() ו-removeRegion() הוסרו מהמפרט של WebVTT והם יוסרו ב-Chrome 58 כדי לעמוד בדרישות של המפרט העדכני ביותר. אנחנו לא צופים השפעה רבה מההסרה הזו, כי התכונה אף פעם לא הופעלה כברירת מחדל (כלומר, היא הייתה זמינה רק אחרי הפעלת דגל). אם אתם צריכים חלופה, תוכלו להשתמש במאפיין 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

הוצאה משימוש של שימוש לא מאובטח בהתראות

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

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

הוצאה משימוש של שימוש בהתראות ממסגרות iframe לא מאובטחות

בקשות הרשאה מ-iframes עלולות לבלבל משתמשים, כי קשה להבחין בין המקור של הדף שמכיל את ה-iframe לבין המקור של ה-iframe ששולח את הבקשה. כשהיקף הבקשות לא ברור, קשה למשתמשים להחליט אם להעניק או לדחות את ההרשאה.

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

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

ההסרה מתבצעת ב-Chrome 62.

כוונה להסרה | מעקב אחר סטטוס Chrome | באג ב-Chromium

הסרת indexedDB.webkitGetDatabaseNames()

הוספנו את התכונה הזו כש-Indexed DB היה חדש יחסית ב-Chrome והשימוש בתחילית היה פופולרי מאוד. ה-API מחזיר באופן אסינכרוני רשימה של שמות של מסדי נתונים קיימים במקור, וזה נראה הגיוני למדי.

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

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

התכונה הזו הוסרה ב-Chrome 60.

כוונה להוצאה משימוש | מעקב אחרי סטטוס Chrome | באג ב-Chromium