🔧 ProgrammierungVibe Coding Was Never Going to Be the Future. Architecture Is.(17.09.2026 um 01:55 Uhr)
🔧 ProgrammierungDIVING DEEPER INTO POWER BI(17.09.2026 um 01:58 Uhr)
🔧 ProgrammierungThe system lives in your files, not your prompts(17.09.2026 um 01:58 Uhr)
🔧 ProgrammierungSoftware Artifact Trust Starts At Package Registries(17.09.2026 um 01:58 Uhr)
🔧 ProgrammierungLandlock LSM: Secure Linux Apps ohne root-Rechte(17.09.2026 um 02:00 Uhr)
🔧 ProgrammierungDebugging Node.js Like a Pro(17.09.2026 um 02:00 Uhr)
🔧 ProgrammierungVibe Coding Was Never Going to Be the Future. Architecture Is.(17.09.2026 um 01:55 Uhr)
🔧 ProgrammierungDIVING DEEPER INTO POWER BI(17.09.2026 um 01:58 Uhr)
🔧 ProgrammierungThe system lives in your files, not your prompts(17.09.2026 um 01:58 Uhr)
🔧 ProgrammierungSoftware Artifact Trust Starts At Package Registries(17.09.2026 um 01:58 Uhr)
🔧 ProgrammierungLandlock LSM: Secure Linux Apps ohne root-Rechte(17.09.2026 um 02:00 Uhr)
🔧 ProgrammierungDebugging Node.js Like a Pro(17.09.2026 um 02:00 Uhr)
🔧 Programmierung 🕛 vor 1 Monat 3 Min Lesezeit
0

Shipping a Chrome Extension That Works Across Sites You Do Not Control

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Building a Chrome extension that saves items from arbitrary third-party sites means every site is a hostile, unstable environment. Here is what actually broke, and what held.






Manifest V3 changes the shape of everything



The persistent background page is gone. Service workers terminate — aggressively, after roughly 30 seconds of inactivity — and any in-memory state dies with them.



Anything that must survive goes into chrome.storage:




CODE
// ❌ dies with the worker
let cache = {}

// ✅ survives
await chrome.storage.local.set({ cache })






This is the single most common source of "works when I test it, fails in the wild" bugs. Your worker is alive during active testing and dead during real usage patterns.






Content script isolation cuts both ways



Content scripts run in an isolated world: you see the DOM, not the page's JavaScript. You cannot read the page's variables, and the page cannot see yours.



Good for safety, awkward when the data you want lives in a framework's state rather than the DOM. Options are injecting into the main world (more risk, more capability) or scraping rendered DOM (fragile but isolated). I default to DOM scraping and accept the fragility.






Selectors rot, so degrade instead of breaking



Third-party markup changes without warning. A selector working today breaks next week with no notice and no error you will see.



What helps:





  1. Layered fallbacks — semantic markup first (article, [itemprop], OpenGraph tags), site-specific selectors only as a last resort


  2. Fail visibly, not silently — if extraction fails, tell the user rather than saving an empty record


  3. Never assume shapeel?.textContent?.trim() ?? '' everywhere; a null deref in a content script can break the host page, which is much worse than your feature not working






Permissions: ask for less



<all_urls> triggers heavier review and scares users at install time. activeTab plus optional_host_permissions requested at first use is a better trade — fewer install-time objections, and review goes faster.






Store review realities




  • Justify every permission in the listing, specifically. Vague justifications get rejected.

  • Privacy policy required if you touch user data at all.

  • First review is slow; updates are usually much faster.

  • A permission added later triggers full re-review — worth batching permission changes rather than shipping them one at a time.



I shipped one of these for BabyNameAi — cross-site saving, a daily classical-poetry card, and offline lookup.






Caveat



Extension APIs are still shifting under MV3. Anything you read from before 2023 — including plenty of still-top-ranked results — may describe APIs that no longer exist.

Vollständiger Original-Artikel
Den kompletten Beitrag mit allen Details direkt auf dev.to lesen.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
2 Quellen
Your README code examples are silently lying — I built a CLI to detect documentation drift using only AST, no LLM
1 Quelle
An Outbox for 3 Million Events a Day on Azure SQL: the Engineering Behind It
1 Quelle
Vibe Coding Was Never Going to Be the Future. Architecture Is.
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Shipping a Chrome Extension That Works Across Sites You Do Not Control

Thematisch verwandte Begriffe: Shipping, Chrome, Extension, That · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...