説明
chrome.downloads
API を使用すると、プログラムでダウンロードの開始、監視、操作、検索ができます。
権限
downloads
この API を使用するには、拡張機能のマニフェストで "downloads"
権限を宣言する必要があります。
{ "name": "My extension", ... "permissions": [ "downloads" ], }
例
chrome.downloads
API の使用例については、examples/api/downloads ディレクトリをご覧ください。その他の例や、ソースコードの表示に関するヘルプについては、サンプルをご覧ください。
型
BooleanDelta
プロパティ
- 現在
ブール値(省略可)
- 前へ
ブール値(省略可)
DangerType
ファイル
ダウンロードのファイル名が不審です。
URL
ダウンロードの URL が悪意のあるものとして知られている。
コンテンツ
ダウンロードしたファイルは悪意のあるファイルであることが確認されています。
まれ
ダウンロードの URL は一般的にダウンロードされているものではなく、危険を及ぼす可能性があります。
ホスト
ダウンロードは、悪意のあるバイナリを配布していることがわかっているホストから行われたもので、危険である可能性が高い。
不要な
ダウンロードが望ましくないか、安全でない可能性がある。たとえば、ブラウザやパソコンの設定を変更する可能性があります。
安全性
ダウンロードによってユーザーのパソコンに既知の危険が及ぶことはありません。
承認済
ユーザーが危険なダウンロードを承認しました。
列挙型
"file"
"url"
"content"
"uncommon"
"host"
"unwanted"
"safe"
"accepted"
"allowlistedByPolicy"
"asyncScanning"
"asyncLocalPasswordScanning"
"passwordProtected"
"blockedTooLarge"
"sensitiveContentWarning"
"sensitiveContentBlock"
"deepScannedFailed"
"deepScannedSafe"
"deepScannedOpenedDangerous"
"promptForScanning"
"promptForLocalPasswordScanning"
"accountCompromise"
"blockedScanFailed"
DoubleDelta
プロパティ
- 現在
number 省略可
- 前へ
number 省略可
DownloadDelta
プロパティ
- canResume
BooleanDelta 省略可
canResume
の変更(ある場合)。 - 危険
StringDelta 省略可
danger
の変更(ある場合)。 - endTime
StringDelta 省略可
endTime
の変更(ある場合)。 - エラー
StringDelta 省略可
error
の変更(ある場合)。 - 存在しています
BooleanDelta 省略可
exists
の変更(ある場合)。 - fileSize
DoubleDelta 省略可
fileSize
の変更(ある場合)。 - filename
StringDelta 省略可
filename
の変更(ある場合)。 - finalUrl
StringDelta 省略可
Chrome 54 以降finalUrl
の変更(ある場合)。 - id
数値
変更された
DownloadItem
のid
。 - パントマイム
StringDelta 省略可
mime
の変更(ある場合)。 - 一時停止
BooleanDelta 省略可
paused
の変更(ある場合)。 - startTime
StringDelta 省略可
startTime
の変更(ある場合)。 - state
StringDelta 省略可
state
の変更(ある場合)。 - totalBytes
DoubleDelta 省略可
totalBytes
の変更(ある場合)。 - URL
StringDelta 省略可
url
の変更(ある場合)。
DownloadItem
プロパティ
- byExtensionId
文字列 省略可
このダウンロードが拡張機能によって開始された場合、このダウンロードを開始した拡張機能の識別子。一度設定すると変更できません。
- byExtensionName
文字列 省略可
このダウンロードが拡張機能によって開始された場合、このダウンロードを開始した拡張機能のローカライズされた名前。拡張機能の名前が変更された場合や、ユーザーが言語 / 地域を変更した場合は変更される可能性があります。
- bytesReceived
数値
ホストからこれまでに受信したバイト数(ファイルの圧縮は考慮しない)。
- canResume
ブール値
ダウンロードが進行中で一時停止している場合、または中断されていて中断された場所から再開できる場合は true。
- 危険
このダウンロードが安全であると考えられるか、不審であるとわかっているかどうかの表示。
- endTime
文字列 省略可
ダウンロードが終了した日時(ISO 8601 形式)。Date コンストラクタに直接渡すことができます:
chrome.downloads.search({}, function(items){items.forEach(function(item){if (item.endTime) console.log(new Date(item.endTime))})})
- エラー
InterruptReason 省略可
ダウンロードが中断された理由。
SERVER_
で始まるエラーのいずれかに、複数の種類の HTTP エラーがグループ化されることがあります。ネットワーク関連のエラーはNETWORK_
で始まり、ファイル システムへのファイルの書き込みプロセス関連のエラーはFILE_
で始まり、ユーザーが開始した中断はUSER_
で始まります。 - estimatedEndTime
文字列 省略可
ダウンロードが完了する推定日時(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 回より頻繁にファイルの存在を確認することはありません。 - fileSize
数値
解凍後のファイル全体のバイト数。不明な場合は -1。
- filename
文字列
絶対ローカルパス。
- finalUrl
文字列
Chrome 54 以降すべてのリダイレクト後の、このダウンロードの元となる絶対 URL。
- id
数値
ブラウザ セッションをまたがって保持される識別子。
- シークレット
ブール値
このダウンロードが履歴に記録されている場合は false、記録されていない場合は true。
- パントマイム
文字列
ファイルの MIME タイプ。
- 一時停止
ブール値
ダウンロードでホストからのデータの読み取りが停止したが、接続は開いたままになっている場合は true。
- referrer
文字列
絶対 URL。
- startTime
文字列
ダウンロードが開始された時刻(ISO 8601 形式)。Date コンストラクタに直接渡すことができます:
chrome.downloads.search({}, function(items){items.forEach(function(item){console.log(new Date(item.startTime))})})
- state
ダウンロードが進行中か、中断されたか、完了したかを示します。
- totalBytes
数値
ファイル全体のバイト数。ファイル圧縮は考慮されません。不明な場合は -1。
- URL
文字列
リダイレクト前の、このダウンロードが開始された絶対 URL。
DownloadOptions
プロパティ
- body
文字列 省略可
投稿の本文。
- conflictAction
filename
がすでに存在する場合に実行するアクション。 - filename
文字列 省略可
ダウンロードしたファイルを含むダウンロード ディレクトリの相対ファイルパス。サブディレクトリを含むこともあります。絶対パス、空のパス、バックリファレンス「..」を含むパスはエラーになります。
onDeterminingFilename
を使用すると、ファイルの MIME タイプと仮のファイル名が決定された後にファイル名を提案できます。 - headers
HeaderNameValuePair[] 省略可
URL が HTTP[s] プロトコルを使用する場合に、リクエストとともに送信する追加の HTTP ヘッダー。各ヘッダーは、XMLHttpRequest で許可されているものに限定された、キー
name
とvalue
またはbinaryValue
を含むディクショナリとして表されます。 - method
HttpMethod 省略可
URL で HTTP[S] プロトコルを使用する場合に使用する HTTP メソッド。
- saveAs
ブール値(省略可)
ファイル選択ツールを使用して、
filename
が設定されているか、すでに存在するかに関係なく、ユーザーがファイル名を選択できるようにします。 - URL
文字列
ダウンロードする URL。
DownloadQuery
プロパティ
- bytesReceived
number 省略可
ホストからこれまでに受信したバイト数(ファイルの圧縮は考慮しない)。
- 危険
DangerType 省略可
このダウンロードが安全であると考えられるか、不審であるとわかっているかどうかの表示。
- endTime
文字列 省略可
ダウンロードが終了した日時(ISO 8601 形式)。
- endedAfter
文字列 省略可
結果を、指定された ISO 8601 形式のミリ秒より後に終了した
DownloadItem
に制限します - endedBefore
文字列 省略可
結果を、指定された ms(ISO 8601 形式)より前に終了した
DownloadItem
に制限します。 - エラー
InterruptReason 省略可
ダウンロードが中断された理由。
- 存在しています
ブール値(省略可)
ダウンロードしたファイルが存在するかどうか。
- fileSize
number 省略可
解凍後のファイル全体のバイト数。不明な場合は -1。
- filename
文字列 省略可
絶対ローカルパス。
- filenameRegex
文字列 省略可
結果を、
filename
が指定された正規表現と一致するDownloadItem
に制限します。 - finalUrl
文字列 省略可
Chrome 54 以降すべてのリダイレクト後の、このダウンロードの元となる絶対 URL。
- finalUrlRegex
文字列 省略可
Chrome 54 以降結果を、
finalUrl
が指定された正規表現と一致するDownloadItem
に制限します。 - id
number 省略可
クエリする
DownloadItem
のid
。 - limit
number 省略可
返される一致する
DownloadItem
の最大数。デフォルトは 1,000 です。一致するすべてのDownloadItem
を返すには、0 に設定します。結果をページングする方法については、search
をご覧ください。 - パントマイム
文字列 省略可
ファイルの MIME タイプ。
- orderBy
string[] 省略可
この配列の要素を
DownloadItem
プロパティに設定して、検索結果を並べ替えます。たとえば、orderBy=['startTime']
を設定すると、DownloadItem
が開始時刻の昇順で並べ替えられます。降順を指定するには、ハイフンを前に付けます(-startTime)。 - 一時停止
ブール値(省略可)
ダウンロードでホストからのデータの読み取りが停止したが、接続は開いたままになっている場合は true。
- クエリ
string[] 省略可
この検索語句の配列は、
filename
、url
、finalUrl
のいずれかに、ダッシュ「-」で始まらないすべての検索語句が含まれ、ダッシュで始まる検索語句は含まれないDownloadItem
に結果を制限します。 - startTime
文字列 省略可
ダウンロードが開始された時刻(ISO 8601 形式)。
- startedAfter
文字列 省略可
結果を、指定されたミリ秒以降に開始された
DownloadItem
に制限します(ISO 8601 形式)。 - startedBefore
文字列 省略可
結果を、ISO 8601 形式で指定されたミリ秒より前に開始された
DownloadItem
に制限します。 - state
State(都道府県) 省略可
ダウンロードが進行中か、中断されたか、完了したかを示します。
- totalBytes
number 省略可
ファイル全体のバイト数。ファイル圧縮は考慮されません。不明な場合は -1。
- totalBytesGreater
number 省略可
totalBytes
が指定された整数より大きいDownloadItem
に結果を制限します。 - totalBytesLess
number 省略可
結果を、
totalBytes
が指定された整数より小さいDownloadItem
に制限します。 - URL
文字列 省略可
リダイレクト前の、このダウンロードが開始された絶対 URL。
- urlRegex
文字列 省略可
結果を、
url
が指定された正規表現と一致するDownloadItem
に制限します。
FilenameConflictAction
一意化
重複を避けるため、filename
はファイル名の拡張子の前にカウンタを含むように変更されます。
上書き
既存のファイルは新しいファイルで上書きされます。
プロンプト
ファイル選択ツール ダイアログが表示されます。
列挙型
"uniquify"
"overwrite"
"prompt"
FilenameSuggestion
プロパティ
- conflictAction
filename
がすでに存在する場合に実行するアクション。 - filename
文字列
DownloadItem
の新しいターゲットDownloadItem.filename
。ユーザーのデフォルトのダウンロード ディレクトリからの相対パスで、サブディレクトリを含む可能性があります。絶対パス、空のパス、バックリファレンス「..」を含むパスは無視されます。拡張機能によって登録されたonDeterminingFilename
リスナーがある場合、filename
は無視されます。
GetFileIconOptions
プロパティ
- サイズ
number 省略可
返されるアイコンのサイズ。アイコンは正方形で、サイズは size * size ピクセルになります。アイコンのデフォルトの最大サイズは 32x32 ピクセルです。サポートされているサイズは 16 と 32 のみです。他のサイズを指定するとエラーになります。
HeaderNameValuePair
プロパティ
- name
文字列
HTTP ヘッダーの名前。
- 値
文字列
HTTP ヘッダーの値。
HttpMethod
列挙型
"GET"
"POST"
InterruptReason
列挙型
"FILE_FAILED"
"FILE_ACCESS_DENIED"
"FILE_NO_SPACE"
"FILE_NAME_TOO_LONG"
"FILE_TOO_LARGE"
"FILE_VIRUS_INFECTED"
"FILE_TRANSIENT_ERROR"
"FILE_BLOCKED"
"FILE_SECURITY_CHECK_FAILED"
"FILE_TOO_SHORT"
"FILE_HASH_MISMATCH"
"FILE_SAME_AS_SOURCE"
"NETWORK_FAILED"
"NETWORK_TIMEOUT"
"NETWORK_DISCONNECTED"
"NETWORK_SERVER_DOWN"
"NETWORK_INVALID_REQUEST"
"SERVER_FAILED"
"SERVER_NO_RANGE"
"SERVER_BAD_CONTENT"
"SERVER_UNAUTHORIZED"
"SERVER_CERT_PROBLEM"
"SERVER_FORBIDDEN"
"SERVER_UNREACHABLE"
"SERVER_CONTENT_LENGTH_MISMATCH"
"SERVER_CROSS_ORIGIN_REDIRECT"
"USER_CANCELED"
"USER_SHUTDOWN"
"CRASH"
State
in_progress
ダウンロードは現在、サーバーからデータを受信しています。
中断
エラーが発生し、ファイル ホストとの接続が切断されました。
完了
ダウンロードが正常に完了しました。
列挙型
"in_progress"
"interrupted"
"complete"
StringDelta
プロパティ
- 現在
文字列 省略可
- 前へ
文字列 省略可
UiOptions
プロパティ
- 有効
ブール値
ダウンロード UI を有効または無効にします。
メソッド
acceptDanger()
chrome.downloads.acceptDanger(
downloadId: number,
): Promise<void>
危険なダウンロードを承認するようユーザーに求めます。表示されているコンテキスト(タブ、ウィンドウ、ページ/ブラウザ アクションのポップアップ)からのみ呼び出すことができます。危険なダウンロードを自動的に受け入れません。ダウンロードが承認されると、onChanged
イベントが発生します。承認されない場合は何も起こりません。すべてのデータが一時ファイルに取得され、ダウンロードが危険でないか、危険性が受け入れられると、一時ファイルの名前がターゲット ファイル名に変更され、state
が「complete」に変更され、onChanged
がトリガーされます。
パラメータ
- downloadId
数値
DownloadItem
の識別子。
戻り値
-
Promise<void>
Chrome 96 以降
cancel()
chrome.downloads.cancel(
downloadId: number,
): Promise<void>
ダウンロードをキャンセルします。callback
が実行されると、ダウンロードはキャンセル、完了、中断されるか、存在しなくなります。
パラメータ
- downloadId
数値
キャンセルするダウンロードの ID。
戻り値
-
Promise<void>
Chrome 96 以降
download()
chrome.downloads.download(
options: DownloadOptions,
): Promise<number>
URL をダウンロードします。URL で HTTP[S] プロトコルが使用されている場合、リクエストには、そのホスト名に現在設定されているすべての Cookie が含まれます。filename
と saveAs
の両方が指定されている場合は、[名前を付けて保存] ダイアログが表示され、指定された filename
が事前に入力されます。ダウンロードが正常に開始されると、新しい DownloadItem
の downloadId
を使用して callback
が呼び出されます。ダウンロードの開始中にエラーが発生した場合は、callback
が downloadId=undefined
で呼び出され、runtime.lastError
に説明文字列が含まれます。エラー文字列は、リリース間で下位互換性が維持されるとは限りません。拡張機能はこれを解析してはなりません。
パラメータ
- オプション
ダウンロードする内容と方法。
戻り値
-
Promise<number>
Chrome 96 以降
erase()
chrome.downloads.erase(
query: DownloadQuery,
): Promise<number[]>
ダウンロードしたファイルを削除せずに、履歴から一致する DownloadItem
を消去します。query
に一致する DownloadItem
ごとに onErased
イベントがトリガーされ、callback
が呼び出されます。
パラメータ
- クエリ
戻り値
-
Promise<number[]>
Chrome 96 以降
getFileIcon()
chrome.downloads.getFileIcon(
downloadId: number,
options?: GetFileIconOptions,
): Promise<string | undefined>
指定されたダウンロードのアイコンを取得します。新しいダウンロードの場合、ファイル アイコンは onCreated
イベントを受信した後に利用できます。ダウンロード中にこの関数から返される画像は、ダウンロード完了後に返される画像と異なる場合があります。アイコンの取得は、プラットフォームに応じて、基盤となるオペレーティング システムまたはツールキットをクエリすることで行われます。そのため、返されるアイコンは、ダウンロードの状態、プラットフォーム、登録されたファイル形式、ビジュアル テーマなど、さまざまな要因によって異なります。ファイル アイコンを特定できない場合、runtime.lastError
にはエラー メッセージが含まれます。
パラメータ
- downloadId
数値
ダウンロードの識別子。
- オプション
戻り値
-
Promise<string | undefined>
Chrome 96 以降
open()
chrome.downloads.open(
downloadId: number,
): Promise<void>
DownloadItem
が完了している場合は、ダウンロードしたファイルをすぐに開きます。それ以外の場合は、runtime.lastError
を介してエラーを返します。このメソッドには、"downloads"
権限に加えて "downloads.open"
権限が必要です。アイテムが初めて開かれると、onChanged
イベントが発火します。このメソッドは、ユーザー操作への応答でのみ呼び出すことができます。
パラメータ
- downloadId
数値
ダウンロードしたファイルの識別子。
戻り値
-
Promise<void>
Chrome 123 以降
pause()
chrome.downloads.pause(
downloadId: number,
): Promise<void>
ダウンロードを一時停止します。リクエストが成功すると、ダウンロードは一時停止状態になります。それ以外の場合、runtime.lastError
にはエラー メッセージが含まれます。ダウンロードがアクティブでない場合、リクエストは失敗します。
パラメータ
- downloadId
数値
一時停止するダウンロードの ID。
戻り値
-
Promise<void>
Chrome 96 以降
removeFile()
chrome.downloads.removeFile(
downloadId: number,
): Promise<void>
ダウンロードしたファイルが存在し、DownloadItem
が完了している場合は、そのファイルを削除します。それ以外の場合は、runtime.lastError
を介してエラーを返します。
パラメータ
- downloadId
数値
戻り値
-
Promise<void>
Chrome 96 以降
resume()
chrome.downloads.resume(
downloadId: number,
): Promise<void>
一時停止したダウンロードを再開します。リクエストが成功した場合、ダウンロードは進行中で一時停止されていません。それ以外の場合、runtime.lastError
にはエラー メッセージが含まれます。ダウンロードがアクティブでない場合、リクエストは失敗します。
パラメータ
- downloadId
数値
再開するダウンロードの ID。
戻り値
-
Promise<void>
Chrome 96 以降
search()
chrome.downloads.search(
query: DownloadQuery,
): Promise<DownloadItem[]>
DownloadItem
を見つけます。query
を空のオブジェクトに設定して、すべての DownloadItem
を取得します。特定の DownloadItem
を取得するには、id
フィールドのみを設定します。多数のアイテムをページングするには、orderBy: ['-startTime']
を設定し、limit
をページあたりのアイテム数に設定し、startedAfter
を最後のページの最後のアイテムの startTime
に設定します。
パラメータ
- クエリ
戻り値
-
Promise<DownloadItem[]>
Chrome 96 以降
setShelfEnabled()
chrome.downloads.setShelfEnabled(
enabled: boolean,
): void
代わりに setUiOptions
を使用してください。
現在のブラウザ プロファイルに関連付けられているすべてのウィンドウの下部にあるグレーのシェルフを有効または無効にします。少なくとも 1 つの拡張機能で無効になっている限り、シェルフは無効になります。他の拡張機能がシェルフを無効にしているときにシェルフを有効にすると、runtime.lastError
を通じてエラーが返されます。"downloads"
権限に加えて、"downloads.shelf"
権限が必要です。
パラメータ
- 有効
ブール値
setUiOptions()
chrome.downloads.setUiOptions(
options: UiOptions,
): Promise<void>
現在のブラウザ プロファイルに関連付けられているすべてのウィンドウのダウンロード UI を変更します。少なくとも 1 つの拡張機能で UiOptions.enabled
が false に設定されている限り、ダウンロード UI は非表示になります。他の拡張機能の少なくとも 1 つが UiOptions.enabled
を無効にしているときに、UiOptions.enabled
を true に設定すると、runtime.lastError
を通じてエラーが返されます。"downloads"
権限に加えて、"downloads.ui"
権限が必要です。
パラメータ
- オプション
ダウンロード UI の変更をカプセル化します。
戻り値
-
Promise<void>
show()
chrome.downloads.show(
downloadId: number,
): void
ダウンロードしたファイルをファイル マネージャーのフォルダに表示します。
パラメータ
- downloadId
数値
ダウンロードしたファイルの識別子。
showDefaultFolder()
chrome.downloads.showDefaultFolder(): void
ファイル マネージャーでデフォルトのダウンロード フォルダを表示します。
イベント
onChanged
chrome.downloads.onChanged.addListener(
callback: function,
)
bytesReceived
と estimatedEndTime
以外の DownloadItem
のプロパティが変更されると、このイベントは downloadId
と、変更されたプロパティを含むオブジェクトとともに発生します。
パラメータ
- callback
関数
callback
パラメータは次のようになります。(downloadDelta: DownloadDelta) => void
- downloadDelta
-
onCreated
chrome.downloads.onCreated.addListener(
callback: function,
)
このイベントは、ダウンロードが開始されると DownloadItem
オブジェクトとともに発生します。
パラメータ
- callback
関数
callback
パラメータは次のようになります。(downloadItem: DownloadItem) => void
- downloadItem
-
onDeterminingFilename
chrome.downloads.onDeterminingFilename.addListener(
callback: function,
)
ファイル名決定プロセスでは、拡張機能がターゲット DownloadItem.filename
をオーバーライドする機会が与えられます。各拡張機能で、このイベントに登録できるリスナーは 1 つのみです。各リスナーは、同期または非同期で suggest
を 1 回だけ呼び出す必要があります。リスナーが suggest
を非同期で呼び出す場合は、true
を返す必要があります。リスナーが suggest
を同期的に呼び出さず、true
を返さない場合、suggest
は自動的に呼び出されます。すべてのリスナーが suggest
を呼び出すまで、DownloadItem
は完了しません。リスナーは、引数なしで suggest
を呼び出して、ダウンロードでファイル名に downloadItem.filename
を使用できるようにするか、suggestion
オブジェクトを suggest
に渡して、ターゲット ファイル名をオーバーライドできます。複数の拡張機能がファイル名をオーバーライドする場合、リスナーが suggestion
オブジェクトを suggest
に渡す最後にインストールされた拡張機能が優先されます。どの拡張機能が優先されるかについて混乱が生じないように、競合する可能性のある拡張機能はインストールしないようにしてください。ダウンロードが download
によって開始され、MIME タイプと仮のファイル名が決定される前にターゲットのファイル名がわかっている場合は、代わりに filename
を download
に渡します。
パラメータ
- callback
関数
callback
パラメータは次のようになります。(downloadItem: DownloadItem, suggest: function) => void
- downloadItem
- suggest
関数
suggest
パラメータは次のようになります。(suggestion?: FilenameSuggestion) => void
- 提案
-
-
onErased
chrome.downloads.onErased.addListener(
callback: function,
)
ダウンロードが履歴から消去されたときに downloadId
で発生します。
パラメータ
- callback
関数
callback
パラメータは次のようになります。(downloadId: number) => void
- downloadId
数値
-