| Index: chrome/common/extensions/api/downloads.idl
|
| diff --git a/chrome/common/extensions/api/downloads.idl b/chrome/common/extensions/api/downloads.idl
|
| index c4270263a5d3fbd9f5a70449f1f6909f5bff280b..ee8b01207dca8b53e2045c4a00a360f3c07fdc8c 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,23 +32,50 @@ 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};
|
|
|
| + enum InterruptReason {
|
| + FILE_FAILED,
|
| + FILE_ACCESS_DENIED,
|
| + FILE_NO_SPACE,
|
| + FILE_NAME_TOO_LONG,
|
| + FILE_TOO_LARGE,
|
| + FILE_VIRUS_INFECTED,
|
| + FILE_TRANSIENT_ERROR,
|
| + FILE_BLOCKED,
|
| + FILE_SECURITY_CHECK_FAILED,
|
| + FILE_TOO_SHORT,
|
| + NETWORK_FAILED,
|
| + NETWORK_TIMEOUT,
|
| + NETWORK_DISCONNECTED,
|
| + NETWORK_SERVER_DOWN,
|
| + SERVER_FAILED,
|
| + SERVER_NO_RANGE,
|
| + SERVER_PRECONDITION,
|
| + SERVER_BAD_CONTENT,
|
| + USER_CANCELED,
|
| + USER_SHUTDOWN,
|
| + CRASH};
|
| +
|
| [inline_doc] dictionary DownloadOptions {
|
| // The URL to download.
|
| 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.
|
| @@ -103,6 +130,9 @@ namespace downloads {
|
| // Absolute URL.
|
| DOMString url;
|
|
|
| + // Absolute URL.
|
| + DOMString referrer;
|
| +
|
| // Absolute local path.
|
| DOMString filename;
|
|
|
| @@ -114,9 +144,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;
|
|
|
| @@ -132,6 +159,13 @@ namespace downloads {
|
| // console.log(new Date(item.endTime))})})</code>
|
| DOMString? endTime;
|
|
|
| + // Estimated time when the download will complete in ISO 8601 format. May be
|
| + // passed directly to the Date constructor:
|
| + // <code>chrome.downloads.search({},
|
| + // function(items){items.forEach(function(item){if (item.estimatedEndTime)
|
| + // console.log(new Date(item.estimatedEndTime))})})</code>
|
| + DOMString? estimatedEndTime;
|
| +
|
| // Indicates whether the download is progressing, interrupted, or complete.
|
| State state;
|
|
|
| @@ -139,8 +173,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>.
|
| + InterruptReason? error;
|
|
|
| // Number of bytes received so far from the host, without considering file
|
| // compression.
|
| @@ -166,12 +209,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.
|
| @@ -205,18 +247,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;
|
| @@ -231,9 +272,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;
|
|
|
| @@ -250,8 +288,8 @@ namespace downloads {
|
| // connection open.
|
| boolean? paused;
|
|
|
| - // Number indicating why a download was interrupted.
|
| - long? error;
|
| + // Why a download was interrupted.
|
| + InterruptReason? error;
|
|
|
| // Number of bytes received so far from the host, without considering file
|
| // compression.
|
| @@ -298,9 +336,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;
|
|
|
| @@ -313,11 +348,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;
|
| @@ -360,27 +398,24 @@ namespace downloads {
|
| static void download(DownloadOptions options,
|
| optional DownloadCallback callback);
|
|
|
| - // Find $ref:DownloadItem. Set
|
| - // <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.
|
| + // Find $ref:DownloadItem. Set <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. 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
|
| - // paused state. Otherwise
|
| - // $ref:runtime.lastError
|
| - // contains an error message. The request will fail if the download is not
|
| - // active.
|
| + // paused state. Otherwise $ref:runtime.lastError contains an error message.
|
| + // The request will fail if the download is not active.
|
| // |downloadId|: The id of the download to pause.
|
| // |callback|: Called when the pause request is completed.
|
| static void pause(long downloadId, optional NullCallback callback);
|
|
|
| // Resume a paused download. If the request was successful the download is
|
| - // in progress and unpaused. Otherwise
|
| - // $ref:runtime.lastError
|
| - // contains an error message. The request will fail if the download is not
|
| - // active.
|
| + // in progress and unpaused. Otherwise $ref:runtime.lastError contains an
|
| + // error message. The request will fail if the download is not active.
|
| // |downloadId|: The id of the download to resume.
|
| // |callback|: Called when the resume request is completed.
|
| static void resume(long downloadId, optional NullCallback callback);
|
| @@ -392,16 +427,14 @@ namespace downloads {
|
| static void cancel(long downloadId, optional NullCallback callback);
|
|
|
| // Retrieve an icon for the specified download. For new downloads, file
|
| - // icons are available after the $ref:onCreated
|
| - // event has been received. The image returned by this function while a
|
| - // download is in progress may be different from the image returned after
|
| - // the download is complete. Icon retrieval is done by querying the
|
| - // underlying operating system or toolkit depending on the platform. The
|
| - // icon that is returned will therefore depend on a number of factors
|
| - // including state of the download, platform, registered file types and
|
| - // visual theme. If a file icon cannot be determined,
|
| - // $ref:runtime.lastError
|
| - // will contain an error message.
|
| + // icons are available after the $ref:onCreated event has been received. The
|
| + // image returned by this function while a download is in progress may be
|
| + // different from the image returned after the download is complete. Icon
|
| + // retrieval is done by querying the underlying operating system or toolkit
|
| + // depending on the platform. The icon that is returned will therefore
|
| + // depend on a number of factors including state of the download, platform,
|
| + // registered file types and visual theme. If a file icon cannot be
|
| + // determined, $ref:runtime.lastError will contain an error message.
|
| // |downloadId|: The identifier for the download.
|
| // |callback|: A URL to an image that represents the download.
|
| static void getFileIcon(long downloadId,
|
| @@ -409,7 +442,7 @@ namespace downloads {
|
| GetFileIconCallback callback);
|
|
|
| // Open the downloaded file now if the $ref:DownloadItem is complete;
|
| - // returns an error through $ref:runtime.lastError otherwise. Requires the
|
| + // otherwise returns an error through $ref:runtime.lastError. Requires the
|
| // <code>"downloads.open"</code> permission in addition to the
|
| // <code>"downloads"</code> permission. An $ref:onChanged event will fire
|
| // when the item is opened for the first time.
|
| @@ -420,11 +453,19 @@ namespace downloads {
|
| // |downloadId|: The identifier for the downloaded file.
|
| static void show(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.
|
| + // Show the default Downloads folder in a file manager.
|
| + static void showDefaultFolder();
|
| +
|
| + // 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);
|
|
|
| + // Remove the downloaded file if it exists and the $ref:DownloadItem is
|
| + // complete; otherwise return an error through $ref:runtime.lastError.
|
| + static void removeFile(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
|
| @@ -433,15 +474,17 @@ 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);
|
| };
|
|
|
| interface Events {
|
| - // This event fires with the $ref:DownloadItem
|
| - // object when a download begins.
|
| + // This event fires with the $ref:DownloadItem object when a download
|
| + // begins.
|
| static void onCreated(DownloadItem downloadItem);
|
|
|
| // Fires with the <code>downloadId</code> when a download is erased from
|
| @@ -451,9 +494,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
|
|
|