En djupdykning i utveckling av webblÀsartillÀgg med Manifest V3 och JavaScript-API:er. LÀr dig bygga kraftfulla och sÀkra tillÀgg för moderna webblÀsare.
Utveckling av webblÀsartillÀgg: Manifest V3 och JavaScript-API:er
WebblÀsartillÀgg Àr smÄ programvaror som anpassar surfupplevelsen. De kan lÀgga till nya funktioner, Àndra webbplatsinnehÄll, blockera annonser och mycket mer. Med introduktionen av Manifest V3 har sÀttet som tillÀgg byggs och fungerar pÄ genomgÄtt betydande förÀndringar. Denna omfattande guide kommer att utforska utveckling av webblÀsartillÀgg med Manifest V3 och JavaScript-API:er, och ge dig kunskapen för att skapa kraftfulla och sÀkra tillÀgg för moderna webblÀsare.
Vad Àr webblÀsartillÀgg?
WebblÀsartillÀgg Àr i grunden miniapplikationer som körs inuti en webblÀsare. De utökar webblÀsarens funktionalitet och integreras sömlöst med webbsidor. TillÀgg skrivs med vanliga webbtekniker som HTML, CSS och JavaScript, vilket gör dem relativt tillgÀngliga för webbutvecklare.
Exempel pÄ populÀra webblÀsartillÀgg inkluderar:
- Annonsblockerare: Blockerar annonser pÄ webbsidor, vilket förbÀttrar surfhastigheten och minskar distraktioner.
- Lösenordshanterare: Lagrar och hanterar lösenord sÀkert och fyller i dem automatiskt pÄ webbplatser.
- AnteckningstillÀgg: LÄter anvÀndare ta anteckningar och spara dem direkt frÄn webbsidor.
- Produktivitetsverktyg: FörbÀttrar produktiviteten genom att erbjuda funktioner som uppgiftshantering, tidtagning och fokuslÀgen.
- SprĂ„köversĂ€ttningsverktyg: ĂversĂ€tter webbsidor till olika sprĂ„k med ett enda klick. Exempel: Google Translate-tillĂ€gget.
- VPN-tillÀgg: Dirigerar internettrafik via en proxy för att kringgÄ geografiska begrÀnsningar och förbÀttra integriteten.
Vikten av Manifest V3
Manifest V3 Àr den senaste versionen av manifestfilen, vilket Àr en JSON-fil som beskriver tillÀgget för webblÀsaren. Den specificerar tillÀggets namn, version, behörigheter, bakgrundsskript och annan viktig metadata. Manifest V3 introducerar flera viktiga förÀndringar jÀmfört med sin föregÄngare, Manifest V2, med primÀrt fokus pÄ sÀkerhet och prestanda.
Viktiga förÀndringar i Manifest V3:
- Service Workers: Manifest V3 ersÀtter bakgrundssidor med service workers. Service workers Àr hÀndelsedrivna skript som körs i bakgrunden utan att krÀva en bestÀndig sida. De Àr mer effektiva och mindre resurskrÀvande Àn bakgrundssidor.
- Declarative Net Request API: Detta API lÄter tillÀgg modifiera nÀtverksförfrÄgningar utan att direkt fÄnga upp dem. Det förbÀttrar sÀkerhet och prestanda genom att överlÄta filtreringslogiken till webblÀsaren.
- Striktare Content Security Policy (CSP): Manifest V3 tillÀmpar striktare CSP-regler för att förhindra exekvering av godtycklig kod, vilket ytterligare stÀrker sÀkerheten.
- Promise-baserade API:er: MÄnga API:er Àr nu promise-baserade, vilket gör asynkrona operationer enklare att hantera.
Varför övergÄngen till Manifest V3?
- FörbÀttrad sÀkerhet: Manifest V3 Àr utformat för att förbÀttra sÀkerheten för webblÀsartillÀgg och skydda anvÀndare frÄn skadlig kod.
- FörbÀttrad prestanda: Service workers och Declarative Net Request API bidrar till bÀttre prestanda och minskad resursförbrukning.
- Större integritet: Manifest V3 syftar till att ge anvÀndare mer kontroll över sina data och sin integritet.
SÀtta upp din utvecklingsmiljö
Innan du börjar utveckla webblÀsartillÀgg behöver du sÀtta upp din utvecklingsmiljö. Detta innefattar att installera en kodredigerare, vÀlja en webblÀsare för testning och förstÄ den grundlÀggande filstrukturen för ett tillÀgg.
1. Kodredigerare
VÀlj en kodredigerare som du Àr bekvÀm med. PopulÀra alternativ inkluderar:
- Visual Studio Code (VS Code): En gratis och kraftfull kodredigerare med utmÀrkt stöd för JavaScript och andra webbtekniker.
- Sublime Text: En snabb och anpassningsbar kodredigerare med ett brett utbud av plugins.
- Atom: En gratis kodredigerare med öppen kÀllkod utvecklad av GitHub.
2. WebblÀsare för testning
VÀlj en webblÀsare för att testa dina tillÀgg. Chrome och Firefox Àr de mest populÀra valen, eftersom de erbjuder robusta utvecklarverktyg och stöd för tillÀggsutveckling.
3. GrundlÀggande filstruktur
Ett webblÀsartillÀgg bestÄr vanligtvis av följande filer:
- manifest.json: Denna fil innehÄller metadata för tillÀgget, sÄsom dess namn, version, behörigheter och bakgrundsskript.
- background.js (eller service worker-skript): Detta skript körs i bakgrunden och hanterar hÀndelser som webblÀsarÄtgÀrder och klick i kontextmenyn.
- content.js: Detta skript körs i kontexten av webbsidor och kan Àndra deras innehÄll.
- popup.html: Denna fil definierar anvÀndargrÀnssnittet för tillÀggets popup.
- popup.js: Detta skript hanterar logiken för tillÀggets popup.
- options.html: Denna fil definierar anvÀndargrÀnssnittet för tillÀggets instÀllningssida.
- options.js: Detta skript hanterar logiken för tillÀggets instÀllningssida.
- ikoner: Dessa Àr ikonerna som anvÀnds för att representera tillÀgget i webblÀsarens verktygsfÀlt och pÄ tillÀggshanteringssidan.
Skapa ditt första tillÀgg: "Hej, vÀrlden!"
LÄt oss skapa ett enkelt "Hej, vÀrlden!"-tillÀgg för att demonstrera de grundlÀggande principerna för utveckling av webblÀsartillÀgg.
1. Skapa en manifestfil (manifest.json)
Skapa en fil med namnet `manifest.json` i en ny katalog och lÀgg till följande kod:
{
"manifest_version": 3,
"name": "Hej, vÀrlden!",
"version": "1.0",
"description": "Ett enkelt Hej, vÀrlden!-tillÀgg",
"permissions": [
"storage"
],
"action": {
"default_popup": "popup.html",
"default_icon": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
},
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
}
Förklaring:
- `manifest_version`: Anger versionen av manifestfilen (3 för Manifest V3).
- `name`: Namnet pÄ tillÀgget.
- `version`: Versionsnumret för tillÀgget.
- `description`: En kort beskrivning av tillÀgget.
- `permissions`: En array med behörigheter som tillÀgget krÀver (t.ex. "storage").
- `action`: Definierar egenskaperna för tillÀggets popup, inklusive standard popup-fil och ikoner.
- `icons`: Anger sökvÀgarna till tillÀggets ikoner.
2. Skapa en popup-fil (popup.html)
Skapa en fil med namnet `popup.html` i samma katalog och lÀgg till följande kod:
<!DOCTYPE html>
<html>
<head>
<title>Hej, vÀrlden!</title>
<style>
body {
width: 200px;
padding: 10px;
font-family: sans-serif;
}
</style>
</head>
<body>
<h1>Hej, vÀrlden!</h1>
<p>Detta Àr ett enkelt webblÀsartillÀgg.</p>
</body>
</html>
Denna fil definierar anvÀndargrÀnssnittet för tillÀggets popup, som kommer att visa meddelandet "Hej, vÀrlden!".
3. Skapa ikonbilder
Skapa tre ikonbilder med följande storlekar: 16x16, 48x48 och 128x128 pixlar. Spara dem som `icon16.png`, `icon48.png` och `icon128.png` i en `images`-katalog i din tillÀggskatalog.
4. Ladda tillÀgget i din webblÀsare
Chrome:
- Ăppna Chrome och gĂ„ till `chrome://extensions`.
- Aktivera "UtvecklarlÀge" i det övre högra hörnet.
- Klicka pÄ "LÀs in oinpackat tillÀgg" och vÀlj katalogen som innehÄller dina tillÀggsfiler.
Firefox:
- Ăppna Firefox och gĂ„ till `about:debugging#/runtime/this-firefox`.
- Klicka pÄ "LÀs in tillfÀlligt tillÀgg..." och vÀlj filen `manifest.json`.
Ditt "Hej, vÀrlden!"-tillÀgg bör nu vara installerat och synligt i webblÀsarens verktygsfÀlt. Klicka pÄ tillÀggsikonen för att öppna popup-fönstret och se meddelandet "Hej, vÀrlden!".
Arbeta med JavaScript-API:er
WebblÀsartillÀgg kan interagera med webblÀsaren och webbsidor med hjÀlp av JavaScript-API:er. Dessa API:er ger tillgÄng till olika funktioner, sÄsom:
- Tabs API: LÄter dig hantera webblÀsarflikar, inklusive att skapa, uppdatera och söka efter flikar.
- Storage API: Ger ett sÀtt att lagra och hÀmta data persistent inom tillÀgget.
- Alarms API: LÄter dig schemalÀgga uppgifter som ska utföras vid specifika tidpunkter.
- Notifications API: Gör att du kan visa aviseringar för anvÀndaren.
- Context Menus API: LÄter dig lÀgga till anpassade objekt i webblÀsarens kontextmeny (högerklicksmeny).
- Web Request API (Declarative Net Request i Manifest V3): Gör det möjligt att fÄnga upp och modifiera nÀtverksförfrÄgningar.
- Scripting API: LÄter dig injicera skript pÄ webbsidor.
Exempel: AnvÀnda Storage API
LÄt oss skapa ett tillÀgg som lagrar och hÀmtar en anvÀndares namn med hjÀlp av Storage API.
1. Uppdatera manifestfilen (manifest.json)
Se till att `permissions`-arrayen i din `manifest.json` inkluderar `"storage"`:
{
"manifest_version": 3,
"name": "Lagringsexempel",
"version": "1.0",
"description": "Ett tillÀgg som anvÀnder Storage API",
"permissions": [
"storage"
],
"action": {
"default_popup": "popup.html"
},
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
}
2. Skapa en popup-fil (popup.html)
Skapa eller uppdatera din `popup.html` med följande innehÄll:
<!DOCTYPE html>
<html>
<head>
<title>Lagringsexempel</title>
<style>
body {
width: 250px;
padding: 10px;
font-family: sans-serif;
}
</style>
</head>
<body>
<h1>Lagringsexempel</h1>
<label for="name">Ange ditt namn:</label>
<input type="text" id="name">
<button id="save">Spara</button>
<p id="greeting"></p>
<script src="popup.js"></script>
</body>
</html>
3. Skapa ett popup-skript (popup.js)
Skapa en fil med namnet `popup.js` och lÀgg till följande kod:
document.addEventListener('DOMContentLoaded', () => {
const nameInput = document.getElementById('name');
const saveButton = document.getElementById('save');
const greeting = document.getElementById('greeting');
// Ladda det sparade namnet frÄn lagringen
chrome.storage.sync.get('name', (data) => {
if (data.name) {
nameInput.value = data.name;
greeting.textContent = `Hej, ${data.name}!`;
}
});
// Spara namnet i lagringen nÀr knappen klickas
saveButton.addEventListener('click', () => {
const name = nameInput.value;
chrome.storage.sync.set({ name: name }, () => {
greeting.textContent = `Hej, ${name}!`;
});
});
});
Förklaring:
- Skriptet lyssnar efter `DOMContentLoaded`-hÀndelsen för att sÀkerstÀlla att DOM Àr fullstÀndigt laddat innan koden körs.
- Det hÀmtar referenser till inmatningsfÀltet, spara-knappen och hÀlsningsparagrafen.
- Det laddar det sparade namnet frÄn lagringen med `chrome.storage.sync.get()`.
- Det sparar namnet i lagringen nÀr spara-knappen klickas med `chrome.storage.sync.set()`.
- Det uppdaterar hÀlsningsparagrafen med det sparade eller inmatade namnet.
Ladda om tillÀgget i din webblÀsare. Nu, nÀr du öppnar popup-fönstret, kan du ange ditt namn, spara det och se hÀlsningsmeddelandet. Namnet sparas i tillÀggets lagring och laddas nÀsta gÄng du öppnar popup-fönstret.
Exempel: AnvÀnda Tabs API
LÄt oss skapa ett tillÀgg som visar den aktuella flikens URL i en popup.
1. Uppdatera manifestfilen (manifest.json)
LÀgg till `"tabs"`-behörigheten i `permissions`-arrayen i din `manifest.json`:
{
"manifest_version": 3,
"name": "Flikexempel",
"version": "1.0",
"description": "Ett tillÀgg som anvÀnder Tabs API",
"permissions": [
"tabs"
],
"action": {
"default_popup": "popup.html"
},
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
}
2. Skapa en popup-fil (popup.html)
Skapa eller uppdatera din `popup.html` med följande innehÄll:
<!DOCTYPE html>
<html>
<head>
<title>Flikexempel</title>
<style>
body {
width: 300px;
padding: 10px;
font-family: sans-serif;
}
</style>
</head>
<body>
<h1>Flikexempel</h1>
<p>Nuvarande fliks URL:</p>
<p id="url"></p>
<script src="popup.js"></script>
</body>
</html>
3. Skapa ett popup-skript (popup.js)
Skapa en fil med namnet `popup.js` och lÀgg till följande kod:
document.addEventListener('DOMContentLoaded', () => {
const urlDisplay = document.getElementById('url');
// HĂ€mta den nuvarande flikens URL
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
const tab = tabs[0];
urlDisplay.textContent = tab.url;
});
});
Förklaring:
- Skriptet lyssnar efter `DOMContentLoaded`-hÀndelsen.
- Det anvÀnder `chrome.tabs.query()` för att hÀmta den för nÀrvarande aktiva fliken i det aktuella fönstret.
- Det hÀmtar flikens URL och visar den i `url`-paragrafen.
Ladda om tillÀgget i din webblÀsare. Nu, nÀr du öppnar popup-fönstret, kommer det att visa URL:en för den aktuella fliken.
Bakgrundsskript och Service Workers
I Manifest V3 ersÀtts bakgrundsskript med service workers. Service workers Àr hÀndelsedrivna skript som körs i bakgrunden utan att krÀva en bestÀndig sida. De Àr mer effektiva och mindre resurskrÀvande Àn bakgrundssidor.
Nyckelfunktioner hos Service Workers:
- HÀndelsedrivna: Service workers svarar pÄ hÀndelser som webblÀsarÄtgÀrder, larm och meddelanden frÄn innehÄllsskript.
- Asynkrona: Service workers anvÀnder asynkrona API:er för att undvika att blockera huvudtrÄden.
- Avslutas vid inaktivitet: Service workers avslutas nÀr de inte aktivt hanterar hÀndelser, vilket sparar resurser.
Exempel: AnvÀnda en Service Worker
LÄt oss skapa ett tillÀgg som visar en avisering nÀr webblÀsaren startar.
1. Uppdatera manifestfilen (manifest.json)
Uppdatera din `manifest.json` med följande innehÄll:
{
"manifest_version": 3,
"name": "Service Worker-exempel",
"version": "1.0",
"description": "Ett tillÀgg som anvÀnder en service worker",
"permissions": [
"notifications"
],
"background": {
"service_worker": "background.js"
},
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
}
Förklaring:
- Egenskapen `"background"` anger sökvÀgen till service worker-skriptet (`background.js`).
- Arrayen `"permissions"` inkluderar `"notifications"`, vilket krÀvs för att visa aviseringar.
2. Skapa ett Service Worker-skript (background.js)
Skapa en fil med namnet `background.js` och lÀgg till följande kod:
chrome.runtime.onStartup.addListener(() => {
// Visa en avisering nÀr webblÀsaren startar
chrome.notifications.create('startup-notification', {
type: 'basic',
iconUrl: 'images/icon48.png',
title: 'WebblÀsaren har startat',
message: 'WebblÀsaren har startat.',
});
});
Förklaring:
- Skriptet lyssnar efter `chrome.runtime.onStartup`-hÀndelsen, som utlöses nÀr webblÀsaren startar.
- Det anvÀnder `chrome.notifications.create()` för att visa en avisering med de angivna egenskaperna.
Ladda om tillÀgget i din webblÀsare. Nu, nÀr du startar om din webblÀsare, bör du se en avisering frÄn tillÀgget.
InnehÄllsskript (Content Scripts)
InnehÄllsskript Àr JavaScript-filer som körs i kontexten av webbsidor. De kan komma Ät och Àndra DOM-trÀdet pÄ webbsidor, vilket gör att du kan anpassa beteendet och utseendet pÄ webbplatser.
Nyckelfunktioner hos innehÄllsskript:
- TillgÄng till DOM: InnehÄllsskript kan komma Ät och manipulera DOM-trÀdet pÄ webbsidor.
- Isolering frÄn webbsidans skript: InnehÄllsskript körs i en isolerad miljö, vilket förhindrar konflikter med webbsidans skript.
- Kommunikation med bakgrundsskript: InnehÄllsskript kan kommunicera med bakgrundsskript med hjÀlp av meddelandesÀndning.
Exempel: AnvÀnda ett innehÄllsskript
LÄt oss skapa ett tillÀgg som Àndrar bakgrundsfÀrgen pÄ webbsidor till ljusblÄ.
1. Uppdatera manifestfilen (manifest.json)
Uppdatera din `manifest.json` med följande innehÄll:
{
"manifest_version": 3,
"name": "InnehÄllsskript-exempel",
"version": "1.0",
"description": "Ett tillÀgg som anvÀnder ett innehÄllsskript",
"permissions": [
"activeTab",
"scripting"
],
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": [""],
"js": ["content.js"]
}
],
"icons": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
}
Förklaring:
- Egenskapen `"content_scripts"` anger en array av innehÄllsskript som ska injiceras pÄ webbsidor.
- `"matches"` anger de URL:er som innehÄllsskriptet ska injiceras pÄ (`
` matchar alla URL:er). - `"js"` anger sökvÀgen till innehÄllsskriptet (`content.js`).
- Arrayen `"permissions"` inkluderar `"activeTab"` och `"scripting"`, vilket krÀvs för att injicera skript.
2. Skapa ett innehÄllsskript (content.js)
Skapa en fil med namnet `content.js` och lÀgg till följande kod:
document.body.style.backgroundColor = 'lightblue';
3. Skapa en Service Worker (background.js)
Skapa en fil med namnet `background.js` och lÀgg till följande kod:
chrome.action.onClicked.addListener((tab) => {
chrome.scripting.executeScript({
target: { tabId: tab.id },
function: () => {
document.body.style.backgroundColor = 'lightblue';
}
});
});
Förklaring:
- InnehÄllsskriptet sÀtter helt enkelt bakgrundsfÀrgen pÄ `body`-elementet till ljusblÄ.
- Service workern lyssnar pÄ klickhÀndelsen och exekverar en funktion i den aktuella fliken, som Àndrar bakgrundsfÀrgen.
Ladda om tillÀgget i din webblÀsare. Nu, nÀr du öppnar en webbsida, kommer bakgrundsfÀrgen att vara ljusblÄ.
Felsökning av webblÀsartillÀgg
Felsökning av webblÀsartillÀgg Àr en vÀsentlig del av utvecklingsprocessen. Chrome och Firefox erbjuder utmÀrkta utvecklarverktyg för att felsöka tillÀgg.
Felsökning i Chrome:
- Ăppna Chrome och gĂ„ till `chrome://extensions`.
- Aktivera "UtvecklarlÀge" i det övre högra hörnet.
- Klicka pÄ "Inspect views background page" för ditt tillÀgg. Detta öppnar Chrome DevTools för bakgrundsskriptet.
- För att felsöka innehÄllsskript, öppna webbsidan dÀr innehÄllsskriptet injiceras och öppna sedan Chrome DevTools för den sidan. Du bör se ditt innehÄllsskript listat i "Sources"-panelen.
Felsökning i Firefox:
- Ăppna Firefox och gĂ„ till `about:debugging#/runtime/this-firefox`.
- Hitta ditt tillÀgg i listan och klicka pÄ "Inspect". Detta öppnar Firefox Developer Tools for tillÀgget.
- För att felsöka innehÄllsskript, öppna webbsidan dÀr innehÄllsskriptet injiceras och öppna sedan Firefox Developer Tools för den sidan. Du bör se ditt innehÄllsskript listat i "Debugger"-panelen.
Vanliga felsökningstekniker:
- Konsolloggning: AnvÀnd `console.log()` för att skriva ut meddelanden i konsolen.
- Brytpunkter: SÀtt brytpunkter i din kod för att pausa exekveringen och inspektera variabler.
- KÀllkodskartor (Source maps): AnvÀnd kÀllkodskartor för att felsöka din kod i dess ursprungliga form, Àven om den har minifierats eller transpilerats.
- Felhantering: Implementera felhantering för att fÄnga och logga fel.
Publicera ditt tillÀgg
NÀr du har utvecklat och testat ditt tillÀgg kan du publicera det pÄ Chrome Web Store eller Firefox Add-ons marketplace.
Publicera pÄ Chrome Web Store:
- Skapa ett utvecklarkonto pÄ Chrome Web Store.
- Paketera ditt tillÀgg i en `.zip`-fil.
- Ladda upp `.zip`-filen till Chrome Web Store.
- Ange den nödvÀndiga metadatan, sÄsom tillÀggets namn, beskrivning och skÀrmdumpar.
- Skicka in ditt tillÀgg för granskning.
Publicera pÄ Firefox Add-ons Marketplace:
- Skapa ett utvecklarkonto pÄ Firefox Add-ons marketplace.
- Paketera ditt tillÀgg i en `.zip`-fil.
- Ladda upp `.zip`-filen till Firefox Add-ons marketplace.
- Ange den nödvÀndiga metadatan, sÄsom tillÀggets namn, beskrivning och skÀrmdumpar.
- Skicka in ditt tillÀgg för granskning.
BÀsta praxis för publicering:
- Skriv en tydlig och koncis beskrivning av ditt tillÀgg.
- TillhandahÄll högkvalitativa skÀrmdumpar och videor för att visa upp ditt tillÀggs funktioner.
- Testa ditt tillÀgg noggrant innan du skickar in det.
- Svara snabbt pÄ anvÀndarrecensioner och feedback.
- HÄll ditt tillÀgg uppdaterat med de senaste webblÀsarversionerna och sÀkerhetsuppdateringarna.
SĂ€kerhetsaspekter
SÀkerhet Àr en kritisk aspekt av utveckling av webblÀsartillÀgg. TillÀgg kan potentiellt komma Ät kÀnslig anvÀndardata och Àndra webbsidors innehÄll, sÄ det Àr viktigt att följa bÀsta praxis för sÀkerhet för att skydda anvÀndare frÄn skadlig kod.
Viktiga sÀkerhetsaspekter:
- Minimera behörigheter: BegÀr endast de behörigheter som ditt tillÀgg faktiskt behöver.
- Validera anvÀndarinmatning: Sanera och validera all anvÀndarinmatning för att förhindra cross-site scripting (XSS)-attacker.
- AnvÀnd HTTPS: AnvÀnd alltid HTTPS för att kommunicera med fjÀrrservrar.
- Content Security Policy (CSP): TillÀmpa en strikt CSP för att förhindra exekvering av godtycklig kod.
- Uppdatera ditt tillÀgg regelbundet: HÄll ditt tillÀgg uppdaterat med de senaste sÀkerhetsuppdateringarna.
Genom att följa dessa sÀkerhetsriktlinjer kan du hjÀlpa till att sÀkerstÀlla att ditt webblÀsartillÀgg Àr tryggt och sÀkert för anvÀndare.
Slutsats
Utveckling av webblÀsartillÀgg med Manifest V3 och JavaScript-API:er erbjuder ett kraftfullt sÀtt att anpassa surfupplevelsen och lÀgga till nya funktioner i webblÀsare. Genom att förstÄ de nyckelkoncept, API:er och bÀsta praxis som beskrivs i denna guide kan du skapa kraftfulla och sÀkra tillÀgg som förbÀttrar produktiviteten, höjer sÀkerheten och ger en bÀttre surfupplevelse för anvÀndare över hela vÀrlden. I takt med att webben fortsÀtter att utvecklas kommer webblÀsartillÀgg att spela en allt viktigare roll i att forma framtiden för online-interaktioner. Omfamna de möjligheter som presenteras av Manifest V3 och den rikedom av JavaScript-API:er för att bygga innovativa och vÀrdefulla tillÀgg.