0Pricing
Browser Extensions Development (Chrome & Edge) · บทเรียน

สิทธิ์เสริมและคำขอขณะทำงาน

ขอสิทธิ์เมื่อจำเป็นแทนการขอล่วงหน้า เพื่อสร้างความไว้วางใจ ผ่านการตรวจสอบได้เร็วขึ้น และลดขอบเขตการโจมตีให้เหลือน้อยที่สุด

สิทธิ์เสริมและคำขอขณะทำงาน เป็นบทเรียน Browser Extensions Development (Chrome & Edge) ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Browser Extensions Development (Chrome & Edge) และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Browser Extensions Development (Chrome & Edge) มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

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.

คำถามที่พบบ่อย

บทเรียน “สิทธิ์เสริมและคำขอขณะทำงาน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สิทธิ์เสริมและคำขอขณะทำงาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Browser Extensions Development (Chrome & Edge) ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Browser Extensions Development (Chrome & Edge) มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สิทธิ์เสริมและคำขอขณะทำงาน”

ขอสิทธิ์เมื่อจำเป็นแทนการขอล่วงหน้า เพื่อสร้างความไว้วางใจ ผ่านการตรวจสอบได้เร็วขึ้น และลดขอบเขตการโจมตีให้เหลือน้อยที่สุด คุณปฏิบัติ Browser Extensions Development (Chrome & Edge) ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Browser Extensions Development (Chrome & Edge) หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Browser Extensions Development (Chrome & Edge) บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “สิทธิ์เสริมและคำขอขณะทำงาน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Browser Extensions Development (Chrome & Edge) นี้ได้ไหม

ได้ บทเรียน Browser Extensions Development (Chrome & Edge) ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทำความเข้าใจสิทธิ์ขั้นสูง
  2. แนวทางการเขียนโค้ดอย่างปลอดภัย
  3. นโยบายความปลอดภัยของเนื้อหา (CSP)
  4. สิทธิ์เสริมและคำขอขณะทำงาน
← กลับไปที่ Browser Extensions Development (Chrome & Edge)