รูปแบบไฟล์ 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 Web Store กล่องโต้ตอบการติดตั้ง และ หน้าส่วนขยาย 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-Embedder-Policy ซึ่ง กำหนดค่าการฝังทรัพยากรแบบข้ามต้นทางในหน้าส่วนขยาย
"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"
ระบุรหัสของส่วนขยายสำหรับ Use Case การพัฒนาต่างๆ สำหรับข้อมูลเพิ่มเติม ให้ดูที่คีย์
"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 อักขระ หากนี่คือ ไม่ได้กำหนด เป็นเวอร์ชันตัดของ "ชื่อ" จอแสดงผลหลักแทน
"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"
อนุญาตให้เข้าถึง fileSystemProvider API ซึ่งช่วยให้ส่วนขยายสร้างระบบไฟล์ที่ ChromeOS ใช้งานได้
"input_components"
อนุญาตให้ใช้ Input Method Editor API สำหรับข้อมูลเพิ่มเติม โปรดดู input_components