Ошибка расширения Chrome при создании файла manifest.json

0

Привет, я пытаюсь создать файл manifest.json с разрешениями chrome.cookies, который, как мне кажется, является api.

я пытался загрузить этот код

{
    "manifest_version" : 2,
    "name" : "coding train extension",
    "version" : "0.001",
    "host_permissions":[
        "*://*.google.com"
    ],
    "permissions":[
        "cookies"
    ],
    "content_scripts":  [
        {
            "matches": [
                "<all_urls>"
            ],
            "js": ["content.js"]
        }
    ]
}

Код загружен успешно, но произошла ошибка

введите описание изображения здесь

Что я делаю неправильно?

8
  • Вы читали первое сообщение о версии?
    Barmar
    22 октября в 20:05
  • да, но не знаю, как это исправить 22 октября в 20:06
  • я действительно действительно нуб 22 октября в 20:06
  • 1
    "manifest_version": 3?
    Barmar
    22 октября в 20:06
  • Вышеупомянутое, а также добавьте, /чтобы оно выглядело как*://*.google.com/
    wOxxOm
    22 октября в 20:07
0

Расширение Chrome должно иметь ровно один файл manifest.json, в котором вы настраиваете такие вещи, как имя, описание, разрешения и т. Д. Подробные сведения см. В полном руководстве по манифесту расширения , но я проведу вас через то, что вы предоставили, для решения проблем. .

manifest_version

Разработчики расширений Chrome в настоящее время (октябрь 2021 г.) проходят переходный период, переходя с версии 2 манифеста на версию 3 . Этот переход вносит изменения в способ создания манифеста (среди прочего), поэтому при чтении документации Chrome или вопросов здесь, посвященных SO, обратите внимание, на какую версию манифеста он ссылается.

"manifest_version" : 2

Вышеупомянутая запись означает «использовать (старую) версию манифеста 2», но я сильно подозреваю, что вам нужна новая версия 3:

"manifest_version" : 3

host_permission

(Этот ключ применяется только к версии манифеста 3). Это означает, что вы хотите выполнять операции расширения в домене google.com и запрашиваете разрешение на это. Значение массива "*://*.google.com"называется шаблоном соответствия , и в документации говорится, что «путь должен присутствовать в разрешении хоста».

"host_permissions":[ "*://*.google.com" ]

поэтому измените его, чтобы включить путь:

"host_permissions":[ "*://*.google.com/*" ]

хотя в chrome.cookies это написано иначе (ошибки бывают ...!). После внесения этих изменений расширение должно загрузиться для отладки без ошибок.

У меня есть несколько дополнительных замечаний:

  1. "version" : "0.001"нумерация необычная, и вы увидите, что она изменится на 0,1 после загрузки расширения. Я предлагаю вам изменить его на 0,1 также в манифесте.

  2. Из манифеста видно, что вы намереваетесь работать с файлами cookie и планируете сделать это в сценарии содержимого. Это не сработает. Доступ к API файлов cookie должен осуществляться в контексте расширения в фоновом или всплывающем режиме. Опять же, это то, что нужно настроить в манифесте, и я добавил пример ниже.

Наконец приходим к этому:

{
  "manifest_version" : 3,
  "name" : "coding train extension",
  "version" : "0.1",
  "host_permissions":[
    "*://*.google.com/*"
  ],
  "permissions":[
    "cookies"
  ],
  "background": {
    "service_worker": "background.js"
  }
}

Вот пример расширения файлов cookie от команды Chrome, которое может вам пригодиться.