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

หน้านี้จะบันทึกช่องโหว่ของแพลตฟอร์มที่แก้ไขแล้วในระหว่างการเปลี่ยนผ่านไปใช้ Manifest V3 และตอบคำถามที่พบบ่อยเกี่ยวกับการย้ายข้อมูล

ช่องว่างของแพลตฟอร์มที่แก้ไขแล้ว

เราได้เพิ่มความสามารถต่อไปนี้เพื่อแก้ไขปัญหาที่มักเป็นอุปสรรคในการย้ายข้อมูล

  1. การรองรับการจัดการไฟล์ใน ChromeOS เพื่อแทนที่ chrome.fileBrowserHandler (Chrome 120)
  2. การรองรับ User Script: อนุญาตให้ลงทะเบียน Content Script ด้วยโค้ดที่กำหนดเองด้วย 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. การปรับปรุงการรองรับ API ของ chrome.tabCapture (Chrome 116):
    • รองรับการโทร getMediaStreamId() จาก Service Worker
    • รองรับการรับ MediaStream จากรหัสสตรีมในเอกสารนอกหน้าจอ
  7. ยืดอายุการใช้งานของ Service Worker ขณะที่มีWebSocketการเชื่อมต่อที่ใช้งานอยู่ (Chrome 116)

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

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

  • เหตุการณ์ส่วนขยายและการเรียกใช้ API ทั้งหมดจะขยายอายุการใช้งานของ Service Worker
  • กรณีการใช้งานที่เลือก เช่น การรับส่งข้อความดั้งเดิม จะทำให้ Service Worker ของส่วนขยายทำงานได้นานกว่า 5 นาที

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

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

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

หากมีคำถามที่เรายังไม่ได้ตอบ โปรดแจ้งให้เราทราบ