เมื่อเร็วๆ นี้ เราได้ประกาศการเปลี่ยนแปลงลำดับเวลาการเลิกใช้งานไฟล์ Manifest V2 และถึงแม้ว่าเราจะยึดมั่นอย่างหนักแน่นกับไฟล์ Manifest V3 แต่เราทราบดีว่ายังมีงานที่ต้องทำมากกว่านี้
- ก่อนที่จะประกาศลำดับเวลาใหม่สำหรับการเลิกใช้งาน เราได้แก้ไขปัญหาสำคัญของแพลตฟอร์มและปิดข้อบกพร่องที่สำคัญซึ่งระบุไว้ในหน้านี้แล้ว
- เราให้เวลานักพัฒนาแอปในการสร้าง โดยการรับประกันอย่างน้อย 6 เดือนระหว่างการประกาศไทม์ไลน์และการทดสอบที่รอดำเนินการสำหรับการนำการรองรับไฟล์ Manifest V2 ออก
ลดช่องว่างของแพลตฟอร์ม
เรามุ่งมั่นที่จะปิดช่องโหว่ต่อไปนี้ก่อนที่จะประกาศไทม์ไลน์การเลิกใช้งาน Manifest V2 ใหม่
เรารวบรวมปัญหาตามความคิดเห็นจากพาร์ทเนอร์ รายงานข้อบกพร่อง และนักพัฒนาแอป เราจะเดินหน้าปรับปรุงความเสถียรและประสิทธิภาพโดยรวมของแพลตฟอร์มส่วนขยายต่อไป
ปัจจุบันยังไม่มีปัญหาที่ยังไม่ได้รับการแก้ไขซึ่งถือเป็นช่องว่างที่สำคัญของแพลตฟอร์ม
ปัญหาต่อไปนี้ได้รับการแก้ไขแล้วเมื่อเร็วๆ นี้:
- การรองรับการจัดการไฟล์ใน ChromeOS เพื่อทดแทน
chrome.fileBrowserHandler
[Chrome 120] - การรองรับสคริปต์ผู้ใช้: อนุญาตการลงทะเบียนสคริปต์เนื้อหาด้วยรหัสที่กำหนดเองด้วย userScripts API ใหม่ [Chrome 120]
- การเฝ้าสังเกตของ Service Worker ที่มีประสิทธิภาพเพิ่มเติมสำหรับการปฏิบัติงานบางอย่างซึ่งใช้เวลานานกว่า 5 นาที
- เพิ่มใน Chrome 116 สำหรับ
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
และmanagement.uninstall()
- เพิ่มใน Chrome 118 สำหรับ
chrome.debugger
แล้ว
- เพิ่มใน Chrome 116 สำหรับ
- เพิ่มจำนวนชุดกฎแบบคงที่และที่เปิดใช้สำหรับคำขอ Declarative Net Request (DNR) ชุดกฎคงที่ที่เปิดใช้เพิ่มขึ้นจาก 10 เป็น 50 และชุดกฎแบบคงที่ทั้งหมดจาก 50 เป็น 100 [Chrome 120]
- ขยายฟังก์ชันการทำงานของเอกสารนอกหน้าจอเพื่อรองรับเหตุผลอื่นๆ ในการใช้เอกสารนอกหน้าจอ เพิ่ม
GEOLOCATION
ใน Chrome 116 แล้ว - การปรับปรุงการรองรับ
chrome.tabCapture
API [Chrome 116] ดังนี้- รองรับการโทร
getMediaStreamId()
จาก Service Worker - รองรับการรับ
MediaStream
จากรหัสสตรีมในเอกสารนอกหน้าจอ
- รองรับการโทร
- ยืดอายุการใช้งานของ Service Worker ขณะที่มีการเชื่อมต่อ
WebSocket
[Chrome 116] อยู่
คำถามที่พบบ่อยเกี่ยวกับไฟล์ Manifest V3
ถาม: เรามีแผนที่จะรองรับ Service Worker แบบถาวรไหม
ตอบ: เหตุผลหลักอย่างหนึ่งของการย้ายข้อมูลจากสคริปต์ที่ทำงานอยู่เบื้องหลังไปยัง Service Worker คือโมเดลการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ซึ่งมีประสิทธิภาพมากขึ้นซึ่งมาจากลักษณะของ Service Worker แบบชั่วคราว ด้วยเหตุนี้ เราจึงไม่มีแผนที่จะสนับสนุนโปรแกรมทำงานของบริการแบบถาวร อย่างไรก็ตาม เราดำเนินการปรับปรุงหลายอย่างกับ Service Worker อย่างต่อเนื่องเพื่อตอบสนองความต้องการเฉพาะของนักพัฒนาส่วนขยาย โดยเฉพาะอย่างยิ่งฟีเจอร์ต่อไปนี้
- เหตุการณ์ของส่วนขยายและการเรียก API ทั้งหมดจะขยายอายุการใช้งานของโปรแกรมทำงานของบริการ
- Use Case ที่เลือก เช่น การรับส่งข้อความดั้งเดิมจะคงการทำงานของ Service Worker ส่วนขยายไว้นานกว่า 5 นาที
ถาม: มีวิธีเข้าถึง DOM ในโปรแกรมทำงานของบริการไหม
ตอบ: เราปฏิบัติตามแนวทางของแพลตฟอร์มเว็บในการไม่รวมการเข้าถึง DOM ไว้ในเว็บผู้ปฏิบัติงาน (ซึ่งรวมถึง Service Worker) เราได้เปิดตัวความเป็นไปได้ในการมอบหมายงานในเบื้องหลังไปยังเอกสารนอกหน้าจอที่มีอายุสั้น ซึ่งให้การเข้าถึง DOM เต็มรูปแบบเพื่อรองรับ Use Case ที่จำเป็นต้องเข้าถึง DOM เบื้องหลังจากโปรแกรมทำงานของบริการ
ถาม: มีวิธีรองรับรีโมตโค้ดในไฟล์ Manifest V3 ไหม
คำตอบ: เราจะยังคงไม่อนุญาตการเรียกใช้โค้ดที่โฮสต์จากระยะไกลโดยอิสระในส่วนขยาย Chrome เพื่อให้ส่วนขยาย Chrome ปลอดภัยยิ่งขึ้น อย่างไรก็ตาม การดำเนินการนี้ไม่ได้หมายความว่าเราจะไม่อนุญาตให้ใช้โค้ดแบบไดนามิกทุกประเภท เรายังคงรองรับตัวเลือกต่างๆ ของการเรียกใช้โค้ดแบบไดนามิกในส่วนขยาย Chrome ดังนี้
- การรองรับ
eval()
ในส่วนขยายเครื่องมือสำหรับนักพัฒนาเว็บ - รองรับสคริปต์ของผู้ใช้
- การเรียกใช้โค้ดที่โฮสต์จากระยะไกลใน iframe ที่ทำแซนด์บ็อกซ์
- ไฟล์การกำหนดค่าที่โฮสต์จากระยะไกลซึ่งตีความได้ขณะรันไทม์ในแพ็กเกจส่วนขยาย แต่เส้นทางการดำเนินการที่เป็นไปได้ต้องกำหนดไว้ล่วงหน้า
ถาม: ส่วนขยายไฟล์ Manifest V2 ของฉันใช้ webRequest blocked ซึ่งไม่มีการรองรับในไฟล์ Manifest V3 ฉันจะให้ฟังก์ชันการทำงานเดิมในไฟล์ Manifest V3 ได้ต่อไปได้อย่างไร
ตอบ: เรามั่นใจว่ากรณีการใช้งานแบบบล็อกคำขอส่วนใหญ่สามารถแก้ไขได้ด้วย declarativeNetRequest
API ใหม่ ซึ่งมีข้อดีเพิ่มเติมคือหลีกเลี่ยงค่าใช้จ่ายด้านประสิทธิภาพของการสื่อสารระหว่างกระบวนการ การเรียกใช้โค้ดในทุกคำขอ หรือต้องมีกระบวนการขยายเวลาที่ใช้งานอยู่ ณ เวลาที่ขอ อย่างไรก็ตาม ระบบยังคงรองรับการบล็อกคำขอแบบไดนามิกสำหรับกรณีการใช้งานที่ซับซ้อน (หรือการศึกษา) อยู่
เราพลาดอะไรไปหรือเปล่า โปรดแจ้งให้เราทราบ