Chrome 116 is nu beschikbaar als bètaversie en bevat veel interessante updates voor ontwikkelaars van Chrome-extensies. Laten we eens snel kijken wat er nieuw is.
Open programmatisch een zijpaneel
Sidepanel is een van de meest gevraagde functies in Chrome-extensies en is al beschikbaar in Chrome sinds versie 114. Na de lancering van de Side Panel API was een van de eerste feedback die we ontvingen dat ontwikkelaars een manier wilden om een zijpaneel programmatisch te openen. En hier is het dan: chrome.sidePanel.open
is nu in bèta. Je kunt het gebruiken om het zijpaneel van de extensie programmatisch te openen als reactie op een gebruikersinteractie, zoals een klik op het contextmenu:
chrome.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === 'openSidePanel') {
// This will open the panel in all the pages on the current window.
chrome.sidePanel.open({ windowId: tab.windowId });
}
});
WebSocket-ondersteuning in Service Workers
WebSocket-ondersteuning is cruciaal voor veel extensies die van plan zijn over te stappen naar Manifest V3. Chrome 116 verbetert de WebSocket-ondersteuning in service workers verder, doordat alle WebSocket-activiteit de 30 seconden durende inactiviteitstimer van de service worker reset. Dit betekent dat zolang uw WebSocket actief is, de service worker actief blijft.
U kunt dit gebruiken om een keepalive-mechanisme te implementeren dat ervoor zorgt dat uw service worker actief blijft terwijl u wacht op berichten van uw server, zelfs als het langer dan 30 seconden duurt voordat het volgende bericht arriveert:
function keepAlive() {
const keepAliveIntervalId = setInterval(
() => {
if (webSocket) {
webSocket.send('keepalive');
} else {
clearInterval(keepAliveIntervalId);
}
},
// It's important to pick an interval that's shorter than 30s, to
// avoid that the service worker becomes inactive.
20 * 1000
);
}
Bekijk onze nieuwe WebSocket- handleiding en -voorbeeld voor meer informatie.
Sterke keep-alive voor servicemedewerkers
Over de levenscyclus van service workers gesproken: er is nog een belangrijke update: sterke keepalives voor API's die gebruikersinteractie vereisen. API's die gebruikersinteractie vereisen, krijgen "sterke" keepalives voor extension service workers (d.w.z. dat de worker langer dan 5 minuten aan deze taak mag besteden):
-
permissions.request()
-
desktopCapture.chooseDesktopMedia()
-
identity.launchWebAuthFlow()
-
management.uninstall()
Audio en video opnemen op de achtergrond
Een andere kloof tussen Manifest V2 en Manifest V3 is gedicht: je kunt audio en video op de achtergrond opnemen met tabCapture
en offscreen-documenten. Gebruik de chrome.tabCapture
API in een service worker om een stream-ID te verkrijgen na een gebruikersgebaar. Deze kan vervolgens worden doorgegeven aan een offscreen-document om de opname te starten.
Bekijk onze bijgewerkte tabCapture
handleiding om te leren hoe het werkt of bekijk voor een werkend voorbeeld het Tab Capture - Recorder -voorbeeld.
Nieuwe API: runtime.getContexts()
Met de nieuwe runtime.getContexts()
API kunt u informatie ophalen over actieve contexten die aan uw extensies zijn gekoppeld. U kunt deze bijvoorbeeld gebruiken om te controleren of er een actief offscreen-document is:
const existingContexts = await chrome.runtime.getContexts({});
const offscreenDocument = existingContexts.find(
(c) => c.contextType === 'OFFSCREEN_DOCUMENT'
);
Nieuwe reden buiten beeld: GEOLOCATIE
geolocation
is toegevoegd als een andere geldige reden om een offscreen-document te gebruiken . Bekijk onze handleiding over het gebruik van geolocatie voor meer informatie over het verkrijgen van de geografische locatie van de extensie met behulp van de Offscreen API.
chrome.actie.setBadgeText()
action.setBadgeText
is bijgewerkt om een inconsistentie tussen Manifest V2 en Manifest V3 te verhelpen. Door een lege string of null
aan action.setBadgeText
door te geven, wordt de badgetekst voor het opgegeven tabblad gewist en wordt standaard de algemene badgetekst gebruikt.
action.setBadgeText({tabId: tabId, text: ''});
Samenvatting: een nieuwe stap richting Manifest V3
Met verbeterde levenslange ondersteuning voor Service Worker en de bijgewerkte TabCapture API hebben we verdere vooruitgang geboekt met ons doel om de kloof tussen Manifest V2 en V3 te dichten. Bekijk onze pagina met bekende problemen voor de actuele status.