Çoğu uzantı API'si ve özelliği kullanmak için manifest'in izin alanlarında uzantınızın amacını bildirmeniz gerekir. Uzantılar, ilgili manifest anahtarları kullanılarak belirtilen aşağıdaki izin kategorilerini isteyebilir:
"permissions"
- Bilinen dizeler listesindeki öğeleri içerir. Değişiklikler bir uyarı tetikleyebilir.
"optional_permissions"
- Kullanıcı tarafından yükleme sırasında değil, çalışma zamanında verilir.
"content_scripts.matches"
- İçerik komut dosyalarının bir veya daha fazla ana makineye yerleştirilmesine olanak tanıyan bir veya daha fazla eşleşme kalıbı içerir. Değişiklikler bir uyarı tetikleyebilir.
"host_permissions"
- Bir veya daha fazla ana makineye erişim sağlayan bir veya daha fazla eşleşme kalıbı içerir. Değişiklikler bir uyarı tetikleyebilir.
"optional_host_permissions"
- Kullanıcı tarafından yükleme sırasında değil, çalışma zamanında verilir.
İzinler, uzantınızın güvenliği kötü amaçlı yazılımdan etkilendiyse zararın sınırlanmasına yardımcı olur. Uyarılı izin bölümünde ayrıntılı olarak açıklandığı gibi, bazı izin uyarıları, kullanıcılara yüklemeden önce veya çalışma zamanında izin vermeleri için gösterilir.
Kullanıcılara kaynak ve verilere erişim konusunda bilinçli kontrol sağlamak için uzantınızın işlevselliğinin izin verdiği her yerde isteğe bağlı izinleri kullanmayı düşünün.
Bir API için izin gerekiyorsa API'nin nasıl bildirileceği dokümanlarında açıklanmaktadır. Örnek için Storage API sayfasını inceleyin.
Manifest
Aşağıda, bir manifest dosyasının izinler bölümüne ilişkin bir örnek verilmiştir:
manifest.json:
{
"name": "Permissions Extension",
...
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
"optional_permissions": [
"topSites",
],
"host_permissions": [
"https://www.developer.chrome.com/*"
],
"optional_host_permissions":[
"https://*/*",
"http://*/*"
],
...
"manifest_version": 3
}
Ana makine izinleri
Ana makine izinleri, uzantıların URL'nin eşleşme kalıplarıyla etkileşim kurmasına olanak tanır. Bazı Chrome API'leri, her referans sayfasında belirtilen kendi API izinlerine ek olarak ana makine izinleri gerektirir. Bazı örnekler:
- Uzantı hizmet çalışanı ve uzantı sayfalarından
fetch()
istekleri yapın. chrome.tabs
API'sini kullanarak hassas sekme özelliklerini (url, başlık ve favIconUrl) okuyup sorgulayın.- İçerik komut dosyasını programatik olarak ekleyin.
- Ağ isteklerini
chrome.webRequest
API ile izleyip kontrol edin. - Çerezlere
chrome.cookies
API ile erişme. chrome.declarativeNetRequest
API'yi kullanarak istekleri ve yanıt başlıklarını yönlendirip değiştirin.
Uyarı içeren izinler
Bir uzantı birden çok izin istediğinde ve bunların çoğu yükleme sırasında uyarı görüntülediğinde kullanıcı aşağıdaki örnekte olduğu gibi bir uyarı listesi görür:
Kullanıcıların, sınırlı uyarıya sahip olan veya izinler kendilerine açık olan bir uzantıya güvenme olasılığı daha yüksektir. Alarm alarmlarından kaçınmak için isteğe bağlı izinler veya daha düşük bir API uygulamayı düşünün. Uyarılarla ilgili en iyi uygulamalar için İzin uyarıları yönergeleri başlıklı makaleye göz atın. Belirli uyarılar, geçerli oldukları izinlerle birlikte İzinler referans listesinde listelenmiştir.
Manifest dosyasının "host_permissions"
ve "content_scripts.matches"
alanlarında eşleşme kalıpları eklemek veya bunları değiştirmek de bir uyarı tetikler. Daha fazla bilgi edinmek için İzinleri güncelleme bölümüne bakın.
Erişim izni ver
Uzantınızın file://
URL'lerinde çalışması veya gizli modda çalışması gerekiyorsa kullanıcılar, ayrıntılar sayfasında uzantıya erişim izni vermelidir. Ayrıntılar sayfasını açmayla ilgili talimatları Uzantılarınızı yönetme bölümünde bulabilirsiniz.
Dosya URL'lerine ve gizli sayfalara erişime izin ver
- Chrome'da uzantı simgesini sağ tıklayın.
Uzantıyı Yönet'i seçin.
Dosya URL'lerine erişimi veya gizli modu etkinleştirmek için sayfayı aşağı kaydırın.
Kullanıcının erişime izin verip vermediğini belirlemek için extension.isAllowedIncognitoAccess()
veya extension.isAllowedFileSchemeAccess()
numaralarını arayabilirsiniz.