หนึ่งในวัตถุประสงค์ของทีม Project Fugu คือช่วยให้นักพัฒนาแอปทําสิ่งต่างๆ บนเว็บได้เช่นเดียวกับที่แอปเฉพาะแพลตฟอร์มทําได้ ทีมจึงกําลังยุ่งอยู่กับการเพิ่มฟีเจอร์ที่ขาดหายไปซึ่งนักพัฒนาเว็บจําเป็นต้องใช้เพื่อปิดช่องโหว่ของแอปนี้ หากไม่เชื่อ โปรดดูส่วน "จัดส่งแล้ว" ของเครื่องมือติดตาม Fugu API API 55 รายการที่จัดส่งแล้วมีดังนี้ โดยจัดเรียงจากน้อยไปมากตามวันที่จัดส่ง
รายการนี้ยาวมากและยังมีอีกหลายรายการที่เราต้องทำ ปัจจุบันยังมี API และฟีเจอร์ 2-3 รายการที่อยู่ในช่วงทดลองใช้สำหรับนักพัฒนาแอป (นั่นคือมีการใช้งานอยู่ แต่อยู่หลัง Flag ฟีเจอร์) บางรายการที่เราเริ่มพัฒนา และอีกหลายรายการที่อยู่ระหว่างการพิจารณา ดังที่คุณเห็น เรายังไม่หยุดเพียงเท่านี้
วิธีการไฟล์แบบซิงค์สําหรับระบบไฟล์ส่วนตัวต้นทาง
ในทางตรงกันข้าม เราเพิ่งเริ่มต้นเท่านั้น ไม่ได้ประกาศว่างานเสร็จแล้ว ตัวอย่างเช่น พิจารณาแผนภูมิด้านล่างที่แสดงการใช้งานที่เพิ่มขึ้นอย่างรวดเร็วของวิธี navigator.storage.getDirectory()
ซึ่งใช้เป็นจุดแรกเข้าไปยังระบบไฟล์ส่วนตัวของต้นทาง (OPFS) วิธีการนี้ใช้เพื่อตอบสนองความต้องการพื้นที่เก็บข้อมูลประสิทธิภาพสูงของ Photoshop และเป็นสิ่งที่ชุมชนพื้นที่เก็บข้อมูลให้ความสนใจเป็นอย่างมากนับตั้งแต่เริ่มเลิกใช้งาน Web SQL และก่อนหน้านั้น
เมื่อมีผู้ใช้งาน OPFS มากขึ้น จึงมีข้อกำหนดเพิ่มเติม เช่น ความจำเป็นในการใช้ชุดเมธอดไฟล์แบบซิงค์ทั้งหมดในบริบทของเวิร์กเกอร์ (ดูข้อมูลเบื้องต้นที่ whatwg/fs#7) แม้ว่าโดยทั่วไปแล้ว Web API ใหม่จะเป็นแบบแอซิงโครนัส แต่การมีเมธอดแบบซิงโครนัสจะทำให้การทำงานกับ OPFS ในบริบท Wasm ง่ายขึ้นมาก และเนื่องจากการดำเนินการนี้เกิดขึ้นในเวิร์กเกอร์ เทรดหลักจึงจะไม่ถูกบล็อก
การปรับปรุงความเป็นส่วนตัวสําหรับฮาร์ดแวร์ API
อีกตัวอย่างหนึ่งคือ API ของฮาร์ดแวร์ที่ช่วยให้คุณเชื่อมต่อกับอุปกรณ์ HID, ซีเรียล, USB, บลูทูธ และ 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();
การปรับแต่ง Multi-Screen Window Placement API
ตัวอย่างสุดท้ายคือ Multi-Screen Window Placement API ซึ่งเราได้เปลี่ยนป้ายกำกับหน้าจอทั่วไปอย่าง "Internal Display 1"
ให้เป็นป้ายกำกับที่มีความหมายมากขึ้นอย่าง "Built-in Retina Display"
ตามความคิดเห็นของนักพัฒนาแอป เพื่อให้ผู้ใช้เชื่อมโยงป้ายกำกับเหล่านี้กับหน้าจอของการตั้งค่าหลายหน้าจอได้ง่ายขึ้น
สรุป
ดังที่คุณเห็นจากตัวอย่างเพียง 3 ตัวอย่างนี้ Project Fugu ยังไม่เสร็จสมบูรณ์ ใช้ API ของเราต่อไปหรือเริ่มใช้และส่งความคิดเห็น เนื่องจากข้อกำหนดทั้งหมดของ Fugu พัฒนาขึ้นแบบเปิดใน GitHub คุณจึงสามารถยื่นเรื่องปัญหาเกี่ยวกับข้อกำหนดในที่เก็บ GitHub ที่เกี่ยวข้องหรือแสดงความคิดเห็นในปัญหาที่มีอยู่ได้ หากพบข้อบกพร่องในการใช้งาน Chrome หรือพบว่าการใช้งานแตกต่างจากข้อกำหนด โปรดรายงานข้อบกพร่องที่ new.crbug.com อย่าลืมระบุรายละเอียดให้มากที่สุดและระบุวิธีการง่ายๆ ในการจำลองข้อบกพร่อง
และหากคุณกังวลเกี่ยวกับการรองรับเบราว์เซอร์ โปรดทราบว่า Fugu API จำนวนมากมีการปรับปรุงแบบเป็นขั้นเป็นตอนที่ดีเยี่ยม ดูบทความ SVGcode: PWA สำหรับแปลงรูปภาพแรสเตอร์เป็นกราฟิกเวกเตอร์ SVG เพื่อหาแรงบันดาลใจ นอกจากนี้ เราจะไม่ถือว่างานของเราเสร็จสิ้นจนกว่า API เหล่านี้จะทำงานร่วมกันได้ และเราจะยังคงผลักดันมาตรฐาน การทดสอบ และการนำไปใช้กับเบราว์เซอร์อื่นๆ ต่อไป