files/en-us/mozilla/add-ons/webextensions/api/downloads/downloadquery/index.md
The DownloadQuery type of the {{WebExtAPIRef("downloads")}} API defines a set of parameters that can be used to search the downloads manager for a specific set of downloads.
This type is used for example in {{WebExtAPIRef("downloads.search()")}} and {{WebExtAPIRef("downloads.erase()")}}, as a query object to filter the set of {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} to return or erase.
Values of this type are objects. They contain the following properties:
cookieStoreId {{optional_inline}}
query {{optional_inline}}
array of strings. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} whose filename or url contains all of the given strings. You can also include terms beginning with a dash (-) — these terms must not be contained in the item's filename or url for it to be included.startedBefore {{optional_inline}}
startedAfter {{optional_inline}}
endedBefore {{optional_inline}}
endedAfter {{optional_inline}}
totalBytesGreater {{optional_inline}}
number representing a number of bytes. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} whose totalBytes is greater than the given number.totalBytesLess {{optional_inline}}
number representing a number of bytes. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} whose totalBytes is less than the given number.filenameRegex {{optional_inline}}
string representing a regular expression. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} whose filename value matches the given regular expression.urlRegex {{optional_inline}}
string representing a regular expression. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} whose url value matches the given regular expression.limit {{optional_inline}}
integer representing a number of results. Include only the specified number of {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}}.orderBy {{optional_inline}}
array of strings representing {{WebExtAPIRef("downloads.DownloadItem", "DownloadItem")}} properties the search results should be sorted by. For example, including startTime then totalBytes in the array would sort the {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} by their start time, then total bytes — in ascending order. To specify sorting by a property in descending order, prefix it with a hyphen, for example -startTime.id {{optional_inline}}
integer representing the ID of the {{WebExtAPIRef("downloads.DownloadItem")}} you want to query.url {{optional_inline}}
string representing the absolute URL that the download was initiated from, before any redirects.filename {{optional_inline}}
danger {{optional_inline}}
danger value.mime {{optional_inline}}
string representing a MIME type. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this mime value.startTime {{optional_inline}}
string representing an ISO 8601 format time. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this startTime value.endTime {{optional_inline}}
string representing an ISO 8601 format time. Include only will limited to {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this endTime value.state {{optional_inline}}
string representing a download {{WebExtAPIRef('downloads.State')}} (in_progress, interrupted, or complete). Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this state value.paused {{optional_inline}}
boolean that indicates whether a download is paused — i.e., has stopped reading data from the host, but kept the connection open (true), or not (false). Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this paused value.error {{optional_inline}}
error value.bytesReceived {{optional_inline}}
number representing the number of bytes received so far from the host, without considering file compression. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this bytesReceived value.totalBytes {{optional_inline}}
number representing the total number of bytes in the downloaded file, without considering file compression. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this totalBytes value.fileSize {{optional_inline}}
number. Number of bytes in the whole file post-decompression, or -1 if unknown. A number representing the total number of bytes in the file after decompression. Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this fileSize value.exists {{optional_inline}}
boolean indicating whether a downloaded file still exists (true) or not (false). Include only {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} with this exists value.{{WebExtExamples}}
{{Compat}}
<!-- // Copyright 2015 The Chromium Authors. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->[!NOTE] This API is based on Chromium's
chrome.downloadsAPI.