externally_connectable

พร็อพเพอร์ตี้ไฟล์ 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 ไม่ว่าในกรณีใดก็ตาม

ปัญหานี้ไม่ส่งผลต่อสคริปต์เนื้อหา