เกิดอะไรขึ้นในส่วนขยาย Chrome

ระบบไอน้ำ Amy
Amy Steam

ถึงตอนนี้ปี 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 ช่วยให้คุณออกแบบประสบการณ์ของผู้ใช้ที่ดีเยี่ยม

ส่วนขยายพจนานุกรมที่แสดงคำจำกัดความของคำที่เลือก
ส่วนขยายพจนานุกรมแผงด้านข้าง ดูโค้ดในที่เก็บ chrome-extensions-sample

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 ส่วนขยายได้อย่างรวดเร็ว

ข้อมูลอัปเดตเพิ่มเติม

เร็วๆ นี้...

  • วิธีย้ายข้อมูลโค้ดที่โฮสต์ระยะไกลไปยังไฟล์ 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

ขอขอบคุณอีกครั้งที่ร่วมเป็นส่วนหนึ่งของชุมชนนักพัฒนาส่วนขยาย