Descrição
A API chrome.types contém declarações de tipo para o Chrome.
Configurações do Chrome
O tipo ChromeSetting fornece um conjunto comum de funções (get(), set() e clear()),
além de um editor de eventos (onChange) para configurações do navegador Chrome. Os exemplos de configurações de proxy mostram como essas funções devem ser usadas.
Escopo e ciclo de vida
O Chrome distingue três escopos diferentes de configurações do navegador:
- regular
- As configurações definidas no escopo regularse aplicam às janelas normais do navegador e são herdadas pelas janelas anônimas, a menos que sejam substituídas. Essas configurações são armazenadas em disco e permanecem no lugar até serem limpas pela extensão responsável ou até que ela seja desativada ou desinstalada.
- incognito_persistent
- As configurações definidas no escopo incognito_persistentsão válidas apenas para janelas anônimas. Nesses casos, elas substituem as configurações deregular. Essas configurações são armazenadas no disco e permanecem em vigor até serem limpas pela extensão responsável ou até que ela seja desativada ou desinstalada.
- incognito_session_only
- As configurações definidas no escopo incognito_session_onlysão válidas apenas para janelas anônimas. Para esses casos, elas substituem as configurações deregulareincognito_persistent. Essas configurações não são armazenadas no disco e são apagadas quando a última janela anônima é fechada. Eles só podem ser definidos quando pelo menos uma janela anônima está aberta.
Precedência
O Chrome gerencia as configurações em diferentes camadas. A lista a seguir descreve as camadas que podem influenciar as configurações efetivas, em ordem crescente de precedência.
- Configurações do sistema fornecidas pelo sistema operacional
- Parâmetros de linha de comando
- Configurações fornecidas por extensões
- Políticas
Como a lista sugere, as políticas podem substituir as mudanças especificadas com a extensão. Você
pode usar a função get() para determinar se a extensão é capaz de fornecer uma configuração
ou se essa configuração seria substituída.
Como discutido anteriormente, o Chrome permite usar configurações diferentes para janelas normais e anônimas. O exemplo a seguir ilustra esse comportamento. Suponha que nenhuma política substitua as configurações e que uma extensão possa definir configurações para janelas normais (R) e para janelas anônimas (I).
- Se apenas (R) estiver definido, essas configurações serão válidas para janelas normais e anônimas.
- Se apenas (I) estiver definido, essas configurações serão válidas apenas para janelas anônimas. As janelas comuns usam as configurações determinadas pelas camadas inferiores (opções de linha de comando e configurações do sistema).
- Se (R) e (I) estiverem definidos, as configurações respectivas serão usadas para janelas normais e anônimas.
Se duas ou mais extensões quiserem definir a mesma configuração com valores diferentes, a extensão instalada mais recentemente terá precedência sobre as outras. Se a extensão instalada mais recentemente definir apenas (I), as configurações das janelas normais poderão ser definidas por extensões instaladas anteriormente.
O valor efetivo de uma configuração é aquele que resulta da consideração das regras de precedência. Ele é usado pelo Chrome.
Tipos
ChromeSetting
Uma interface que permite o acesso a uma configuração do navegador Chrome. Consulte accessibilityFeatures para ver um exemplo.
Propriedades
- 
    onChangeEvent<functionvoidvoid> Disparado após a mudança da configuração. A função onChange.addListeneré assim:(callback: function) => {...} - 
    callbackfunção O parâmetro callbacktem esta aparência:(details: object) => void - 
    detalhesobjeto - 
    incognitoSpecificbooleano opcional Se o valor que mudou é específico da sessão de navegação anônima. Essa propriedade só estará presente se o usuário tiver ativado a extensão no modo de navegação anônima. 
- 
    levelOfControlO nível de controle da configuração. 
- 
    valorT O valor da configuração após a mudança. 
 
- 
    
 
- 
    
 
- 
    
- 
    limparvoid Limpa a configuração, restaurando qualquer valor padrão. A função clearé assim:(details: object) => {...} - 
    detalhesobjeto Qual configuração limpar. - 
    escopoChromeSettingScope opcional Onde limpar a configuração (padrão: regular). 
 
- 
    
 - 
            retornaPromise<void> Chrome 96+
 
- 
    
- 
    getvoid Recebe o valor de uma configuração. A função geté assim:(details: object) => {...} - 
    detalhesobjeto Qual configuração considerar. - 
    navegação anônimabooleano opcional Se deve retornar o valor que se aplica à sessão anônima (o padrão é "false"). 
 
- 
    
 - 
            retornaPromise<object> Chrome 96+
 
- 
    
- 
    setvoid Define o valor de uma configuração. A função seté assim:(details: object) => {...} - 
    detalhesobjeto Qual configuração mudar. - 
    escopoChromeSettingScope opcional Onde definir a configuração (padrão: regular). 
- 
    valorT O valor da configuração. Cada configuração tem um tipo de valor específico, que é descrito junto com ela. Uma extensão não pode definir um valor de um tipo diferente. 
 
- 
    
 - 
            retornaPromise<void> Chrome 96+
 
- 
    
ChromeSettingScope
O escopo do ChromeSetting. Uma
- regular: configuração do perfil normal (que é herdada pelo perfil anônimo se não for substituída em outro lugar).
- regular\_only: configuração apenas para o perfil normal (não herdada pelo perfil anônimo).
- incognito\_persistent: configuração do perfil anônimo que sobrevive às reinicializações do navegador (substitui as preferências regulares).
- incognito\_session\_only: configuração do perfil de navegação anônima que só pode ser definida durante uma sessão de navegação anônima e é excluída quando ela termina (substitui as preferências regulares e de navegação anônima persistente).
Enumeração
"regular" 
 
"regular_only" 
 
"incognito_persistent" 
 
"incognito_session_only" 
 
LevelOfControl
Uma
- not\_controllable: não pode ser controlado por nenhuma extensão
- controlled\_by\_other\_extensions: controlado por extensões com maior precedência
- controllable\_by\_this\_extension: pode ser controlado por esta extensão
- controlled\_by\_this\_extension: controlado por esta extensão
Enumeração
"not_controllable" 
 
"controlled_by_other_extensions" 
 
"controllable_by_this_extension" 
 
"controlled_by_this_extension"