6

Ho un'estensione con una pagina di sfondo e, in base all'impostazione predefinita, Chrome rimane in sospeso dopo aver chiuso tutte le finestre e inserisce l'icona di Chrome nella barra delle applicazioni. Vorrei evitare questo: non voglio che la mia estensione causi il persistere del processo di Chrome dopo la chiusura di tutte le finestre di Chrome, né voglio far apparire Chrome nel systray.Chrome Extension: chiude la pagina di sfondo dopo la chiusura di Chrome

Secondo lo only docs I could find su questo indica che l'utente può impostare questa opzione globalmente su tutte le estensioni, ma non è quello che sto cercando di fare. Mi piacerebbe che l'estensione fosse discreta/discreta e non volesse modificare il comportamento del browser dell'utente. Qualcuno sa come ottenere ciò mantenendo la possibilità di avere una pagina di sfondo?

+1

questo è simalare a http://stackoverflow.com/questions/10151732/how-can-a-google-chrome-extension-exit-its-own-background-process ma piuttosto che chiudere la pagina di sfondo a destra via, vorrei chiuderla quando tutte le schede sono state chiuse, e inoltre non voglio l'icona systray – Mala

+0

È possibile utilizzare le pagine evento invece della pagina di sfondo. Questo è comunque il nuovo metodo preferito in quanto non richiede che il tuo codice funzioni costantemente, solo quando è necessario. https://developer.chrome.com/dev/extensions/event_pages.html –

+0

le pagine degli eventi sono fantastiche! Non vedo l'ora che vengano ufficialmente rilasciati. –

risposta

3

UPDATE

Con manifesti versione 2 è ora possibile eseguire event pages that are not persistent. Le pagine degli eventi sono molto simili alle pagine di sfondo ma vengono caricate solo quando necessario dall'estensione.

Esempio dal doc pagine degli eventi sulla creazione di uno script evento non persistente nel vostro manifesto:

{ 
    "name": "My extension", 
    ... 
    "background": { 
    "scripts": ["eventPage.js"], 
    "persistent": false 
    }, 
    ... 
} 

Ecco un tutorial su m igrating your Chrome extension to manifest version 2.


risposta Old

Attualmente, se l'estensione ha uno sfondo definito nel file manifest.json, verrà eseguito prima che Chrome è lanciato e continuare dopo tutte le finestre di Chrome sono chiuse. Questo a meno che l'utente non modifichi le impostazioni come hai detto tu. Potrebbero esserci versioni future di Google Chrome che consentono funzionalità diverse ma tu, lo sviluppatore, non sarai in grado di aggirare questo problema in questo momento.

Un estratto dal background manifest docs

Rende Chrome iniziare presto e in ritardo e spegnimento, in modo che le applicazioni e le estensioni possono avere una vita più lunga.

Quando un'app ospitata, una confezione o un'estensione installate dispongono dell'autorizzazione "in background", Chrome viene eseguito (invisibilmente) non appena l'utente accede al computer, prima che l'utente avvii Chrome. L'autorizzazione per lo "sfondo" rende inoltre Chrome in esecuzione (anche dopo la chiusura dell'ultima finestra) finché l'utente non chiude esplicitamente Chrome.