62591


動画共有にサイトを使っていて動画をボタン一つでダウンロードできるように拡張機能を作りました  
動画のページの情報を整理して動画の名前にしてchrome.downloads.downloadでダウンロードするようにしています

[code]

          chrome.downloads.download({
            url : src,
            filename: name,
            saveAs : true
          });
    
[/code]

しかしファイルをダウンロードしたらブラウザの履歴を残さない設定に反して履歴に残ってしまいます  
拡張機能はプライベートモードの実行を許可しないといけなかったので許可しました（これをしないと拡張機能が使えません）

どうすればブラウザの履歴に残さずに拡張機能でダウンロードをできるでしょうか？


CC BY-SA 4.0
2020-01-27T14:08:21.270
62588
2020-01-27T15:50:25.020
37046
question
javascript google-chrome firefox chrome-extension firefox-webextension
firefox拡張機能でファイルをダウンロードしたらブラウザの履歴を残さない設定に反して履歴に残る


MDN によれば、 `downloads.download()` 関数の第一引数として与えるオプションには、 **`incognito`
オプション**を設定出来ます[[1]](https://developer.mozilla.org/en-US/docs/Mozilla/Add-
ons/WebExtensions/API/downloads/download#Parameters)。デフォルト値に関して書かれていませんが、質問文の動作から恐らく
`false` に設定されていると考えられます。

> `incognito` Optional[[1]](https://developer.mozilla.org/en-
> US/docs/Mozilla/Add-ons/WebExtensions/API/downloads/download#Parameters)  
>  A `boolean`: if present and set to true, then associate this download with
> a private browsing session. This means that it will only appear in the
> download manager for any private windows that are currently open.

そこで、以下のように `incognito` オプションを明示的に `true` に設定することで、当該問題は解決すると思います。

[code]

    const sourceUrl = "https://example.com/source.mp4";
    const filename = "sample video - example.com";
    const options = {
      url: sourceUrl,
      filename: filename,
      saveAs: true,
      incognito: true,
    };
    
    browser.downloads.download(options);
    
[/code]


CC BY-SA 4.0
2020-01-27T15:50:25.020
62591
2020-01-27T15:50:25.020
32986
62588
answer