Как просмотреть или отладить сценарий содержимого Chrome в Firefox Nightly (webeextensions)

Пытаюсь портировать рабочее расширение для Chrome на Firefox Nightly 46.0a1 и возникает простой вопрос! Как заставить сценарий содержимого выполняться или вообще его видеть?

Все остальное, кроме шва сценария контента, работает нормально, поскольку фоновый сценарий выполняется, и всплывающее окно видно. Я могу отлаживать эту часть кода.

Но скрипт содержимого никак не запустится!

Насколько я понимаю, он должен быть частью обычной среды javascript страницы и отображаться в отладчике, но это не так. Невозможно увидеть какие-либо сообщения об ошибках в любом месте и т. Д.

Возможно, по ошибке использовался какой-то неподдерживаемый API, но все же странно, что я не получаю предупреждений и ничего не вижу.

Любое предложение о том, как действовать?

Файл манифеста ниже:

{
  "name": "Bla Bla",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "A description",
  "homepage_url": "https://aaa.org",
  "icons": 
  {
    "16": "icons/lock_red16.png",
    "48": "icons/lock_red48.png",
    "128": "icons/lock_red128.png"
  },
  "default_locale": "en",
  "background": 
  {
    "scripts": 
    [      
      "js/lib/jserror/jserror.js",
      "js/lib/lang/languagedb.js",

      "js/lib/lz77.js",
      "js/lib/pcrypt.js",
      "js/lib/pcryptapi.js",

      "js/lib/forge.bundle.js",
      "js/lib/elliptic.js",

      "js/lib/srp6a/biginteger.js",
      "js/lib/srp6a/isaac.js",
      "js/lib/srp6a/random.js",
      "js/lib/srp6a/sha256.js",
      "js/lib/srp6a/thinbus-srp6client.js",
      "js/lib/srp6a/thinbus-srp-config.js", 
      "js/lib/srp6a/thinbus-srp6a-config-sha256.js",

      "js/pcrypt_shared.js",      
      "js/pcrypt_extension.js",

      "src/bg/background.js"
    ],
    "persistent": true
  },
  "browser_action": 
  {
    "default_icon": 
    {
      "16": "icons/lock_red16.png",
      "48": "icons/lock_red48.png",
      "128": "icons/lock_red128.png"    
    },
    "default_title": "Password Crypt",
    "default_popup": "src/browser_action/popup.html"
  },
  "permissions": 
  [
    "clipboardWrite",
    "storage"
  ],
  "content_scripts": 
  [
    {
      "matches": 
      [
        "http://*/*",
        "https://*/*"
      ],
      "js": 
      [
        "js/pcrypt_extension.js",

        "src/inject/inject.js"
      ]
    }
  ],
  "externally_connectable":
  {
    "matches": 
    [
        "https://*.aaa.dk/*",
        "https://*.aaa.org/*"
    ]
  },
  "web_accessible_resources": 
  [
    "icons/*.png"
  ],
  "applications": 
  {
    "gecko": 
    {
      "id": "[email protected]",
      "strict_min_version": "40.0.0",
      "strict_max_version": "50.*",
      "update_url": "https://aaa.org/addon"
    }
  }
}

person Beast    schedule 23.01.2016    source источник


Ответы (2)


Насколько я понимаю, он должен быть частью обычной среды javascript страницы и отображаться в отладчике, но это не так.

Нет, они не. Они работают в несколько более привилегированных контекстах отдельно от среды страницы, поэтому они могут получить доступ к API-интерфейсам веб-расширений.

Если у вас отключен e10, вы можете использовать набор инструментов браузера. Если он включен, вам нужно вместо этого использовать панель инструментов содержимого браузера. Вы также можете попробовать about:debugging, хотя я не уверен, что это уже работает для веб-расширений.

person the8472    schedule 23.01.2016
comment
Все, что вы предлагаете, работает, но нет, где я могу найти свой файл контента, только фон и всплывающие файлы! - person Beast; 23.01.2016
comment
предполагая, что вы говорите о inject.js, я думаю, он будет отображаться только в том случае, если он будет применен к странице после открытия отладчика. - person the8472; 23.01.2016
comment
Нашел мой файл в панели инструментов содержимого браузера - person Beast; 23.01.2016
comment
Похоже, он не работает из-за этой ошибки: bugzilla.mozilla.org/show_bug.cgi ?id=1228044. Например. Я использую chrome.runtime.sendMessage для начала от сценария содержимого до сценария фона. - person Beast; 23.01.2016
comment
В firefox 45 (не по ночам) я мог найти свои сценарии контента в панели инструментов браузера. Мне пришлось включить удаленную отладку и опцию Browser Toolbox в глобальных настройках (см. ссылку в ответе). Когда вы просматриваете страницу, на которой работает ваш скрипт содержимого, чтобы получить панель инструментов браузера, нажмите значок кнопки меню (три горизонтальные полосы), затем «Разработчик» (гаечный ключ), затем панель инструментов браузера. Кроме того, CTRL-Shift-Alt-i откроет панель инструментов. Я нахожу применение отладчику; довольно полезно, чтобы избежать копания в миллионах основных сценариев и динамического прерывания набора инструментов. - person init_js; 06.06.2016
comment
@Beast Спасибо. Это также сработало для меня, ни один из моих сценариев содержимого не отображался в обычном наборе инструментов браузера. - person nmu; 12.01.2017

В документах MDN есть все, что вам нужно знать об отладке WebExt, включая скрипты контента.

person minj    schedule 23.01.2016