externally_connectable

"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