Описание
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) => {...}
- подробности
объект
Какую настройку нужно сбросить?
- объем
ChromeSettingScope ( необязательно)
Где можно сбросить настройку (по умолчанию: обычная).
- возвраты
Обещание<пустота>
Chrome 96+Вызван по завершении операции по зачистке.
- получать
пустота
Получает значение параметра.
Функция
getвыглядит следующим образом:(details: object) => {...}
- подробности
объект
Какой вариант следует выбрать?
- инкогнито
логический необязательный
Возвращать ли значение, применимое к сеансу инкогнито (по умолчанию false).
- возвраты
Promise<object>
Chrome 96+
- набор
пустота
Устанавливает значение параметра.
Функция
setвыглядит следующим образом:(details: object) => {...}
- подробности
объект
Какую настройку нужно изменить?
- объем
ChromeSettingScope ( необязательно)
Где задать параметр (по умолчанию: обычный).
- ценить
Т
Значение параметра. Обратите внимание, что каждый параметр имеет определенный тип значения, который описывается вместе с параметром. Расширение не должно устанавливать значение другого типа.
- возвраты
Обещание<пустота>
Chrome 96+Вызывается по завершении заданной операции.
ChromeSettingScope
Область действия параметра ChromeSetting. Один из
-
regular: настройка для обычного профиля (которая наследуется профилем инкогнито, если не переопределена в другом месте). -
regular\_only: параметр, предназначенный только для обычного профиля (не наследуется профилем инкогнито). -
incognito\_persistent: параметр для профиля инкогнито, сохраняющийся после перезапуска браузера (переопределяет обычные настройки). -
incognito\_session\_only: параметр для профиля в режиме инкогнито, который можно установить только во время сеанса инкогнито и который удаляется по его завершении (переопределяет обычные настройки и настройки 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" "управляемый_этим_расширением" "контролируется_этим_расширением"