Описание
 API chrome.types содержит объявления типов для Chrome. 
Настройки Chrome
 Прототип ChromeSetting предоставляет стандартный набор функций ( get() , set() и clear() ), а также публикатор событий ( onChange ) для настроек браузера Chrome. Примеры настроек прокси-сервера демонстрируют, как предполагается использовать эти функции.
Область применения и жизненный цикл
Chrome различает три различных области настроек браузера:
-  regular
-  Настройки, заданные в regularобласти действия, применяются к обычным окнам браузера и наследуются окнами в режиме инкогнито, если они не перезаписаны. Эти настройки сохраняются на диске и остаются в силе до тех пор, пока не будут удалены управляющим расширением или пока управляющее расширение не будет отключено или удалено.
-  incognito_persistent
-  Параметры, заданные в области действия incognito_persistent, применяются только к окнам в режиме инкогнито. Для них они переопределяютregularнастройки. Эти настройки сохраняются на диске и действуют до тех пор, пока не будут удалены управляющим расширением или пока управляющее расширение не будет отключено или удалено.
-  incognito_session_only
-  Параметры, заданные в области действия incognito_session_onlyприменяются только к окнам в режиме инкогнито. Для них они переопределяютregularпараметры и параметрыincognito_persistent. Эти параметры не сохраняются на диске и сбрасываются при закрытии последнего окна в режиме инкогнито. Их можно задать только при открытом хотя бы одном окне в режиме инкогнито.
Приоритет
Chrome управляет настройками на разных уровнях. В следующем списке в порядке возрастания приоритета описываются уровни, которые могут влиять на эффективные настройки.
- Системные настройки, предоставляемые операционной системой
- Параметры командной строки
- Настройки, предоставляемые расширениями
- Политики
 Как следует из списка, политики могут переопределять любые изменения, указанные вами в вашем расширении. Вы можете использовать функцию get() , чтобы определить, может ли ваше расширение предоставлять настройку или эта настройка будет переопределена.
Как обсуждалось выше, Chrome позволяет использовать разные настройки для обычных окон и окон в режиме инкогнито. Следующий пример иллюстрирует это поведение. Предположим, что ни одна политика не переопределяет настройки, и расширение может устанавливать настройки для обычных окон (R) и настройки для окон в режиме инкогнито (I) .
- Если установлено только (R) , эти настройки действуют как для обычных окон, так и для окон в режиме инкогнито.
- Если установлено только (I) , эти настройки действуют только для окон в режиме инкогнито. Обычные окна используют настройки, определяемые нижними уровнями (параметрами командной строки и системными настройками).
- Если установлены оба параметра (R) и (I) , соответствующие настройки используются для обычных окон и окон в режиме инкогнито.
Если два или более расширений задают разные значения для одного и того же параметра, приоритет имеет расширение, установленное последним. Если последнее установленное расширение задаёт только (I) , настройки обычных окон можно определить с помощью ранее установленных расширений.
Эффективное значение параметра определяется с учётом правил приоритета. Оно используется Chrome.
Типы
ChromeSetting
Интерфейс, обеспечивающий доступ к настройкам браузера Chrome. Пример см. в разделе accessibilityFeatures . 
Характеристики
- onChangeСобытие<functionvoidvoid> Срабатывает после изменения настроек. Функция onChange.addListenerвыглядит так:(callback: function) => {...} - перезвонитьфункция Параметр callbackвыглядит так:(details: object) => void - подробностиобъект - инкогнитоСпецифическийлогическое необязательное Относится ли изменившееся значение к сеансу инкогнито. Это свойство будет присутствовать только в том случае, если пользователь включил расширение в режиме инкогнито. 
- уровень контроляУровень контроля обстановки. 
- ценитьТ Значение настройки после изменения. 
 
 
 
- прозрачныйпустота ОбещатьОчищает настройки, восстанавливая все значения по умолчанию. Функция clearвыглядит так:(details: object, callback?: function) => {...} - подробностиобъект Какие настройки следует очистить. - объемChromeSettingScope (необязательно) Где очистить настройку (по умолчанию: обычно). 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
 - возвращаетсяОбещание<void> Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
 
- получатьпустота ОбещатьПолучает значение настройки. Функция getвыглядит так:(details: object, callback?: function) => {...} - подробностиобъект Какую обстановку следует учитывать. - инкогнитологическое необязательное Возвращать ли значение, применяемое к сеансу инкогнито (по умолчанию false). 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(details: object) => void - подробностиобъект Подробная информация о текущем эффективном значении. - инкогнитоСпецифическийлогическое необязательное Является ли эффективное значение специфичным для сеанса в режиме инкогнито. Это свойство будет присутствовать только в том случае, если свойство incognitoв параметреdetailsметодаget()имеет значение true.
- уровень контроляУровень контроля обстановки. 
- ценитьТ Значение настройки. 
 
 
 - возвращаетсяОбещание<объект> Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
 
- наборпустота ОбещатьУстанавливает значение параметра. Функция setвыглядит так:(details: object, callback?: function) => {...} - подробностиобъект Какие настройки следует изменить. - объемChromeSettingScope (необязательно) Где установить настройку (по умолчанию: обычная). 
- ценитьТ Значение параметра. Обратите внимание, что каждый параметр имеет определённый тип значения, который описывается вместе с параметром. Расширение не должно задавать значение другого типа. 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
 - возвращаетсяОбещание<void> Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
 
ChromeSettingScope
Область действия ChromeSetting. Одна из
-  regular: настройка для обычного профиля (которая наследуется профилем incognito, если не переопределена где-либо еще),
-  regular\_only: настройка только для обычного профиля (не наследуется профилем инкогнито),
-  incognito\_persistent: настройка для профиля инкогнито, который сохраняется после перезапуска браузера (переопределяет обычные настройки),
-  incognito\_session\_only: настройка для профиля инкогнито, которая может быть установлена только во время сеанса инкогнито и удаляется после завершения сеанса инкогнито (переопределяет настройки regular и incognito_persistent).
Перечисление
 "обычный"   "regular_only"   "incognito_persistent"   "incognito_session_only" 
LevelOfControl
Один из
-  not\_controllable: не может контролироваться никаким расширением
-  controlled\_by\_other\_extensions: управляются расширениями с более высоким приоритетом
-  controllable\_by\_this\_extension: может управляться этим расширением
-  controlled\_by\_this\_extension: управляется этим расширением
Перечисление
 "не_контролируемый"   "controlled_by_other_extensions"   "контролируемое_этим_расширением"   "controlled_by_this_extension"