Chrome Extension ( manifest version 3 ) downloads

拡張機能読込方法は下記参照 ⇒ Chrome Extension: Load unpacked extension
Devtools起動方法は下記参照 ⇒ Chrome Extension: Inspect background script

拡張機能を読み込んだ後、
background.jsのDevtoolsのConsoleを開き、
https://chromedriver.chromium.org/downloads
などで適当なファイルをダウンロードすると、
background.jsのDevtoolsのConsoleに、
ダウンロードの状況が出力されます。


コールバックで渡された情報のみを出力する場合

background.js

console.log('Hello, I am background scripts');

chrome.downloads.onCreated.addListener((item) => {
  console.log('onCreated');
  console.log('callback parameter is DownloadItem');
  console.log(item);
  console.log(' ');
});
chrome.downloads.onChanged.addListener((delta) => {
  console.log('onChanged');
  console.log('callback parameter is DownloadDelta');
  console.log(delta);
  console.log(' ');
});

manifest.json

{
  "manifest_version": 3,
  "name": "HelloDownloads",
  "version": "1.0",
  "background": {
    "service_worker": "background.js"
  },
  "permissions": [
    "downloads"
  ]
}

ダウンロードに関する全ての情報を出力する場合

background.js

console.log('Hello, I am background scripts');

chrome.downloads.onCreated.addListener(async (item) => {
  // const result = await chrome.downloads.search({ orderBy: ['-startTime'], limit: 5 });
  const result = await chrome.downloads.search({});
  console.log('onCreated');
  console.log(result);
  console.log(' ');
});
chrome.downloads.onChanged.addListener(async (delta) => {
  // const result = await chrome.downloads.search({ orderBy: ['-startTime'], limit: 5 });
  const result = await chrome.downloads.search({});
  console.log('onChanged');
  console.log(result);
  console.log(' ');
});

manifest.json

{
  "manifest_version": 3,
  "name": "HelloDownloads",
  "version": "1.0",
  "background": {
    "service_worker": "background.js"
  },
  "permissions": [
    "downloads"
  ]
}


chrome.downloads.searchの引数のDownloadQueryを設定すると、
ダウンロードに関する取得情報を取捨選択可能。例えば、
background.js内のコメントアウトのコードにした場合、
直近でダウンロード(開始)した5ファイルに絞れます。


Reference

Reference
https://yuki.world/how-to-develop-chrome-extension-basics/
https://qiita.com/komlabo/items/5b99d3598f6664621dae
https://qiita.com/sakaimo/items/416f36db1aa982d8d00c
https://qiita.com/suin/items/2b31079056f1356257cb
https://qiita.com/RyBB/items/32b2a7b879f21b3edefc
https://qiita.com/k7a/items/26d7a22233ecdf48fed8
https://www.satoshiiiblog.com/2022/05/07/

Link1

Chrome Extension
https://developer.chrome.com/docs/extensions/
https://developer.chrome.com/docs/extensions/mv3/getstarted/
https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked
https://developer.chrome.com/docs/extensions/mv3/manifest/
https://developer.chrome.com/docs/extensions/mv3/match_patterns/
https://developer.chrome.com/docs/extensions/mv3/tut_debugging/
https://developer.chrome.com/docs/extensions/mv3/tut_debugging/#debug_bg
https://developer.chrome.com/docs/extensions/mv3/tut_debugging/#debug_cs

Link2

Chrome Extension: Load unpacked extension
https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked
https://yuki.world/how-to-develop-chrome-extension-basics/#t_3_chromechrome

Chrome Extension: Inspect background script
https://developer.chrome.com/docs/extensions/mv3/tut_debugging/#debug_bg
https://www.tweeeety.blog/entry/2015/03/04/231354

Chrome Extension: Installing extensions via ChromeDriver
https://sites.google.com/chromium.org/driver/extensions
https://yuki.world/selenium-load-chrome-extension/#t_3

Link3

Chrome Extension: chrome.downloads
https://developer.chrome.com/docs/extensions/reference/downloads/
https://developer.chrome.com/docs/extensions/reference/downloads/#event-onChanged
https://developer.chrome.com/docs/extensions/reference/downloads/#type-DownloadDelta
https://developer.chrome.com/docs/extensions/reference/downloads/#type-DownloadItem
https://developer.chrome.com/docs/extensions/reference/downloads/#method-search
https://developer.chrome.com/docs/extensions/reference/downloads/#type-DownloadQuery