When does Firefox display a download progress bar?

I’m downloading a file from a server that is returning a Content-Length header, but Firefox does not show the download progress bar.

What are the criteria that Firefox uses to decide when to display a progress bar on downloads? I’m not familiar with the Firefox source code but if anybody has a link to the relevant code, I’d appreciate it.

Here are my response headers:

  HTTP/1.1 200 OK
  Server: nginx/1.18.0 (Ubuntu)
  Date: Thu, 03 Jan 2023 19:53:33 GMT
  Content-Type: application/octet-stream
  Content-Length: 1255777601
  Connection: keep-alive
  content-disposition: attachment; filename="contents.mkv"
  last-modified: Tue, 03 Jan 2023 05:23:58 GMT
  x-frame-options: deny
  accept-ranges: bytes
  x-xss-protection: 1; mode=block
  x-robots-tag: noindex, nofollow
  etag: "3e8d6d3abe32c1cb55ede5ec36a5d7b911703e8cef8398b6c779e2c5a26f1b58"
  referrer-policy: no-referrer
  content-language: en-US
  x-content-type-options: nosniff
  Strict-Transport-Security: max-age=86400

Thanks!

Once your file is downloaded Firefox will show the file downloading progress. I also downloaded a file by using FireFox in my case that progress bar was shown at the bottom of bar.

Given that you have Content-Length and Range support, depending on how you got the list of headers, this might hide that you have gzip compression enabled in nginx? If so, that compression will stop firefox from showing the progress. Try a “gzip off;” in your nginx and see if it helps.