ถึงตอนนี้ปี 2023 เป็นปีที่เราพบกับส่วนขยาย Chrome ที่แสนวุ่นวาย ความคิดเห็นอันมีค่าของคุณช่วยให้เราปรับปรุงแพลตฟอร์มส่วนขยายและเอกสารของเราได้ นอกจากนี้เรายังทำงานร่วมกับผู้ให้บริการเบราว์เซอร์รายอื่นๆ ในกลุ่มชุมชน Web Extensions ต่อไป เพื่อให้ 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 แผงด้านข้างใหม่ 🎉
ก่อนหน้านี้ วิธีเดียวที่จะสร้างแถบด้านข้างในส่วนขยายได้คือการแทรกองค์ประกอบใหม่พร้อมสคริปต์เนื้อหาในทุกๆ หน้า ใน Chrome 114 มีการเปิดตัว Side Panel API ตอนนี้คุณสามารถพัฒนาประสบการณ์การใช้งานแถบด้านข้างของผู้ใช้ร่วมด้วยวิธีที่ตรงไปตรงมายิ่งขึ้น อ่านเพิ่มเติมเกี่ยวกับวิธีที่ Side Panel API ช่วยให้คุณออกแบบประสบการณ์ของผู้ใช้ที่ดีเยี่ยม
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 - Service Worker: เรากำลังเพิ่ม Keep-A ขั้นสูงลงใน Chrome API ที่แสดงข้อความแจ้งผู้ใช้:
permissions.request()
,desktopCapture.chooseDesktopMedia()
,identity.launchWebAuthFlow()
และmanagement.uninstall()
- API แผงด้านข้าง: เรากำลังจะเปิดตัว
sidepanel.open()
ซึ่งจะเปิดแผงด้านข้างของส่วนขยายแบบเป็นโปรแกรมตามท่าทางสัมผัสของผู้ใช้ เช่น การคลิกเมนูตามบริบท - Tab Transcribe API: เรากำลังเพิ่มความสามารถในการเรียกใช้
getMediaStreamId()
จากโปรแกรมทำงานของบริการส่วนขยายและรับ MediaStream จากรหัสสตรีมในเอกสารนอกหน้าจอ โปรดดูตัวอย่างในการบันทึกเสียงและการจับภาพหน้าจอ
โปรดติดตามหน้ามีอะไรใหม่ในส่วนขยายสำหรับประกาศเหล่านี้ทันทีที่พร้อมใช้งานใน Chrome เบต้า
การอัปเกรดเอกสารประกอบและคำแนะนำเพิ่มเติมเกี่ยวกับไฟล์ Manifest V3
นอกจากนี้ เรายังได้ทำงานอย่างหนักเพื่อปรับปรุงประสบการณ์การเรียนรู้ของนักพัฒนาซอฟต์แวร์ด้วย ขอขอบคุณทุกคนที่สละเวลาถามคำถามใน chromium-group และรายงานปัญหาในเอกสารใน developer.chrome.com
ไฮไลต์
- ส่วนการย้ายข้อมูล MV3 ใหม่แสดงวิธีแปลงส่วนขยายไฟล์ Manifest V2 เป็นไฟล์ Manifest V3 ที่นำไปปฏิบัติได้จริง
- คู่มือโปรแกรมทำงานของบริการส่วนขยายจะให้ข้อมูลโดยละเอียดเกี่ยวกับหัวข้อของโปรแกรมทำงานของบริการส่วนขยาย ซึ่งรวมถึงวิธีการลงทะเบียนและการอัปเดต ลักษณะวงจร วิธีการทำงานของการนำเข้า และอื่นๆ
- บทแนะนำจัดการเหตุการณ์ด้วย Service Worker จะสอนพื้นฐานของโปรแกรมทำงานของบริการส่วนขยาย ระบบจะสร้างส่วนขยายแถบอเนกประสงค์ที่ให้คุณเข้าถึงหน้าอ้างอิง API ส่วนขยายได้อย่างรวดเร็ว
ข้อมูลอัปเดตเพิ่มเติม
- การใช้ Google Analytics 4 จะสาธิตวิธีติดตามการใช้ป๊อปอัปส่วนขยายและเหตุการณ์ Service Worker
- การใช้ตำแหน่งทางภูมิศาสตร์จะแสดงวิธีการค้นหาตำแหน่งทางภูมิศาสตร์ของส่วนขยายโดยใช้ Offscreen API
- การบันทึกเสียงและการจับภาพหน้าจอจะสอนวิธีจับเสียงและวิดีโอจากแท็บ หน้าต่าง หรือหน้าจอโดยใช้ API ของ
chrome.tabCapture
และnavigator.mediaDevices.getDisplayMedia()
- เราได้เพิ่มเคล็ดลับในการแก้ไขข้อบกพร่องใหม่ลงในคู่มือส่วนขยายการแก้ไขข้อบกพร่อง
- เราได้อัปเดตหลักเกณฑ์คำเตือนเกี่ยวกับสิทธิ์เพื่อให้เข้าใจได้ง่ายขึ้นถึงวิธีการทำงานของคำเตือนเกี่ยวกับสิทธิ์และวิธีมอบประสบการณ์ที่ดียิ่งขึ้นให้แก่ผู้ใช้ นอกจากนี้ ยังมีวิธีที่ปฏิบัติได้จริงเพื่อตรวจสอบคำเตือนที่ผู้ใช้จะเห็น
- ทีมของเราและผู้ร่วมให้ข้อมูลยังได้เพิ่มตัวอย่างส่วนขยายไฟล์ Manifest V3 ใหม่อีกด้วย ได้แก่ WASM ในส่วนขยาย, การสาธิต Scripting API, ตำราอาหาร API แผงด้านข้าง และตัวอย่าง DeclarativeNetRequest API คุณสำรวจตัวอย่างส่วนขยายอื่นๆ ได้ในที่เก็บตัวอย่าง GitHub
เร็วๆ นี้...
- วิธีย้ายข้อมูลโค้ดที่โฮสต์ระยะไกลไปยังไฟล์ Manifest V3
- วิธีทำการทดสอบอัตโนมัติสำหรับส่วนขยาย Chrome
- ปรับปรุงคำแนะนำเกี่ยวกับคำขอสุทธิประกาศ
- การปรับปรุงคำอธิบายสคริปต์ของเนื้อหา
💡 ทราบไหมว่า
ก่อนที่จะสรุปสุดท้าย เราขอแชร์เครื่องมือและข้อมูลเชิงลึกที่เป็นประโยชน์ 2-3 ข้อ ดังนี้
- Chrome ได้เริ่มงานเพื่อรองรับ WebHID แล้ว โดยคุณสามารถลองใช้ API ได้ตั้งแต่ Chrome 115 เป็นต้นไป (แต่โปรดทราบว่ายังอยู่ระหว่างการพัฒนา)
- ตอนนี้ Puppeteer รองรับการทดสอบในโหมด Headless โดยใช้
--headless=new
อ่านเพิ่มเติมได้ในบล็อกโพสต์การอัปเกรดโหมดไม่มีส่วนหัวของ Chrome - เครื่องมือทดสอบการอัปเดตส่วนขยายช่วยให้คุณตรวจสอบคำเตือนที่แสดงขึ้นเมื่อมีการเปลี่ยนแปลงสิทธิ์ในไฟล์ Manifest ได้ ซึ่งคุณจะได้สัมผัสกับขั้นตอนการอัปเดตอย่างที่ผู้ใช้ได้พบ การดำเนินการนี้มีความสำคัญเนื่องจากสิทธิ์บางอย่างอาจปิดใช้ส่วนขยายจนกว่าผู้ใช้จะให้สิทธิ์เข้าถึงอีกครั้ง
มาเชื่อมต่อกัน 🙌
ในปีนี้ ทีมส่วนขยายยินดีที่ได้พบนักพัฒนาส่วนขยายด้วยตนเองในกิจกรรม Google I/O Connect เรากําลังสร้างพื้นที่ทำงานใหม่เพื่อเชื่อมต่อกับคุณ เช่น การเปิดตัวการสนทนากลุ่มและกิจกรรมมีตติ้ง
ในระหว่างนี้ โปรดถามคำถามเกี่ยวกับchromium-groups พิจารณาเข้าร่วม WECG และรายงานปัญหาเกี่ยวกับเอกสารประกอบในที่เก็บ GitHub ของdeveloper.chrome.com
ขอขอบคุณอีกครั้งที่ร่วมเป็นส่วนหนึ่งของชุมชนนักพัฒนาส่วนขยาย