31. ledna 2025

Web Browser plugin 2

 

đź“‘ OBSAH

  1. Úvod 1.1 Co je Manifest V3 1.2 Podpora napříč prohlížeči 1.3 Rozdíly mezi MV2 a MV3

  2. Anatomie rozšíření (složková struktura a role souborů) 2.1 Povinný soubor manifest.json 2.2 Background skript (Service Worker) 2.3 Content skripty 2.4 Uživatelské rozhraní:

    • Popup

    • Options page

    • Side panel

    • Extension pages 2.5 Ikony, styly a web_accessible_resources

  3. Technologie a nástroje 3.1 TypeScript, React, Svelte, Vite 3.2 Webpack/Rollup – bundlovánĂ­ 3.3 SpeciálnĂ­ frameworky (Plasmo, Bedframe)

  4. AI asistovanĂ˝ vĂ˝voj 4.1 VS Code a jeho rozšířenĂ­ 4.2 Cursor.com – promptovánĂ­ a generovánĂ­ 4.3 Windsurf.com – kontextová editace a ĂşdrĹľba 4.4 VyuĹľitĂ­ LLM pro testy, strukturu a komentáře

  5. Dokumentace 5.1 JSDoc / TSDoc 5.2 Docusaurus a uĹľivatelská dokumentace 5.3 Changelog a verzovánĂ­ 5.4 Mermaid.js – roadmapy jako diagramy 5.5 Automatizace generovánĂ­ dokumentace

  6. Testování 6.1 Jednotkové testy (Jest, Mocha) 6.2 Mockování chrome.* API 6.3 End-to-end testy (Puppeteer, Playwright) 6.4 Debugging přes chrome://extensions, DevTools

  7. CI/CD a publikace 7.1 GitHub Actions, Semantic Release 7.2 Automatické verze, Changelog 7.3 Publikace do:

    • Chrome Web Store

    • Mozilla AMO

    • Microsoft Edge Add-ons

    • Safari App Store (základnĂ­ info) 7.4 OddÄ›lenĂ© verze pro Chrome a Firefox 7.5 ZIP balĂ­ÄŤek a GitHub Releases

  8. Vývojový workflow 8.1 Od nápadu k architektuře 8.2 Iterativní vývoj s reloadem 8.3 Pre-review checklist 8.4 Publikace a propagace 8.5 Údržba a budoucí verze

  9. Open-source příklady 9.1 Bitwarden 9.2 MetaMask 9.3 Dark Reader 9.4 React DevTools 9.5 uBlock Origin Lite 9.6 Refined GitHub



2. Anatomie rozšíření

2.1 PovinnĂ˝ soubor manifest.json

Kořenový soubor, definuje strukturu, oprávnění a komponenty rozšíření:

  • name, description, version

  • manifest_version: 3

  • permissions, host_permissions

  • background.service_worker

  • action (popup)

  • content_scripts

  • web_accessible_resources

Dokumentace: https://developer.chrome.com/docs/extensions/mv3/manifest/

2.2 Background skript (Service Worker)

  • Nahrazuje perzistentnĂ­ background skript MV2

  • Aktivuje se pouze pĹ™i události

  • Běží v oddÄ›lenĂ©m vláknÄ›

  • Nutno ruÄŤnÄ› definovat chrome.runtime.onMessage, onInstalled, atd.

2.3 Content skripty

  • VstĹ™ikovány do konkrĂ©tnĂ­ch webovĂ˝ch stránek

  • Přístup k DOM (ne k chrome.* API)

  • Komunikace s background skriptem pomocĂ­ messagingu

2.4 Uživatelské rozhraní

  • Popup: action.default_popup – lehkĂ© UI pĹ™i kliknutĂ­ na ikonu

  • Options page: definováno v options_page nebo options_ui

  • Side panel: novĂ˝ koncept přístupnĂ˝ pĹ™es manifest

  • Extension pages: vlastnĂ­ HTML s plnĂ˝m přístupem k API

2.5 Ikony, styly a web_accessible_resources

  • Ikony: PNG ve velikostech 16x16, 48x48, 128x128

  • CSS/JS pĹ™ipojenĂ© pĹ™es content_scripts nebo do popupu/options

  • web_accessible_resources deklaruje přístupnĂ© assety ze stránky



3. Technologie a nástroje

3.1 TypeScript, React, Svelte, Vite

  • TypeScript zvyšuje bezpeÄŤnost a ÄŤitelnost

  • UI frameworky (React/Svelte) pro popup/options

3.2 Webpack/Rollup – bundlovánĂ­

  • KompilujĂ­ TS a modernĂ­ JS do formátu kompatibilnĂ­ho s MV3

  • VĂ˝stup směřuje do dist/ nebo build/

