ที่ผ่านมา 2023 เป็นปีที่เรายุ่งวุ่นวายในวงการส่วนขยาย Chrome ความคิดเห็นอันมีค่าที่ได้รับจากคุณจะช่วยให้เราปรับปรุงแพลตฟอร์มส่วนขยายและเอกสารประกอบได้ นอกจากนี้เรายังทำงานร่วมกับผู้ให้บริการเบราว์เซอร์รายอื่นๆ ในกลุ่มชุมชน Webชิ้นงาน เพื่อให้ API ของส่วนขยายทํางานได้สอดคล้องกันในเบราว์เซอร์ต่างๆ มากขึ้น
ในโพสต์นี้เราจะแชร์การเปลี่ยนแปลงบางอย่างซึ่งทีมส่วนขยาย Chrome ดำเนินการในช่วงครึ่งแรกของปีนี้ และฟีเจอร์ที่กำลังจะเปิดตัวในไตรมาสนี้ มาเริ่มกันเลย
API และฟีเจอร์ใหม่ๆ ของส่วนขยาย
ในส่วนนี้ เราอยากจะเน้นการเปิดตัว API ที่สำคัญๆ ตรวจสอบการปรับปรุง API อื่นๆ คร่าวๆ และแชร์ API รุ่นที่กำลังจะเปิดตัวเร็วๆ นี้
ไฮไลต์
เอกสารนอกหน้าจอ
Offscreen API เปิดตัวใน Chrome 109 ช่วยให้ส่วนขยาย Manifest V3 สามารถจัดการกรณีการใช้งานที่ต้องมีการโต้ตอบกับ DOM หรือหน้าต่าง ซึ่งดำเนินการไม่ได้ในโปรแกรมทำงานของบริการส่วนขยาย นอกจากนี้ Chrome 114 ยังได้นำเสนอเหตุผลเพิ่มเติมอีก 2 ประการเมื่ออยู่นอกหน้าจอ คือ 'WORKERS'
สำหรับกรณีที่เอกสารของคุณต้องสร้างชื่อผู้ปฏิบัติงาน และ 'LOCAL_STORAGE'
เพื่อช่วยย้ายข้อมูลจาก window.localStorage
ไปยัง chrome.storage
API
ตั้งแต่ Chrome 115 เป็นต้นไป คุณจะระบุเหตุผลได้หลายประการเมื่อสร้างเอกสารนอกหน้าจอ ซึ่งช่วยให้คุณทำงาน 2 อย่างที่เกี่ยวข้องในเอกสารเดียวกันได้
API แผงด้านข้างใหม่ 🎉
ก่อนหน้านี้ วิธีเดียวในการสร้างแถบด้านข้างในส่วนขยายคือการแทรกองค์ประกอบใหม่ด้วยสคริปต์เนื้อหาลงในทุกหน้า มีการเปิดตัว Side Panel API ใน Chrome 114 ขณะนี้คุณสามารถพัฒนาการใช้งานแถบด้านข้างที่แสดงร่วมกันสำหรับผู้ใช้ในลักษณะที่ตรงไปตรงมามากขึ้น อ่านเพิ่มเติมเกี่ยวกับวิธีที่ Side Panel API จะช่วยให้คุณออกแบบประสบการณ์ของผู้ใช้ที่ดียิ่งขึ้น
![ส่วนขยายพจนานุกรมที่แสดงคำจำกัดความของคำที่เลือก](https://developer.chrome.com/static/blog/extension-news-july-2023/image/a-dictionary-extension-s-df8e87f540be2.png?authuser=6&hl=th)
Service Worker ที่มีประสิทธิภาพมากขึ้น
ตอนนี้เหตุการณ์ของส่วนขยายทั้งหมดจะเริ่มต้นจับเวลาที่ไม่มีการใช้งานของโปรแกรมทำงานของส่วนขยายอีกครั้ง ใน Chrome 110 โปรแกรมทำงานของบริการส่วนขยายได้เลิกใช้อายุการใช้งานสูงสุด 5 นาทีสูงสุด นอกจากนี้ ข้อความที่ส่งถึงแอปพลิเคชันที่มาพร้อมเครื่องและข้อความภายในส่วนขยายจะรีสตาร์ทตัวจับเวลาเมื่อไม่มีการใช้งาน อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ในบทความวงจรชีวิตของโปรแกรมทำงานของบริการส่วนขยาย
เปิดตัว API เพิ่มเติม
- Action API: ตั้งแต่ Chrome 110 เป็นต้นไป คุณจะปรับแต่งข้อความป้ายได้ด้วย
setBadgeTextColor
() และgetBadgeTextColor()
นอกจากนี้isEnabled()
ยังช่วยให้คุณตรวจสอบว่ามีการเปิดใช้การดำเนินการในแท็บปัจจุบันหรือไม่ - Commands API: ข้อบกพร่องที่ทางลัดของส่วนขยายที่ประกาศในไฟล์ Manifest ใน
"commands._execute_action"
หายไประหว่างการแปลงเป็น MV3 ได้รับการแก้ไขใน Chrome 111 - Downloads API: UI การดาวน์โหลดเริ่มต้นใน Chrome ได้ย้ายจากชั้นวางที่ด้านล่างของด้านขวาของแถบอเนกประสงค์ หากต้องการปิดลักษณะการทำงานนี้ คุณสามารถใช้
downloads.setUiOptions()
ซึ่งแทนที่setShelfEnabled()
- History API:
chrome.history.getVisits()
และchrome.history.search()
จะแสดงข้อมูลจากอุปกรณ์อื่นๆ ที่ซิงค์กับฐานข้อมูลประวัติในเครื่องด้วย ซึ่งอาจส่งผลให้มีรายการในประวัติมากขึ้นและมีการเข้าชมจํานวนมากขึ้น มีการเพิ่มisLocal
ไปยังVisitItem
ใน Chrome 115 (คาดว่าจะมีความเสถียรในช่วงปลายเดือนนี้) เพื่อกรองตามการเข้าชมในพื้นที่เท่านั้น - Identity API: ตอนนี้หน้าต่างการตรวจสอบสิทธิ์จะปรากฏเป็นป๊อปอัป แทนที่จะใช้หน้าต่างแอปพลิเคชันแบบเต็ม เราได้เพิ่มตัวเลือกใหม่ 2 รายการ ได้แก่
abortOnLoadForNonInteractive
และtimeoutMsForNonInteractive
เพื่อให้ควบคุมได้มากขึ้นในระหว่างกระบวนการเปลี่ยนเส้นทาง JavaScript - Storage API: ใน Chrome 112 ขนาดพื้นที่เก็บข้อมูล
chrome.session
เพิ่มขึ้นเป็น 10 MB จากนั้นขนาดพื้นที่เก็บข้อมูลchrome.local
ก็มีการเปลี่ยนแปลงให้เหมือนกับใน Chrome 114
เร็วๆ นี้...
Chrome เวอร์ชันที่กำลังจะเปิดตัวนี้จะเปิดตัวฟีเจอร์ต่างๆ มากมายที่จะช่วยให้การย้ายส่วนขยายไปยังไฟล์ Manifest V3 ง่ายขึ้น ดูรายการการเปลี่ยนแปลงที่เกี่ยวข้องกับการย้ายข้อมูล MV3 ที่กำลังจะเกิดขึ้นได้ที่หน้าปัญหาที่ทราบ นอกจากนี้ เราวางแผนที่จะเพิ่มฟีเจอร์ต่อไปนี้
- declarativeNetRequest API: ค่าเริ่มต้นสำหรับพร็อพเพอร์ตี้ isUrlFilterCaseSensitive จะเปลี่ยนเป็น
false
ดูชุดข้อความ WECG - File Handling API จะอนุญาตให้ส่วนขยายของ ChromeOS เปิดไฟล์ที่มีประเภท MIME และนามสกุลไฟล์ที่ระบุได้ ปัจจุบันฟีเจอร์นี้อยู่หลังธง
- Runtime API: เรากำลังจะเปิดตัว
runtime.getContexts()
เพื่อแทนที่extension.getViews()
ซึ่งเลิกใช้งานแล้ว วิธีนี้จะช่วยให้ส่วนขยายระบุได้ว่าหน้าส่วนขยาย เช่น แผงด้านข้างหรือเอกสารนอกหน้าจอเปิดอยู่หรือไม่ ดูข้อเสนอ WECG - โปรแกรมทำงานของบริการ: เรากำลังเพิ่มการจัดการอย่างเข้มงวดใน Chrome API ที่แสดงข้อความแจ้งของผู้ใช้ดังนี้
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
และmanagement.uninstall()
- API แผงด้านข้าง: เรากำลังเปิดตัว
sidepanel.open()
ซึ่งจะเปิดแผงด้านข้างของส่วนขยายแบบเป็นโปรแกรมตามท่าทางสัมผัสของผู้ใช้ เช่น การคลิกเมนูตามบริบท - TabCapture API: เรากำลังเพิ่มความสามารถในการเรียกใช้
getMediaStreamId()
จาก Service Worker ของส่วนขยายและรับ MediaStream จากรหัสสตรีมในเอกสารนอกหน้าจอ โปรดดูการบันทึกเสียงและการจับภาพหน้าจอเพื่อดูตัวอย่าง
โปรดติดตามหน้ามีอะไรใหม่ในส่วนขยายสำหรับประกาศเหล่านี้ทันทีที่พร้อมให้ใช้งานใน Chrome เบต้า
การอัปเกรดเอกสารประกอบและคำแนะนำอื่นๆ เกี่ยวกับไฟล์ Manifest V3
นอกจากนี้เรายังพยายามอย่างเต็มที่เพื่อปรับปรุงประสบการณ์การเรียนรู้ของนักพัฒนาซอฟต์แวร์อีกด้วย ขอขอบคุณทุกคนที่สละเวลาถามคำถามใน chromium-group และรายงานปัญหาเกี่ยวกับเอกสารประกอบใน developer.chrome.com
ไฮไลต์
- ส่วนการย้ายข้อมูล MV3 ใหม่จะระบุวิธีที่นำไปใช้ได้จริงในการแปลงส่วนขยายไฟล์ Manifest V2 เป็น Manifest V3
- คู่มือโปรแกรมทำงานของบริการส่วนขยายจะให้ข้อมูลโดยละเอียดเกี่ยวกับหัวข้อของโปรแกรมทำงานของบริการส่วนขยาย ซึ่งรวมไปถึงวิธีการลงทะเบียนและอัปเดต ลักษณะของวงจร การนำเข้า และอื่นๆ
- บทแนะนำจัดการเหตุการณ์กับโปรแกรมทำงานของบริการจะสอนพื้นฐานของโปรแกรมทำงานของบริการส่วนขยาย โดยจะสร้างส่วนขยายแถบอเนกประสงค์ที่ให้คุณเข้าถึงหน้าอ้างอิง API ของส่วนขยายได้อย่างรวดเร็ว
ข้อมูลอัปเดตเพิ่มเติม
- การใช้ Google Analytics 4 แสดงวิธีติดตามการใช้งานป๊อปอัปส่วนขยายและเหตุการณ์ของ Service Worker
- การใช้ตำแหน่งทางภูมิศาสตร์จะแสดงวิธีรับตำแหน่งทางภูมิศาสตร์ของส่วนขยายโดยใช้ Offscreen API
- การบันทึกเสียงและการจับภาพหน้าจอจะสอนวิธีจับเสียงและวิดีโอจากแท็บ หน้าต่าง หรือหน้าจอโดยใช้ API ของ
chrome.tabCapture
และnavigator.mediaDevices.getDisplayMedia()
- เราได้เพิ่มเคล็ดลับในการแก้ไขข้อบกพร่องใหม่ในคู่มือส่วนขยายการแก้ไขข้อบกพร่อง
- เราได้อัปเดตหลักเกณฑ์ของคำเตือนเกี่ยวกับสิทธิ์เพื่อช่วยให้คุณเข้าใจวิธีการทำงานของคำเตือนสิทธิ์ได้ง่ายขึ้น และคุณจะมอบประสบการณ์การใช้งานที่ดียิ่งขึ้นให้แก่ผู้ใช้ได้อย่างไร นอกจากนี้ยังมีวิธีที่ปฏิบัติได้จริงในการตรวจสอบคำเตือนที่ผู้ใช้จะเห็น
- ทีมของเราและผู้ร่วมให้ข้อมูลยังได้เพิ่มตัวอย่างส่วนขยายไฟล์ Manifest V3 ใหม่ ได้แก่ WASM ในส่วนขยาย, การสาธิต Scripting API, คู่มือการใช้งาน Side Panel API และตัวอย่าง DeclarativeNetRequest API คุณสามารถสำรวจตัวอย่างส่วนขยายอื่นๆ ได้ในที่เก็บตัวอย่าง GitHub ของเรา
เร็วๆ นี้...
- วิธีย้ายข้อมูลโค้ดที่โฮสต์จากระยะไกลไปยังไฟล์ Manifest V3
- วิธีเรียกใช้การทดสอบอัตโนมัติสำหรับส่วนขยาย Chrome
- ปรับปรุงคำแนะนำเกี่ยวกับคำขอสุทธิเชิงประกาศ
- การปรับปรุงคำอธิบายสคริปต์เนื้อหา
💡 รู้ไหม
ก่อนที่จะสรุป เราขอแชร์เครื่องมือและข้อมูลเชิงลึกที่มีประโยชน์ 2 รายการดังนี้
- Chrome เริ่มรองรับการใช้งาน WebHID แล้ว โดยคุณสามารถลองใช้ API นี้ใน Chrome 115 ได้ (แต่โปรดทราบว่ายังอยู่ระหว่างการพัฒนา)
- Puppeteer รองรับการทดสอบในโหมดไม่มีส่วนหัวโดยใช้
--headless=new
แล้ว อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในบล็อกโพสต์การอัปเกรดโหมดไม่มีส่วนหัวของ Chrome - คุณสามารถใช้เครื่องมือทดสอบการอัปเดตส่วนขยายเพื่อตรวจสอบว่ามีการเรียกคำเตือนใดเมื่อมีการเปลี่ยนแปลงสิทธิ์ในไฟล์ Manifest วิธีนี้ทำให้คุณสัมผัสกับกระบวนการอัปเดตได้เหมือนกับที่ผู้ใช้ได้รับ ซึ่งเป็นสิ่งสำคัญเนื่องจากสิทธิ์บางอย่างอาจปิดใช้ส่วนขยายจนกว่าผู้ใช้จะให้สิทธิ์เข้าถึงอีกครั้ง
มาเชื่อมต่อกันเลย 🙌
โดยในปีนี้ ทีมส่วนขยายยินดีที่จะได้พบปะกับนักพัฒนาส่วนขยายแบบเข้าร่วมด้วยตนเองที่งาน Google I/O Connect เรากำลังสร้างพื้นที่ทำงานใหม่เพื่อเชื่อมต่อกับคุณ เช่น การเปิดตัวการสนทนากลุ่มและกิจกรรมมีตติ้ง
ในระหว่างนี้ โปรดถามคำถามเกี่ยวกับ chromium-groups ต่อไป ลองพิจารณาเข้าร่วมใน WECG และรายงานปัญหาเกี่ยวกับเอกสารในที่เก็บ GitHub ของdeveloper.chrome.com
ขอขอบคุณอีกครั้งที่ร่วมเป็นส่วนหนึ่งของชุมชนนักพัฒนาซอฟต์แวร์ส่วนขยาย