พร็อพเพอร์ตี้ไฟล์ Manifest "externally_connectable"
จะประกาศว่าส่วนขยายและหน้าเว็บใดบ้างที่ทำได้
เชื่อมต่อกับส่วนขยายโดยใช้ runtime.connect()
และ runtime.sendMessage()
ดูบทแนะนำเกี่ยวกับการส่งข้อความได้ที่การรับส่งข้อความกับส่วนขยายแบบข้ามและการส่งข้อความ จากหน้าเว็บ
เชื่อมต่อโดยไม่มีการเชื่อมต่อภายนอก
หากไม่ได้ประกาศคีย์ 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"
- รูปแบบ URL สำหรับหน้าเว็บที่อนุญาตให้เชื่อมต่อ หากเว้นว่างไว้หรือไม่ได้ระบุ หน้าเว็บจะเชื่อมต่อไม่ได้ รูปแบบจะรวมโดเมนไวลด์การ์ดหรือโดเมนย่อยของโดเมนระดับบนสุด(มีประสิทธิภาพ) ไม่ได้ เช่น
✅ URL ที่ถูกต้อง | ❌ URL ไม่ถูกต้อง |
---|---|
*://example.com/ |
*://example.com/one/ |
http://*.example.org/* |
<all_urls> |
https://example.com/* |
http://*/* |
"accepts_tls_channel_id"
- อนุญาตให้ส่วนขยายใช้รหัสช่อง TLS ของหน้าเว็บที่เชื่อมต่อกับส่วนขยาย หน้าเว็บนี้ต้องเลือกส่งรหัสช่อง TLS ไปยังส่วนขยายด้วยการตั้งค่า
includeTlsChannelId
ไปยังtrue
ใน connectInfo หรือ DBM.sendMessage ของ ตัวเลือก ของรันไทม์.connect หากตั้งค่าเป็นfalse
หากไม่มีการตั้งค่า runtime.MessageSender.tlsChannelId ไม่ว่าในกรณีใดก็ตาม
การดำเนินการนี้ไม่มีผลต่อสคริปต์เนื้อหา