Manifest dosyası biçimi

Her uzantının, kök dizininde manifest.json dosyası olmalıdır. Bu dosya, uzantının yapısı ve davranışı hakkında önemli bilgiler içerir. Bu sayfada, uzantı manifestlerinin yapısı ve içerebilecekleri özellikler açıklanmaktadır.

Örnekler

Aşağıdaki örnek manifestler, kendi manifestinizi oluşturmaya başlamak için temel manifest yapısını ve bazı yaygın olarak kullanılan özellikleri gösterir:

Minimal 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"
  }
}

İçerik komut dosyası kaydetme

{
  "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//"
      ]
    }
  ]
}

İçerik komut dosyası ekleme

{
  "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"
  ]
}

Yan panel

{
  "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 anahtarları

Aşağıda, desteklenen tüm manifest anahtarlarının listesi verilmiştir.

Uzantılar platformunun gerektirdiği anahtarlar

"manifest_version"
Uzantınızın kullandığı manifest dosya biçiminin sürümünü belirten bir tam sayı. Yalnızca 3 değeri desteklenir.
"name"
Uzantıyı Chrome Web Mağazası, yükleme iletişim kutusu ve kullanıcının Chrome Uzantıları sayfasında (chrome://extensions) tanımlayan bir dize. Maksimum uzunluk 75 karakterdir. Yerel ayara özgü adları kullanma hakkında bilgi için Uluslararasılaştırma bölümüne bakın.
"version"
Uzantının sürüm numarasını tanımlayan bir dize. Sürüm numarası biçimlendirmesi hakkında bilgi için Sürüm başlıklı makaleyi inceleyin.

Chrome Web Mağazası'nın gerektirdiği anahtarlar

"description"
Hem Chrome Web Mağazası'nda hem de kullanıcının uzantı yönetimi sayfasında uzantıyı açıklayan bir dize. En çok 132 karakterden oluşabilir. Açıklamaları yerelleştirme hakkında bilgi için Uluslararası hale getirme konusuna bakın.
"icons"
Uzantınızı temsil eden bir veya daha fazla simge. En iyi uygulamalar hakkında bilgi için Icons konusuna bakın.

İsteğe bağlı anahtarlar

"action"
Uzantı simgesinin Google araç çubuğundaki görünümünü ve davranışını tanımlar. Daha fazla bilgi için chrome.action sayfasına bakın.
"background"
Uzantının hizmet çalışanını içeren JavaScript dosyasını belirtir. Bu dosya, etkinlik işleyici olarak görev yapar. Daha fazla bilgi için Uzantı hizmeti çalışanları hakkında başlıklı makaleyi inceleyin.
"chrome_settings_overrides"
Seçili Chrome ayarları için geçersiz kılmaları tanımlar. Daha fazla bilgi için Chrome ayarlarını geçersiz kılma başlıklı makaleyi inceleyin.
"chrome_url_overrides"
Varsayılan Chrome sayfaları için geçersiz kılmaları tanımlar. Daha fazla bilgi için Chrome sayfalarını geçersiz kılma başlıklı makaleyi inceleyin.
"commands"
Uzantıdaki klavye kısayollarını tanımlar. Daha fazla bilgi için chrome.commands başlıklı makaleyi inceleyin.
"content_scripts"
Kullanıcı belirli web sayfalarını açtığında kullanılacak JavaScript veya CSS dosyalarını belirtir. Daha fazla bilgi için İçerik komut dosyaları başlıklı makaleyi inceleyin.
"content_security_policy"
Bir uzantının kullanabileceği komut dosyaları, stiller ve diğer kaynaklarla ilgili kısıtlamaları tanımlar. Daha fazla bilgi için İçerik güvenlik politikası başlıklı makaleyi inceleyin.
"cross_origin_embedder_policy"
Kaynaklar arası kaynakların bir uzantı sayfasına yerleştirilmesini yapılandıran Cross-Origin-Embedder-Policy HTTP başlığı için bir değer belirtir.
"cross_origin_opener_policy"
Üst düzey bir uzantı sayfasının, kaynaklar arası dokümanlarla bir göz atma bağlamı grubu paylaşmamasını sağlamanıza olanak tanıyan Cross-Origin-Opener-Policy HTTP üstbilgisi için bir değer belirtir.
"declarative_net_request"
Ağ isteklerinin engellenmesine ve değiştirilmesine olanak tanıyan declarativeNetRequest API'si için statik kurallar tanımlar.
"default_locale"
Birden fazla yerel ayarı destekleyen bir uzantının varsayılan dilini tanımlayan dize. Örneğin, "en" ve "pt_BR". Bu anahtar, yerelleştirilmiş uzantılarda gereklidir ve yerelleştirilmemiş uzantılarda kullanılmamalıdır. Daha fazla bilgi için Uluslararasılaştırma konusuna bakın.
"devtools_page"
DevTools API'lerini kullanan sayfaları tanımlar.
"export"
Kaynakların uzantıdan dışa aktarılmasına izin verir. Daha fazla bilgi için Dışa aktarma başlıklı makaleyi inceleyin.
"externally_connectable"
Diğer hangi sayfaların ve uzantıların uzantılarınıza bağlanabileceğini belirtir. Daha fazla bilgi için "externally_connectable" sayfasına bakın.
"homepage_url"
Uzantının ana sayfası için bir URL belirten dize. Bu değer tanımlanmamışsa ana sayfa varsayılan olarak uzantının Chrome Web Mağazası sayfası olur. Bu alan, uzantıyı kendi sitenizde barındırıyorsanız özellikle yararlıdır.
"host_permissions"
Uzantınızın etkileşime girmesine izin verilen web sayfalarını, URL eşleşme kalıpları kullanılarak tanımlanmış şekilde listeler. Bu siteler için kullanıcı izni yükleme sırasında istenir. Daha fazla bilgi için Ana makine izinleri başlıklı makaleyi inceleyin.
"import"
Kaynakların uzantıya aktarılmasına izin verir. Daha fazla bilgi için İçe aktarma bölümüne bakın.
"incognito"
Uzantının gizli modda nasıl davranacağını tanımlar. "spanning", "split" ve "not_allowed" değerleri desteklenir. Daha fazla bilgi için Gizli mod başlıklı makaleyi inceleyin.
"key"
Uzantınızın çeşitli geliştirme kullanım alanlarındaki kimliğini belirtir. Daha fazla bilgi için Anahtar bölümüne bakın.
"mime_types_handler"
Uzantıyı, application/pdf gibi desteklenen MIME türleri için işleyici olarak kaydeder. Daha fazla bilgi için mimeHandler API'sini inceleyin.
"minimum_chrome_version"
Uzantınızın yüklenebileceği en eski Chrome sürümünü tanımlar. Değer, mevcut bir Chrome tarayıcı sürümü dizesinin alt dizesi olmalıdır. Örneğin, "107" veya "107.0.5304.87". Chrome'un minimum sürümden eski sürümlerini kullanan kullanıcılar Chrome Web Mağazası'nda "Uyumlu değil" uyarısı görür ve uzantınızı yükleyemez. Bunu mevcut bir uzantıya eklerseniz Chrome sürümü daha eski olan kullanıcılar uzantınız için otomatik güncelleme almaz. Geçici moddaki işletme kullanıcıları da bu kapsamdadır.
"oauth2"
OAuth 2.0 güvenlik kimliğinin kullanılmasına izin verir. Bu anahtarın değeri, "client_id" ve "scopes" özelliklerine sahip bir nesne olmalıdır. Ayrıntılar için OAuth 2.0 eğitimine göz atın.
"omnibox"
Uzantının, Chrome'un adres çubuğuna bir anahtar kelime kaydetmesine izin verir. Daha fazla bilgi için Çok Amaçlı Adres Çubuğu başlıklı makaleyi inceleyin.
"optional_host_permissions"
Uzantınız için isteğe bağlı host permissions'ı bildirir.
"optional_permissions"
Uzantınız için isteğe bağlı izinleri beyan eder.
"options_page"
Uzantının seçenekler sayfası olarak kullanacağı options.html dosyasına giden bir yolu belirtir. Daha fazla bilgi için Kullanıcılara seçenekler sunma başlıklı makaleyi inceleyin.
"options_ui"
Kullanıcının Chrome Uzantılar sayfasından uzantı seçeneklerini değiştirmesine olanak tanıyan bir HTML dosyasının yolunu belirtir. Daha fazla bilgi için Yerleştirme seçenekleri bölümüne bakın.
"permissions"
Belirli uzantı API'lerinin kullanılmasına olanak tanır. Genel açıklama için İzinler bölümüne bakın. Tek tek API'lerin referans sayfalarında, gerektirdikleri izinler listelenir.
"requirements"
Uzantıyı kullanmak için gereken teknolojileri listeler. Desteklenen gereksinimlerin listesi için Gereksinimler başlıklı makaleyi inceleyin.
"sandbox"
Uzantı API'lerine erişimi olmayan veya korumalı alan dışındaki sayfalara doğrudan erişimi olmayan bir dizi uzantı sayfası tanımlar. Daha fazla bilgi için Sandbox başlıklı makaleyi inceleyin.
"short_name"
Karakter alanı sınırlı olduğunda kullanılacak, uzantı adının kısaltılmış sürümünü içeren bir dize. Maksimum uzunluk 12 karakterdir. Bu değer tanımlanmamışsa bunun yerine "name" anahtarının kısaltılmış bir sürümü gösterilir.
"side_panel"
Bir sidePanel'de gösterilecek bir HTML dosyasını tanımlar.
"storage"
Yönetilen depolama alanı için bir JSON şeması bildirir. Daha fazla bilgi için Depolama alanları için manifest başlıklı makaleyi inceleyin.
"tts_engine"
Uzantıyı metin okuma motoru olarak kaydeder. Daha fazla bilgi için ttsEngine API'yi inceleyin.
"update_url"
Uzantının güncelleme sayfasının URL'sini içeren bir dize. Uzantınızı Chrome Web Mağazası dışında barındırıyorsanız bu anahtarı kullanın.
"version_name"
Uzantının sürümünü açıklayan bir dize. Örnek olarak "1.0 beta" ve "build rc2" verilebilir. Bu belirtilmemişse bunun yerine uzantı yönetimi sayfasında "sürüm" değeri gösterilir.
"web_accessible_resources"
Uzantı içindeki, web sayfaları veya diğer uzantılar tarafından erişilebilen dosyaları tanımlar. Daha fazla bilgi için Web'de Erişilebilen Kaynaklar başlıklı makaleyi inceleyin.

İsteğe bağlı ChromeOS anahtarları

"file_browser_handlers"
Uzantıların ChromeOS dosya tarayıcısına erişmesine olanak tanıyan fileBrowserHandler API'sine erişim sağlar.
"file_handlers"
ChromeOS uzantılarının işleyeceği dosya türlerini belirtir. Daha fazla bilgi için file_handlers sayfasına bakın.
"file_system_provider_capabilities"
Uzantıların ChromeOS'in kullanabileceği dosya sistemleri oluşturmasına olanak tanıyan fileSystemProvider API'ye erişime izin verir.
"input_components"
Giriş Yöntemi Düzenleyici API'sinin kullanılmasına izin verir. Daha fazla bilgi için input_components konusuna bakın.