В расширении Chrome я хочу попросить пользователя получить полный доступ к страницам через ссылку всплывающего окна browser_action (так же, как всплывающее окно панели инструментов со ссылкой). Когда пользователь нажимает на ссылку, я получаю эту ошибку:Расширение Chrome: функция должна вызываться во время пользовательского жеста
runtime.lastError while running permissions.request: This function must be called during a user gesture
Тем не менее, пользователь действительно нажал на ссылку и «пользовательский жест». Любые идеи о том, как отлаживать то, что считается жестом пользователя?
на кнопку мыши, я прошу полный доступ через chrome.permissions.request
API Chrome:
$('#button-requestpermissions').click(function(){
requestAmbientPermission(function(granted) {
if (granted) {
// code never reached as granted === false
}
});
});
function requestAmbientPermission(callback){
// Permissions must be requested from inside a user gesture, like a button's click handler.
chrome.permissions.request({
permissions: ['activeTab'],
origins: ['<all_urls>']
}, callback);
}
манифеста имеет дополнительные полномочия, установленные таким образом:
"permissions": [
"https://www.meethue.com/",
"https://colorlovers.herokuapp.com/"
],
"optional_permissions": [
"activeTab",
"<all_urls>"
],
Вероятно код разрешения запроса необходимо выполнить от фона страницы не сценарий содержимого –
Zig, я попытался выполнить команду bruteforse - выполнение разрешений. Запрашивание с фоновой страницы вызывает такую же ошибку. – cDima
Обратите внимание: разрешение 'activeTab' не генерирует никаких предупреждений. Это было сделано для этой конкретной цели (https://developer.chrome.com/extensions/activeTab). Поэтому нет необходимости делать это необязательным. – Xan