Manifest dosyası biçimi

Her uzantının, kök dizininde manifest.json dosyası bulunmalı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 başlıklı makaleyi inceleyin.
"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 edinmek için Icons başlıklı makaleyi inceleyin.

İ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 etkinlik işleyici 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 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şimde bulunmasına 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 moddaki davranışı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.
"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ızda otomatik güncellemeler 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ının yolunu 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 bir açıklama için İzinler bölümüne bakın. Tek tek API'lerin referans sayfalarında, bu API'lerin gerektirdiği 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 içermeyen sayfalara doğrudan erişimi olmayan bir dizi uzantı sayfası tanımlar. Daha fazla bilgi için Sandbox başlıklı makaleye bakın.
"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'sini 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.