chrome.downloads (original) (raw)
Manifest V3
Описание
Используйте API chrome.downloads для программного инициирования, мониторинга, управления и поиска загрузок.
Разрешения
downloads
Для использования этого API необходимо объявить разрешение "downloads" в манифесте расширения .
{
"name": "My extension",
...
"permissions": [
"downloads"
],
}
Примеры
Простые примеры использования API chrome.downloads можно найти в каталоге examples/api/downloads . Другие примеры и помощь с просмотром исходного кода см. в разделе «Примеры» .
Типы
BooleanDelta
Характеристики
- текущий
логическое необязательное - предыдущий
логическое необязательное
DangerType
Перечисление
"файл"
Имя файла загрузки подозрительно.
"url"
Известно, что URL-адрес загрузки является вредоносным.
"содержание"
Известно, что загруженный файл является вредоносным.
"необычный"
URL-адрес загрузки обычно не загружается и может быть опасен.
"хозяин"
Загрузка произошла с хоста, который, как известно, распространяет вредоносные двоичные файлы и, вероятно, представляет опасность.
"нежелательный"
Загрузка потенциально нежелательна или небезопасна. Например, она может внести изменения в настройки браузера или компьютера.
"безопасный"
Загрузка не представляет никакой известной опасности для компьютера пользователя.
"принял"
Пользователь принял опасную загрузку.
"allowlistedByPolicy"
Ценности, связанные с предприятием.
"асинхронное сканирование"
"asyncLocalPasswordScanning"
"passwordProtected"
"blockedTooLarge"
"sensitiveContentWarning"
"sensitiveContentBlock"
"deepScannedFailed"
"deepScannedSafe"
"deepScannedOpenedDangerous"
"promptForScanning"
"promptForLocalPasswordScanning"
"accountCompromise"
"blockedScanFailed"
"forceSaveToGdrive"
Для использования расширением Secure Enterprise Browser. При необходимости Chrome блокирует загрузку на диск и загружает файл непосредственно на Google Диск.
DoubleDelta
Характеристики
- текущий
номер необязательно - предыдущий
номер необязательно
DownloadDelta
Характеристики
- canResume
BooleanDelta необязательный
Изменение вcanResume, если таковое имеется. - Опасность
StringDelta необязательно
Изменениеdanger, если таковое имеется. - время окончания
StringDelta необязательно
ИзменениеendTime, если таковое имеется. - ошибка
StringDelta необязательно
Изменение вerror, если таковое имеется. - существует
BooleanDelta необязательный
Изменениеexists, если таковое имеется. - размер файла
DoubleDelta опционально
ИзменениеfileSize, если таковое имеется. - имя файла
StringDelta необязательно
Изменениеfilename, если таковое имеется. - finalUrl
StringDelta необязательно
ИзменениеfinalUrl, если таковое имеется. idизмененного DownloadItem .- пантомима
StringDelta необязательно
Изменениеmime, если таковое имеется. - приостановлено
BooleanDelta необязательный
Изменениеpaused, если таковое имеется. - время начала
StringDelta необязательно
ИзменениеstartTime, если таковое имеется. - состояние
StringDelta необязательно
Изменениеstate, если таковое имеется. - всего байт
DoubleDelta опционально
ИзменениеtotalBytes, если таковое имеется. - URL-адрес
StringDelta необязательно
Изменениеurl, если таковое имеется.
DownloadItem
Характеристики
- поExtensionId
строка необязательная
Идентификатор расширения, инициировавшего эту загрузку, если эта загрузка была инициирована расширением. Не изменяется после установки. - поИмениРасширения
строка необязательная
Локализованное название расширения, инициировавшего эту загрузку, если загрузка была инициирована расширением. Может измениться, если расширение изменит своё название или пользователь сменит локаль. - Количество байтов, полученных на данный момент от хоста, без учета сжатия файла.
- True, если загрузка выполняется и приостановлена, или если она прервана и может быть возобновлена с того места, где она была прервана.
- Указание того, считается ли данная загрузка безопасной или заведомо подозрительной.
- время окончания
строка необязательная
Время окончания загрузки в формате ISO 8601. Может быть передано непосредственно в конструктор Date:chrome.downloads.search({}, function(items){items.forEach(function(item){if (item.endTime) console.log(new Date(item.endTime))})}) - ошибка
InterruptReason (необязательно)
Причина прерывания загрузки. Несколько видов ошибок HTTP можно объединить в одну группу ошибок, начинающихся сSERVER_. Ошибки, связанные с сетью, начинаются сNETWORK_, ошибки, связанные с процессом записи файла в файловую систему, начинаются сFILE_, а прерывания, инициированные пользователем, начинаются сUSER_. - расчетное время окончания
строка необязательная
Расчетное время завершения загрузки в формате ISO 8601. Может быть передано непосредственно в конструктор Date:chrome.downloads.search({}, function(items){items.forEach(function(item){if (item.estimatedEndTime) console.log(new Date(item.estimatedEndTime))})}) - Существует ли ещё загруженный файл? Эта информация может быть устаревшей, поскольку Chrome не отслеживает автоматическое удаление файла. Вызовите search (), чтобы запустить проверку существования файла. По завершении проверки, если файл был удалён, сработает событие onChanged . Обратите внимание, что search () не дожидается завершения проверки существования перед возвратом, поэтому результаты search () могут неточно отражать состояние файловой системы. Кроме того, search () можно вызывать сколь угодно часто, но он не будет проверять существование файла чаще, чем раз в 10 секунд.
- Количество байтов во всем файле после распаковки или -1, если неизвестно.
- Абсолютный локальный путь.
- Абсолютный URL-адрес, с которого производится загрузка, после всех перенаправлений.
- Идентификатор, который сохраняется между сеансами браузера.
- False, если данная загрузка записана в истории, true, если не записана.
- Тип MIME файла.
- Истина, если загрузка прекратила чтение данных с хоста, но оставила соединение открытым.
- Абсолютный URL.
- Время начала загрузки в формате ISO 8601. Может быть передано непосредственно в конструктор Date:
chrome.downloads.search({}, function(items){items.forEach(function(item){console.log(new Date(item.startTime))})}) - Указывает, выполняется ли загрузка, прервана или завершена.
- Количество байтов во всем файле без учета сжатия файла или -1, если неизвестно.
- Абсолютный URL-адрес, с которого была начата эта загрузка, до каких-либо перенаправлений.
DownloadOptions
Характеристики
- тело
строка необязательная
Тело сообщения. - конфликтДействие
FilenameConflictAction (необязательно)
Действие, которое следует предпринять, еслиfilenameуже существует. - имя файла
строка необязательная
Путь к файлу относительно каталога «Загрузки», в котором будет находиться загружаемый файл, возможно, содержащий подкаталоги. Абсолютные пути, пустые пути и пути, содержащие обратные ссылки «..», приведут к ошибке. onDeterminingFilename позволяет предложить имя файла после определения MIME-типа файла и предварительного имени. - HeaderNameValuePair [] необязательно
Дополнительные HTTP-заголовки, отправляемые вместе с запросом, если URL использует протокол HTTP[s]. Каждый заголовок представлен в виде словаря, содержащего ключиnameи либоvalue, либоbinaryValue, ограниченные допустимыми XMLHttpRequest. - метод
HttpMethod необязательный
Метод HTTP, который следует использовать, если URL использует протокол HTTP[S]. - сохранить как
логическое необязательное
Используйте средство выбора файлов, чтобы позволить пользователю выбрать имя файла независимо от того, задано лиfilenameили уже существует. - URL для загрузки.
DownloadQuery
Характеристики
- Получено байт
номер необязательно
Количество байтов, полученных на данный момент от хоста, без учета сжатия файла. - Опасность
DangerType необязательный
Указание того, считается ли данная загрузка безопасной или заведомо подозрительной. - время окончания
строка необязательная
Время окончания загрузки в формате ISO 8601. - закончилсяПосле
строка необязательная
Ограничивает результаты DownloadItem , которые закончились после заданной мс в формате ISO 8601. - закончилсяДо
строка необязательная
Ограничивает результаты DownloadItem , которые закончились до заданной мс в формате ISO 8601. - ошибка
InterruptReason (необязательно)
Почему загрузка была прервана. - существует
логическое необязательное
Существует ли загруженный файл; - размер файла
номер необязательно
Количество байтов во всем файле после распаковки или -1, если неизвестно. - имя файла
строка необязательная
Абсолютный локальный путь. - имя_файлаRegex
строка необязательная
Ограничивает результаты DownloadItem ,filenameкоторого соответствует заданному регулярному выражению. - finalUrl
строка необязательная
Абсолютный URL-адрес, с которого производится загрузка, после всех перенаправлений. - finalUrlRegex
строка необязательная
Ограничивает результаты DownloadItem ,finalUrlкоторого соответствует заданному регулярному выражению. - идентификатор
номер необязательноidDownloadItem для запроса. - предел
номер необязательно
Максимальное количество возвращаемых соответствующих DownloadItem . Значение по умолчанию — 1000. Установите значение 0, чтобы вернуть все соответствующие DownloadItem . Инструкции по пролистыванию результатов см. в search ». - пантомима
строка необязательная
Тип MIME файла. - заказ по
строка[] необязательная
Присвойте элементам этого массива свойства DownloadItem для сортировки результатов поиска. Например, установкаorderBy=['startTime']сортирует DownloadItem по времени начала в порядке возрастания. Чтобы задать порядок убывания, добавьте дефис: '-startTime'. - приостановлено
логическое необязательное
Истина, если загрузка прекратила чтение данных с хоста, но оставила соединение открытым. - запрос
строка[] необязательная
Этот массив поисковых терминов ограничивает результаты DownloadItem ,filename,urlилиfinalUrlкоторого содержат все поисковые термины, которые не начинаются с дефиса «-», и ни одного поискового термина, который начинается с дефиса. - время начала
строка необязательная
Время начала загрузки в формате ISO 8601. - началосьПосле
строка необязательная
Ограничивает результаты DownloadItem , начавшимися после заданной мс в формате ISO 8601. - началДо
строка необязательная
Ограничивает результаты DownloadItem , которые начались до указанной мс в формате ISO 8601. - состояние
Состояние необязательное
Указывает, выполняется ли загрузка, прервана или завершена. - всего байт
номер необязательно
Количество байтов во всем файле без учета сжатия файла или -1, если неизвестно. - totalBytesGreater
номер необязательно
Ограничивает результаты до DownloadItem ,totalBytesкоторого больше заданного целого числа. - totalBytesLess
номер необязательно
Ограничивает результаты до DownloadItem ,totalBytesкоторого меньше заданного целого числа. - URL-адрес
строка необязательная
Абсолютный URL-адрес, с которого была начата эта загрузка, до каких-либо перенаправлений. - urlRegex
строка необязательная
Ограничивает результаты DownloadItem ,urlкоторого соответствует заданному регулярному выражению.
FilenameConflictAction
uniquify
Чтобы избежать дублирования, filename изменено таким образом, чтобы перед расширением имени файла был добавлен счетчик.
перезаписать
Существующий файл будет перезаписан новым файлом.
быстрый
Пользователю будет предложено диалоговое окно выбора файла.
Перечисление
"уникифицировать"
"перезаписать"
"быстрый"
FilenameSuggestion
Характеристики
- конфликтДействие
FilenameConflictAction (необязательно)
Действие, которое следует предпринять, еслиfilenameуже существует. - Новый целевой объект DownloadItem DownloadItem.filename — как путь относительно каталога «Загрузки» пользователя по умолчанию, возможно, содержащего подкаталоги. Абсолютные пути, пустые пути и пути, содержащие обратные ссылки «..», будут игнорироваться.
filenameигнорируется, если зарегистрированы прослушиватели onDeterminingFilename для любых расширений.
GetFileIconOptions
Характеристики
- размер
номер необязательно
Размер возвращаемого значка. Значок будет квадратным с размерами, умноженными на размер (размер) * (размер) пикселей. Максимальный размер значка по умолчанию — 32x32 пикселя. Поддерживаются только размеры 16 и 32. Указание любого другого размера будет ошибкой.
Характеристики
- Имя HTTP-заголовка.
- Значение заголовка HTTP.
HttpMethod
Перечисление
InterruptReason
Перечисление
"FILE_FAILED"
"ДОСТУП К ФАЙЛУ ЗАПРЕЩЕН"
"FILE_NO_SPACE"
"FILE_NAME_TOO_LONG"
"ФАЙЛ_СЛИШКОМ_БОЛЬШОЙ"
"FILE_VIRUS_INFECTED"
"FILE_TRANSIENT_ERROR"
"ФАЙЛ_ЗАБЛОКИРОВАН"
"FILE_SECURITY_CHECK_FAILED"
"ФАЙЛ_СЛИШКОМ_КОРОТКИЙ"
"FILE_HASH_MISMATCH"
"FILE_SAME_AS_SOURCE"
"NETWORK_FAILED"
"NETWORK_TIMEOUT"
"СЕТЬ_ОТКЛЮЧЕНА"
"СЕТЕВОЙ_СЕРВЕР_ОТКЛЮЧЕН"
"NETWORK_INVALID_REQUEST"
"СЕРВЕР_ОШИБСЯ"
"SERVER_NO_RANGE"
"SERVER_BAD_CONTENT"
"СЕРВЕР_НЕАВТОРИЗОВАН"
"SERVER_CERT_PROBLEM"
"SERVER_FORBIDDEN"
"СЕРВЕР_НЕДОСТУПЕН"
"SERVER_CONTENT_LENGTH_MISMATCH"
"SERVER_CROSS_ORIGIN_REDIRECT"
"USER_CANCELED"
"USER_SHUTDOWN"
"КРУШЕНИЕ"
State
в ходе выполнения
В настоящее время загрузка получает данные с сервера.
прерванный
Произошла ошибка, приведшая к разрыву соединения с файловым хостом.
полный
Загрузка успешно завершена.
Перечисление
"в ходе выполнения"
"прерванный"
"полный"
StringDelta
Характеристики
- текущий
строка необязательная - предыдущий
строка необязательная
UiOptions
Характеристики
- Включить или отключить пользовательский интерфейс загрузки.
Методы
acceptDanger()
chrome.downloads.acceptDanger(
downloadId: number,
): Promise
Предлагает пользователю принять опасную загрузку. Может быть вызван только из видимого контекста (вкладки, окна или всплывающего окна действия страницы/браузера). Не принимает опасные загрузки автоматически. Если загрузка принята, срабатывает событие onChanged , в противном случае ничего не происходит. Когда все данные загружены во временный файл и загрузка либо не является опасной, либо угроза принята, временный файл переименовывается в целевой файл, state меняется на «завершено» и срабатывает событие onChanged .
Параметры
- Идентификатор DownloadItem .
Возврат
cancel()
chrome.downloads.cancel(
downloadId: number,
): Promise
Отмена загрузки. При выполнении callback загрузка отменяется, завершается, прерывается или прекращается.
Параметры
- Идентификатор отменяемой загрузки.
Возврат
download()
chrome.downloads.download(
options: DownloadOptions,
): Promise
Загрузите URL-адрес. Если URL-адрес использует протокол HTTP[S], запрос будет включать все файлы cookie, установленные для этого имени хоста. Если указаны и filename , и saveAs , будет отображено диалоговое окно «Сохранить как» с предварительно заполненным указанным filename . Если загрузка началась успешно, будет вызван callback с новым значением downloadId для DownloadItem . Если при запуске загрузки произошла ошибка, будет вызван callback с downloadId=undefined , а runtime.lastError будет содержать описательную строку. Обратная совместимость строк ошибок между версиями не гарантируется. Расширения не должны анализировать их.
Параметры
- Что скачивать и как.
Возврат
erase()
chrome.downloads.erase(
query: DownloadQuery,
): Promise<number[]>
Удалить соответствующий DownloadItem из истории, не удаляя загруженный файл. Событие onErased сработает для каждого DownloadItem , соответствующего query , после чего будет вызван callback .
Параметры
Возврат
getFileIcon()
chrome.downloads.getFileIcon(
downloadId: number,
options?: GetFileIconOptions,
): Promise<string | undefined>
Получает значок для указанной загрузки. Для новых загрузок значки файлов становятся доступны после получения события onCreated . Изображение, возвращаемое этой функцией во время загрузки, может отличаться от изображения, возвращаемого после её завершения. Получение значка выполняется путём запроса к базовой операционной системе или набору инструментов в зависимости от платформы. Таким образом, возвращаемый значок будет зависеть от ряда факторов, включая состояние загрузки, платформу, зарегистрированные типы файлов и визуальную тему. Если значок файла определить не удаётся, runtime.lastError будет содержать сообщение об ошибке.
Параметры
- Идентификатор загрузки.
- параметры
GetFileIconOptions необязательно
Возврат
- Обещание<строка | не определено>
open()
chrome.downloads.open(
downloadId: number,
): Promise
Открывает загруженный файл немедленно, если DownloadItem завершён; в противном случае возвращает ошибку через runtime.lastError . Для этого метода требуется разрешение "downloads.open" в дополнение к разрешению "downloads" . Событие onChanged срабатывает при первом открытии элемента. Этот метод может быть вызван только в ответ на жест пользователя.
Параметры
- Идентификатор загруженного файла.
Возврат
pause()
chrome.downloads.pause(
downloadId: number,
): Promise
Приостановите загрузку. Если запрос выполнен успешно, загрузка будет приостановлена. В противном случае runtime.lastError содержит сообщение об ошибке. Запрос завершится ошибкой, если загрузка неактивна.
Параметры
- Идентификатор загрузки, которую необходимо приостановить.
Возврат
removeFile()
chrome.downloads.removeFile(
downloadId: number,
): Promise
Удалить загруженный файл, если он существует и DownloadItem завершен; в противном случае вернуть ошибку через runtime.lastError .
Параметры
Возврат
resume()
chrome.downloads.resume(
downloadId: number,
): Promise
Возобновление приостановленной загрузки. Если запрос выполнен успешно, загрузка продолжается и возобновлена. В противном случае runtime.lastError содержит сообщение об ошибке. Запрос завершится ошибкой, если загрузка неактивна.
Параметры
- Идентификатор загрузки для возобновления.
Возврат
search()
chrome.downloads.search(
query: DownloadQuery,
): Promise<DownloadItem[]>
Найдите DownloadItem . Задайте query к пустому объекту, чтобы получить все DownloadItem . Чтобы получить конкретный DownloadItem , задайте только поле id . Для просмотра большого количества элементов установите orderBy: ['-startTime'] , задайте limit на количество элементов на странице и укажите startedAfter равным startTime последнего элемента с последней страницы.
Параметры
Возврат
- Обещание< DownloadItem []>
setShelfEnabled()
Не рекомендуется с версии Chrome 117
chrome.downloads.setShelfEnabled(
enabled: boolean,
): void
Вместо этого используйте setUiOptions .
Включить или отключить серую панель в нижней части каждого окна, связанного с текущим профилем браузера. Панель будет отключена, если хотя бы одно расширение её отключит. Включение панели при отключенном хотя бы одном другом расширении приведёт к ошибке runtime.lastError . Требуется разрешение "downloads.shelf" в дополнение к разрешению "downloads" .
Параметры
setUiOptions()
chrome.downloads.setUiOptions(
options: UiOptions,
): Promise
Изменить пользовательский интерфейс загрузки для каждого окна, связанного с текущим профилем браузера. Если хотя бы одно расширение установило значение UiOptions.enabled равным false, пользовательский интерфейс загрузки будет скрыт. Установка значения UiOptions.enabled равным true при отключении хотя бы одного другого расширения приведёт к ошибке runtime.lastError . Требуется разрешение "downloads.ui" в дополнение к разрешению "downloads" .
Параметры
- Инкапсулировать изменение пользовательского интерфейса загрузки.
Возврат
show()
chrome.downloads.show(
downloadId: number,
): void
Показать загруженный файл в его папке в файловом менеджере.
Параметры
- Идентификатор загруженного файла.
showDefaultFolder()
chrome.downloads.showDefaultFolder(): void
Показывать папку «Загрузки» по умолчанию в файловом менеджере.
События
onChanged
chrome.downloads.onChanged.addListener(
callback: function,
)
При изменении любого из свойств DownloadItem , за исключением bytesReceived и estimatedEndTime , это событие срабатывает с downloadId и объектом, содержащим измененные свойства.
Параметры
- Параметр
callbackвыглядит так:
(downloadDelta: DownloadDelta) => void
onCreated
chrome.downloads.onCreated.addListener(
callback: function,
)
Это событие срабатывает вместе с объектом DownloadItem , когда начинается загрузка.
Параметры
- Параметр
callbackвыглядит так:
(downloadItem: DownloadItem) => void
onDeterminingFilename
chrome.downloads.onDeterminingFilename.addListener(
callback: function,
)
В процессе определения имени файла расширениям будет предоставлена возможность переопределить целевой DownloadItem.filename . Каждое расширение не может зарегистрировать более одного прослушивателя для этого события. Каждый прослушиватель должен вызвать suggest ровно один раз, синхронно или асинхронно. Если прослушиватель вызывает suggest асинхронно, то он должен вернуть true . Если прослушиватель не вызывает suggest синхронно и не возвращает true , то suggest будет вызван автоматически. DownloadItem не завершится, пока все прослушиватели не вызовут suggest . Прослушиватели могут вызвать suggest без каких-либо аргументов, чтобы разрешить загрузке использовать downloadItem.filename в качестве своего имени файла, или передать объект suggestion в suggest чтобы переопределить целевое имя файла. Если более одного расширения переопределяют имя файла, то побеждает последнее установленное расширение, прослушиватель которого передает объект suggestion в suggest . Чтобы избежать путаницы относительно того, какое расширение победит, пользователи не должны устанавливать расширения, которые могут конфликтовать. Если загрузка инициируется функцией download и имя целевого файла известно до определения типа MIME и предварительного имени файла, передайте вместо этого filename download .
Параметры
- Параметр
callbackвыглядит так:
(downloadItem: DownloadItem, suggest: function) => void- Параметр
suggestвыглядит так:
(suggestion?: FilenameSuggestion) => void
* предположение
Имя файлаПредложение необязательно
- Параметр
onErased
chrome.downloads.onErased.addListener(
callback: function,
)
Срабатывает вместе с downloadId , когда загрузка удаляется из истории.
Параметры
- Параметр
callbackвыглядит так:
(downloadId: number) => void
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-11-10 UTC.