У меня есть какая-то ошибка в фоновом коде Webextensions, о которой отладчик не сообщает четко.
Сначала я получаю ожидаемое уведомление, если использую код:
// S: Promise to show string in notification box
function S(Msg,Title)
{
var p=browser.notifications.create({
"type": "basic",
"iconUrl": browser.extension.getURL("icons/link-48.png"),
"title": Title,
"message": Msg});
return p;
} // S
S('bg running','Direct from bg').then(empty).catch(err);
// Functions
function empty(ignored)
{
console.log('doing nothing');
} // empty
function err(Msg)
{
console.log('*** '+Msg);
} // err
Но ... Если я добавлю этот код:
window.addEventListener('load',function(e)
{
S('bg loaded','Direct from bg').then(empty).catch(err);
}, true);
Тогда не будет ни одного уведомления, и я получаю странные сообщения об ошибках, которые варьируются от пробной версии к пробной в файлах вне моих файлов, например, ошибки "«мертвые объекты», какими бы они ни были.
Я предполагаю, что я неправильно использую Promises, поскольку это мой первый код, использующий их.Я изучил несколько учебных пособий и думаю, что понимаю их, но я мог бы использовать некоторую помощь здесь.
ДОБАВЛЕНО:
Вот несколько примеров сообщений об ошибках:
Error: Could not establish connection. Receiving end does not exist. bg.js:106:5
TypeError: can't access dead object[Learn More] accessible.js:142:5
Error: Could not establish connection. Receiving end does not exist. bg.js:106:5
null has no properties background.js:1
Error: Could not establish connection. Receiving end does not exist. bg.js:106:5
TypeError: Argument 1 of PrecompiledScript.executeInGlobal is not an object.[Learn More] ExtensionContent.jsm:497:18
null has no properties background.js:1
Error: Could not establish connection. Receiving end does not exist. bg.js:106:5
doing nothing PM_bg.js:23:2
Error: Could not establish connection. Receiving end does not exist. bg.js:106:5
Опять же, ни одно из имен файлов с ошибками не принадлежит мне.Мой фоновый файл - PM_bg.js, который генерирует только «ничего не делая».
ДОБАВЛЕНО:
Никто не отвечает.Тебе нужен мой манифест?Вот оно:
{
"manifest_version": 2,
"name": "Bug1",
"version": "0.2",
"icons": {
"48": "icons/link-48.png"
},
"permissions": [
"activeTab",
"contextMenus",
"notifications"
],
"background": {
"scripts": ["PM_bg.js"]
}
}