Описание
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()
было истинным. - уровеньконтроля
Уровень контроля настройки.
- ценить
Т
Значение настройки.
- возвращает
Обещание<объект>
Хром 96+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
- набор
пустота
ОбещатьУстанавливает значение параметра.
Функция
set
выглядит так:(details: object, callback?: function) => {...}
- подробности
объект
Какую настройку изменить.
- объем
ChromeSettingScope необязательно
Где установить настройку (по умолчанию: обычная).
- ценить
Т
Значение настройки. Обратите внимание, что каждый параметр имеет определенный тип значения, который описывается вместе с параметром. Расширение не должно устанавливать значение другого типа.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
- возвращает
Обещание<void>
Хром 96+Промисы поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
ChromeSettingScope
Область действия ChromeSetting. Один из
-
regular
: настройка обычного профиля (который наследуется профилем инкогнито, если не переопределен где-либо еще), -
regular\_only
: настройка только для обычного профиля (не наследуется профилем инкогнито), -
incognito\_persistent
: настройка профиля инкогнито, который выдерживает перезапуск браузера (переопределяет обычные настройки), -
incognito\_session\_only
: настройка профиля инкогнито, которую можно установить только во время сеанса инкогнито и удалить, когда сеанс инкогнито заканчивается (переопределяет обычные настройки и настройки incognito_persistent).
Перечисление
"обычный" "обычный_только" "инкогнито_персистент" "incognito_session_only"
LevelOfControl
Один из
-
not\_controllable
: не может управляться никаким расширением -
controlled\_by\_other\_extensions
: контролируется расширениями с более высоким приоритетом. -
controllable\_by\_this\_extension
: этим расширением можно управлять -
controlled\_by\_this\_extension
: контролируется этим расширением
Перечисление
"не_контролируемый" "контролируется_другими_расширениями" "controllable_by_this_extension" "контролируется_этим_расширением"