เผยแพร่: 8 กันยายน 2569
ตั้งแต่ Chrome 155 เป็นต้นไป Chrome จะอัปเดตวิธีที่ข้อจำกัดของนโยบายสำหรับองค์กรมีผลกับส่วนขยายที่ใช้ chrome.debugger API
การเปลี่ยนแปลงนี้จะส่งผลต่อส่วนขยายที่ทำงานในเบราว์เซอร์ที่มีการจัดการซึ่งผู้ดูแลระบบได้กำหนดค่าruntime_blocked_hosts, DisableScreenshots หรือกฎการป้องกันข้อมูลรั่วไหล (DLP) อย่างชัดเจนเท่านั้น
หากส่วนขยายทำงานในเบราว์เซอร์ที่ไม่มีการจัดการหรือในสภาพแวดล้อมขององค์กรที่ไม่มีข้อจำกัดด้านนโยบายที่เฉพาะเจาะจงเหล่านี้ chrome.debugger จะยังคงทำงานตามปกติโดยไม่มีการเปลี่ยนแปลง
ไทม์ไลน์และการเปิดตัว
- Chrome 155 เบต้า: 16 กันยายน 2026
- การเปิดตัว Chrome 155 เวอร์ชันเสถียร: 6 ตุลาคม 2026
การเปลี่ยนแปลงที่สำคัญใน Chrome 155
การเปลี่ยนแปลงต่อไปนี้จะมีผลกับเบราว์เซอร์ที่มีการจัดการขององค์กรเท่านั้น
ข้อจำกัดของโฮสต์: หากนโยบายระดับองค์กร (
ExtensionSettings) กำหนดค่ารายการโฮสต์ที่ถูกบล็อกที่ไม่ว่างเปล่า (runtime_blocked_hosts) สำหรับส่วนขยาย ระบบจะปฏิเสธchrome.debugger.attach()ในเป้าหมายทั้งหมดที่มีเงื่อนไขต่อไปนี้"Host access is restricted by policy."แม้ว่าจะมีต้นทางที่เฉพาะเจาะจงรวมอยู่ใน
runtime_allowed_hostsก็ตามข้อจำกัดของภาพหน้าจอและ DLP: หากนโยบายขององค์กร (
DisableScreenshotsหรือกฎการป้องกันข้อมูลรั่วไหล (DLP)) ปิดใช้การจับภาพหน้าจอchrome.debugger.attach()จะล้มเหลวพร้อมข้อความต่อไปนี้"Screenshot capture is restricted by policy."
โปรไฟล์ส่วนตัวและสภาพแวดล้อมที่ไม่มีการจัดการจะยังคงมีสิทธิ์เข้าถึงแบบไม่จำกัดchrome.debugger เช่นเดิม
API chrome.debugger ให้สิทธิ์เข้าถึงโปรโตคอลเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome (CDP) โดยตรงเพื่อความสามารถอันทรงพลัง ซึ่งรวมถึงการประเมินสคริปต์ที่กำหนดเองและการสกัดกั้นเครือข่าย เนื่องจาก CDP ทำงานภายใต้โมเดลต้นทางของแพลตฟอร์มเว็บ การกรองตามต้นทางจึงไม่สามารถจำกัดได้อย่างปลอดภัย ดังนั้น Chrome 155 จึงแก้ไขปัญหานี้ด้วยโมเดลทั้งหมดหรือไม่มีเลย โดยจะตรวจสอบนโยบายระดับองค์กรล่วงหน้าในการเรียก chrome.debugger.attach()
การดำเนินการที่แนะนำสำหรับนักพัฒนาแอป
จัดการการปฏิเสธการแนบอย่างราบรื่น
จัดการการปฏิเสธการแนบในโค้ดส่วนขยายเสมอเพื่อให้ความคิดเห็นที่ชัดเจนแก่ผู้ใช้ระดับองค์กร
// Promise-based (Manifest V3)
try {
await chrome.debugger.attach({ tabId }, "1.3");
} catch (error) {
if (error.message.includes("Host access is restricted by policy")) {
console.warn("Debugger attach blocked: Extension has host restrictions configured by enterprise policy.");
} else if (error.message.includes("Screenshot capture is restricted by policy")) {
console.warn("Debugger attach blocked: Screenshots or DLP restrictions are enforced by enterprise policy.");
} else {
console.warn("Debugger attach failed:", error.message);
}
}
// Callback-based
chrome.debugger.attach({ tabId }, "1.3", () => {
if (chrome.runtime.lastError) {
console.warn("Debugger attach failed:", chrome.runtime.lastError.message);
}
});
ลองใช้ API ระดับสูงอื่นๆ
หากส่วนขยายไม่จำเป็นต้องมีการเข้าถึง CDP โดยตรงอย่างเคร่งครัด ให้ประเมินการย้ายข้อมูลไปยังส่วนขยาย API ระดับสูงกว่าที่รองรับสิทธิ์เข้าถึงโฮสต์แบบละเอียด และทำงานร่วมกับรายการที่อนุญาตและรายการที่บล็อกของโฮสต์ระดับองค์กร
- ใช้
chrome.scriptingAPI เพื่อเรียกใช้สคริปต์และแทรกสไตล์ลงในหน้าที่อนุญาต - ใช้ API ของ
chrome.declarativeNetRequestเพื่อตรวจสอบ แก้ไข หรือบล็อกคำขอเครือข่ายแบบประกาศ - ใช้
chrome.cookiesAPI ที่มีสิทธิ์เข้าถึงโฮสต์มาตรฐาน
คำแนะนำสำหรับผู้ดูแลระบบขององค์กร
ผู้ดูแลระบบขององค์กรที่จัดการนโยบายส่วนขยายควรทราบว่าส่วนขยายที่ต้องใช้สิทธิ์ดีบักเกอร์จะทำงานไม่ได้หากมีการจำกัดโฮสต์บางส่วน (runtime_blocked_hosts) หากส่วนขยายต้องใช้ chrome.debugger จะต้องไม่มีการกำหนดค่าโฮสต์ที่ถูกบล็อกใน ExtensionSettings
หากปิดใช้การจับภาพหน้าจอโดยใช้ DisableScreenshots หรือกฎการป้องกันข้อมูลรั่วไหล (DLP) chrome.debugger.attach() จะทำงานไม่สำเร็จ
องค์กรที่ต้องการรายการบล็อกโฮสต์หรือข้อจำกัดในการถ่ายภาพหน้าจอควรตรวจสอบว่าส่วนขยายภายในหรือส่วนขยายที่ได้รับอนุมัติสามารถย้ายข้อมูลไปยัง API ระดับสูงกว่า เช่น chrome.scripting หรือ chrome.declarativeNetRequest ได้หรือไม่
แชร์ความคิดเห็น
ดูรายละเอียดเพิ่มเติมได้ที่chrome.debuggerเอกสารประกอบเกี่ยวกับ API หากมีข้อสงสัยหรือความคิดเห็น โปรดติดต่อเราใน Google Groups ของส่วนขยาย Chromium