chrome.загрузки.загрузка никогда не запускается, но ошибок нет

#google-chrome #google-chrome-extension

Вопрос:

Я пытаюсь создать Chrome ext, который использует chrome.downloads API. Но, похоже, это… ничего не делает. Впервые разрабатываю Chrome, поэтому я немного незнаком с окружающей средой, но, похоже, ни у кого другого в Интернете нет этой проблемы.

В поисках проблемы я свел свой код к следующему (используя код jQuery в качестве тестовой загрузки, но перепробовал множество других).:

 chrome.downloads.download({
    url: "https://code.jquery.com/jquery-3.6.0.min.js",
}, (dlid) => {
    chrome.downloads.search({id: dlid}, (dl) => {
        console.log(dl[0]);
    });
});
 

Это приводит к тому, что в консоли печатается следующее DownloadItem :

 byExtensionId: [redacted for privacy]
byExtensionName: [redacted for privacy]
bytesReceived: 0
canResume: false
danger: "safe"
exists: true
fileSize: 0
filename: ""
finalUrl: "https://code.jquery.com/jquery-3.6.0.min.js"
id: 2675
incognito: false
mime: "application/javascript"
paused: false
referrer: ""
startTime: "2021-09-04T09:18:02.401Z"
state: "in_progress"
totalBytes: 0
url: "https://code.jquery.com/jquery-3.6.0.min.js"
 

Но файл не загружается, и не происходит ничего, что указывало бы даже на попытку его загрузки. Продолжение чтения DownloadItem всегда дает один и тот же результат: сообщение о том, что загрузка продолжается и до сих пор было загружено 0 байт. И ничто другое в моей системе не указывает на то, что файл загружается. Но это никогда не приводит к каким — либо ошибкам-вместо этого он просто сидит, казалось бы, на холостом ходу.

Вот что я до сих пор исключал как причину:

  • Разрешение объявлено в manifest.json : "permissions": [..., "downloads", ...] . Удаление его и запуск того же кода приводят к ошибкам.
  • Контекст правильный, это не выполняется в сценарии содержимого. Попытка сделать это приводит к ошибкам.
  • Игра с любым из DownloadOptions параметров не имеет никакого эффекта вообще. DownloadOptions.saveAs не открывает диалог и DownloadOptions.filename не влияет на DownloadItem.filename то, что всегда является пустой строкой.
  • Я перепробовал множество других целей загрузки, как для разных доменов, так и для разных типов файлов. Результирующий mime параметр обновляется в соответствии с расширением URL-адреса, но в остальном он создает тот же безошибочный постоянный холостой ход.
  • Я даже пробовал поддельные URL — адреса с тем же результатом-недопустимые синтаксисы URL-адресов приводят к ошибкам, но несуществующие URL-адреса просто дают тот же результат простоя.
  • В моей системе нет явных проблем с подключением к Интернету, и я не использую прокси-сервер или VPN.
  • Запустите его на другой машине, хотя и с тем же логином пользователя Chrome и тем же подключением к Интернету. Тот же результат.

Комментарии:

1. Попробуйте выполнить отладку через chrome://net-export . Возможно, в Chrome есть ошибка, о которой вы можете сообщить .