Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Unified Diff: chrome/common/extensions/api/downloads.idl

Issue 16924017: A few minor changes to the chrome.downloads extension API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: @r214130 Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698