Firefox ประกาศรองรับ Web Serial
(hacks.mozilla.org)- เริ่มตั้งแต่ Firefox 151 เดสก์ท็อป รองรับ Web Serial API ทำให้เว็บแอปสื่อสารกับอุปกรณ์ซีเรียลที่เข้ากันได้โดยไม่ต้องใช้ซอฟต์แวร์เนทีฟ
- Web Serial คือ API สำหรับอ่านและเขียนอุปกรณ์ซีเรียลด้วย JavaScript จึงเชื่อมต่อกับไมโครคอนโทรลเลอร์, เครื่องพิมพ์ 3D, มิเตอร์ไฟฟ้า และอุปกรณ์อื่น ๆ ได้โดยตรง
- ในเวิร์กโฟลว์ของ Adafruit สามารถส่งเฟิร์มแวร์ผ่าน Web Serial เพื่อติดตั้ง CircuitPython และกระจายโค้ดลงอุปกรณ์ได้ง่ายด้วยไฟล์
code.py - Firefox ลดความเสี่ยงด้านความปลอดภัยและความเป็นส่วนตัวของการเข้าถึงอุปกรณ์ด้วยการอนุญาตจากผู้ใช้อย่างชัดเจน, สิทธิ์แยกตามเว็บไซต์และพอร์ต, และ add-on gating
- Mozilla กำลังผลักดัน Web Serial ซึ่งยังอยู่ในขั้น WICG ไปสู่การทำมาตรฐานกับ WHATWG พร้อมขอให้ทดสอบเวิร์กโฟลว์ฮาร์ดแวร์จริงและส่งข้อเสนอแนะ
Web Serial API และขอบเขตการรองรับ
- ตั้งแต่ Firefox 151 for Desktop เป็นต้นไป รองรับ Web Serial API ทำให้เว็บแอปพลิเคชันสื่อสารกับอุปกรณ์ที่เข้ากันได้โดยไม่ต้องพึ่งซอฟต์แวร์เนทีฟ
- Web Serial API เป็นเว็บ API ที่ช่วยให้เว็บไซต์อ่านและเขียนอุปกรณ์ซีเรียลด้วย JavaScript ได้
- อุปกรณ์เป้าหมายรวมถึงไมโครคอนโทรลเลอร์, บอร์ดพัฒนา, เครื่องพิมพ์ 3D, มิเตอร์ไฟฟ้า และฮาร์ดแวร์อื่น ๆ ที่เชื่อมต่อแบบซีเรียล
- อุปกรณ์ที่รองรับซีเรียลครอบคลุม บอร์ดที่ใช้ Espressif ESP, Raspberry Pi Picos, เครื่องพิมพ์ 3D และอุปกรณ์ LEGO
- แม้คอมพิวเตอร์สมัยใหม่มักไม่มีพอร์ตซีเรียล แต่อุปกรณ์ที่เชื่อมต่อผ่านพอร์ต USB หรือจับคู่ผ่าน Bluetooth สามารถประกาศตัวกับระบบปฏิบัติการให้มองเห็นเป็นอุปกรณ์ที่ใช้พอร์ตซีเรียลได้
- อุปกรณ์ที่รองรับ Web Serial ถูกใช้โดยนักพัฒนางานอดิเรก, ฮาร์ดแวร์แฮ็กเกอร์, นักการศึกษา, เมกเกอร์ และนักพัฒนา ในงานอย่างโฮมอัตโนมัติ, การทำฮาร์ดแวร์ต้นแบบ และการพิมพ์ 3D
เวิร์กโฟลว์ของ Adafruit และ CircuitPython
- Adafruit เป็นหนึ่งในองค์กรตัวอย่างเด่นที่แสดงการใช้ Web Serial ในด้านฮาร์ดแวร์โอเพนซอร์สและการศึกษา STEM
- Adafruit ใช้ Web Serial ส่งเฟิร์มแวร์เพื่อติดตั้ง CircuitPython ลงบนอุปกรณ์ของบริษัทได้อย่างรวดเร็ว
- หลังติดตั้งแล้ว หากตั้งชื่อไฟล์เป็น
code.pyก็สามารถกระจายโค้ดไปยังอุปกรณ์ส่วนใหญ่ได้ด้วยการลากไฟล์ไปวางบนอุปกรณ์ USB - โปรแกรม Python สามารถทำงานร่วมกับหน้าเว็บผ่าน Web Serial ได้ด้วยอินพุต/เอาต์พุตแบบข้อความอย่างง่าย
- สามารถใช้ Adafruit Web Serial Tool ได้ และวิธีนี้แยกจากรูปแบบ
OPEN INSTALLERบนเว็บไซต์ CircuitPython - example CircuitPython Web Serial project เป็นโครงสร้างที่ใช้ Web Serial จาก web page ภายในเครื่องเพื่อส่งข้อความไปยังอุปกรณ์ที่กำลังรันไฟล์ CircuitPython
- Mozilla ร่วมมือกับ Adafruit เพื่อทดสอบการพัฒนาใน Firefox ให้สอดคล้องกับเวิร์กโฟลว์ฮาร์ดแวร์จริงที่ชุมชนนี้ใช้งานกันทั่วไป
- วิศวกร Mozilla ชื่อ Alex Franchuk ได้สร้าง Page Playground ที่ผสาน Web Serial เข้ากับอุปกรณ์อิเล็กทรอนิกส์
การวัดพลังงานและโฮมอัตโนมัติ
- Florian Quèze จาก Mozilla ได้ทดลอง หลายโปรเจ็กต์สำหรับการวัดการใช้พลังงาน และสร้าง เดโม ที่อ่านข้อมูลพลังงานจาก USB power meter ที่มีขายทั่วไปผ่าน Web Serial แล้วแสดงผลใน Firefox
- โค้ดดังกล่าวสามารถส่งออกข้อมูลไปยัง Firefox Profiler ได้ ทำให้การแสดงภาพและการแชร์ข้อมูลพลังงานทำได้ง่าย
- ทรัพยากรที่เกี่ยวข้องได้แก่ page, GitHub repo และ ข้อมูล Firefox Profiler ที่บันทึกการใช้พลังงานของโคมไฟซึ่งมีโหมดความสว่าง 3 ระดับ
- USB power meter ที่ทดสอบแล้วมี AVHzY C3 USB, Joy-IT TC66C และ YZXStudio USB ZY1280
- Home Assistant เป็นโครงการโอเพนซอร์สยอดนิยมสำหรับโฮมอัตโนมัติ และ ESPHome มอบเฟิร์มแวร์ที่เข้ากันได้กับ Home Assistant สำหรับ ESP32 ราคาประหยัดและอุปกรณ์ลักษณะคล้ายกัน
- สามารถติดตั้งและตั้งค่าเฟิร์มแวร์ ESPHome ผ่าน Web Serial ได้ด้วยการคลิกเพียงไม่กี่ครั้ง
ความปลอดภัยและความเป็นส่วนตัว
- เมื่อเว็บแพลตฟอร์มสามารถอ่านและเขียนอุปกรณ์ฮาร์ดแวร์ได้ ความกังวลด้านความปลอดภัยและความเป็นส่วนตัวก็เพิ่มขึ้น
- ใน Web Serial เว็บไซต์จะไม่สามารถมองเห็นหรือเข้าถึงพอร์ตซีเรียลได้จนกว่าผู้ใช้จะอนุญาตอย่างชัดเจน
- การอนุญาตพอร์ตทำแยกตามเว็บไซต์และตามพอร์ต
- Web Serial API กำหนดให้เว็บไซต์เรียก
navigator.serial.requestPort()และผู้ใช้สามารถเลือกพอร์ตที่จะอนุญาตให้เข้าถึงหรือปฏิเสธการเข้าถึงทั้งหมดได้ - เว็บไซต์จะไม่ได้รับรายชื่ออุปกรณ์ที่เชื่อมต่ออยู่ และจะไม่ได้ข้อมูลสำหรับการทำ fingerprinting ที่มีประโยชน์ นอกเหนือจากพอร์ตที่ผู้ใช้เลือก
- Firefox ใช้ add-on gating ที่นำมาใช้ในงานพัฒนา Web MIDI API เพื่อช่วยให้ผู้ใช้เข้าใจว่าเว็บไซต์ร้องขอการเข้าถึงพอร์ตซีเรียลเมื่อใดและเพราะเหตุใด
- add-on gating ให้รายละเอียดแก่ผู้ใช้มากกว่าพรอมป์ต์สิทธิ์เว็บรูปแบบอื่น ๆ ว่ากำลังอนุญาตอะไรอยู่
- พรอมป์ต์ add-on gating จะแสดงก่อนพรอมป์ต์เลือกพอร์ต เมื่อเว็บไซต์ร้องขอการเข้าถึงพอร์ตเป็นครั้งแรก
- สำหรับองค์กรที่ใช้ Firefox Enterprise Policies นั้น Web Serial จะถูกปิดใช้งานเป็นค่าเริ่มต้น
- ผู้ดูแลระบบสามารถอนุญาตหรือบล็อกความสามารถของ Web Serial ทั้งองค์กรได้อย่างชัดเจนผ่านนโยบาย DefaultSerialGuardSetting
การทำมาตรฐานและข้อเสนอแนะ
- แม้ Web Serial จะยังอยู่ในขั้น Web Incubator Community Group (WICG) แต่ Mozilla มองว่าจากขอบเขตและช่วงเวลาการบ่มเพาะที่ยาวนาน ทำให้มีเส้นทางสู่การทำมาตรฐานได้
- Mozilla กำลังผลักดันการทำมาตรฐาน Web Serial API ใน WHATWG ผ่าน ข้อเสนอ Workstream ใหม่
- Mozilla มีแผนร่วมมือกับพันธมิตรในระบบนิเวศและองค์กรด้านมาตรฐาน เพื่อกำหนดแนวทางการเข้าถึงอุปกรณ์ต่อพ่วงจากเว็บ
- หากมีเวิร์กโฟลว์ Web Serial ที่อิงกับอุปกรณ์ ก็สามารถทดสอบได้บน Firefox
- สามารถแชร์โปรเจ็กต์, ตั้งคำถาม หรือส่งข้อเสนอแนะได้ที่ Mozilla Connect
- หากพบปัญหาทางเทคนิค ให้ตรวจสอบ support.mozilla.org หรือส่งบั๊กผ่าน Bugzilla
1 ความคิดเห็น
ความเห็นจาก Lobste.rs
อยากให้ทำ WebUSB ด้วย
สงสัยว่าจะปกป้องคนที่ถูกหลอกได้ง่าย โดยเฉพาะคนที่ไม่รู้ด้วยซ้ำว่า พอร์ตอนุกรม คืออะไร ได้อย่างไร ใน จุดยืนด้านมาตรฐาน ของ Mozilla ก็มีเนื้อหาแบบนี้อยู่
คีย์บอร์ดที่มีฟังก์ชันมาโครน่ากังวลขึ้นมาหน่อย ถึงอย่างนั้น Chrome ก็มีฟีเจอร์นี้มาหลายปีแล้วและไม่เห็นมีปัญหาใหญ่ ดังนั้นผมไม่ได้มองว่าเป็นความกังวลร้ายแรง โดยเฉพาะตอนนี้ที่อุปกรณ์ต่อพ่วงเริ่มใช้มันเพื่อการตั้งค่ากันมากขึ้น ประโยชน์จึงมากกว่าความเสี่ยงมาก
นี่มันไร้สาระมาก ยากจะอธิบายว่าการเพิ่มการเข้าถึงพอร์ตอนุกรมให้ ตัวดูหน้าเว็บ เป็นเรื่องเพี้ยนแค่ไหน
อ้อ จริงสิ เว็บไซต์ยังขาดสิ่งนี้พอดีเลย ตอนนี้รอ WebRawSockets อยู่ ล้อเล่นครึ่งหนึ่งนะ แต่สมัยก่อนตอนผมมีส่วนร่วม คณะทำงาน SVG เคยพยายามเพิ่ม raw sockets เข้าไปใน SVG จริง ๆ