กูเกิลประกาศปรับแผนการเลิกใช้ API ส่วนขยายแบบเก่า Manifest V2 โดยยืดเวลาจากที่เคยประกาศไว้เล็กน้อย
การเปลี่ยนจาก Manifest V2 มาเป็น V3 ส่งผลกระทบต่อวิธีทำงานของส่วนขยายบล็อคโฆษณา ซึ่งตอนนี้ส่วนขยายหลายๆ ตัวก็เริ่มปรับตัวมาสู่ API V3 กันบ้างแล้ว เช่น AdBlock Plus, uBlock Origin, AdGuard เป็นต้น
ที่มา - Chrome Developer
Comments
งานที่ผมทำมันต้องใช้งานเกี่ยวกับ background service ครับ ซึ่ง v2 ทำได้ แต่ v3 ทำไม่ได้เนื่องจากมีเปลี่ยนโครงสร้างการทำงานให้เป็น service worker แทน อธิบายสั้น ๆ คือ script จะทำงานเมื่อมี event เข้ามา แทนที่จะ run ค้างไว้ตลอด
และก็ไม่มี api ทดแทนงานประเภทนี้ด้วย
ก็มีอยู่นะครับ
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
https://developer.mozilla.org/en-US/docs/Web/API/Push_API
เลือกได้ตามความเหมาะสม
ผมไม่แนะนำ Push API เพราะมันยุ่งยากหน่อยนึง
ผมยังไม่เคยลอง WebSocket, Server sent events ใน service worker
แต่ Push API ใช้ได้ตอน browser ปิดอยู่แน่นอน
Push API != Notifications API นะครับ
SSE กับ Push API จะคล้ายตรงเป็น Half-duplex รับจาก server อย่างเดียว
แต่ SSE จะคล้ายกับ WebSocket ตรงต้อง run server เฉพาะไว้
ส่วน Push API สะดวกตรงเวลา push
server แค่ request ไปที่ endpoint ที่ได้จาก browser
แต่เอาจริงต้อง implement เยอะกว่า WebSocket กับ SSE