พร็อพเพอร์ตี้ไฟล์ 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 ของรันไทม์.connect หรือตัวเลือกของรันไทม์.sendMessage หากตั้งค่าเป็นfalse
ระบบจะไม่ตั้งค่า runtime.MessageSender.tlsChannelId ไม่ว่าในกรณีใดก็ตาม
ปัญหานี้ไม่ส่งผลต่อสคริปต์เนื้อหา