Browser Extensions Development (Chrome & Edge) · Lekcja

Opcjonalne uprawnienia i żądania w czasie działania

Będą Państwo żądać uprawnień na żądanie zamiast przyznawać je z góry, aby budować zaufanie, szybciej przechodzić weryfikację i ograniczać powierzchnię ataku.

Lekcja 4 z 413 kroki

Opcjonalne uprawnienia i żądania w czasie działania to bezpłatna lekcja Browser Extensions Development (Chrome & Edge) na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Browser Extensions Development (Chrome & Edge), a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Browser Extensions Development (Chrome & Edge) zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

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 with remove
  • React to onAdded and onRemoved
  • Degrade gracefully when denied

Least-privilege design builds trust and eases store review.

Bezpłatny start

Ucz się JavaScript dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „Opcjonalne uprawnienia i żądania w czasie działania” jest bezpłatna?

Tak — pełny tekst „Opcjonalne uprawnienia i żądania w czasie działania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Browser Extensions Development (Chrome & Edge), przejdź na CoddyKit PRO. Kurs Browser Extensions Development (Chrome & Edge) zawiera 4 lekcji w sumie.

Co nauczysz się w „Opcjonalne uprawnienia i żądania w czasie działania”?

Będą Państwo żądać uprawnień na żądanie zamiast przyznawać je z góry, aby budować zaufanie, szybciej przechodzić weryfikację i ograniczać powierzchnię ataku. Ćwiczysz Browser Extensions Development (Chrome & Edge) z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Browser Extensions Development (Chrome & Edge)?

Nie wymagamy żadnego doświadczenia. Browser Extensions Development (Chrome & Edge) w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Opcjonalne uprawnienia i żądania w czasie działania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Browser Extensions Development (Chrome & Edge)?

Tak. Każda lekcja Browser Extensions Development (Chrome & Edge) zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Zaawansowane uprawnienia
  2. Bezpieczne praktyki programistyczne
  3. Content Security Policy (CSP)
  4. Opcjonalne uprawnienia i żądania w czasie działania
← Powrót do Browser Extensions Development (Chrome & Edge)