Descrizione
L'API chrome.types contiene dichiarazioni di tipo per Chrome.
Impostazioni di Google Chrome
Il prototipo ChromeSetting fornisce un insieme comune di funzioni (get(), set() e clear())
nonché un publisher di eventi (onChange) per le impostazioni del browser Chrome. Gli esempi di impostazioni proxy mostrano come devono essere utilizzate queste funzioni.
Ambito e ciclo di vita
Chrome distingue tre diversi ambiti delle impostazioni del browser:
- regular
- Le impostazioni impostate nell'ambito regularsi applicano alle normali finestre del browser e vengono ereditate dalle finestre di navigazione in incognito se non vengono sovrascritte. Queste impostazioni vengono memorizzate su disco e rimangono attive finché non vengono cancellate dall'estensione di controllo o finché l'estensione di controllo non viene disattivata o disinstallata.
- incognito_persistentLe impostazioni di
-  impostate nell'ambito incognito_persistentsi applicano solo alle finestre di navigazione in incognito. Per queste, le impostazioni diregularvengono ignorate. Queste impostazioni vengono memorizzate su disco e rimangono attive finché non vengono cancellate dall'estensione di controllo o finché l'estensione di controllo non viene disattivata o disinstallata.
- incognito_session_onlyLe impostazioni di
-  impostate nell'ambito incognito_session_onlysi applicano solo alle finestre di navigazione in incognito. Per questi, le impostazioni diregulareincognito_persistentvengono ignorate. Queste impostazioni non vengono memorizzate su disco e vengono cancellate quando viene chiusa l'ultima finestra di navigazione in incognito. Possono essere impostati solo quando è aperta almeno una finestra di navigazione in incognito.
Precedenza
Chrome gestisce le impostazioni su diversi livelli. Il seguente elenco descrive i livelli che possono influenzare le impostazioni effettive, in ordine crescente di precedenza.
- Impostazioni di sistema fornite dal sistema operativo
- Parametri della riga di comando
- Impostazioni fornite dalle estensioni
- Policy
Come suggerisce l'elenco, i criteri potrebbero ignorare le modifiche specificate con l'estensione. Puoi
utilizzare la funzione get() per determinare se la tua estensione è in grado di fornire un'impostazione
o se questa impostazione verrà ignorata.
Come discusso in precedenza, Chrome consente di utilizzare impostazioni diverse per le finestre normali e quelle di navigazione in incognito. L'esempio seguente illustra il comportamento. Supponiamo che nessun criterio sostituisca le impostazioni e che un'estensione possa impostare le impostazioni per le finestre normali (R) e per le finestre di navigazione in incognito (I).
- Se è impostato solo (R), queste impostazioni sono valide sia per le finestre normali che per quelle di navigazione in incognito.
- Se è impostata solo l'opzione (I), queste impostazioni sono valide solo per le finestre di navigazione in incognito. Le finestre normali utilizzano le impostazioni determinate dai livelli inferiori (opzioni della riga di comando e impostazioni di sistema).
- Se sono impostati sia (R) che (I), le rispettive impostazioni vengono utilizzate per le finestre normali e di navigazione in incognito.
Se due o più estensioni vogliono impostare la stessa impostazione su valori diversi, l'estensione installata più di recente ha la precedenza sulle altre estensioni. Se l'estensione installata più di recente imposta solo (I), le impostazioni delle finestre normali possono essere definite da estensioni installate in precedenza.
Il valore effettivo di un'impostazione è quello che risulta dall'applicazione delle regole di precedenza. Viene utilizzato da Chrome.
Tipi
ChromeSetting
Un'interfaccia che consente l'accesso a un'impostazione del browser Chrome. Per un esempio, vedi accessibilityFeatures.
Proprietà
- 
    onChangeEvent<functionvoidvoid> Attivato dopo le modifiche all'impostazione. La funzione onChange.addListenerha questo aspetto:(callback: function) => {...} - 
    callbackfunzione Il parametro callbackha il seguente aspetto:(details: object) => void - 
    dettaglioggetto - 
    incognitoSpecificbooleano facoltativo Indica se il valore modificato è specifico della sessione di navigazione in incognito. Questa proprietà sarà presente solo se l'utente ha attivato l'estensione in modalità di navigazione in incognito. 
- 
    levelOfControlIl livello di controllo dell'impostazione. 
- 
    valoreT Il valore dell'impostazione dopo la modifica. 
 
- 
    
 
- 
    
 
- 
    
- 
    cancellavoid PromessaCancella l'impostazione, ripristinando il valore predefinito. La funzione clearha questo aspetto:(details: object, callback?: function) => {...} - 
    dettaglioggetto Quale impostazione cancellare. - 
    ambitoChromeSettingScope facoltativo Dove cancellare l'impostazione (impostazione predefinita: normale). 
 
- 
    
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:() => void 
 - 
            returnsPromise<void> Chrome 96+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
 
- 
    
- 
    getvoid PromessaRecupera il valore di un'impostazione. La funzione getha questo aspetto:(details: object, callback?: function) => {...} - 
    dettaglioggetto Quale impostazione considerare. - 
    in incognitobooleano facoltativo Indica se restituire il valore che si applica alla sessione di navigazione in incognito (il valore predefinito è false). 
 
- 
    
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(details: object) => void - 
    dettaglioggetto Dettagli del valore attualmente effettivo. - 
    incognitoSpecificbooleano facoltativo Indica se il valore effettivo è specifico della sessione di navigazione in incognito. Questa proprietà sarà presente solo se la proprietà incognitonel parametrodetailsdiget()era true.
- 
    levelOfControlIl livello di controllo dell'impostazione. 
- 
    valoreT Il valore dell'impostazione. 
 
- 
    
 
- 
    
 - 
            returnsPromise<object> Chrome 96+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
 
- 
    
- 
    impostavoid PromessaImposta il valore di un'impostazione. La funzione setha questo aspetto:(details: object, callback?: function) => {...} - 
    dettaglioggetto Quale impostazione modificare. - 
    ambitoChromeSettingScope facoltativo Dove impostare l'impostazione (predefinita: normale). 
- 
    valoreT Il valore dell'impostazione. Tieni presente che ogni impostazione ha un tipo di valore specifico, descritto insieme all'impostazione. Un'estensione non deve impostare un valore di tipo diverso. 
 
- 
    
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:() => void 
 - 
            returnsPromise<void> Chrome 96+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
 
- 
    
ChromeSettingScope
L'ambito di ChromeSetting. Una tra
- regular: impostazione per il profilo normale (che viene ereditata dal profilo in incognito se non viene sostituita altrove),
- regular\_only: impostazione solo per il profilo normale (non ereditata dal profilo di navigazione in incognito),
- incognito\_persistent: impostazione per il profilo in incognito che sopravvive ai riavvii del browser (override delle preferenze regolari),
- incognito\_session\_only: impostazione per il profilo in incognito che può essere impostata solo durante una sessione in incognito e viene eliminata al termine della sessione in incognito (override delle preferenze normali e incognito_persistent).
Enum
"normale" 
 
"regular_only" 
 
"incognito_persistent" 
 
"incognito_session_only" 
 
LevelOfControl
Una tra
- not\_controllable: non può essere controllato da alcuna estensione
- controlled\_by\_other\_extensions: controllato dalle estensioni con priorità più elevata
- controllable\_by\_this\_extension: può essere controllato da questa estensione
- controlled\_by\_this\_extension: controllato da questa estensione
Enum
"not_controllable" 
 
"controlled_by_other_extensions" 
 
"controllable_by_this_extension" 
 
"controlled_by_this_extension"