รูปแบบไฟล์ Manifest

ส่วนขยายทั้งหมดต้องมีไฟล์ 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 ของส่วนขยายซึ่งทำหน้าที่เป็นเครื่องจัดการเหตุการณ์ สำหรับข้อมูลเพิ่มเติม โปรดดูเกี่ยวกับผู้ปฏิบัติงานของบริการส่วนขยาย
"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"
กำหนดหน้าที่ใช้ API ของ DevTools
"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" หากไม่ได้ระบุไว้ ค่า "เวอร์ชัน" จะแสดงในหน้าการจัดการส่วนขยายแทน
"web_accessible_resources"
ระบุไฟล์ภายในส่วนขยายที่หน้าเว็บหรือส่วนขยายอื่นๆ เข้าถึงได้ ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลที่เข้าถึงได้บนเว็บ

คีย์ ChromeOS ที่ไม่บังคับ

"file_browser_handlers"
ให้สิทธิ์การเข้าถึง fileBrowserHandler API ซึ่งช่วยให้ส่วนขยายเข้าถึงโปรแกรมเรียกดูไฟล์ของ ChromeOS ได้
"file_handlers"
ระบุประเภทไฟล์ที่ส่วนขยาย ChromeOS จะจัดการ ดูข้อมูลเพิ่มเติมได้ที่ file_handlers
"file_system_provider_capabilities"
อนุญาตการเข้าถึง API ของ fileSystemProvider ซึ่งช่วยให้ส่วนขยายสร้างระบบไฟล์ที่ ChromeOS ใช้ได้
"input_components"
อนุญาตให้ใช้ Input Method Editor API ดูข้อมูลเพิ่มเติมได้ที่ input_components