set()
Используйте BrowserSetting.set() для изменения настроек браузера на новое значение.
Существуют некоторые правила, которые могут ограничивать возможность расширений изменять настройки:
- Некоторые настройки заблокированы, поэтому расширения не могут их изменять вообще
- Если несколько расширений пытаются изменить одну и ту же настройку, расширениям присваивается порядок приоритета в зависимости от времени их установки. Расширения, установленные позже, имеют приоритет над расширениями, установленных ранее.
Это означает, что если расширение X пытается изменить настройку:
- Если настройка заблокирована, то настройка не изменяется. Однако изменение X запоминается и хранится в очереди, упорядоченной по приоритету X относительно других расширений, которые пытались изменить настройку. Если настройка будет разблокирована позже, первое расширение в очереди сможет изменить настройку.
- В противном случае, если никакое другое расширение ещё не изменило настройку, X успешно изменяет настройку и считается, что «управляет» настройкой.
- В противном случае, если расширение Y с более низким приоритетом уже изменило настройку, X успешно изменяет настройку и теперь управляет настройкой. Однако изменение Y запоминается и хранится в очереди в порядке приоритета. Если X впоследствии очистит своё значение или X будет отключено или удалено, первое расширение в очереди сможет внести своё изменение в настройку.
- В противном случае, если расширение Z с более высоким приоритетом уже изменило настройку, X не сможет изменить настройку, но его изменение добавится в очередь. Если Z впоследствии очистит своё значение или Z будет отключено или удалено, первое расширение в очереди сможет внести своё изменение в настройку.
Расширение может определить, какой из этих сценариев применим, проверив свойство «levelOfControl», возвращаемое вызовом BrowserSetting.get().
Метод BrowserSetting.set() возвращает Promise, который разрешается булевым значением: если попытка изменить настройку фактически привела к изменению настройки (сценарии 2 и 3 выше), булево значение равно true; в противном случае оно равно false.
Синтаксис
let setting = setting.set( details // object )
Параметры
details-
Объект, который должен содержать следующее свойство:
value-
any. Значение, на которое вы хотите изменить настройку. Его тип зависит от конкретной настройки.
Возвращаемое значение
A Promise, который будет выполнен с булевым значением: true если настройка была изменена, false в противном случае (например, потому что расширение не контролировало настройку).
Совместимость с браузерами
Пример
Изменение настройки hyperlinkAuditingEnabled (требуется разрешение «privacy»):
function onSet(result) { if (result) { console.log("Value was updated"); } else { console.log("Value was not updated"); } } browser.browserAction.onClicked.addListener(() => { let setting = browser.privacy.websites.hyperlinkAuditingEnabled.set({ value: false }); setting.then(onSet); });
Примечание:
Этот API основан на API chrome.types Chromium.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/set