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

Joe Medley
Joe Medley

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

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

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

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

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

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

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

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

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

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

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

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

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

התכונה הזו תוסר בגרסה 60 של Chrome.

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

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

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

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

הנכס הוסר השם הנוכחי
נתיב תנועה נתיב היסט
היסט תנועה מרחק היסט
סיבוב תנועה סיבוב היסט
תנועה לקזז

כוונת הסרה

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

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

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

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

הסרת הקריאה הקודמת ל-HTMLEmbedElement ו-HTMLObjectElement

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

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

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

הסרת צפנים סטנדרטיים מראש של ChaCha20-Poly1305

ב-2013, גרסת Chrome 31 פרסה סטים חדשים של אלגוריתמים להצפנה (cipher suite) ב-TLS (אבטחת שכבת התעבורה) מבוסס על האלגוריתמים ChaCha20 ו-Poly1305 של פרופ' דן ברנשטיין. אלו היו מאוחר יותר בתקן IETF, עם שינויים קטנים RFC 7539 ו-RFC 7905. שלחנו את הווריאציה הסטנדרטית בתחילת 2016 עם Chrome 49. עכשיו אנחנו מסירים את הווריאציות שקודמות לתקנים.

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

הסרת התמיכה בהתאמות של CommonName באישורים

המונח RFC 2818 מתאר שתי שיטות להתאמה שם דומיין מול אישור: באמצעות השמות הזמינים בדומיין subjectAlternativeName, או אם אין סיומת SAN, בחזרה ל-commonName. החלופה ל-commonName הייתה הוצא משימוש ב-RFC 2818 (פורסם ב-2000), אבל התמיכה נותרה לקוחות TLS, לעיתים קרובות באופן שגוי.

השימוש בשדות subjectAlternativeName לא מאפשר חד משמעית האישור מציין קישור לכתובת IP או לשם דומיין, מוגדר במלואו מבחינת האינטראקציה שלו עם מגבלות השם. אבל, commonName ברור, ולכן התמיכה בו הייתה מקור של באגים באבטחה ב-Chrome, בספריות שבהן הוא משתמש ובסביבה העסקית של TLS. בכלל.

סיכון התאימות להסרת commonName נמוך. במסמך RFC 2818 יש הוצאנו משימוש את זה במשך כמעט שני עשורים, הדרישות הבסיסיות (כל רשויות האישורים המהימנות הציבוריות חייבות לציית להן) את הנוכחות של subjectAltName מאז 2012. ב-Firefox כבר נדרשת subjectAltName לכל אישורים מהימנים חדשים שהונפקו מאז Firefox 48.

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

רכיבי הממשק regions, addRegion() ו-removeRegion(), הוסרו מהמפרט של WebVTT ויוסרו בגרסה 58 של Chrome כדי לעמוד בדרישות של המפרט העדכני ביותר. אנחנו צופים השפעה מועטה מצד את ההסרה הזו, כי התכונה מעולם לא הופעלה כברירת מחדל (כלומר מאחורי דגל). מי שזקוק לחלופה יכול להשתמש בVTTCue.region שנוסף ב-Chrome 58.

Chromestatus tracker | באג ב-Chromium

WebAudio: הסרת הממשק של AudioSourceNode

הממשק AudioSourceNode אינו חלק המפרט של Web Audio, אינו ניתן לבנייה, ואין לו מאפיינים, לכן אין לו מפתח - פונקציונליות נגישה. לכן אנחנו מסירים אותו.

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

הסרת המאפיין הגלובלי webkitdropzone

המאפיין הגלובלי dropzone נוסף על ידי מפרט לגרירה ושחרור של HTML5 כשיטה הצהרתית לציון המוּכנוּת של רכיב HTML להיות באפשרות של פעולת גרירה ושחרור, סוגי התוכן שאפשר לשחרר את הרכיב, ופעולת הגרירה והשחרור (העתקה/העברה/קישור).

התכונה לא הצליחה למשוך תשומת לב אצל ספקי דפדפנים. Blink ו-WebKit להטמיע רק צורה עם קידומת של המאפיין, webkitdropzone. כי המאפיין dropzone הוסר מהמפרט ב תחילת מרץ 2017 הגרסה עם הקידומת תוסר מ-Chrome.

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

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

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

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

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

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

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

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

אפשרות ההסרה זמינה ב-Chrome 62.

כוונת הסרה | Chromestatus tracker | באג ב-Chromium

מסירים את IndexDB.webkitGetDatabaseNames()

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

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

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

התכונה הזו הוסרה בגרסה 60 של Chrome.

כוונת הוצאה משימוש | Chromestatus tracker | באג ב-Chromium