הוצאה משימוש והסרות של ממשקי API ב-Chrome 52

ג'ו מדלי
ג'ו מדלי

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

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

אמ;לק: אנחנו מוציאים משימוש את האירוע והמאפיין ended ואת הגורם שמטפל באירועים של onended, כי הם הוסרו מהמפרט של תיעוד מדיה ומקורות נתונים.

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

האירוע ended וה-handler של האירועים onended לא היו חלק מהמפרט של WebRTC במשך כשלוש שנים. מפתחים שרוצים לצפות באירועים צריכים להשתמש ב-MediaStreamTracks במקום ב-MediaStreams.

ההסרה צפויה להתבצע ב-Chrome 53.

חסימת חלונות קופצים ממסגרות iframe ממקורות שונים במהלך אירועי מגע, חוץ מאשר בזמן תנועת הקשה

אמ;לק: Chrome יתחיל לאסור על חלונות קופצים ופעולות רגישות אחרות באירועי מגע שלא תואמים להקשה מתוך מסגרות iframe ממקורות שונים.

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

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

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

הוצאה משימוש של עומס יתר של postMessage()

אמ;לק: אנחנו מוציאים משימוש וריאציה לא נחוצה של ממשק postMessage(), שלא נעשה בה שימוש רב בכלל, ובמיוחד postMessage(message, transferables, targetOrigin).

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

השיטה postMessage() מאפשרת לתקשר באופן מאובטח בין סקריפטים של דפים במקורות שונים. WebKit/Blink תומך בשלוש גרסאות:

  • postMessage(message, targetOrigin)
  • postMessage(message, targetOrigin, transferables)
  • postMessage(message, transferables, targetOrigin)

הפריט האחרון ברשימה הזו היה תאונה מהיסטוריית ההתפתחות וההטמעה של המפרט. היא יוצאת משימוש לעיתים רחוקות, ולכן היא תוסר מאוחר יותר. הכלל הזה חל גם על window.postMessage() וגם על worker.postMessage().

ההסרה צפויה להתבצע ב-Chrome 54.

הסרת התמיכה ב-X-Frame-Options ב: תגים

TL;DR: כדי לעמוד בדרישות של המפרט וגם להגביר את העקביות עם דפדפנים אחרים, אנחנו מסירים את התמיכה ב-X-Frame-Options בתוך תג <meta>.

כוונה להסיר | באג ב-Chromium

כותרת התגובה X-Frame-Options של HTTP מציינת אם דפדפן יכול לעבד דף בתג <frame>, <iframe> או <object>. כך אתר יכול להימנע מ-clickjacking כי לא ניתן להטמיע דפים כאלה באתרים אחרים. הגרסה הנוכחית של מפרט X-Frame-Options מגבילה באופן מפורש את התמיכה של סוכני המשתמש בשדה הזה בתוך תג <meta>.

כדי לעמוד בדרישות של המפרט וגם להגביר את העקביות עם דפדפנים אחרים, אנחנו מפסיקים את התמיכה ב-X-Frame-Options בתוך תג <meta>.

הסרת אירוע של לחיצה על לחצן שאינו ראשי

TL;DR: קליקים שאינם ראשיים כבר לא מפעילים אירועי קליקים, אבל האפשרות MouseEvent.button עדיין זמינה.

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

כדי להתאים את Chrome למפרט UIEvents, אנחנו מסירים את אירועי הקליקים על לחצני עכבר שאינם ראשיים. לחצני עכבר שאינם ראשיים משתנים בהתאם למכשיר. בדרך כלל המשמעות היא כל דבר מלבד לחצן עכבר ימני או שמאלי. הערה: יכול להיות שעדיין אפשר לאחזר את הלחצן המדויק שעליו לחצתם באמצעות הנכס MouseEvent.button שנשלח לאירועים כמו mousedown או mouseup.

הסרה של requestConsent()

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

כוונה להסיר