externally_connectable

בנכס המניפסט externally_connectable מצוין אילו תוספים, אפליקציות ודפי אינטרנט יכולים מתחברים לתוסף דרך runtime.connect ו-runtime.sendMessage.

למדריך על העברת הודעות, ראו העברת הודעות בין תוספים והעברת הודעות באפליקציות ושליחת הודעות מדפי אינטרנט.

מתחבר ללא external_connectable

אם לא הוצהרה על externally_connectable במניפסט של התוסף, כל התוספים והאפליקציות יכול להתחבר, אבל אף דף אינטרנט לא יכול להתחבר. כתוצאה מכך, כשמעדכנים את המניפסט לשימוש externally_connectable, אם לא מציינים את "ids": ["*"] אז תוספים ואפליקציות אחרים לא תהיה יותר אפשרות להתחבר לתוסף. תוצאה זו עלולה להיות לא מכוונת, ולכן מומלץ לשמור או בראשי תיבות.

קובץ המניפסט.json לדוגמה

{
  "name": "My externally connectable extension",
  "externally_connectable": {
    // Extension and app IDs. If this field is not specified, no
    // extensions or apps can connect.
    "ids": [
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
      ...
      // Alternatively, to match all extensions and apps, specify only
      // "*".
      "*"
    ],
    // Match patterns for web pages. Does not affect content scripts.
    // If this field is not specified, no webpages can connect.
    "matches": [
      "https://*.google.com/*",
      "*://*.chromium.org/*",
      ...
    ],
    // Indicates that the extension would like to make use of the TLS
    // channel ID of the web page connecting to it. The web page must
    // also opt to send the TLS channel ID to the extension via setting
    // includeTlsChannelId to true in runtime.connect's connectInfo
    // or runtime.sendMessage's options.
    "accepts_tls_channel_id": false
  },
  ...
}

חומרי עזר

למפתח המניפסט external_connectable יכולים להיות המאפיינים הבאים:

  • ids (מערך מחרוזת) - אופציונלי

    המזהים של התוספים או האפליקציות שמורשים להתחבר. אם השדה יישאר ריק או לא צוין, לא תוספים או אפליקציות יכולים להתחבר.

    התו הכללי לחיפוש "*" יאפשר לכל התוספים והאפליקציות להתחבר.

  • matches (מערך מחרוזת) - אופציונלי

    תבניות ה-URL של דפי אינטרנט שמורשות להתחבר. הפעולה הזו לא משפיעה על התוכן סקריפטים. אם השדה יישאר ריק או לא צוין, לא ניתן יהיה להתחבר לדפי אינטרנט.

    התבניות לא יכולות לכלול דומיינים עם תווים כלליים לחיפוש או תת-דומיינים של דומיינים(אפקטיביים) ברמה העליונה; *://google.com/* ו-http://*.chromium.org/* תקפים, אבל <all_urls>, http://*/*, *://*.com/* ואפילו http://*.appspot.com/* לא.

  • accepts_tls_channel_id (בוליאני) - אופציונלי

    אם הערך הוא true, יוגדרו הודעות שיישלחו דרך runtime.connect או דרך runtime.sendMessage. runtime.MessageSender.tlsChannelId, אם השיטות האלה מבקשות את זה. אם false, השדה runtime.MessageSender.tlsChannelId לא יוגדר אף פעם בשום נסיבות.