İsteğe Bağlı İzinler ve Çalışma Zamanı İstekleri
Güven oluşturmak, incelemeleri daha hızlı geçmek ve saldırı yüzeyinizi en aza indirmek için izinleri önceden değil, ihtiyaç anında isteyin.
İsteğe Bağlı İzinler ve Çalışma Zamanı İstekleri, CoddyKit'te ücretsiz bir Browser Extensions Development (Chrome & Edge) dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Browser Extensions Development (Chrome & Edge) öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Browser Extensions Development (Chrome & Edge) kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
The Problem With Asking for Everything
Requesting many permissions at install time scares users and slows store review. The principle of least privilege says request only what you need, when you need it.
Optional permissions let you ask at runtime, in context.
Required vs Optional
The manifest separates permissions (granted at install) from optional_permissions (requested later). Move anything non-essential into optional.
{
"permissions": ["storage"],
"optional_permissions": ["bookmarks", "history"]
}Optional Host Permissions
Site access can also be optional. Declare it under optional_host_permissions so users grant access to specific sites only when they choose.
{
"optional_host_permissions": ["https://*/*"]
}Requesting at Runtime
Call permissions.request in response to a user gesture, such as a button click. The browser shows a prompt.
const granted = await chrome.permissions.request({
permissions: ['bookmarks']
})
console.log('Granted: ' + granted)Must Come From a User Gesture
The request prompt only appears if triggered by a direct user action. Calling it on startup or from a timer will silently fail.
Wire it to a click handler.
button.addEventListener('click', async () => {
await chrome.permissions.request({ permissions: ['history'] })
})Checking Before Using
Before calling an API, check whether the permission is currently granted with permissions.contains.
const has = await chrome.permissions.contains({
permissions: ['bookmarks']
})
if (has) loadBookmarks()Removing Permissions
Let users revoke access they no longer want with permissions.remove. This shrinks your attack surface.
await chrome.permissions.remove({ permissions: ['history'] })Reacting to Grants and Revokes
Listen for onAdded and onRemoved to enable or disable features as permissions change.
chrome.permissions.onRemoved.addListener((p) => {
console.log('Removed: ' + p.permissions)
})Designing the Request Flow
Explain why you need a permission before prompting. A short sentence and a clear button earns far more grants than a surprise system dialog.
Faster Store Review
Extensions with broad install-time permissions face deeper review. Moving sensitive scopes to optional often speeds approval and reduces warning banners.
Graceful Degradation
Always handle the case where a permission is denied. Disable or hide the feature rather than throwing errors, so the rest of the extension keeps working.
if (!granted) showFallbackMessage()Quick Check
Test your optional permissions knowledge.
Recap
You learned runtime permission requests:
- Split required and
optional_permissions - Request from a user gesture with
permissions.request - Check with
contains, revoke withremove - React to
onAddedandonRemoved - Degrade gracefully when denied
Least-privilege design builds trust and eases store review.
Yapay zeka eğitmeniyle JavaScript öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 12
- Dersler
- 48
Sıkça Sorulan Sorular
“İsteğe Bağlı İzinler ve Çalışma Zamanı İstekleri” dersi ücretsiz mi?
Evet — “İsteğe Bağlı İzinler ve Çalışma Zamanı İstekleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Browser Extensions Development (Chrome & Edge) kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Browser Extensions Development (Chrome & Edge) kursu toplamda 4 dersten oluşur.
“İsteğe Bağlı İzinler ve Çalışma Zamanı İstekleri” dersinde ne öğreneceğim?
Güven oluşturmak, incelemeleri daha hızlı geçmek ve saldırı yüzeyinizi en aza indirmek için izinleri önceden değil, ihtiyaç anında isteyin. Browser Extensions Development (Chrome & Edge) ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Browser Extensions Development (Chrome & Edge) öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Browser Extensions Development (Chrome & Edge), başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“İsteğe Bağlı İzinler ve Çalışma Zamanı İstekleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Browser Extensions Development (Chrome & Edge) dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Browser Extensions Development (Chrome & Edge) dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Gelişmiş İzinleri Anlama
- Güvenli Kodlama Uygulamaları
- İçerik Güvenliği Politikası (CSP)
- İsteğe Bağlı İzinler ve Çalışma Zamanı İstekleri