האם פרויקט פוגו "done"?

אחת המטרות של הצוות של Project Fugu היא לאפשר למפתחים לעשות באינטרנט כל מה שאפליקציות ספציפיות לפלטפורמה יכולות, ולכן הצוות היה עמוס בהוספת תכונות חסרות שמפתחי האתרים צריכים לעשות כדי לסגור את הפער הזה באפליקציות. אם אתם לא חושבים שההחלטה שלי לא נכונה, אפשר פשוט להביט בקטע 'נשלחה' בכלי המעקב של Fugu API. הנה 55 ממשקי ה-API שנשלחו, לפחות לגרסה האחרונה שנשלחו:

שם ה-API יישלח אליך
Web Bluetooth APIChrome 56
WebUSB APIChrome 61
יעד שיתוף באינטרנטChrome 71
Web Share API רמה 2Chrome 75
לוח אסינכרוני: קריאה וכתיבה של תמונותChrome 76
רמת יעד 2 של שיתוף באינטרנטChrome 76
הזנת רמז למפתחChrome 77
הרחבה של מכסת האחסוןChrome 78
התקנת ממשק API של אפליקציות קשורותChrome 80
סנכרון תקופתי ברקעChrome 80
desktop-pwas: תמיכה במצב תצוגה "minimal-ui"Chrome 80
רכיבי קודק דחיסהChrome 80
Contacts APIChrome 80
Badging APIChrome 81
אישור שימוש ב-Badging API מ-Service Worker באמצעות PushChrome 81
Barcode Detection APIChrome 83
API להוספת תוכן לאינדקסChrome 84
WebOTPChrome 84
API לנעילת מצב הצפייה במסךChrome 84
Streams API: שידורים שניתן להעבירChrome 85
מקשי קיצור של אפליקציותChrome 85
גישה למערכת קבציםChrome 86
תמיכה בטקסט/html לממשק API של לוח אסינכרוניChrome 86
תמיכה בהזזה/הטיה של המצלמהChrome 87
FUGU הטמעת תיעוד של פלט האודיו של המערכת והאפליקציות באוזניות וברמקולים Chrome 88
PointerLock unadjustedMovementChrome 88
איך יוצרים בורר תמונות או סרטונים שדומה לכלי לבחירת תמונות ב-AndroidChrome 88
שילוב של שיתוף אינטרנט (navigator.share) עם Windows 10Chrome 88
NFC באינטרנטChrome 89
WebHID (מכשיר ממשק אנושי)Chrome 89
Web Serial APIChrome 89
שיתוף אינטרנט במחשבChrome 89
ממשק API לזיהוי כתב ידChrome 90
הגדרות אישיות מנוהלות לאפליקציות אינטרנטChrome 91
הפעלת PWA ב-OS LoginChrome 91
WebCodecsChrome 93
זיהוי לא פעילChrome 94
EyeDropper APIChrome 95
תפריט קיצורי הדרך של אפליקציות לאפליקציות PWA ב-macOS וב-LinuxChrome 96
רישום מטפלים בפרוטוקולים של כתובות URL עבור אפליקציות PWA Chrome 96
WebTransportChrome 97
לוח: כשמדביקים תמונות רשתית מאבדים מטא-נתונים של pHY.Chrome 98
צריך להסיר את ההתקנה של PWA באותו אופן שבו אפשר להסיר 'אפליקציה אמיתית'Chrome 99
NFC באינטרנט: NDEFReader makeReadOnly()Chrome 100
מיקום של חלון מרובה מסכיםChrome 100
HIDDevice note()Chrome 100
USBDevice device()Chrome 101
התנהגות מסוג sameObject ב-USB באינטרנטChrome 101
שכבת-על של פקדי החלונות עבור אפליקציות אינטרנט מותקנות למחשביםChrome 102
טיפול בקבציםChrome 102
ה-chrome.management API לא יכול יותר לקיים אינטראקציה עם אפליקציות PWAChrome 102
SerialPort Port()Chrome 103
גישה לגופנים מקומייםChrome 103
בקשת Fougu: קיצורי דרך דינמיים של אפליקציות (קיצורי דרך, גרסה 2)Chrome 104
פורמטים מותאמים אישית לאינטרנט עבור Async Clipboard APIChrome 104
כל ממשקי ה-API של Fugu שנשלחו עד עכשיו.

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

שיטות קובץ סינכרוניות למערכת הקבצים הפרטית של המקור

להיפך, במקום להצהיר שהמאמצים שלנו הושלם, אנחנו למעשה רק מתחילים. לדוגמה, נשתמש בתרשים הבא שבו מוצגת עלייה משמעותית בשימוש היחסי בשיטה navigator.storage.getDirectory(), שמשמשת כנקודת כניסה למערכת הקבצים הפרטית של המקור (OPFS). למשל, השיטה הזו משמשת לצורכי אחסון בעלי ביצועים גבוהים של Photoshop, וקהילת האחסון מתעניינת בהם מאוד מאז ההוצאה משימוש של Web SQL ואפילו לפני כן.

תרשים שמראה את השימוש היחסי במתודולוגיית navigator.storage.getDirectory.

עכשיו, כשיותר אנשים משתמשים ב-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 האלה יכולת פעולה הדדית, ונמשיך לפעול לתקנים נוספים, לבדיקות ולהטמעה בדפדפנים אחרים.