| Index: chrome/common/extensions/api/downloads.idl
|
| diff --git a/chrome/common/extensions/api/downloads.idl b/chrome/common/extensions/api/downloads.idl
|
| index af6eac15c19f965681d6178197bef9d32e4b54a8..bbb3f3a43cc7a2d63c6cb96ce9e20ef4cbdc04c9 100644
|
| --- a/chrome/common/extensions/api/downloads.idl
|
| +++ b/chrome/common/extensions/api/downloads.idl
|
| @@ -22,7 +22,7 @@ namespace downloads {
|
| // <dt>prompt</dt>
|
| // <dd>The user will be prompted with a file chooser dialog.</dd>
|
| // </dl>
|
| - [inline_doc] enum FilenameConflictAction {uniquify, overwrite, prompt};
|
| + enum FilenameConflictAction {uniquify, overwrite, prompt};
|
|
|
| [inline_doc] dictionary FilenameSuggestion {
|
| // The $ref:DownloadItem's new target $ref:DownloadItem.filename, as a path
|
| @@ -32,7 +32,7 @@ namespace downloads {
|
| DOMString filename;
|
|
|
| // The action to take if <code>filename</code> already exists.
|
| - FilenameConflictAction? conflict_action;
|
| + FilenameConflictAction? conflictAction;
|
| };
|
|
|
| [inline_doc] enum HttpMethod {GET, POST};
|
| @@ -42,13 +42,17 @@ namespace downloads {
|
| DOMString url;
|
|
|
| // A file path relative to the Downloads directory to contain the downloaded
|
| - // file. Cannot yet contain subdirectories; support for subdirectories will
|
| - // be implemented before this API is released to the stable channel. See
|
| - // $ref:onDeterminingFilename for how to dynamically suggest a filename
|
| - // after the file's MIME type and a tentative filename have been determined.
|
| + // file, possibly containing subdirectories. Absolute paths, empty paths,
|
| + // and paths containing back-references ".." will cause an error.
|
| + // $ref:onDeterminingFilename allows suggesting a filename after the file's
|
| + // MIME type and a tentative filename have been determined.
|
| DOMString? filename;
|
|
|
| - // Use a file-chooser to allow the user to select a filename.
|
| + // The action to take if <code>filename</code> already exists.
|
| + FilenameConflictAction? conflictAction;
|
| +
|
| + // Use a file-chooser to allow the user to select a filename regardless of
|
| + // whether <code>filename</code> is set or already exists.
|
| boolean? saveAs;
|
|
|
| // The HTTP method to use if the URL uses the HTTP[S] protocol.
|
| @@ -100,6 +104,9 @@ namespace downloads {
|
| // Absolute URL.
|
| DOMString url;
|
|
|
| + // Absolute URL.
|
| + DOMString referrer;
|
| +
|
| // Absolute local path.
|
| DOMString filename;
|
|
|
| @@ -111,9 +118,6 @@ namespace downloads {
|
| // suspicious.
|
| DangerType danger;
|
|
|
| - // True if the user has accepted the download's danger.
|
| - boolean? dangerAccepted;
|
| -
|
| // The file's MIME type.
|
| DOMString mime;
|
|
|
| @@ -129,6 +133,9 @@ namespace downloads {
|
| // console.log(new Date(item.endTime))})})</code>
|
| DOMString? endTime;
|
|
|
| + // Estimated time when the download will complete in ISO 8601 format.
|
| + DOMString? estimatedEndTime;
|
| +
|
| // Indicates whether the download is progressing, interrupted, or complete.
|
| State state;
|
|
|
| @@ -136,8 +143,17 @@ namespace downloads {
|
| // connection open.
|
| boolean paused;
|
|
|
| - // Number indicating why a download was interrupted.
|
| - long? error;
|
| + // True if the download is in progress and paused, or else if it is
|
| + // interrupted and can be resumed starting from where it was interrupted.
|
| + boolean canResume;
|
| +
|
| + // Why the download was interrupted. Several kinds of HTTP errors may be
|
| + // grouped under one of the errors beginning with <code>SERVER_</code>.
|
| + // Errors relating to the network begin with <code>NETWORK_</code>, errors
|
| + // relating to the process of writing the file to the file system begin with
|
| + // <code>FILE_</code>, and interruptions initiated by the user begin with
|
| + // <code>USER_</code>.
|
| + DOMString? error;
|
|
|
| // Number of bytes received so far from the host, without considering file
|
| // compression.
|
| @@ -163,12 +179,11 @@ namespace downloads {
|
| };
|
|
|
| [inline_doc] dictionary DownloadQuery {
|
| - // This space-separated string of search terms that may be grouped using
|
| - // quotation marks limits results to
|
| - // $ref:DownloadItem whose <code>filename</code>
|
| - // or <code>url</code> contain all of the search terms that do not begin with a dash '-'
|
| - // and none of the search terms that do begin with a dash.
|
| - DOMString? query;
|
| + // This array of search terms limits results to $ref:DownloadItem whose
|
| + // <code>filename</code> or <code>url</code> contain all of the search terms
|
| + // that do not begin with a dash '-' and none of the search terms that do
|
| + // begin with a dash.
|
| + DOMString[]? query;
|
|
|
| // Limits results to $ref:DownloadItem that
|
| // started before the given ms since the epoch.
|
| @@ -202,18 +217,17 @@ namespace downloads {
|
| // <code>url</code> matches the given regular expression.
|
| DOMString? urlRegex;
|
|
|
| - // Setting this integer limits the number of results. Otherwise, all
|
| - // matching $ref:DownloadItem will be returned.
|
| + // The maximum number of matching $ref:DownloadItem returned. Defaults to
|
| + // 1000. Set to 0 in order to return all matching $ref:DownloadItem. See
|
| + // $ref:search for how to page through results.
|
| long? limit;
|
|
|
| - // Setting this string to a $ref:DownloadItem
|
| - // property sorts the $ref:DownloadItem prior
|
| - // to applying the above filters. For example, setting
|
| - // <code>orderBy='startTime'</code> sorts the
|
| - // $ref:DownloadItem by their start time in
|
| - // ascending order. To specify descending order, prefix <code>orderBy</code>
|
| - // with a hyphen: '-startTime'.
|
| - DOMString? orderBy;
|
| + // Set elements of this array to $ref:DownloadItem properties in order to
|
| + // sort search results. For example, setting
|
| + // <code>orderBy=['startTime']</code> sorts the $ref:DownloadItem by their
|
| + // start time in ascending order. To specify descending order, prefix with a
|
| + // hyphen: '-startTime'.
|
| + DOMString[]? orderBy;
|
|
|
| // The <code>id</code> of the $ref:DownloadItem to query.
|
| long? id;
|
| @@ -228,9 +242,6 @@ namespace downloads {
|
| // suspicious.
|
| DangerType? danger;
|
|
|
| - // True if the user has accepted the download's danger.
|
| - boolean? dangerAccepted;
|
| -
|
| // The file's MIME type.
|
| DOMString? mime;
|
|
|
| @@ -247,8 +258,8 @@ namespace downloads {
|
| // connection open.
|
| boolean? paused;
|
|
|
| - // Number indicating why a download was interrupted.
|
| - long? error;
|
| + // Why a download was interrupted.
|
| + DOMString? error;
|
|
|
| // Number of bytes received so far from the host, without considering file
|
| // compression.
|
| @@ -295,9 +306,6 @@ namespace downloads {
|
| // The change in <code>danger</code>, if any.
|
| StringDelta? danger;
|
|
|
| - // The change in <code>dangerAccepted</code>, if any.
|
| - BooleanDelta? dangerAccepted;
|
| -
|
| // The change in <code>mime</code>, if any.
|
| StringDelta? mime;
|
|
|
| @@ -310,11 +318,14 @@ namespace downloads {
|
| // The change in <code>state</code>, if any.
|
| StringDelta? state;
|
|
|
| + // The change in <code>canResume</code>, if any.
|
| + BooleanDelta? canResume;
|
| +
|
| // The change in <code>paused</code>, if any.
|
| BooleanDelta? paused;
|
|
|
| // The change in <code>error</code>, if any.
|
| - LongDelta? error;
|
| + StringDelta? error;
|
|
|
| // The change in <code>totalBytes</code>, if any.
|
| LongDelta? totalBytes;
|
| @@ -361,7 +372,10 @@ namespace downloads {
|
| // <code>query</code> to the empty object to get all
|
| // $ref:DownloadItem. To get a specific
|
| // $ref:DownloadItem, set only the <code>id</code>
|
| - // field.
|
| + // field. To page through a large number of items, set
|
| + // <code>orderBy: ['-startTime']</code>, set <code>limit</code> to
|
| + // the number of items per page, and set <code>startedAfter</code> to the
|
| + // <code>startTime</code> of the last item from the last page.
|
| static void search(DownloadQuery query, SearchCallback callback);
|
|
|
| // Pause the download. If the request was successful the download is in a
|
| @@ -412,15 +426,21 @@ namespace downloads {
|
| // |downloadId|: The identifier for the downloaded file.
|
| static void open(long downloadId);
|
|
|
| - // Show the downloaded file in its folder in a file manager.
|
| + // Show the downloaded file in its folder in a file manager. If
|
| + // <code>downloadId</code> is not specified, opens the default Downloads
|
| + // folder in a file manager.
|
| // |downloadId|: The identifier for the downloaded file.
|
| - static void show(long downloadId);
|
| + static void show(optional long downloadId);
|
|
|
| - // Erase matching $ref:DownloadItem from history. An $ref:onErased event
|
| - // will fire for each $ref:DownloadItem that matches <code>query</code>,
|
| - // then <code>callback</code> will be called.
|
| + // Erase matching $ref:DownloadItem from history without deleting the
|
| + // downloaded file. An $ref:onErased event will fire for each
|
| + // $ref:DownloadItem that matches <code>query</code>, then
|
| + // <code>callback</code> will be called.
|
| static void erase(DownloadQuery query, optional EraseCallback callback);
|
|
|
| + // Delete the downloaded file.
|
| + static void deleteFile(long downloadId, optional NullCallback callback);
|
| +
|
| // Prompt the user to accept a dangerous download. Does not automatically
|
| // accept dangerous downloads. If the download is accepted, then an
|
| // $ref:onChanged event will fire, otherwise nothing will happen. When all
|
| @@ -429,10 +449,16 @@ namespace downloads {
|
| // renamed to the target filename, the |state| changes to 'complete', and
|
| // $ref:onChanged fires.
|
| // |downloadId|: The identifier for the $ref:DownloadItem.
|
| - static void acceptDanger(long downloadId);
|
| + // |callback|: Called when the danger prompt dialog closes.
|
| + static void acceptDanger(long downloadId, optional NullCallback callback);
|
|
|
| - // Initiate dragging the downloaded file to another application.
|
| + // Initiate dragging the downloaded file to another application. Call in a
|
| + // javascript <code>ondragstart</code> handler.
|
| static void drag(long downloadId);
|
| +
|
| + // Set <code>visible</code> to true to show the download shelf, false to
|
| + // hide it.
|
| + static void setShelfVisible(boolean visible);
|
| };
|
|
|
| interface Events {
|
| @@ -447,9 +473,9 @@ namespace downloads {
|
| static void onErased(long downloadId);
|
|
|
| // When any of a $ref:DownloadItem's properties except
|
| - // <code>bytesReceived</code> changes, this event fires with the
|
| - // <code>downloadId</code> and an object containing the properties that
|
| - // changed.
|
| + // <code>bytesReceived</code> and <code>estimatedEndTime</code> changes,
|
| + // this event fires with the <code>downloadId</code> and an object
|
| + // containing the properties that changed.
|
| static void onChanged(DownloadDelta downloadDelta);
|
|
|
| // During the filename determination process, extensions will be given the
|
|
|