Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Where does Firefox store SQLITE download history

  • 3 replies
  • 1 has this problem
  • 269 views
  • Last reply by cor-el

more options

I normally choose my download location and if they're zip I'll delete them after extract.

The problem is currently I can't find any way to get where did I put my downloaded files if it's not there.

BUT!!! In order to know the files aren't there, Firefox has to know where did I put them.

I searched the home folder but nothing named `download` is in the folder.

I asked a question for what should I do https://support.mozilla.org/en-US/que.../1312757 but doesn't get anything remotely useful.

I normally choose my download location and if they're zip I'll delete them after extract. The problem is currently I can't find any way to get where did I put my downloaded files if it's not there. BUT!!! In order to know the files aren't there, '''Firefox has to know where did I put them'''. I searched the home folder but nothing named `download` is in the folder. I asked a question for what should I do [https://support.mozilla.org/en-US/questions/1312757] but doesn't get anything remotely useful.

Modified by cor-el

Chosen solution

That data is stored as a "downloads/destinationFileURI" annotation in places.sqlite. I don't know of a way to access this data directly in the user interface.

You can run this code in the Browser Console to retrieve the annotation map and check the "downloads/destinationFileURI" array.

const DESTINATIONFILEURI_ANNO = "downloads/destinationFileURI";
const METADATA_ANNO = "downloads/metaData";
let pageAnnos = await PlacesUtils.history.fetchAnnotatedPages([METADATA_ANNO,DESTINATIONFILEURI_ANNO,]);

Read this answer in context 👍 1

All Replies (3)

more options

Chosen Solution

That data is stored as a "downloads/destinationFileURI" annotation in places.sqlite. I don't know of a way to access this data directly in the user interface.

You can run this code in the Browser Console to retrieve the annotation map and check the "downloads/destinationFileURI" array.

const DESTINATIONFILEURI_ANNO = "downloads/destinationFileURI";
const METADATA_ANNO = "downloads/metaData";
let pageAnnos = await PlacesUtils.history.fetchAnnotatedPages([METADATA_ANNO,DESTINATIONFILEURI_ANNO,]);

more options

cor-el said

That data is stored as a "downloads/destinationFileURI" annotation in places.sqlite. I don't know of a way to access this data directly in the user interface. You can run this code in the Browser Console to retrieve the annotation map and check the "downloads/destinationFileURI" array.
const DESTINATIONFILEURI_ANNO = "downloads/destinationFileURI";
const METADATA_ANNO = "downloads/metaData";
let pageAnnos = await PlacesUtils.history.fetchAnnotatedPages([METADATA_ANNO,DESTINATIONFILEURI_ANNO,]);

Thanks for the reply. I didn't get the e-mail for some mysterious reasons but just ran across this problem again and remembered I have already asked this.

Anyway, the file is indeed in the `places.sqlite` but the table name is wrong.

It's actually in the `moz_annos`.

I don't write JS though, but I thought you can't access the storage using the frontend JS?

Modified by palm22180

more options

You can run privileged JavaScript code via the Browser Console and this allows to access such data. To enable the command line in the Console:


I didn't mention a specific table in places.sqlite in my above reply. Yes, moz_annos stores the downloads as a special 'download' annotation defined in moz_anno_attributes (downloads/metaData, downloads/destinationFileURI, downloads/destinationFileName). The entries in moz_annos are linked to moz_places that stores the actual history entry (moz_places.id = moz_annos.place_id).