Extensies kunnen cookies opslaan en toegang krijgen tot webopslag-API's, net als een normale website. In sommige gevallen gedragen deze zich echter anders in extensies.
Zie chrome.storage
voor informatie over de extensie-API.
Opslag
Het is vaak wenselijk om API's voor webplatformopslag in extensies te gebruiken. In deze sectie wordt het gedrag van deze API's in een extensiecontext onderzocht, wat soms kan verschillen afhankelijk van hoe ze zich op internet gedragen.
Vasthoudendheid
De opslag van extensies wordt niet gewist wanneer een gebruiker de browsegegevens wist . Dit is van toepassing op alle gegevens die zijn opgeslagen met behulp van webopslag-API's (zoals Local Storage en IndexedDB ).
Standaard zijn extensies onderworpen aan de normale quotumbeperkingen voor opslag, die kunnen worden gecontroleerd door navigator.storage.estimate()
aan te roepen. Opslag kan ook worden verwijderd onder zware geheugendruk, hoewel dit zelden voorkomt. Om dit te voorkomen:
- Vraag de machtiging
"unlimitedStorage"
aan, die van invloed is op zowel extensie- als webopslag-API's en extensies vrijstelt van zowel quotabeperkingen als uitzetting. - Roep
navigator.storage.persist()
aan voor bescherming tegen uitzetting.
De opslag van extensies wordt gedeeld door de oorsprong van de extensie, inclusief de medewerker van de extensieservice, eventuele extensiepagina's (inclusief pop-ups en het zijpaneel) en documenten buiten het scherm. In inhoudsscripts heeft het aanroepen van webopslag-API's toegang tot gegevens van de hostpagina waarop het inhoudsscript is geïnjecteerd en niet tot de extensie.
Toegang in servicemedewerkers
De IndexedDB- en Cache Storage -API's zijn toegankelijk in servicewerknemers. Lokale opslag en sessieopslag zijn dat echter niet.
Als u toegang wilt krijgen tot de lokale opslag of sessieopslag van de servicemedewerker, gebruikt u een document buiten het scherm .
Verdeling
Partitioneren is waar sleutels worden geïntroduceerd voor opgeslagen gegevens om te beperken waar deze toegankelijk zijn. Opslag is van oudsher gekoppeld aan de oorsprong ervan.
Vanaf Chrome 115 introduceert opslagpartitionering wijzigingen in de manier waarop partitiesleutels worden gedefinieerd om bepaalde soorten cross-site tracking te voorkomen. In de praktijk betekent dit dat als site A een iframe insluit dat site B bevat, site B geen toegang zal hebben tot dezelfde opslagruimte als waar hij normaal gesproken over zou beschikken als er rechtstreeks naartoe zou worden genavigeerd.
Om de impact hiervan bij uitbreidingen te mitigeren, gelden twee uitzonderingen:
- Als een pagina met het
chrome-extension://
schema op een site is ingesloten, is opslagpartitionering niet van toepassing en heeft de extensie toegang tot de partitie op het hoogste niveau. - Als een pagina met het
chrome-extension://
schema een iframe bevat en de extensie hostrechten heeft voor de site die deze insluit, heeft die site ook toegang tot de partitie op het hoogste niveau.
Koekjes
Cookies bieden een manier om sleutel-waardeparen op te slaan die aan een specifiek domein en pad zijn gekoppeld. Ze hebben een beperkte waarde in extensies, maar het begrijpen van hun gedrag kan nuttig zijn als u een specifiek gebruiksscenario heeft of een script van derden hebt gebundeld dat ze gebruikt bij de implementatie ervan.
Veilige cookies
Het Secure
cookie-kenmerk wordt alleen ondersteund voor het https://
schema. Daarom kunnen chrome-extension://
pagina's geen cookies met dit kenmerk instellen.
Dit betekent ook dat extensiepagina's geen andere cookie-kenmerken kunnen gebruiken waarvoor het Secure
kenmerk vereist is:
Partitionering en SameSite-gedrag
Cookies die op chrome-extension://-pagina's worden geplaatst, gebruiken altijd SameSite=Lax
. Bijgevolg zijn cookies die door een extensie op zijn eigen oorsprong zijn geplaatst nooit toegankelijk in frames en is partitionering niet relevant.
Voor cookies die verband houden met sites van derden, zoals voor een site van een derde partij die in een frame op een extensiepagina is geladen, of een verzoek dat vanaf een extensiepagina naar een bron van een derde partij wordt gedaan, gedragen cookies zich hetzelfde als internet, behalve in twee manieren:
- Cookies van derden worden nooit geblokkeerd, zelfs niet in subframes als de pagina op het hoogste niveau voor een bepaald tabblad een
chrome-extension://
pagina is. - Verzoeken van een extensie aan een derde partij worden behandeld als dezelfde site als de extensie hostmachtigingen heeft voor de derde partij. Dit betekent
SameSite=Strict
cookies worden verzonden. Houd er rekening mee dat dit alleen van toepassing is op netwerkverzoeken, niet op toegang viadocument.cookie
in JavaScript, en niet van toepassing is als cookies van derden zijn geblokkeerd.
Houd er rekening mee dat de instellingen rond cookies van derden worden beïnvloed door het werk van de Privacy Sandbox en worden aangepast aan de hand van de tijdlijn .
De chrome.cookies
API biedt controle over de partitiesleutel die bij elke API-methode moet worden gebruikt. Zie de API-referentie voor meer informatie.