Manifest dosyası biçimi

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

Örnekler

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

Minimum 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 bir listesi bulunmaktadır.

Uzantılar platformunun gerektirdiği anahtarlar

"manifest_version"
Uzantınızın kullandığı manifest dosyası biçiminin sürümünü belirten tam sayı. Yalnızca 3 değeri desteklenir.
"name"
Chrome Web Mağazası'nda, yükleme iletişim kutusunda ve kullanıcının Chrome Uzantıları sayfasında (chrome://extensions) uzantıyı tanımlayan bir dize. Maksimum uzunluk 75 karakterdir. Yerel ayara özel adlar kullanma hakkında bilgi için Uluslararası hale getirme 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 edinmek için Sürüm bölümüne bakın.

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. Maksimum uzunluk 132 karakterdir. Açıklamaları yerelleştirme hakkında bilgi edinmek için Uluslararası hale getirme bölümüne bakın.
"icons"
Uzantınızı temsil eden bir veya daha fazla simge. En iyi uygulamalar hakkında bilgi için Simgeler bölümüne bakın.

İsteğe bağlı anahtarlar

"action"
Google Araç Çubuğu'ndaki uzantı simgesinin görünümünü ve davranışını tanımlar. Daha fazla bilgi için chrome.action sayfasına bakın.
"author"
Uzantıyı oluşturmak için kullanılan hesabın e-posta adresini belirtir.
"background"
Uzantının etkinlik işleyicisi olarak işlev gören hizmet çalışanını içeren JavaScript dosyasını belirtir. Daha fazla bilgi için Uzantı hizmeti çalışanları hakkında bölümünü 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 konusuna bakın.
"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 bölümüne bakın.
"commands"
Uzantının içinde klavye kısayollarını tanımlar. Daha fazla bilgi için chrome.commands sayfasına bakın.
"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"
Komut dosyaları, stiller ve bir uzantının kullanabileceği diğer kaynaklarla ilgili kısıtlamaları tanımlar. Daha fazla bilgi için İçerik güvenliği politikasını inceleyin.
"cross_origin_embedder_policy"
Kaynaklar arası kaynakların bir uzantı sayfasına yerleştirilmesini yapılandıran Cross-Origin-Embedder-Policy HTTP üst bilgisi için bir değer belirtir.
"cross_origin_opener_policy"
Cross-Origin-Opener-Policy HTTP üst bilgisi için bir değer belirtir. Bu değer, üst düzey bir uzantı sayfasının, kaynaklar arası belgelerle bir göz atma bağlam grubunu paylaşmadığından emin olmanızı sağlar.
"declarative_net_request"
Ağ isteklerinin engellenmesine ve değiştirilmesine izin veren declarativeNetRequest API için statik kurallar tanımlar.
"default_locale"
Birden fazla yerel ayarı destekleyen bir uzantının varsayılan dilini tanımlayan dize. Örnek olarak "en" ve "pt_BR" verilebilir. Bu anahtar, yerelleştirilmiş uzantılarda gereklidir ve yerelleştirilmemiş uzantılarda kullanılmamalıdır. Daha fazla bilgi için Uluslararası hale getirme konusuna bakın.
"devtools_page"
DevTools API'lerini kullanan sayfaları tanımlar.
"export"
Kaynakların uzantıdan dışa aktarılmasına olanak tanır. Daha fazla bilgi için Dışa aktarma bölümüne bakın.
"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ını inceleyin.
"homepage_url"
Uzantının ana sayfasının URL'sini belirten bir dize. Tanımlanmamışsa ana sayfa, varsayılan olarak uzantının Chrome Web Mağazası sayfasına ayarlanır. Bu alan özellikle uzantıyı kendi sitenizde barındırıyorsanız yararlı olur.
"host_permissions"
URL eşleşme kalıpları kullanılarak tanımlanan ve uzantınızın etkileşim kurmasına izin verilen web sayfalarını listeler. Yükleme sırasında bu siteler için kullanıcı izni istenir. Daha fazla bilgi için Ana makine izinleri bölümüne bakın.
"import"
Kaynakların uzantıya aktarılmasına olanak tanır. 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 bölümüne bakın.
"key"
Çeşitli geliştirme kullanım alanları için uzantınızın kimliğini belirtir. Daha fazla bilgi için Anahtar konusuna bakın.
"minimum_chrome_version"
Uzantınızı yükleyebilecek en eski Chrome sürümünü tanımlar. Değer, "107" veya "107.0.5304.87" gibi mevcut bir Chrome tarayıcı sürümü dizesinin alt dizesi olmalıdır. Chrome'un minimum sürümden eski sürümlerine sahip kullanıcılar Chrome Web Mağazası'nda "Uyumlu değil" uyarısını görür ve uzantınızı yükleyemezler. 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. Buna geçici moddaki işletme kullanıcıları da dahildir.
"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ğitimini inceleyin.
"omnibox"
Uzantının, Chrome'un adres çubuğuna anahtar kelime kaydetmesine olanak tanır. Daha fazla bilgi için Çok amaçlı adres çubuğu bölümüne bakın.
"optional_host_permissions"
Uzantınız için isteğe bağlı ana makine izinleri tanımlar.
"optional_permissions"
Uzantınız için isteğe bağlı izinler beyan eder.
"options_page"
Uzantının seçenekler sayfası olarak kullanması için options.html dosyasının yolunu belirtir. Daha fazla bilgi için Kullanıcılara seçenek sunma bölümüne bakın.
"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çenekler bölümüne bakın.
"permissions"
Belirli uzantı API'lerinin kullanımını etkinleştirir. Genel açıklama için İzinler bölümüne bakın. Her API'nin referans sayfalarında gerekli izinler listelenir.
"requirements"
Uzantıyı kullanmak için gereken teknolojileri listeler. Desteklenen gereksinimlerin listesi için Gereksinimler bölümüne bakın.
"sandbox"
Uzantı API'lerine veya korumalı alanda olmayan sayfalara doğrudan erişimi olmayan uzantı sayfalarını tanımlar. Daha fazla bilgi için Korumalı alan bölümünü 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 tanımlanmamışsa "name" anahtarının kısaltılmış bir sürümü gösterilir.
"side_panel"
sidePanel'de görüntülenecek bir HTML dosyasını tanımlar.
"storage"
Yönetilen depolama alanı için bir JSON şeması tanımlar. Daha fazla bilgi edinmek 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üncellemeler 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. Örnekler arasında "1.0 beta" ve "build rc2" yer alır. Bu değer belirtilmezse uzantı yönetimi sayfasında "sürüm" değeri görüntülenir.
"web_accessible_resources"
Uzantıda, web sayfaları veya diğer uzantılar tarafından erişilebilen dosyaları tanımlar. Daha fazla bilgi için Web'e Erişilebilir Kaynaklar bölümüne bakın.

İ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 adresini inceleyin.
"file_system_provider_capabilities"
Uzantıların, ChromeOS'in kullanabileceği dosya sistemleri oluşturmasına olanak tanıyan fileSystemProvider API'sine erişim sağlar.
"input_components"
Giriş Yöntemi Düzenleyici API'sinin kullanılmasına olanak tanır. Daha fazla bilgi için input_components adresini inceleyin.