"externally_connectable"พร็อพเพอร์ตี้ไฟล์ Manifest จะประกาศว่าส่วนขยายและหน้าเว็บใดที่เชื่อมต่อกับส่วนขยายของคุณได้โดยใช้ runtime.connect() และ runtime.sendMessage()
ดูบทแนะนำเกี่ยวกับการส่งข้อความได้ที่การรับส่งข้อความระหว่างส่วนขยายและการส่งข้อความ จากหน้าเว็บ
เชื่อมต่อโดยไม่มี externally_connectable
หากไม่ได้ประกาศคีย์ externally_connectable ในไฟล์ Manifest ของส่วนขยาย ส่วนขยายทั้งหมดจะเชื่อมต่อได้ แต่หน้าเว็บจะเชื่อมต่อไม่ได้ ดังนั้น เมื่ออัปเดตไฟล์ Manifest เพื่อใช้ externally_connectable หากไม่ได้ระบุ "ids": ["*"] ไว้ ส่วนขยายอื่นๆ จะไม่สามารถเชื่อมต่อกับส่วนขยายของคุณได้ ซึ่งอาจเป็นผลลัพธ์โดยไม่ตั้งใจ ดังนั้นโปรดคำนึงถึงเรื่องนี้
ไฟล์ Manifest
{
"name": "My externally connectable extension",
"externally_connectable": {
"ids": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
...
],
// If this field is not specified, no web pages can connect.
"matches": [
"https://*.google.com/*",
"*://*.chromium.org/*",
...
],
"accepts_tls_channel_id": false
},
...
}
ข้อมูลอ้างอิง
คีย์ Manifest ของ "externally_connectable" มีพร็อพเพอร์ตี้ที่ไม่บังคับต่อไปนี้
"ids"- รหัสของส่วนขยายที่ได้รับอนุญาตให้เชื่อมต่อ หากเว้นว่างไว้หรือไม่ได้ระบุไว้ จะไม่มีส่วนขยายหรือแอปใดเชื่อมต่อได้ ไวลด์การ์ด
"*"จะอนุญาตให้ส่วนขยายและแอปทั้งหมดเชื่อมต่อ "matches"- รูปแบบการจับคู่สำหรับหน้าเว็บที่ได้รับอนุญาตให้ เชื่อมต่อ หากปล่อยว่างหรือไม่ได้ระบุไว้ หน้าเว็บจะเชื่อมต่อไม่ได้
"accepts_tls_channel_id"- ช่วยให้ส่วนขยายใช้รหัสแชแนล TLS ของหน้าเว็บที่เชื่อมต่อกับส่วนขยายได้ นอกจากนี้ เว็บเพจยังต้องเลือกส่งรหัสช่อง TLS ไปยังส่วนขยายโดยการตั้งค่า
includeTlsChannelIdเป็นtrueใน connectInfo ของ runtime.connect หรือoptions ของ runtime.sendMessage หากตั้งค่าเป็นfalse, runtime.MessageSender.tlsChannelId จะไม่ได้รับการตั้งค่าในทุกกรณี
การดำเนินการนี้จะไม่ส่งผลต่อ Content Script