3.3 Speciální frameworky

  • Plasmo: https://www.plasmo.com – automatizuje MV3 vĂ˝voj

  • Bedframe: strukturovanĂ˝ template pro multiplatformnĂ­ rozšířenĂ­



4. AI asistovaný vývoj

4.1 VS Code a jeho rozšíření

  • Lintery, formattery (Prettier, ESLint)

  • Pluginy pro TypeScript a Chrome Extensions

4.2 Cursor.com

4.3 Windsurf.com

4.4 VyuĹľitĂ­ LLM

  • VygenerovánĂ­ základnĂ­ho kĂłdu, anotacĂ­, testĹŻ, dokumentace

  • PromptovánĂ­ a refaktoring v reálnĂ©m ÄŤase


5. Dokumentace

5.1 JSDoc / TSDoc

  • Anotace funkcĂ­ a typĹŻ pro generovánĂ­ dokumentace

5.2 Docusaurus a uživatelská dokumentace

  • Generátor webovĂ© dokumentace z Markdownu

  • MoĹľnĂ© nasazenĂ­ na GitHub Pages

5.3 Changelog a verzování

  • Conventional Commits + semantic-release

  • AutomatickĂ© generovánĂ­ CHANGELOG.md

5.4 Mermaid.js – roadmapy jako diagramy

5.5 Automatizace generování dokumentace

  • CI/CD buildy spouštĂ­ generátory dokumentace automaticky


6. Testování

6.1 Jednotkové testy (Jest, Mocha)

  • TestovánĂ­ pomocĂ­ simulace vstupĹŻ a vĂ˝stupĹŻ

  • MockovánĂ­ API (jest-chrome, sinon-chrome)

6.2 Mockování chrome.* API

  • NutnĂ© v prostĹ™edĂ­ mimo prohlĂ­ĹľeÄŤ

6.3 End-to-end testy (Puppeteer, Playwright)

  • SimulujĂ­ chovánĂ­ uĹľivatele s nainstalovanĂ˝m rozšířenĂ­m

6.4 Debugging

  • chrome://extensions + DevTools

  • Debug popupu, content scriptu i backgroundu


7. CI/CD a publikace

7.1 GitHub Actions, Semantic Release

  • AutomatickĂ© buildy, testy, generovánĂ­ ZIP, publikace

7.2 Automatické verze, Changelog

  • Z conventional commitĹŻ a tagĹŻ

7.3 Publikace do:

7.4 Oddělené verze pro Chrome a Firefox

  • Firefox podporuje browser.*, Chrome chrome.*

  • MoĹľnĂ© polyfily nebo build-time pĹ™epĂ­nánĂ­

7.5 ZIP balĂ­ÄŤek a GitHub Releases

  • Build → zip -r ext.zip dist/

  • Release na GitHubu s changelogem


8. Vývojový workflow

8.1 Od nápadu k architektuře

  • Identifikace problĂ©mu → specifikace → návrh komponent

8.2 Iterativní vývoj s reloadem

  • Aktivace v Chrome pĹ™es Developer Mode a Load unpacked

8.3 Pre-review checklist

  • Bez eval, inline JS, zbyteÄŤnĂ˝ch oprávnÄ›nĂ­

  • Popsaná oprávnÄ›nĂ­ v manifestu

8.4 Publikace a propagace

  • ÄŚekánĂ­ na schválenĂ­ v obchodech (nÄ›kdy nÄ›kolik dnĂ­)

  • SEO optimalizace a popis rozšířenĂ­

8.5 ĂšdrĹľba a budoucĂ­ verze

  • AutomatickĂ© aktualizace pĹ™es obchody

  • NovĂ© feature vÄ›tve, tagy, changelog


9. Open-source příklady

9.1 Bitwarden

9.2 MetaMask

9.3 Dark Reader

9.4 React DevTools

9.5 uBlock Origin Lite

9.6 Refined GitHub



Microsoft Edge extensions documentation
Develop an extension (add-on) for Microsoft Edge.
https://learn.microsoft.com/cs-cz/microsoft-edge/extensions-chromium/landing/


Building persistent Chrome Extension using Manifest V3
https://rahulnegi20.medium.com/building-persistent-chrome-extension-using-manifest-v3-198000bf1db6


How to debug chrome extension service worker for manifest v3
https://stackoverflow.com/questions/63024113/how-to-debug-chrome-extension-service-worker-for-manifest-v3


Anatomy of an extension

What is the canvas feature in ChatGPT and how do I use it?
Common questions about using the Canvas feature in ChatGPT.
https://help.openai.com/en/articles/9930697-what-is-the-canvas-feature-in-chatgpt-and-how-do-i-use-it



#dev

Žádné komentáře:

Okomentovat