ปัญหาที่ทราบเมื่อย้ายข้อมูลไปยังไฟล์ Manifest V3

เมื่อเร็วๆ นี้ เราได้ประกาศการเปลี่ยนแปลงลำดับเวลาการเลิกใช้งานไฟล์ Manifest V2 และถึงแม้ว่าเราจะยึดมั่นอย่างหนักแน่นกับไฟล์ Manifest V3 แต่เราทราบดีว่ายังมีงานที่ต้องทำมากกว่านี้

  • ก่อนที่จะประกาศลำดับเวลาใหม่สำหรับการเลิกใช้งาน เราได้แก้ไขปัญหาสำคัญของแพลตฟอร์มและปิดข้อบกพร่องที่สำคัญซึ่งระบุไว้ในหน้านี้แล้ว
  • เราให้เวลานักพัฒนาแอปในการสร้าง โดยการรับประกันอย่างน้อย 6 เดือนระหว่างการประกาศไทม์ไลน์และการทดสอบที่รอดำเนินการสำหรับการนำการรองรับไฟล์ Manifest V2 ออก

ลดช่องว่างของแพลตฟอร์ม

เรามุ่งมั่นที่จะปิดช่องโหว่ต่อไปนี้ก่อนที่จะประกาศไทม์ไลน์การเลิกใช้งาน Manifest V2 ใหม่

เรารวบรวมปัญหาตามความคิดเห็นจากพาร์ทเนอร์ รายงานข้อบกพร่อง และนักพัฒนาแอป เราจะเดินหน้าปรับปรุงความเสถียรและประสิทธิภาพโดยรวมของแพลตฟอร์มส่วนขยายต่อไป

ปัจจุบันยังไม่มีปัญหาที่ยังไม่ได้รับการแก้ไขซึ่งถือเป็นช่องว่างที่สำคัญของแพลตฟอร์ม

ปัญหาต่อไปนี้ได้รับการแก้ไขแล้วเมื่อเร็วๆ นี้:

  1. การรองรับการจัดการไฟล์ใน ChromeOS เพื่อทดแทน chrome.fileBrowserHandler [Chrome 120]
  2. การรองรับสคริปต์ผู้ใช้: อนุญาตการลงทะเบียนสคริปต์เนื้อหาด้วยรหัสที่กำหนดเองด้วย userScripts API ใหม่ [Chrome 120]
  3. การเฝ้าสังเกตของ Service Worker ที่มีประสิทธิภาพเพิ่มเติมสำหรับการปฏิบัติงานบางอย่างซึ่งใช้เวลานานกว่า 5 นาที
    • เพิ่มใน Chrome 116 สำหรับ permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow() และ management.uninstall()
    • เพิ่มใน Chrome 118 สำหรับ chrome.debugger แล้ว
  4. เพิ่มจำนวนชุดกฎแบบคงที่และที่เปิดใช้สำหรับคำขอ Declarative Net Request (DNR) ชุดกฎคงที่ที่เปิดใช้เพิ่มขึ้นจาก 10 เป็น 50 และชุดกฎแบบคงที่ทั้งหมดจาก 50 เป็น 100 [Chrome 120]
  5. ขยายฟังก์ชันการทำงานของเอกสารนอกหน้าจอเพื่อรองรับเหตุผลอื่นๆ ในการใช้เอกสารนอกหน้าจอ เพิ่ม GEOLOCATION ใน Chrome 116 แล้ว
  6. การปรับปรุงการรองรับ chrome.tabCapture API [Chrome 116] ดังนี้
    • รองรับการโทร getMediaStreamId() จาก Service Worker
    • รองรับการรับ MediaStream จากรหัสสตรีมในเอกสารนอกหน้าจอ
  7. ยืดอายุการใช้งานของ Service Worker ขณะที่มีการเชื่อมต่อ WebSocket [Chrome 116] อยู่

คำถามที่พบบ่อยเกี่ยวกับไฟล์ Manifest V3

ถาม: เรามีแผนที่จะรองรับ Service Worker แบบถาวรไหม
ตอบ: เหตุผลหลักอย่างหนึ่งของการย้ายข้อมูลจากสคริปต์ที่ทำงานอยู่เบื้องหลังไปยัง Service Worker คือโมเดลการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ซึ่งมีประสิทธิภาพมากขึ้นซึ่งมาจากลักษณะของ Service Worker แบบชั่วคราว ด้วยเหตุนี้ เราจึงไม่มีแผนที่จะสนับสนุนโปรแกรมทำงานของบริการแบบถาวร อย่างไรก็ตาม เราดำเนินการปรับปรุงหลายอย่างกับ Service Worker อย่างต่อเนื่องเพื่อตอบสนองความต้องการเฉพาะของนักพัฒนาส่วนขยาย โดยเฉพาะอย่างยิ่งฟีเจอร์ต่อไปนี้

ถาม: มีวิธีเข้าถึง DOM ในโปรแกรมทำงานของบริการไหม
ตอบ: เราปฏิบัติตามแนวทางของแพลตฟอร์มเว็บในการไม่รวมการเข้าถึง DOM ไว้ในเว็บผู้ปฏิบัติงาน (ซึ่งรวมถึง Service Worker) เราได้เปิดตัวความเป็นไปได้ในการมอบหมายงานในเบื้องหลังไปยังเอกสารนอกหน้าจอที่มีอายุสั้น ซึ่งให้การเข้าถึง DOM เต็มรูปแบบเพื่อรองรับ Use Case ที่จำเป็นต้องเข้าถึง DOM เบื้องหลังจากโปรแกรมทำงานของบริการ

ถาม: มีวิธีรองรับรีโมตโค้ดในไฟล์ Manifest V3 ไหม
คำตอบ: เราจะยังคงไม่อนุญาตการเรียกใช้โค้ดที่โฮสต์จากระยะไกลโดยอิสระในส่วนขยาย Chrome เพื่อให้ส่วนขยาย Chrome ปลอดภัยยิ่งขึ้น อย่างไรก็ตาม การดำเนินการนี้ไม่ได้หมายความว่าเราจะไม่อนุญาตให้ใช้โค้ดแบบไดนามิกทุกประเภท เรายังคงรองรับตัวเลือกต่างๆ ของการเรียกใช้โค้ดแบบไดนามิกในส่วนขยาย Chrome ดังนี้

ถาม: ส่วนขยายไฟล์ Manifest V2 ของฉันใช้ webRequest blocked ซึ่งไม่มีการรองรับในไฟล์ Manifest V3 ฉันจะให้ฟังก์ชันการทำงานเดิมในไฟล์ Manifest V3 ได้ต่อไปได้อย่างไร
ตอบ: เรามั่นใจว่ากรณีการใช้งานแบบบล็อกคำขอส่วนใหญ่สามารถแก้ไขได้ด้วย declarativeNetRequest API ใหม่ ซึ่งมีข้อดีเพิ่มเติมคือหลีกเลี่ยงค่าใช้จ่ายด้านประสิทธิภาพของการสื่อสารระหว่างกระบวนการ การเรียกใช้โค้ดในทุกคำขอ หรือต้องมีกระบวนการขยายเวลาที่ใช้งานอยู่ ณ เวลาที่ขอ อย่างไรก็ตาม ระบบยังคงรองรับการบล็อกคำขอแบบไดนามิกสำหรับกรณีการใช้งานที่ซับซ้อน (หรือการศึกษา) อยู่

เราพลาดอะไรไปหรือเปล่า โปรดแจ้งให้เราทราบ