externally_connectable

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

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

מתחבר ללא external_connectable

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

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

{
  "name": "My externally connectable app",
  "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/* ו-https://*.chromium.org/* תקפים, אבל <all_urls>, https://*/*, *://*.com/* ואפילו https://*.appspot.com/* לא.

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

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