מאפיין המניפסט externally_connectable
מצהיר אילו תוספים, אפליקציות ודפי אינטרנט יכולים להתחבר לאפליקציה דרך runtime.connect
ו-runtime.sendMessage
.
לקבלת הדרכה על העברת הודעות, קראו את המאמר העברת הודעות בין תוספים ואפליקציות ושליחת הודעות מדפי אינטרנט.
מתחבר ללא חיבור חיצוני
אם לא מוצהר על externally_connectable
במניפסט של האפליקציה, כל התוספים והאפליקציות יוכלו להתחבר אבל לא דפי אינטרנט יוכלו להתחבר. כתוצאה מכך, כשמעדכנים את המניפסט לשימוש ב-externally_connectable
, אם לא מציינים את "ids": ["*"]
, תוספים ואפליקציות אחרים
יאבדו את היכולת להתחבר לאפליקציה. ייתכן שמדובר כתוצאה לא מכוונת, לכן חשוב לזכור זאת.
דוגמה ל-manifest.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
אף פעם לא יוגדר בשום מקרה.