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

Joe Medley
Joe Medley

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

הוצאה משימוש של האירוע והמאפיין MediaStream ended והמאפיין onended

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

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

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

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

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

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

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

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

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

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

TL;DR: אנחנו מוציאים משימוש וריאנט לא נדרש של ממשק 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().

ההסרה צפויה בגרסה 54 של Chrome.

הסרת התמיכה ב-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>.

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

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

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

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

הסרה של requestAutocomplete()‎

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

כוונת ההסרה