אחת המטרות של הצוות של Project Fugu היא לאפשר למפתחים לעשות באינטרנט כל מה שאפליקציות ספציפיות לפלטפורמה יכולות, ולכן הצוות היה עמוס בהוספת תכונות חסרות שמפתחי האתרים צריכים לעשות כדי לסגור את הפער הזה באפליקציות. אם אתם לא חושבים שההחלטה שלי לא נכונה, אפשר פשוט להביט בקטע 'נשלחה' בכלי המעקב של Fugu API. הנה 55 ממשקי ה-API שנשלחו, לפחות לגרסה האחרונה שנשלחו:
הרשימה ארוכה, ויש עוד הרבה אפשרויות. כרגע יש כמה ממשקי API ותכונות בגרסת הניסיון למפתחים (כלומר, מוטמעים, אבל נמצאים מאחורי תכונה ניסיונית), חלקם התחלנו לעבוד עליהם ורבים מהם בבדיקה. כמו שאתם רואים, זה לא הזמן להירגע ולומר שסיימנו.
שיטות קובץ סינכרוניות למערכת הקבצים הפרטית של המקור
להיפך, במקום להצהיר שהמאמצים שלנו הושלם, אנחנו למעשה רק מתחילים. לדוגמה, נשתמש בתרשים הבא שבו מוצגת עלייה משמעותית בשימוש היחסי בשיטה navigator.storage.getDirectory()
, שמשמשת כנקודת כניסה למערכת הקבצים הפרטית של המקור (OPFS). למשל, השיטה הזו משמשת לצורכי אחסון בעלי ביצועים גבוהים של Photoshop, וקהילת האחסון מתעניינת בהם מאוד מאז ההוצאה משימוש של Web SQL ואפילו לפני כן.
עכשיו, כשיותר אנשים משתמשים ב-OPFS, עלו דרישות נוספות. לדוגמה, הצורך בקבוצה סינכרונית מלאה של שיטות קובץ בהקשר של ה-worker (ראו whatwg/fs#7) להסבר). ממשקי API חדשים באינטרנט הם בדרך כלל אסינכרוניים, אבל שימוש בשיטות סינכרוניות יהפוך את העבודה עם OPFS לפשוטה יותר בהקשר של Wasm, ומכיוון שזה קורה ב-worker, אי אפשר לחסום את ה-thread הראשי.
שיפורים בפרטיות בממשקי ה-API של החומרה
דוגמה נוספת היא ממשקי API לחומרה שמאפשרים להתחבר למכשירי HID, serial, USB,
Bluetooth ו-NFC. חלק מממשקי ה-API האלה קיימים כבר לא מעט זמן, אבל עד לאחרונה לא הייתה דרך לשכוח מכשיר שחיברתם אליו בעבר. עכשיו יש הודות לשיטות forget()
לחלק מממשקי ה-API. לדוגמה, כך מוחקים מכשיר עם יציאה טורית שחובר בעבר, כדי לשפר את הפרטיות של ה-API.
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
חידודים לגבי ה-API של מיקום חלון מרובה מסכים
דוגמה אחרונה היא Multi-Screen Windows Placement API. על סמך משוב של המפתחים, התוויות הגנריות הקודמות, כמו "Internal Display 1"
, הוחלפו בתוויות משמעותיות יותר כמו "Built-in Retina Display"
, כדי שלמשתמשים יהיה קל יותר לשייך את התוויות האלה למסכים של ההגדרה שלהם לריבוי מסכים.
מסקנות
כפי שניתן לראות מבין שלוש הדוגמאות האלה, פרויקט פוגו קרוב מאוד לביצוע. תוכלו להמשיך להשתמש בממשקי ה-API או להתחיל להשתמש בהם ולשלוח משוב. מכיוון שכל המפרטים של Fugu מפותחים באופן פתוח ב-GitHub, אתם יכולים לדווח על בעיה במפרט במאגר המתאים ב-GitHub או להוסיף את המחשבות שלכם לבעיה קיימת. אם מגלים באג בהטמעה של Chrome או מגלים שההטמעה שונה מהמפרט, אפשר לדווח על באג בכתובת new.crbug.com, חשוב לכלול כמה שיותר פרטים ולספק הוראות פשוטות לשחזור.
בנוסף, אם יש לכם שאלות לגבי תמיכה בדפדפן, ממשקי API רבים של Fugu API מאפשרים לשפר מאוד את הביצועים. לקבלת השראה, קראו את המאמר שלי SVGcode: PWA להמרת תמונות מסוג רסטר לגרפיקה וקטורית מסוג SVG. אנחנו גם לא מחשיבים את העבודה שלנו כמשימה שהושלמה עד שממשקי ה-API האלה יכולת פעולה הדדית, ונמשיך לפעול לתקנים נוספים, לבדיקות ולהטמעה בדפדפנים אחרים.