ส่วนขยายทุกรายการต้องมีไฟล์ manifest.json
ในไดเรกทอรีรูทซึ่งแสดงข้อมูลสำคัญเกี่ยวกับโครงสร้างและลักษณะการทํางานของส่วนขยายนั้น
หน้านี้จะอธิบายโครงสร้างของไฟล์ Manifest ของส่วนขยายและฟีเจอร์ที่รวมไว้ได้
ตัวอย่าง
ตัวอย่างไฟล์ Manifest ต่อไปนี้แสดงโครงสร้างไฟล์ Manifest พื้นฐานและฟีเจอร์ที่ใช้กันโดยทั่วไปบางส่วนเพื่อเป็นจุดเริ่มต้นในการสร้างไฟล์ Manifest ของคุณเอง
ไฟล์ Manifest ขั้นต่ำ
{
"manifest_version": 3,
"name": "Minimal Manifest",
"version": "1.0.0",
"description": "A basic example extension with only required keys",
"icons": {
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
}
ลงทะเบียนสคริปต์เนื้อหา
{
"manifest_version": 3,
"name": "Run script automatically",
"description": "Runs a script on www.example.com automatically when user installs the extension",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"content_scripts": [
{
"js": [
"content-script.js"
],
"matches": [
"http://*.example.com//"
]
}
]
}
แทรกสคริปต์เนื้อหา
{
"manifest_version": 3,
"name": "Click to run",
"description": "Runs a script when the user clicks the action toolbar icon.",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_icon": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
}
},
"permissions": ["scripting", "activeTab"]
}
ป๊อปอัปที่มีสิทธิ์
{
"manifest_version": 3,
"name": "Popup extension that requests permissions",
"description": "Extension that includes a popup and requests host permissions and storage permissions .",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"action": {
"default_popup": "popup.html"
},
"host_permissions": [
"https://*.example.com/"
],
"permissions": [
"storage"
]
}
แผงด้านข้าง
{
"manifest_version": 3,
"name": "Side panel extension",
"version": "1.0",
"description": "Extension with a default side panel.",
"icons": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"side_panel": {
"default_path": "sidepanel.html"
},
"permissions": ["sidePanel"]
}
คีย์ไฟล์ Manifest
ต่อไปนี้คือรายการคีย์ไฟล์ Manifest ทั้งหมดที่รองรับ
คีย์ที่จําเป็นสําหรับแพลตฟอร์มชิ้นงาน
"manifest_version"
- จำนวนเต็มที่ระบุเวอร์ชันของรูปแบบไฟล์ Manifest ที่ใช้โดยส่วนขยาย ค่าที่รองรับมีเพียง
3
เท่านั้น "name"
- สตริงที่ระบุส่วนขยายใน Chrome เว็บสโตร์, กล่องโต้ตอบการติดตั้ง และหน้าส่วนขยาย Chrome ของผู้ใช้ (
chrome://extensions
) โดยความยาวสูงสุดคือ 75 อักขระ ดูข้อมูลเกี่ยวกับการใช้ชื่อเฉพาะภาษาได้ที่การปรับให้เหมาะกับหลายภาษา "version"
- สตริงที่ระบุหมายเลขเวอร์ชันของส่วนขยาย ดูข้อมูลเกี่ยวกับการจัดรูปแบบหมายเลขเวอร์ชันได้ที่เวอร์ชัน
คีย์ที่จําเป็นสําหรับ Chrome เว็บสโตร์
"description"
- สตริงที่อธิบายส่วนขยายทั้งใน Chrome เว็บสโตร์และหน้าการจัดการส่วนขยายของผู้ใช้ ความยาวสูงสุดคือ 132 อักขระ ดูข้อมูลเกี่ยวกับการแปลคำอธิบายได้ที่การปรับให้เข้ากับวัฒนธรรมท้องถิ่น
"icons"
- ไอคอนอย่างน้อย 1 รายการที่แสดงถึงส่วนขยาย ดูข้อมูลเกี่ยวกับแนวทางปฏิบัติแนะนำได้ที่ไอคอน
คีย์ที่ไม่บังคับ
"action"
- กำหนดลักษณะที่ปรากฏและลักษณะการทํางานของไอคอนส่วนขยายในแถบเครื่องมือของ Google ดูข้อมูลเพิ่มเติมได้ที่
chrome.action
"author"
- ระบุอีเมลของบัญชีที่ใช้สร้างส่วนขยาย
"background"
- ระบุไฟล์ JavaScript ที่มี Service Worker ของส่วนขยาย ซึ่งทำหน้าที่เป็นตัวแฮนเดิลเหตุการณ์ ดูข้อมูลเพิ่มเติมได้ที่เกี่ยวกับ Service Worker ของส่วนขยาย
"chrome_settings_overrides"
- กำหนดการลบล้างการตั้งค่า Chrome ที่เลือก ดูข้อมูลเพิ่มเติมได้ที่การลบล้างการตั้งค่า Chrome
"chrome_url_overrides"
- กำหนดการลบล้างสำหรับหน้า Chrome เริ่มต้น ดูข้อมูลเพิ่มเติมได้ที่ลบล้างหน้า Chrome
"commands"
- กำหนดแป้นพิมพ์ลัดภายในส่วนขยาย ดูข้อมูลเพิ่มเติมได้ที่ chrome.commands
"content_scripts"
- ระบุไฟล์ JavaScript หรือ CSS ที่จะใช้เมื่อผู้ใช้เปิดหน้าเว็บบางหน้า ดูข้อมูลเพิ่มเติมได้ที่สคริปต์เนื้อหา
"content_security_policy"
- กำหนดข้อจำกัดเกี่ยวกับสคริปต์ สไตล์ และทรัพยากรอื่นๆ ที่ส่วนขยายใช้ได้ ดูข้อมูลเพิ่มเติมได้ที่นโยบายความปลอดภัยของเนื้อหา
"cross_origin_embedder_policy"
- ระบุค่าสําหรับส่วนหัว HTTP ของนโยบายเครื่องมือฝังแบบข้ามต้นทาง ซึ่งจะกําหนดค่าการฝังทรัพยากรแบบข้ามต้นทางในหน้าส่วนขยาย
"cross_origin_opener_policy"
- ระบุค่าสำหรับส่วนหัว HTTP Cross-Origin-Opener-Policy ซึ่งช่วยให้คุณตรวจสอบได้ว่าหน้าส่วนขยายระดับบนสุดไม่ได้แชร์กลุ่มบริบทการท่องเว็บกับเอกสารข้ามแหล่งที่มา
"declarative_net_request"
- กําหนดกฎแบบคงที่สําหรับ declarativeNetRequest API ซึ่งอนุญาตให้บล็อกและแก้ไขคําขอเครือข่าย
"default_locale"
- สตริงที่กําหนดภาษาเริ่มต้นของส่วนขยายที่รองรับหลายภาษา เช่น "en" และ "pt_BR" ต้องใช้คีย์นี้ในส่วนขยายที่แปลแล้ว และต้องไม่ใช้ในชิ้นงานที่ไม่ได้แปล ดูข้อมูลเพิ่มเติมได้ที่การปรับให้เหมาะกับหลายภาษา
"devtools_page"
- กำหนดหน้าเว็บที่ใช้ DevTools API
"export"
- อนุญาตให้ส่งออกทรัพยากรจากส่วนขยาย ดูข้อมูลเพิ่มเติมได้ที่ส่งออก
"externally_connectable"
- ระบุหน้าเว็บและส่วนขยายอื่นๆ ที่เชื่อมต่อกับส่วนขยายของคุณได้ ดูข้อมูลเพิ่มเติมได้ที่
"externally_connectable"
"homepage_url"
- สตริงที่ระบุ URL ของหน้าแรกของส่วนขยาย หากไม่ได้ระบุค่านี้ หน้าแรกจะเป็นหน้า Chrome เว็บสโตร์ของส่วนขยายโดยค่าเริ่มต้น ช่องนี้จะเป็นประโยชน์อย่างยิ่งหากคุณโฮสต์ส่วนขยายในเว็บไซต์ของคุณเอง
"host_permissions"
- แสดงรายการหน้าเว็บที่ส่วนขยายได้รับอนุญาตให้โต้ตอบด้วย ซึ่งกำหนดโดยใช้รูปแบบการจับคู่ URL ระบบจะขอสิทธิ์จากผู้ใช้สำหรับเว็บไซต์เหล่านี้เมื่อติดตั้ง ดูข้อมูลเพิ่มเติมได้ที่สิทธิ์ของโฮสต์
"import"
- อนุญาตให้นําเข้าทรัพยากรไปยังส่วนขยาย ดูข้อมูลเพิ่มเติมได้ที่นําเข้า
"incognito"
- กำหนดลักษณะการทำงานของส่วนขยายในโหมดไม่ระบุตัวตน ค่าที่รองรับคือ
"spanning"
,"split"
และ"not_allowed"
ดูข้อมูลเพิ่มเติมได้ที่โหมดไม่ระบุตัวตน "key"
- ระบุรหัสของส่วนขยายสำหรับกรณีการใช้งานต่างๆ ในการพัฒนา ดูข้อมูลเพิ่มเติมได้ที่คีย์
"minimum_chrome_version"
- กำหนดเวอร์ชัน Chrome ที่เก่าที่สุดที่ติดตั้งส่วนขยายได้ ค่าต้องเป็นส่วนย่อยของสตริงเวอร์ชันเบราว์เซอร์ Chrome ที่มีอยู่ เช่น
"107"
หรือ"107.0.5304.87"
ผู้ใช้ที่มี Chrome เวอร์ชันเก่ากว่าเวอร์ชันขั้นต่ำจะเห็นคำเตือน "ใช้ร่วมกันไม่ได้" ใน Chrome เว็บสโตร์ และไม่สามารถติดตั้งส่วนขยายได้ หากคุณเพิ่มข้อมูลนี้ลงในส่วนขยายที่มีอยู่ ผู้ใช้ที่ใช้ Chrome เวอร์ชันเก่าจะไม่ได้รับการอัปเดตส่วนขยายโดยอัตโนมัติ ซึ่งรวมถึงผู้ใช้แบบธุรกิจในโหมดชั่วคราว "oauth2"
- อนุญาตให้ใช้บัตรประจำตัวความปลอดภัย OAuth 2.0 ค่าของคีย์นี้ต้องเป็นออบเจ็กต์ที่มีพร็อพเพอร์ตี้
"client_id"
และ"scopes"
โปรดดูรายละเอียดที่บทแนะนำ OAuth 2.0 "omnibox"
- อนุญาตให้ส่วนขยายลงทะเบียนคีย์เวิร์ดในแถบที่อยู่ของ Chrome ดูข้อมูลเพิ่มเติมได้ที่แถบอเนกประสงค์
"optional_host_permissions"
- ประกาศสิทธิ์ของโฮสต์ที่ไม่บังคับสำหรับส่วนขยาย
"optional_permissions"
- ประกาศสิทธิ์ที่ไม่บังคับสำหรับส่วนขยาย
"options_page"
- ระบุเส้นทางไปยังไฟล์ options.html เพื่อให้ส่วนขยายใช้เป็นหน้าตัวเลือก โปรดดูข้อมูลเพิ่มเติมที่หัวข้อให้ตัวเลือกแก่ผู้ใช้
"options_ui"
- ระบุเส้นทางไปยังไฟล์ HTML ที่อนุญาตให้ผู้ใช้เปลี่ยนตัวเลือกส่วนขยายจากหน้าส่วนขยายของ Chrome ดูข้อมูลเพิ่มเติมได้ที่ตัวเลือกแบบฝัง
"permissions"
- เปิดใช้ API ของส่วนขยายที่เฉพาะเจาะจง ดูคำอธิบายทั่วไปได้ที่สิทธิ์ หน้าอ้างอิงของ API แต่ละรายการจะแสดงสิทธิ์ที่จําเป็น
"requirements"
- แสดงรายการเทคโนโลยีที่จําเป็นต่อการใช้ส่วนขยาย โปรดดูรายการข้อกำหนดที่รองรับในหัวข้อข้อกำหนด
"sandbox"
- กำหนดชุดหน้าส่วนขยายที่ไม่มีสิทธิ์เข้าถึง API ของส่วนขยายหรือการเข้าถึงหน้าเว็บที่ไม่ได้อยู่ในแซนด์บ็อกซ์โดยตรง ดูข้อมูลเพิ่มเติมได้ที่แซนด์บ็อกซ์
"short_name"
- สตริงที่มีชื่อของส่วนขยายเวอร์ชันย่อที่จะใช้เมื่อพื้นที่อักขระมีจํากัด ความยาวสูงสุด 12 อักขระ หากไม่มีค่านี้ ระบบจะแสดงคีย์ "name" แบบตัดให้สั้นลงแทน
"side_panel"
- ระบุไฟล์ HTML เพื่อแสดงในsidePanel
"storage"
- ประกาศสคีมา JSON สำหรับพื้นที่เก็บข้อมูลที่มีการจัดการ ดูข้อมูลเพิ่มเติมได้ที่ไฟล์ Manifest สำหรับพื้นที่เก็บข้อมูล
"tts_engine"
- ลงทะเบียนส่วนขยายเป็นเครื่องมืออ่านออกเสียงข้อความ ดูข้อมูลเพิ่มเติมได้ที่ ttsEngine API
"update_url"
- สตริงที่มี URL ของหน้าอัปเดตของส่วนขยาย ใช้คีย์นี้หากคุณโฮสต์ส่วนขยายนอก Chrome เว็บสโตร์
"version_name"
- สตริงที่อธิบายเวอร์ชันของส่วนขยาย ตัวอย่างเช่น
"1.0 beta"
และ"build rc2"
หากไม่ได้ระบุ ค่า "version" จะแสดงในหน้าการจัดการส่วนขยายแทน "web_accessible_resources"
- กำหนดไฟล์ภายในส่วนขยายที่หน้าเว็บหรือส่วนขยายอื่นๆ สามารถเข้าถึงได้ ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลที่เข้าถึงได้ทางเว็บ
แป้นของ ChromeOS ที่ไม่บังคับ
"file_browser_handlers"
- ให้สิทธิ์เข้าถึง
fileBrowserHandler
API ซึ่งช่วยให้ส่วนขยายเข้าถึงโปรแกรมดูไฟล์ ChromeOS ได้ "file_handlers"
- ระบุประเภทไฟล์สำหรับส่วนขยาย ChromeOS ที่จะจัดการ ดูข้อมูลเพิ่มเติมได้ที่
file_handlers
"file_system_provider_capabilities"
- อนุญาตให้เข้าถึง
fileSystemProvider
API ซึ่งช่วยให้ส่วนขยายสร้างระบบไฟล์ที่ ChromeOS ใช้ได้ "input_components"
- อนุญาตให้ใช้ Input Method Editor API ดูข้อมูลเพิ่มเติมได้ที่
input_components